From a38e98e29e59a16a536d041c690a4122f10373f6 Mon Sep 17 00:00:00 2001 From: 170-carry Date: Wed, 29 Apr 2026 20:17:20 +0800 Subject: [PATCH] =?UTF-8?q?vip=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/resident-activity/vip-config.vue | 37 +++++++++++++++---- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/apps/src/views/resident-activity/vip-config.vue b/apps/src/views/resident-activity/vip-config.vue index a4d8114..f5c668b 100644 --- a/apps/src/views/resident-activity/vip-config.vue +++ b/apps/src/views/resident-activity/vip-config.vue @@ -152,6 +152,8 @@ const statusMeta = computed(() => { function createResource() { return { + cover: '', + coverUrl: '', name: '', resourceId: '', url: '', @@ -177,7 +179,10 @@ function createLevel(level: number) { function normalizeResource(value: Record | null | undefined) { const resourceId = String(value?.resourceId ?? '').trim(); const url = String(value?.url || value?.sourceUrl || value?.resourceUrl || '').trim(); + const cover = String(value?.cover || value?.coverUrl || value?.resourceCover || '').trim(); return { + cover, + coverUrl: cover, name: String(value?.name || ''), resourceId: resourceId === '0' ? '' : resourceId, resourceUrl: url, @@ -188,15 +193,20 @@ function normalizeResource(value: Record | null | undefined) { function normalizePropsSourceResource(value: Record | null | undefined) { const resourceId = String(value?.id ?? value?.resourceId ?? '').trim(); + const cover = String( + value?.cover || value?.coverUrl || value?.resourceCover || value?.selectUrl || '', + ).trim(); const url = String( value?.sourceUrl || value?.resourceUrl || value?.url || value?.animationUrl || - value?.cover || + cover || '', ).trim(); return { + cover, + coverUrl: cover, name: String(value?.name || ''), resourceId, resourceUrl: url, @@ -250,7 +260,20 @@ function resourceMeta(record: Record, key: string) { if (!resource.resourceId) { return ''; } - return [resource.name, resource.url].filter(Boolean).join(' / '); + return [ + resource.name, + resource.cover ? `封面: ${resource.cover}` : '', + resource.url ? `资源: ${resource.url}` : '', + ] + .filter(Boolean) + .join(' / '); +} + +function buildResourceSavePayload(value: Record | null | undefined) { + const resource = normalizeResource(value); + return { + resourceId: resource.resourceId || '0', + }; } async function loadResourceOptions(field: ResourceField) { @@ -333,14 +356,14 @@ function buildSavePayload() { return { sysOrigin: form.sysOrigin, levels: (form.levels || []).map((item: Record) => ({ - avatarFrame: normalizeResource(item.avatarFrame), - badge: normalizeResource(item.badge), - chatBubble: normalizeResource(item.chatBubble), + avatarFrame: buildResourceSavePayload(item.avatarFrame), + badge: buildResourceSavePayload(item.badge), + chatBubble: buildResourceSavePayload(item.chatBubble), displayName: String(item.displayName || '').trim(), durationDays: 30, enabled: Boolean(item.enabled), - entryEffect: normalizeResource(item.entryEffect), - floatPicture: normalizeResource(item.floatPicture), + entryEffect: buildResourceSavePayload(item.entryEffect), + floatPicture: buildResourceSavePayload(item.floatPicture), level: Number(item.level || 0), levelCode: `VIP${Number(item.level || 0)}`, priceGold: Number(item.priceGold || 0),