From c7ab8c4fca1c690f3e5536dff520eaa9c4010fd1 Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期一, 24 三月 2025 19:52:35 +0800 Subject: [PATCH] fix: 三期bug --- packages/components/src/hooks/index.ts | 102 ++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 88 insertions(+), 14 deletions(-) diff --git a/packages/components/src/hooks/index.ts b/packages/components/src/hooks/index.ts index 6862870..9946e0e 100644 --- a/packages/components/src/hooks/index.ts +++ b/packages/components/src/hooks/index.ts @@ -11,11 +11,13 @@ UserAccountListOutput, AddUpdateUserAccountInput, GasParValueResponse, + ChannelRateOutput, } from '@life-payment/core-vue'; import { useQuery, useQueryClient } from '@tanstack/vue-query'; import { computed, MaybeRef, reactive, unref } from 'vue'; import { useInfiniteLoading } from './infiniteLoading'; import { OrderInputType } from '../constants'; +import { convertOrderFrontStatus } from '../utils'; export function useGetRate() { const { blLifeRecharge } = useLifeRechargeContext(); @@ -28,26 +30,54 @@ placeholderData: () => [] as LifePayRateListOutput[], }); - const lifePayPhoneRate = computed( - () => + const hasChannel = computed(() => !!blLifeRecharge.accountModel.channlesNum); + + const { data: channelRate } = useQuery({ + queryKey: ['blLifeRecharge/getChannelRate', blLifeRecharge.accountModel.channlesNum], + queryFn: async () => { + return await blLifeRecharge.services.getChannelRate( + { + checkChannelId: blLifeRecharge.accountModel.channlesNum, + }, + { showLoading: false } + ); + }, + placeholderData: () => ({} as ChannelRateOutput), + enabled: hasChannel, + }); + + const lifePayPhoneRate = computed(() => { + if (hasChannel.value && channelRate.value.channlesRate) { + return channelRate.value.channlesRate; + } + return ( lifePayRateList.value.find( (x) => x.rateType === blLifeRecharge.constants.LifePayRateTypeEnum.榛樿璇濊垂鎶樻墸 )?.rate ?? 100 - ); + ); + }); - const lifePayElectricRate = computed( - () => + const lifePayElectricRate = computed(() => { + if (hasChannel.value && channelRate.value.channlesRate) { + return channelRate.value.channlesRate; + } + return ( lifePayRateList.value.find( (x) => x.rateType === blLifeRecharge.constants.LifePayRateTypeEnum.榛樿鐢佃垂鎶樻墸 )?.rate ?? 100 - ); + ); + }); - const lifePayGasRate = computed( - () => + const lifePayGasRate = computed(() => { + if (hasChannel.value && channelRate.value.channlesRate) { + return channelRate.value.channlesRate; + } + return ( lifePayRateList.value.find( (x) => x.rateType === blLifeRecharge.constants.LifePayRateTypeEnum.榛樿鐕冩皵鎶樻墸 )?.rate ?? 100 - ); + ); + }); return { lifePayRateList, @@ -63,7 +93,7 @@ const { data: phoneParValueList, isLoading } = useQuery({ queryKey: ['blLifeRecharge/getPhoneParValue'], queryFn: async () => { - return await blLifeRecharge.services.getPhoneParValue({ showLoading: false }); + return await blLifeRecharge.services.getPhoneParValue({}, { showLoading: false }); }, select(data) { return data?.phoneParValue ?? []; @@ -82,7 +112,7 @@ const { data: electricParValueList, isLoading } = useQuery({ queryKey: ['blLifeRecharge/getElectricSupportArea'], queryFn: async () => { - return await blLifeRecharge.services.getElectricSupportArea({ showLoading: false }); + return await blLifeRecharge.services.getElectricSupportArea({}, { showLoading: false }); }, select(data) { return data.electricAreaList ?? []; @@ -109,7 +139,7 @@ // }); const { infiniteLoadingProps } = useInfiniteLoading( - ({ pageParam }) => { + async ({ pageParam }) => { let params: QueryLifePayOrderListInput = { pageModel: { rows: 20, @@ -120,9 +150,18 @@ userId: blLifeRecharge.accountModel.userId, }; - return blLifeRecharge.services.getUserLifePayOrderPage(params, { + let res = await blLifeRecharge.services.getUserLifePayOrderPage(params, { showLoading: false, }); + res.data = res.data.map((x) => ({ + ...x, + frontStatus: convertOrderFrontStatus( + x.payStatus, + x.lifePayOrderStatus, + x.lifePayRefundStatus + ), + })); + return res; }, { queryKey: [ @@ -132,6 +171,12 @@ userId: blLifeRecharge.accountModel.userId, }, ], + + select(data) { + console.log('data: ', data); + // data.pages.map((item) => item.data.map((x) => convertOrderFrontStatus(x))) + return data; + }, } ); @@ -251,7 +296,7 @@ const { data: gasParValueList, isLoading } = useQuery({ queryKey: ['blLifeRecharge/getGasParValue'], queryFn: async () => { - return await blLifeRecharge.services.getGasParValue({ showLoading: false }); + return await blLifeRecharge.services.getGasParValue({}, { showLoading: false }); }, select(data) { return data?.gasParValue ?? []; @@ -263,3 +308,32 @@ gasParValueList, }; } + +type UseIntroInfoOptions = { + lifePayOrderType: MaybeRef<LifeRechargeConstants.LifePayOrderTypeEnum>; + onSuccess?: (data: API.LifePayIntroInfoOutput[]) => any; +}; + +export function useIntroInfo({ lifePayOrderType, onSuccess }: UseIntroInfoOptions) { + const { blLifeRecharge } = useLifeRechargeContext(); + + const { data: introInfo } = useQuery({ + queryKey: ['blLifeRecharge/getIntroInfo', lifePayOrderType], + queryFn: async () => { + return await blLifeRecharge.services.getIntroInfo( + { + type: unref(lifePayOrderType), + }, + { + showLoading: false, + } + ); + }, + placeholderData: () => [] as API.LifePayIntroInfoOutput[], + onSuccess: (data) => { + onSuccess?.(data); + }, + }); + + return { introInfo }; +} -- Gitblit v1.9.1