shmily1213 1 месяц назад
Родитель
Сommit
134ef5c78b

+ 7 - 6
src/config.ts

@@ -6,24 +6,25 @@ const config = {
   serverBaseUrl: '',
   paySiteUrl: '',
   responseErrorCatch: true,
+  h5SiteUrl: '',
   defaultOrg: {
     contactPhone: '400-1797-985',
     logo: '',
     orgName: '单招一卡通',
   },
-  // 用户协议
-  userProtocolUrl: 'https://www.dz1kt.com/admin/protocol/mxjb_user_IE.html',
-  // 隐私政策
-  privacyPolicyUrl: 'https://www.dz1kt.com/admin/protocol/mxjb_privacy_IE.html',
+  // 常见问题
+  faqUrl: 'https://www.dz1kt.com/admin/FAQ/FAQ_IE.html'
 };
 export const env = {
   development: {
     serverBaseUrl: 'https://dz.shineking.top/prod-api',
-    paySiteUrl: 'https://www.dz1kt.com/h5'
+    paySiteUrl: 'https://www.dz1kt.com/h5',
+    h5SiteUrl: 'http://192.168.31.227:5174/h5/pagesSystem/pages/startup/startup',
   },
   production: {
     serverBaseUrl: 'https://www.dz1kt.com/admin/prod-api',
-    paySiteUrl: 'https://www.dz1kt.com/h5'
+    paySiteUrl: 'https://www.dz1kt.com/h5',
+    h5SiteUrl: 'https://www.dz1kt.com/h5/pagesSystem/pages/startup/startup',
   }
 }
 export default {

+ 27 - 0
src/pagesMain/pages/index/components/index-banner.vue

@@ -18,6 +18,7 @@ import { useTransferPage } from '@/hooks/useTransferPage';
 const { transferTo, routes } = useTransferPage();
 import { useUserStore } from '@/store/userStore';
 import type { Transfer } from '@/types';
+import config from '@/config';
 
 const userStore = useUserStore();
 type MenuItem = {
@@ -43,6 +44,27 @@ const navigateTo = async (item: MenuItem) => {
     });
   }
 }
