Browse Source

添加中间页

lex-xin 4 months ago
parent
commit
9222e884c7

+ 8 - 8
src/router/router-root.ts

@@ -318,14 +318,14 @@ export default [
       title: '音乐数字化转型家长说明会'
     }
   },
-  {
-    path: '/intention-questionnaire',
-    name: 'intention-questionnaire',
-    component: () => import('@/views/intention-questionnaire/index'),
-    meta: {
-      title: '音乐(器乐)课堂数字化转型调查问卷'
-    }
-  },
+  // {
+  //   path: '/intention-questionnaire',
+  //   name: 'intention-questionnaire',
+  //   component: () => import('@/views/intention-questionnaire/index'),
+  //   meta: {
+  //     title: '音乐(器乐)课堂数字化转型调查问卷'
+  //   }
+  // },
   {
     path: '/intention-questionnaire-show',
     name: 'intention-questionnaire-show',

+ 15 - 0
src/router/routes-common.ts

@@ -245,5 +245,20 @@ export default [
       }
     ]
   },
+  {
+    path: '/wx-auth',
+    name: 'wx-auth',
+    component: () => import('@/views/layout/wx-auth'),
+    children: [
+      {
+        path: '/intention-questionnaire',
+        name: 'intention-questionnaire',
+        component: () => import('@/views/intention-questionnaire/index'),
+        meta: {
+          title: '音乐(器乐)课堂数字化转型调查问卷'
+        }
+      }
+    ]
+  },
   ...rootRouter
 ];

+ 33 - 19
src/views/intention-questionnaire/index.tsx

@@ -30,6 +30,19 @@ export default defineComponent({
     );
 
     const authCode = useAuthCode();
+    // // 获取微信Code
+    // if (!authCode.onWeChatCode('GET') || !authCode.onWeChatCatchOpenId('GET')) {
+    //   authCode.getWeChatAuthCode(
+    //     getHttpOrigin() +
+    //       window.location.pathname +
+    //       '#' +
+    //       route.path +
+    //       '?' +
+    //       qs.stringify({
+    //         ...route.query
+    //       })
+    //   );
+    // }
 
     // 页面定时
     const pageTimer = useInterval(1000, { controls: true });
@@ -48,7 +61,7 @@ export default defineComponent({
         '<p style="text-align: left;"><strong style="font-size:15px; color: #0B8BFE;">三、开展原则</strong></p><p style="text-align: left;">本次活动面向全体学生,完全遵循学生自愿参加的原则。</p><p style="text-align: left;">1.若学生选择参加转型,家长需自行为学生准备好自用的乐器(硬件)和“器乐数字 Ai”应用(软件,用于联通学校音乐课堂)两项学习工具。</p><p style="text-align: left;">2.若学生不参加转型,可继续按原有方式进行音乐课学习。</p>',
       contentD:
         '<p style="text-align: left;"><strong style="font-size:15px; color: #0B8BFE;">五、事项说明</strong></p><p style="text-align: left;">1.学校不涉及任何费用收取。学生所需的自用工具在市面上均可购买到,家长可自行根据实际情况为学生准备。</p><p style="text-align: left;">2.如学生有参加数字化转型的意愿,但存在特殊或特困情况,可先向学校进行登记,学校将尽力寻求资源协助家长解决。</p><p style="text-align: left;">在您了解上述内容后,请点击下一步进行意见填写:</p>',
-      contentE: null as any,  
+      contentE: null as any,
       introductionVideo: 'https://oss.dayaedu.com/ktyq/02/1739345029052.mp4',
       introductionVideoTime: 117,
       coverImg: 'https://oss.dayaedu.com/ktyq/02/1739362815061.png',
@@ -69,12 +82,9 @@ export default defineComponent({
         | any,
       intentionInfo: null as any,
       contentShow: false,
-      tenantId: null as any, // 机构id
+      tenantId: null as any // 机构id
     });
 
-    const showPopup = ref(false);
-    const showPopupMessage = ref('');
-
     // 播放视频总时长
     const videoIntervalRef = useInterval(1000, { controls: true });
     videoIntervalRef.pause();
@@ -84,26 +94,29 @@ export default defineComponent({
 
     onMounted(async () => {
       forms.meetingType = route.query.type || forms.meetingType;
-      forms.tenantId = route.query.id || '1891864516088385538'
+      forms.tenantId = route.query.id || '1891864516088385538';
       try {
-        const openId = await authCode.getOpenId(
-          getHttpOrigin() +
-            window.location.pathname +
-            '#' +
-            route.path +
-            '?' +
-            qs.stringify({
-              ...route.query
-            })
-        );
-        forms.openId = openId
+        // getHttpOrigin() +
+        //     window.location.pathname +
+        //     '#' +
+        //     route.path +
+        //     '?' +
+        //     qs.stringify({
+        //       ...route.query
+        //     })
+        // const openId = await authCode.getOnlyOpenId();
+        // forms.openId = openId;
+        forms.openId = authCode.onWeChatCatchOpenId('GET');
+        // console.log(forms.openId, 'openId - show');
+
         // 获取微信分享签名
         weChatShare.getAppSignature();
         // if (!browser().weixin || !openId) return;
         const { data } = await request.get(
           '/edu-app/open/meetingQuestionSetting/detail?type=' +
             forms.meetingType +
-            '&tenantId=' + forms.tenantId
+            '&tenantId=' +
+            forms.tenantId
         );
         if (data) {
           forms.contentA = data.contentA || forms.contentA;
@@ -113,7 +126,7 @@ export default defineComponent({
           forms.contentE = data.contentE || null;
           // 如果设置了题目名称,则存储,下一步页面需要用到
           if (forms.contentE) {
-            sessionStorage.setItem('customQuestionE', forms.contentE)
+            sessionStorage.setItem('customQuestionE', forms.contentE);
           }
         }
         forms.contentShow = true;
@@ -124,6 +137,7 @@ export default defineComponent({
       forms.player1 = _initVideo('one', forms, videoIntervalRef);
       forms.player2 = _initVideo('two', forms, videoIntervalRef2);
     });
+
     const nextSkip = () => {
       router.push({
         path: '/fill-questionnaire',

+ 46 - 0
src/views/layout/wx-auth.tsx

@@ -0,0 +1,46 @@
+import { computed, defineComponent, ref } from 'vue';
+import { RouterView, useRoute } from 'vue-router';
+import useAuthCode from '@/hooks/useAuthCode';
+import { browser, getHttpOrigin } from '@/helpers/utils';
+import qs from 'query-string';
+
+export default defineComponent({
+  name: 'wx-auth-layout',
+  setup() {
+    const authCode = useAuthCode();
+    const route = useRoute();
+    const loading = ref(false);
+    const openId = ref('');
+    const isNeedView = computed(() => {
+      return openId.value || !browser().weixin ? true : false;
+    });
+
+    const setAuth = async () => {
+      if (loading.value) {
+        return;
+      }
+
+      loading.value = true;
+      try {
+        openId.value = await authCode.getOpenId(
+          getHttpOrigin() +
+            window.location.pathname +
+            '#' +
+            route.path +
+            '?' +
+            qs.stringify({
+              ...route.query
+            })
+        );
+        console.log(openId.value, 'wx-auth-layout');
+      } catch {
+        //
+      }
+      loading.value = false;
+    };
+
+    setAuth();
+
+    return () => (isNeedView.value ? <RouterView></RouterView> : null);
+  }
+});