App.vue 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <template>
  2. <router-view />
  3. </template>
  4. <script setup lang="ts">
  5. // import 'vant/lib/index.css';
  6. import { onMounted, computed } from 'vue';
  7. import { useUserStore } from '/@/store/modules/user';
  8. import { useCookies } from '@vueuse/integrations/useCookies';
  9. import { useRouter } from 'vue-router';
  10. import { useI18n } from 'vue-i18n';
  11. const userStore = useUserStore();
  12. const { t } = useI18n();
  13. const wxOpenId = computed(() => {
  14. return userStore.getWxOpenId;
  15. });
  16. onMounted(async () => {
  17. let code = getUrlKey('code'); //获取url参数code
  18. // let isWeixn = is_weixn();
  19. const router = useRouter();
  20. const routersName = router.currentRoute.value;
  21. console.log('routersName', routersName);
  22. if (routersName == 'feedback' || routersName == 'feedbacksuccess') {
  23. document.title = t('feedback.title');
  24. } else if (wxOpenId.value) {
  25. //
  26. console.log('已登录', wxOpenId.value);
  27. } else if (code) {
  28. //存在code
  29. userStore.setWxOpenId(code);
  30. } else {
  31. //进行微信登录
  32. getCodeApi(123);
  33. }
  34. let clear = getUrlKey('clear'); //获取url参数code
  35. if (clear) {
  36. useCookies().set('wxOpenId', '');
  37. getCodeApi(123);
  38. }
  39. });
  40. function getUrlKey(name) {
  41. //获取url 参数
  42. return (
  43. decodeURIComponent(
  44. (new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ''])[1].replace(/\+/g, '%20'),
  45. ) || null
  46. );
  47. }
  48. function getCodeApi(state) {
  49. //获取code
  50. console.log('getCodeApi');
  51. let urlNow = encodeURIComponent(window.location.href);
  52. let scope = 'snsapi_base'; //snsapi_userinfo //静默授权 用户无感知
  53. let appid = 'wxac3d59ea82d9b82a';
  54. let url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${urlNow}&response_type=code&scope=${scope}&state=${state}#wechat_redirect`;
  55. // window.location.replace(url);
  56. }
  57. </script>
  58. <style>
  59. #app {
  60. font-family: PingFang SC-Regular, PingFang SC;
  61. -webkit-font-smoothing: antialiased;
  62. -moz-osx-font-smoothing: grayscale;
  63. color: #2c3e50;
  64. background-color: var(--color-bg-1);
  65. }
  66. .van-toast {
  67. background: rgba(0, 0, 0, 0.7) !important;
  68. }
  69. .htmlText {
  70. overflow: hidden;
  71. text-overflow: ellipsis;
  72. width: 100%;
  73. display: -webkit-box;
  74. -webkit-box-orient: vertical;
  75. -webkit-line-clamp: 3;
  76. word-break: break-all;
  77. }
  78. </style>