From c8d266199254d5f566270baf221a32cab549f0ae Mon Sep 17 00:00:00 2001 From: 15093570141 <141405260+17521612761@users.noreply.github.com> Date: Tue, 22 Oct 2024 21:14:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=88=86=E4=BA=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CoreShop/core/hooks/index.ts | 1 + .../CoreShop/core/hooks/use-share.ts | 61 +++++++++++++++ .../CoreShop/pages/goods/detail.vue | 76 ++++++++++++++----- 3 files changed, 117 insertions(+), 21 deletions(-) create mode 100644 CoreCms.Net.Uni-App/CoreShop/core/hooks/use-share.ts diff --git a/CoreCms.Net.Uni-App/CoreShop/core/hooks/index.ts b/CoreCms.Net.Uni-App/CoreShop/core/hooks/index.ts index 015a01b7..932f35ab 100644 --- a/CoreCms.Net.Uni-App/CoreShop/core/hooks/index.ts +++ b/CoreCms.Net.Uni-App/CoreShop/core/hooks/index.ts @@ -1,3 +1,4 @@ /** 系统配置 */ export * from './systemInfo'; export * from './use-loading'; +export * from './use-share'; diff --git a/CoreCms.Net.Uni-App/CoreShop/core/hooks/use-share.ts b/CoreCms.Net.Uni-App/CoreShop/core/hooks/use-share.ts new file mode 100644 index 00000000..b3945b4a --- /dev/null +++ b/CoreCms.Net.Uni-App/CoreShop/core/hooks/use-share.ts @@ -0,0 +1,61 @@ +import { onShareAppMessage, onShareTimeline } from '@dcloudio/uni-app'; +import { queryShare } from '@/core/api'; +import { ShareClientEnum, ShareModelEnum, ShareEnum } from '@/core/enum'; +import { handleShowToast } from '@/core/utils'; +import { UserToken } from '@/core/consts'; + +interface RequestParam { + client ?: ShareClientEnum; + url ?: string; + type ?: ShareModelEnum; + page ?: ShareEnum; + params ?: any; + token ?: string; +} + +export const useShareHook = () => { + + /** 获取分享url */ + const getShareUrl = (requestParam : RequestParam) => { + return new Promise(async (resolve) => { + let data = requestParam; + if (uni.getStorageSync(UserToken)) { + data['token'] = uni.getStorageSync(UserToken) + } + const share = await queryShare(data); + if (share.status) { + resolve(share.data); + } else { + handleShowToast(share.msg); + } + }) + } + + const shareAppMessage = (options : Page.CustomShareContent) => { + onShareAppMessage(() => { + console.log('onShareAppMessage'); + return { + ...options + }; + }); + return { onShareAppMessage }; + }; + + const shareTimeline = (options : Page.CustomShareContent) => { + onShareTimeline(() => { + console.log('shareTimeline'); + return { + ...options + }; + }); + return { onShareTimeline }; + }; + + const share = (customShareContent : Page.CustomShareContent, shareTimelineContent ?: Page.CustomShareContent) => { + const { onShareAppMessage } = shareAppMessage(customShareContent); + const { onShareTimeline } = shareTimeline(shareTimelineContent ? shareTimelineContent : customShareContent); + return { onShareAppMessage, onShareTimeline }; + }; + + return { share, getShareUrl, shareAppMessage, shareTimeline }; +}; \ No newline at end of file diff --git a/CoreCms.Net.Uni-App/CoreShop/pages/goods/detail.vue b/CoreCms.Net.Uni-App/CoreShop/pages/goods/detail.vue index d14e26e2..70cdc3de 100644 --- a/CoreCms.Net.Uni-App/CoreShop/pages/goods/detail.vue +++ b/CoreCms.Net.Uni-App/CoreShop/pages/goods/detail.vue @@ -26,8 +26,8 @@