From 6ac59f6fa91e51272b8cd4797458995e168ec0f9 Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期四, 11 九月 2025 09:13:08 +0800 Subject: [PATCH] feat: 公告 --- apps/taro/src/hooks/lifepay.ts | 68 +++++++++++++++++++++++++++++++++ 1 files changed, 67 insertions(+), 1 deletions(-) diff --git a/apps/taro/src/hooks/lifepay.ts b/apps/taro/src/hooks/lifepay.ts index 28090cd..eb019fa 100644 --- a/apps/taro/src/hooks/lifepay.ts +++ b/apps/taro/src/hooks/lifepay.ts @@ -1,6 +1,12 @@ import { useQuery } from '@tanstack/vue-query'; -import { useLifeRechargeContext, CreateEditPayChannelsInput } from '@life-payment/core-vue'; +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(); @@ -60,3 +66,63 @@ 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, + }); +} -- Gitblit v1.9.1