import { useQuery } from '@tanstack/vue-query';
|
import {
|
useLifeRechargeContext,
|
CreateEditPayChannelsInput,
|
GetShowingLifePayAnnouncementInput,
|
} from '@life-payment/core-vue';
|
import { MaybeRef } from 'vue';
|
import { Message } from '@/utils';
|
import Taro from '@tarojs/taro';
|
|
export function useOnlineService() {
|
const { blLifeRecharge } = useLifeRechargeContext();
|
|
const { data } = useQuery({
|
queryKey: ['blLifeRecharge/getOnlineService'],
|
queryFn: async () => {
|
return await blLifeRecharge.services.getOnlineService({
|
showLoading: false,
|
});
|
},
|
placeholderData: () => '',
|
});
|
|
return {
|
onlineServiceLink: data,
|
};
|
}
|
|
type UseLifePayChannlesAllListOptions = {
|
params?: MaybeRef<API.QueryLifePayChannlesInput>;
|
onSuccess?: (data: API.CreateEditPayChannelsInput[]) => any;
|
};
|
|
export function useLifePayChannlesAllList(options: UseLifePayChannlesAllListOptions = {}) {
|
const { onSuccess, params = {} } = options;
|
|
const { blLifeRecharge } = useLifeRechargeContext();
|
|
const {
|
data: allChannlesList,
|
isLoading,
|
refetch,
|
} = useQuery({
|
queryKey: ['blLifeRecharge/getLifePayChannlesAllList', params],
|
queryFn: async () => {
|
return await blLifeRecharge.services.getLifePayChannlesAllList(unref(params), {
|
showLoading: false,
|
});
|
},
|
placeholderData: () => [] as CreateEditPayChannelsInput[],
|
onSuccess: (data) => {
|
onSuccess?.(data);
|
},
|
});
|
|
function getChannlesNameByNum(channlesNum: string) {
|
return (
|
allChannlesList.value.find((item) => item.channlesNum === channlesNum)?.channlesName ?? ''
|
);
|
}
|
|
return {
|
allChannlesList,
|
isLoading,
|
refetch,
|
getChannlesNameByNum,
|
};
|
}
|
|
type UseShowingLifePayAnnouncementOptions = {
|
params?: MaybeRef<API.GetShowingLifePayAnnouncementInput>;
|
onSuccess?: (data: API.CreateEditLifePayAnnouncementOutput) => any;
|
staleTime?: MaybeRef<number>;
|
};
|
|
export function useShowingLifePayAnnouncement(options: UseShowingLifePayAnnouncementOptions = {}) {
|
const { onSuccess, params = {}, staleTime } = options;
|
|
const { blLifeRecharge } = useLifeRechargeContext();
|
|
const {
|
data: announcement,
|
isLoading,
|
refetch,
|
} = useQuery({
|
queryKey: ['blLifeRecharge/getShowingLifePayAnnouncement', params],
|
queryFn: async () => {
|
return await blLifeRecharge.services.getShowingLifePayAnnouncement(unref(params), {
|
showLoading: false,
|
skipErrorHandler: true,
|
});
|
},
|
onSuccess: (data) => {
|
onSuccess?.(data);
|
},
|
staleTime: staleTime,
|
});
|
|
return {
|
announcement,
|
isLoading,
|
refetch,
|
};
|
}
|
|
const dialogShowingLifePayAnnouncementCache = {};
|
|
export function useDialogShowingLifePayAnnouncement() {
|
const { blLifeRecharge } = useLifeRechargeContext();
|
const router = Taro.useRouter();
|
|
useShowingLifePayAnnouncement({
|
params: {
|
announcementType: blLifeRecharge.constants.AnnouncementTypeEnum.Dialog,
|
},
|
onSuccess(data) {
|
if (!dialogShowingLifePayAnnouncementCache[router.path]) {
|
dialogShowingLifePayAnnouncementCache[router.path] = true;
|
Message.confirm({
|
title: '公告',
|
message: data.announcementContent ?? '',
|
showCancelBtn: false,
|
});
|
}
|
},
|
staleTime: Infinity,
|
});
|
}
|