| | |
| | | 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(); |
| | |
| | | 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 |
| | | ); |
| | | )?.rate ?? 0 |
| | | ); |
| | | }); |
| | | |
| | | 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 |
| | | ); |
| | | )?.rate ?? 0 |
| | | ); |
| | | }); |
| | | |
| | | 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 |
| | | ); |
| | | )?.rate ?? 0 |
| | | ); |
| | | }); |
| | | |
| | | return { |
| | | lifePayRateList, |
| | |
| | | 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 ?? []; |
| | |
| | | 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 ?? []; |
| | |
| | | // }); |
| | | |
| | | const { infiniteLoadingProps } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | async ({ pageParam }) => { |
| | | let params: QueryLifePayOrderListInput = { |
| | | pageModel: { |
| | | rows: 20, |
| | |
| | | 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: [ |
| | |
| | | userId: blLifeRecharge.accountModel.userId, |
| | | }, |
| | | ], |
| | | |
| | | select(data) { |
| | | console.log('data: ', data); |
| | | // data.pages.map((item) => item.data.map((x) => convertOrderFrontStatus(x))) |
| | | return data; |
| | | }, |
| | | } |
| | | ); |
| | | |
| | |
| | | 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 ?? []; |
| | |
| | | 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 }; |
| | | } |