From 5260a674ae5edefbd8eef6649fb2fae98a8b3b9a Mon Sep 17 00:00:00 2001 From: zhx Date: Sat, 16 May 2026 03:17:54 +0800 Subject: [PATCH] feat: support badge gifting in props send --- apps/src/views/props/send-tool.vue | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/apps/src/views/props/send-tool.vue b/apps/src/views/props/send-tool.vue index 193e545..759b321 100644 --- a/apps/src/views/props/send-tool.vue +++ b/apps/src/views/props/send-tool.vue @@ -86,7 +86,7 @@ const propsResourceOptions = computed(() => ); const badgeResourceOptions = computed(() => badgeSourceOptions.value.map((item) => ({ - label: `${item.badgeConfigId} / ${item.name}`, + label: `${item.badgeConfigId} / ${item.badgeName || item.name || '-'}`, value: item.badgeConfigId as any, })), ); @@ -96,6 +96,19 @@ const ticketResourceOptions = computed(() => value: item.id as any, })), ); +const badgePreviewItem = computed(() => { + const item = badgeSelectedResource.value; + if (!item) { + return null; + } + return { + ...item, + cover: item.selectUrl || item.cover, + id: item.badgeConfigId || item.id, + name: item.badgeName || item.name, + type: 'BADGE', + }; +}); const propsForm = reactive({ content: '', @@ -132,7 +145,7 @@ function hasPermission(code: string) { } const canSendProps = computed(() => hasPermission('send:props')); -const canSendBadge = computed(() => hasPermission('send:props:badge')); +const canSendBadge = computed(() => canSendProps.value || hasPermission('send:props:badge')); const canSendTicket = computed(() => hasPermission('send:props:coupon')); function normalizeAccounts(value: string) { @@ -480,12 +493,12 @@ async function handleSendTicket() { show-search @change="handleBadgeResourceChange" /> -
- +
+
-
{{ badgeSelectedResource.name }}
+
{{ badgePreviewItem.name }}
- ID: {{ badgeSelectedResource.badgeConfigId }} + ID: {{ badgePreviewItem.id }}