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