From a3be4bd8a96df6b27e4f0d3883d661d9cb64d1fc Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 21 二月 2025 14:47:05 +0800
Subject: [PATCH] fix: 页面

---
 apps/taro/src/subpackages/recharge/phoneBillRecharge/phoneBillRecharge.vue     |    2 
 apps/taro/src/subpackages/recharge/selectPayType/selectPayType.vue             |    2 
 apps/taro/src/subpackages/recharge/rechargeResult/rechargeResult.vue           |    2 
 apps/taro/src/stores/modules/user.ts                                           |   33 ++++++++--
 packages/components/src/utils/types.ts                                         |    6 +
 apps/taro/src/subpackages/login/loginByForm/verificationCodeLoginForm.vue      |   20 +++++-
 apps/taro/src/subpackages/login/components/LoginPageLayout/LoginPageLayout.vue |    2 
 apps/taro/src/app.ts                                                           |    5 +
 apps/taro/src/hooks/user.ts                                                    |   11 ++-
 apps/taro/src/utils/storage/auth.ts                                            |   12 ++++
 apps/taro/src/hooks/access.ts                                                  |    3 
 apps/taro/src/pages/home/index.vue                                             |   14 +---
 packages/components/src/utils/lifeRecharge.ts                                  |   23 ++++++-
 apps/taro/src/utils/blLifeRecharge.ts                                          |    2 
 14 files changed, 98 insertions(+), 39 deletions(-)

diff --git a/apps/taro/src/app.ts b/apps/taro/src/app.ts
index 2531ecd..d2b1804 100644
--- a/apps/taro/src/app.ts
+++ b/apps/taro/src/app.ts
@@ -12,6 +12,7 @@
 import { myClient } from '@/constants/query';
 import { VueLifeRechargePlugin } from '@life-payment/components';
 import { blLifeRecharge } from '@/utils/blLifeRecharge';
+import { isWeChat } from '@/utils/env';
 
 window.uni = Taro;
 
@@ -64,7 +65,9 @@
 
   // 瀵瑰簲 onShow
   onShow(options) {
-    updateVersions();
+    if (isWeChat) {
+      updateVersions();
+    }
   },
 
   // 瀵瑰簲 onHide