+const rankingPageUrl = computed(() => {
+  const token = userStore.accessToken;
+  const h5Url = config.h5SiteUrl;
+  const oldRankPageUrl = '/pagesOther/pages/career/query-segment/query-segment';
+  const testParams = {
+    key1: '123'
+  }
+  const h5Params = {
+    token,
+    redirect: oldRankPageUrl,
+    params: JSON.stringify(testParams)
+  };
+  const transerParams = {
+    url: h5Url,
+    params: JSON.stringify(h5Params),
+    title: '查位次',
+    showNavbar: true
+  };
+  return `${routes.pageWebview}?${Object.entries(transerParams).map(([key, value]) => `${key}=${value}`).join('&')}`;
+
+});
 const validMenus = computed(() => {
   const menus: MenuItem[] = [
     {
@@ -90,6 +112,11 @@ const validMenus = computed(() => {
     //   icon: '/menu/menu-upgrade.png',
     //   pageUrl: '/pages/index/index',
     // }
+    {
+      name: '查位次',
+      icon: '/menu/menu-upgrade.png',
+      pageUrl: rankingPageUrl.value,
+    }
   ]
   return menus.filter(item => item.visible !== false);
 });

+ 3 - 2
src/pagesMain/pages/me/components/me-menu.vue

@@ -50,6 +50,7 @@
 <script lang="ts" setup>
 import { useTransferPage } from '@/hooks/useTransferPage';
 import { useUserStore } from '@/store/userStore';
+import config from '@/config';
 
 const { transferTo, routes } = useTransferPage();
 const userStore = useUserStore();
@@ -108,10 +109,10 @@ const handleNavigate = async (pagePath: string, title: string) => {
   }
 }
 const handleQuestion = async () => {
-  transferTo('/pagesOther/pages/h5/h5', {
+  transferTo(routes.pageWebview, {
     data: {
       title: '常见问题',
-      url: 'https://www.dz1kt.com/admin/FAQ/FAQ_IE.html'
+      url: config.faqUrl
     }
   });
 }

+ 2 - 13
src/pagesSystem/pages/setting/setting.vue

@@ -15,7 +15,6 @@
 import { useTransferPage } from '@/hooks/useTransferPage';
 import { useAppStore } from '@/store/appStore';
 import { useUserStore } from '@/store/userStore';
-import config from '@/config';
 
 const appStore = useAppStore();
 const userStore = useUserStore();
@@ -28,12 +27,7 @@ const settings = computed(() => [
     icon: 'empty-order',
     isLink: true,
     handler: () => {
-      transferTo(routes.pageWebview, {
-        data: {
-          url: config.userProtocolUrl,
-          title: '服务协议'
-        }
-      });
+      transferTo(routes.pageUserProtocol);
     }
   },
   {
@@ -41,12 +35,7 @@ const settings = computed(() => [
     icon: 'lock',
     isLink: true,
     handler: () => {
-      transferTo(routes.pageWebview, {
-        data: {
-          url: config.privacyPolicyUrl,
-          title: '隐私政策'
-        }
-      });
+      transferTo(routes.pagePrivacyPolicy);
     }
   },
   {

+ 43 - 1
src/pagesSystem/pages/startup/startup.vue

@@ -1,12 +1,54 @@
 <template>
+  <ie-page>
+    <ie-navbar title="hahah" />
+    <view>1111</view>
+  </ie-page>
 </template>
 
 <script lang="ts" setup>
 import { useTransferPage } from '@/hooks/useTransferPage';
+import { useUserStore } from '@/store/userStore';
+
+const userStore = useUserStore();
 const { prevData, transferTo, routes } = useTransferPage();
+const initSuccess = ref(false);
+const loading = ref(false);
 
+const init = async () => {
+  const { token, redirect, params } = prevData.value;
+  console.log('开始初始化')
+  console.log(prevData.value)
+  if (token) {
+    loading.value = true;
+    try {
+      const { success, userInfo } = await userStore.login(token);
+      if (success) {
+        let pageUrl = '';
+        // if (params) {
+        //   const parseParams = JSON.parse(params);
+        //   Object.entries(parseParams).forEach(([key, value]) => {
+        //     pageUrl += `${key}=${value}&`;
+        //   });
+        // }
+        initSuccess.value = true;
+        pageUrl = pageUrl ? `?${pageUrl}` : '';
+        console.log('pageUrl', pageUrl)
+        console.log('redirect', redirect)
+        transferTo(`${redirect}${pageUrl}`, {
+          type: 'navigateTo'
+        });
+      }
+    } catch (error) {
+      initSuccess.value = false;
+    } finally {
+      loading.value = false;
+    }
+  } else {
+    initSuccess.value = false;
+  }
+}
 onLoad(() => {
-  console.log(prevData)
+  init();
 });
 </script>
 

+ 25 - 6
src/pagesSystem/pages/webview/webview.vue

@@ -1,8 +1,8 @@
 <template>
   <ie-page :fix-height="true">
-    <ie-navbar :title="pageTitle" />
+    <ie-navbar v-if="showNavbar" :title="pageTitle" />
     <ie-auto-resizer>
-      <web-view class="w-full h-full" :src="url" />
+      <web-view class="w-full h-full" :src="webviewSrc" />
     </ie-auto-resizer>
   </ie-page>
 </template>
@@ -10,12 +10,31 @@
 <script lang="ts" setup>
 import { useTransferPage } from '@/hooks/useTransferPage';
 
-const { prevData } = useTransferPage();
-const url = ref('');
+const { prevData, transferBack } = useTransferPage();
+const showNavbar = ref(true);
+const webviewSrc = ref('');
 const pageTitle = ref('');
+const webviewParams = ref('');
+
 onLoad(() => {
-  url.value = prevData.value.url;
-  pageTitle.value = prevData.value.title;
+  const { url, params, title, showNavbar: _showNavbar } = prevData.value
+  console.log(1111, _showNavbar)
+  pageTitle.value = title;
+  showNavbar.value = JSON.parse(_showNavbar) ?? true;
+  try {
+    if (typeof params === 'string') {
+      webviewParams.value = JSON.parse(params);
+    } else {
+      webviewParams.value = params;
+    }
+    // const {} = webviewParams.value;
+    webviewSrc.value = `${url}?${Object.entries(webviewParams.value).map(([key, value]) => `${key}=${value}`).join('&')}`;
+    console.log(webviewSrc.value, showNavbar.value, 3333)
+  } catch (error) {
+    uni.$ie.showToast('参数错误');
+    transferBack();
+  }
+  console.log(111, prevData.value, webviewParams.value)
 });
 </script>
 

+ 2 - 9
src/store/userStore.ts

@@ -1,20 +1,14 @@
 import { defineStore } from 'pinia';
 import { useTransferPage } from '@/hooks/useTransferPage';
-import { ref, computed } from 'vue';
 import { getUserInfo, logoutPhysical } from '@/api/modules/login';
 import config from '@/config';
-
-import { Study, UserStoreState } from '@/types';
+import type { Study, UserStoreState } from '@/types';
 import { UserInfo, VipCardInfo } from '@/types/user';
 import tools from '@/utils/uni-tool';
 import defaultAvatar from '@/static/personal/avatar_default.png'
-
-// @ts-ignore
-// import { useUserStore as useOldUserStore } from '@/hooks/useUserStore';
 import { CardType, EnumExamType, EnumReviewMode, EnumUserType } from '@/common/enum';
-import { OPEN_VIP_POPUP } from '@/types/injectionSymbols';
 import { getDirectedSchool, saveDirectedSchool } from '@/api/modules/study';
-// const oldUserStore = useOldUserStore()
+
 const themeColor = '#31A0FC';
 type CheckLoginOptions = {
   askToLogin?: boolean;
@@ -140,7 +134,6 @@ export const useUserStore = defineStore('ie-user', {
     async login(token: string) {
       try {
         this.accessToken = token;
-        // await oldUserStore.SyncToken(token);
         const userInfo = await this.getUserInfo();;
         return Promise.resolve({
           success: true,