Forráskód Böngészése

更新拉杆书包

lex 1 éve
szülő
commit
2b5722f795
2 módosított fájl, 34 hozzáadás és 13 törlés
  1. 29 3
      src/views/courseList/index.tsx
  2. 5 10
      src/views/hook/useFee.ts

+ 29 - 3
src/views/courseList/index.tsx

@@ -1,5 +1,5 @@
 import request from '@/helpers/request';
-import { state } from '@/state';
+import { setLogin, state } from '@/state';
 import {
   Button,
   Cell,
@@ -14,7 +14,8 @@ import {
   reactive,
   onUnmounted,
   TransitionGroup,
-  computed
+  computed,
+  watch
 } from 'vue';
 import styles from './index.module.less';
 import { useRoute, useRouter } from 'vue-router';
@@ -34,12 +35,13 @@ import { handleCheckVip, gotoMemberCenter, hasVip } from '../hook/useFee';
 import iconList from './image/icon-list.png';
 // import OSticky from '@/components/o-sticky';
 import OHeader from '@/components/o-header';
-import { useEventListener } from '@vant/use';
+import { useEventListener, usePageVisibility } from '@vant/use';
 import OLoading from '@/components/o-loading';
 import OSticky from '@/components/o-sticky';
 export default defineComponent({
   name: 'courseList',
   setup() {
+    const pageVisibility = usePageVisibility();
     const route = useRoute();
     const router = useRouter();
     const browserInfo = browser();
@@ -281,6 +283,30 @@ export default defineComponent({
         document.documentElement.scrollTop;
       data.titleOpacity = height > 100 ? 1 : height / 100;
     });
+
+    watch(
+      () => pageVisibility.value,
+      async (val: any) => {
+        // 为了处理从没有会员,到购买会员返回时状态变化
+        if (val === 'visible') {
+          try {
+            const res = await request.get(
+              state.platformType === 'STUDENT'
+                ? state.platformApi + '/student/queryUserInfo'
+                : state.platformApi + '/teacher/queryUserInfo',
+              {
+                initRequest: true, // 初始化接口
+                requestType: 'form',
+                hideLoading: true
+              }
+            );
+            setLogin(res.data);
+          } catch (e: any) {
+            //
+          }
+        }
+      }
+    );
     return () => (
       <div class={styles.courseList}>
         <OHeader

+ 5 - 10
src/views/hook/useFee.ts

@@ -5,14 +5,10 @@ import dayjs from 'dayjs';
 import { showDialog } from 'vant';
 
 export const gotoMemberCenter = () => {
-  postMessage({ api: 'back' });
+  // postMessage({ api: 'back' });
   const browserInfo = browser();
-  let pathname = '/'
-  if (/gym.lexiaoya.cn/.test(location.origin)) {
-    pathname = '/mdaya/'
-  }
   if (browserInfo.isApp) {
-    const url = window.location.origin + pathname + `#/member`;
+    const url = window.location.origin + `/#/member`;
     postMessage({
       api: 'openWebView',
       content: {
@@ -22,14 +18,13 @@ export const gotoMemberCenter = () => {
     });
     return;
   }
-  location.href = window.location.origin + pathname + `#/member`;
+  location.href = location.origin + `/#/member`;
 };
 
 /**验证是否是会员 */
 export const hasVip = () => {
-  // &&
-  //   !state.user.data.isExistPendingMember
-  return !dayjs().isBefore(dayjs(state.user.data.student.membershipEndTime))
+  return !dayjs().isBefore(dayjs(state.user.data.student.membershipEndTime)) &&
+    !state.user.data.isExistPendingMember
     ? false
     : true;
 };