diff --git a/apps/taro/src/hooks/access.ts b/apps/taro/src/hooks/access.ts
index d763657..6154a8f 100644
--- a/apps/taro/src/hooks/access.ts
+++ b/apps/taro/src/hooks/access.ts
@@ -14,7 +14,8 @@
     if (!isLogin.value) {
       Message.confirm({ message: '璇峰墠寰�鐧诲綍' }).then(() => {
         Taro.navigateTo({
-          url: `${RouterPath.authorization}`,
+          // url: `${RouterPath.authorization}`,
+          url: `${RouterPath.loginByForm}`,
         });
       });
       return;
diff --git a/apps/taro/src/hooks/user.ts b/apps/taro/src/hooks/user.ts
index a25b33a..29a6ef4 100644
--- a/apps/taro/src/hooks/user.ts
+++ b/apps/taro/src/hooks/user.ts
@@ -11,7 +11,7 @@
 export function useUser() {
   const userStore = useUserStore();
 
-  const { userDetail, userInfo, locationCity } = storeToRefs(userStore);
+  const { userDetail, userInfo, locationCity, virtualUserId } = storeToRefs(userStore);
 
   function updateUserInfo() {
     return userStore.getCurrentUserInfo();
@@ -22,13 +22,14 @@
     userDetail: userDetail,
     updateUserInfo,
     locationCity,
+    virtualUserId,
   };
 }
 
 export function useIsLogin() {
-  const { user, userDetail } = useUser();
-  return computed(() => !!user.value);
-  // return user?.isPersonal ? !!user : !!user && !!enterpriseInfo;
+  const { virtualUserId } = useUser();
+  // return computed(() => !!user.value);
+  return computed(() => !!virtualUserId.value);
 }
 
 type UseAuthOptions = {
@@ -47,7 +48,7 @@
 
   Taro.useReady(async () => {
     if (isLogin.value && userStore.firstGetUserDetail) {
-      userStore.getCurrentUserInfo();
+      // userStore.getCurrentUserInfo();
     }
     if (needAuth && !isLogin.value) {
       Taro.navigateTo({
diff --git a/apps/taro/src/pages/home/index.vue b/apps/taro/src/pages/home/index.vue
index f92134b..e349db9 100644
--- a/apps/taro/src/pages/home/index.vue
+++ b/apps/taro/src/pages/home/index.vue
@@ -7,24 +7,18 @@
 </template>
 
 <script setup lang="ts">
-import { useUser, useInfiniteLoading } from '@/hooks';
+import { useUser, useAccessLogin } from '@/hooks';
 import { useUserStore } from '@/stores/modules/user';
 import Taro from '@tarojs/taro';
 import IconLogo from '@/assets/home/icon-logo.png';
 import { OrderInputType } from '@life-payment/constants';
 import { RechargeGrid } from '@life-payment/components';
 
-function goPhoneBillRecharge() {
+const goPhoneBillRecharge = useAccessLogin(() => {
   Taro.navigateTo({
     url: `${RouterPath.phoneBillRecharge}`,
-  })
-    .then(() => {
-      console.log('Navigate successfully');
-    })
-    .catch((err) => {
-      console.error('Navigation failed:', err);
-    });
-}
+  });
+});
 </script>
 
 <style lang="scss">
diff --git a/apps/taro/src/stores/modules/user.ts b/apps/taro/src/stores/modules/user.ts
index 24f87f0..29663e5 100644
--- a/apps/taro/src/stores/modules/user.ts
+++ b/apps/taro/src/stores/modules/user.ts
@@ -8,6 +8,9 @@
   setUserDetail,
   getUserDetail,
   removeUserDetail,
+  setStorageVirtualUserId,
+  getStorageVirtualUserId,
+  removeStorageVirtualUserId,
 } from '@/utils/storage/auth';
 import * as accountServices from '@life-payment/services/api/Account';
 import * as userServices from '@life-payment/services/api/User';
@@ -29,6 +32,8 @@
   locationCity?: string;
   locationProvince?: string;
   firstSetLocation?: boolean;
+
+  virtualUserId?: string;
 }
 
 const goAuthorization = debounce(
@@ -62,6 +67,8 @@
       refreshToken: userInfo?.refreshToken ?? '',
       userDetail: userDetail,
       firstGetUserDetail: true,
+
+      virtualUserId: getStorageVirtualUserId() ?? '',
     };
   },
   getters: {
@@ -122,7 +129,7 @@
       );
 
       if (res) {
-        this.loginSuccess(res);
+        this.loginVirtualSuccess(res);
       }
       return res;
     },
@@ -142,13 +149,24 @@
       return res;
     },
 
