feat(mini-user): configurable WeChat mini share scenes in system settings

Add HQ group for default and per-page share title/desc/image; expose via client-config and wire all mini-user share entry points.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-06 15:45:57 +08:00
parent a2abbb6169
commit 83b1b0e5f6
12 changed files with 526 additions and 106 deletions
+12 -11
View File
@@ -22,9 +22,9 @@ import { fetchOrderTrack } from '../../lib/order-logistics';
import { maskPhone } from '../../lib/phone';
import { confirmOrderReceive, type WechatConfirmPayload } from '../../lib/wechat-order-confirm';
import {
DEFAULT_SHARE_DESC,
DEFAULT_SHARE_TITLE,
buildSceneSharePayload,
toWeappShareMessage,
toWeappShareTimeline,
} from '../../lib/wechat-share';
import { usePageView } from '../../lib/usePageView';
@@ -174,19 +174,20 @@ export default function OrderDetailPage() {
: '';
const sharePayload = useMemo(
() => ({
title: productName !== '杜康商品' ? `我买了${productName} · 杜康好客` : DEFAULT_SHARE_TITLE,
desc: DEFAULT_SHARE_DESC,
path: orderId ? `/pages/order-detail/index?id=${orderId}` : '/pages/home/index',
}),
() =>
buildSceneSharePayload('orderDetail', {
path: orderId ? `/pages/order-detail/index?id=${orderId}` : '/pages/home/index',
titleVars: {
productName: productName && productName !== '杜康商品' ? productName : '',
},
}),
[productName, orderId],
);
useShareAppMessage(() => toWeappShareMessage(sharePayload));
useShareTimeline(() => ({
title: sharePayload.title || DEFAULT_SHARE_TITLE,
query: orderId ? `id=${orderId}` : '',
}));
useShareTimeline(() =>
toWeappShareTimeline(sharePayload, orderId ? `id=${orderId}` : ''),
);
function goPay() {
if (!order) return;