vip系统
This commit is contained in:
parent
b830642c14
commit
a38e98e29e
@ -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<string, any> | 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<string, any> | null | undefined) {
|
||||
|
||||
function normalizePropsSourceResource(value: Record<string, any> | 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<string, any>, 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<string, any> | 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<string, any>) => ({
|
||||
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),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user