-    async loginSuccess(res: API.IdentityModelTokenCacheItem | string) {
+    async loginSuccess(res: API.IdentityModelTokenCacheItem) {
       console.log('res: ', res);
-      // try {
-      //   this.setUserInfoAction(res);
-      //   this.setTokenAction(res);
-      //   await this.getCurrentUserInfo();
-      // } catch (error) {}
+      try {
+        this.setUserInfoAction(res);
+        this.setTokenAction(res);
+        await this.getCurrentUserInfo();
+      } catch (error) {}
+    },
+
+    async loginVirtualSuccess(virtualUserId: string) {
+      try {
+        this.setVirtualUserId(virtualUserId);
+      } catch (error) {}
+    },
+
+    setVirtualUserId(virtualUserId: string) {
+      this.virtualUserId = virtualUserId;
+      setStorageVirtualUserId(virtualUserId);
     },
 
     async wxMiniAppUserLoginFromScan(wxIndentityRes: API.WxMiniAppIndentityInfo, uuid: string) {
@@ -216,6 +234,7 @@
       this.userDetail = null;
       removeUserInfo();
       removeUserDetail();
+      removeStorageVirtualUserId();
     },
 
     /**
diff --git a/apps/taro/src/subpackages/login/components/LoginPageLayout/LoginPageLayout.vue b/apps/taro/src/subpackages/login/components/LoginPageLayout/LoginPageLayout.vue
index f3bd97e..bdf169d 100644
--- a/apps/taro/src/subpackages/login/components/LoginPageLayout/LoginPageLayout.vue
+++ b/apps/taro/src/subpackages/login/components/LoginPageLayout/LoginPageLayout.vue
@@ -7,7 +7,7 @@
       <img :src="OssAssets.login.AuthBg" class="authorization-page-auth" />
     </template>
 
-    <div class="authorization-page-title">娆㈣繋浣跨敤818骞冲彴</div>
+    <div class="authorization-page-title">娆㈣繋浣跨敤鐢熸椿缂磋垂骞冲彴</div>
 
     <slot></slot>
   </PageLayout>
diff --git a/apps/taro/src/subpackages/login/loginByForm/verificationCodeLoginForm.vue b/apps/taro/src/subpackages/login/loginByForm/verificationCodeLoginForm.vue
index eb62297..ea7179d 100644
--- a/apps/taro/src/subpackages/login/loginByForm/verificationCodeLoginForm.vue
+++ b/apps/taro/src/subpackages/login/loginByForm/verificationCodeLoginForm.vue
@@ -40,6 +40,7 @@
 import { useLoginedJump } from '@/hooks';
 import { useUserStore } from '@/stores/modules/user';
 import Taro from '@tarojs/taro';
+import { useLifeRechargeContext } from '@life-payment/components';
 
 defineOptions({
   name: 'verificationCodeLoginForm',
@@ -52,6 +53,7 @@
 const props = withDefaults(defineProps<Props>(), {});
 
 const userStore = useUserStore();
+const { blLifeRecharge } = useLifeRechargeContext();
 
 const { jump } = useLoginedJump();
 
@@ -87,10 +89,20 @@
       const { valid } = await formRef.value.validate();
       if (valid) {
         form.loading = true;
-        await userStore.loginByUsername({
-          phoneNumber: form.phoneNumber,
-          code: form.verificationCode,
-        });
+        // await userStore.loginByUsername({
+        //   phoneNumber: form.phoneNumber,
+        //   code: form.verificationCode,
+        // });
+        let res = await blLifeRecharge.login(
+          {
+            phoneNumber: form.phoneNumber,
+            code: form.verificationCode,
+          },
+          {
+            showLoading: false,
+          }
+        );
+        userStore.loginVirtualSuccess(res);
         jump();
       }
     } else {
diff --git a/apps/taro/src/subpackages/recharge/phoneBillRecharge/phoneBillRecharge.vue b/apps/taro/src/subpackages/recharge/phoneBillRecharge/phoneBillRecharge.vue
index 7b21ce8..1a6a678 100644
--- a/apps/taro/src/subpackages/recharge/phoneBillRecharge/phoneBillRecharge.vue
+++ b/apps/taro/src/subpackages/recharge/phoneBillRecharge/phoneBillRecharge.vue
@@ -1,5 +1,5 @@
 <template>
-  <PageLayout title="璇濊垂鍏呭��" class="phoneBillRecharge-page-wrapper" hasBorder :need-auth="false">
+  <PageLayout title="璇濊垂鍏呭��" class="phoneBillRecharge-page-wrapper" hasBorder>
     <InnerPage />
   </PageLayout>
 </template>
diff --git a/apps/taro/src/subpackages/recharge/rechargeResult/rechargeResult.vue b/apps/taro/src/subpackages/recharge/rechargeResult/rechargeResult.vue
index 69046ef..48002a0 100644
--- a/apps/taro/src/subpackages/recharge/rechargeResult/rechargeResult.vue
+++ b/apps/taro/src/subpackages/recharge/rechargeResult/rechargeResult.vue
@@ -1,5 +1,5 @@
 <template>
-  <PageLayout title="鍏呭�兼垚鍔�" class="rechargeResult-page-wrapper" hasBorder :need-auth="false">
+  <PageLayout title="鍏呭�兼垚鍔�" class="rechargeResult-page-wrapper" hasBorder>
     <ContentScrollView>
       <RechargeResultView style="margin-top: 40px" @go-back-home="goHome()" />
     </ContentScrollView>
diff --git a/apps/taro/src/subpackages/recharge/selectPayType/selectPayType.vue b/apps/taro/src/subpackages/recharge/selectPayType/selectPayType.vue
index 201fa1d..dc2ab46 100644
--- a/apps/taro/src/subpackages/recharge/selectPayType/selectPayType.vue
+++ b/apps/taro/src/subpackages/recharge/selectPayType/selectPayType.vue
@@ -1,5 +1,5 @@
 <template>
-  <PageLayout title="璇濊垂鍏呭��" class="selectPayType-page-wrapper" hasBorder :need-auth="false">
+  <PageLayout title="璇濊垂鍏呭��" class="selectPayType-page-wrapper" hasBorder>
     <InnerPage />
   </PageLayout>
 </template>
diff --git a/apps/taro/src/utils/blLifeRecharge.ts b/apps/taro/src/utils/blLifeRecharge.ts
index 3c0b7f8..a030b56 100644
--- a/apps/taro/src/utils/blLifeRecharge.ts
+++ b/apps/taro/src/utils/blLifeRecharge.ts
@@ -1,6 +1,8 @@
 import { BlLifeRecharge } from '@life-payment/components';
 import { request } from './request';
+import { getStorageVirtualUserId } from './storage';
 
 export const blLifeRecharge = new BlLifeRecharge({
   request,
+  userId: getStorageVirtualUserId() ?? '',
 });
diff --git a/apps/taro/src/utils/storage/auth.ts b/apps/taro/src/utils/storage/auth.ts
index db841e3..85c6baf 100644
--- a/apps/taro/src/utils/storage/auth.ts
+++ b/apps/taro/src/utils/storage/auth.ts
@@ -6,6 +6,7 @@
   USER_DETAIL_KEY: 'USER_DETAIL_KEY',
   MatchMakingIdentity_KEY: 'MatchMakingIdentity_KEY',
   LocationCity_KEY: 'LocationCity_KEY',
+  VirtualUserId_KEY: 'VirtualUserId_KEY',
 };
 
 export function getToken() {
@@ -40,6 +41,17 @@
   return storageLocal.removeItem(StorageKey.USER_DETAIL_KEY);
 }
 
+export function getStorageVirtualUserId() {
+  return storageLocal.getItem<string>(StorageKey.VirtualUserId_KEY);
+}
+
+export function setStorageVirtualUserId(virtualUserId: string) {
+  return storageLocal.setItem(StorageKey.VirtualUserId_KEY, virtualUserId);
+}
+
+export function removeStorageVirtualUserId() {
+  return storageLocal.removeItem(StorageKey.VirtualUserId_KEY);
+}
 
 type StorageLocation = {
   city: string;
diff --git a/packages/components/src/utils/lifeRecharge.ts b/packages/components/src/utils/lifeRecharge.ts
index 68a5e06..36714ce 100644
--- a/packages/components/src/utils/lifeRecharge.ts
+++ b/packages/components/src/utils/lifeRecharge.ts
@@ -1,20 +1,33 @@
-import { BlLifeRechargeServices, PhoneMesssageCodeLoginInput } from './lifeRechargeServices';
+import {
+  BlLifeRechargeServices,
+  PhoneMesssageCodeLoginInput,
+  RequestConfig,
+} from './lifeRechargeServices';
 import { IRequest, BlLifeRechargeOptions } from './types';
 
 export class BlLifeRecharge<T extends IRequest = IRequest> {
   services: BlLifeRechargeServices<T>;
-  isLogin = false;
+  userId = '';
 
   constructor(options: BlLifeRechargeOptions<T>) {
     this.services = new BlLifeRechargeServices(options);
+    this.userId = options.userId || '';
   }
 
-  login(body: PhoneMesssageCodeLoginInput) {
-    let res = this.services.lifePayPhoneMesssageCodeLogin(body);
-    this.isLogin = true;
+  async login(body: PhoneMesssageCodeLoginInput, options?: RequestConfig) {
+    let res = await this.services.lifePayPhoneMesssageCodeLogin(body, options);
+    this.userId = res;
     return res;
   }
 
+  loginout() {
+    this.userId = '';
+  }
+
+  isLogin() {
+    return !!this.userId;
+  }
+
   getRechargeParValue(amount: number, rate: number) {
     return (amount * rate).toFixed(2);
   }
diff --git a/packages/components/src/utils/types.ts b/packages/components/src/utils/types.ts
index 61f3690..f28bcae 100644
--- a/packages/components/src/utils/types.ts
+++ b/packages/components/src/utils/types.ts
@@ -3,11 +3,13 @@
 export interface IRequestOptions extends AxiosRequestConfig {}
 
 export interface IRequest {
-  <T = any>(url: string, opts: IRequestOptions): Promise<AxiosResponse<T>>;
+  <T = any>(url: string, opts: IRequestOptions): Promise<T>;
 }
 
 export type BlLifeRechargeServicesOptions<T extends IRequest> = {
   request: T;
 };
 
-export type BlLifeRechargeOptions<T extends IRequest> = BlLifeRechargeServicesOptions<T> & {};
+export type BlLifeRechargeOptions<T extends IRequest> = BlLifeRechargeServicesOptions<T> & {
+  userId?: string;
+};

--
Gitblit v1.9.1