fix: simplify badge resource form
This commit is contained in:
parent
5260a674ae
commit
1b835ba52d
@ -25,7 +25,6 @@ import {
|
|||||||
|
|
||||||
import {
|
import {
|
||||||
BADGE_DISPLAY_TYPE_OPTIONS,
|
BADGE_DISPLAY_TYPE_OPTIONS,
|
||||||
BADGE_TYPE_OPTIONS,
|
|
||||||
NOBLE_VIP_OPTIONS,
|
NOBLE_VIP_OPTIONS,
|
||||||
PROPS_RESOURCE_CONFIG_TYPES,
|
PROPS_RESOURCE_CONFIG_TYPES,
|
||||||
} from '../shared';
|
} from '../shared';
|
||||||
@ -56,14 +55,10 @@ const form = reactive<Record<string, any>>({
|
|||||||
adminFree: false,
|
adminFree: false,
|
||||||
amount: '',
|
amount: '',
|
||||||
badgeDisplayType: 'SHORT',
|
badgeDisplayType: 'SHORT',
|
||||||
badgeKey: '',
|
|
||||||
badgeLevel: '',
|
|
||||||
badgeType: 'ACTIVITY',
|
|
||||||
code: '',
|
code: '',
|
||||||
cover: '',
|
cover: '',
|
||||||
expand: '',
|
expand: '',
|
||||||
id: '',
|
id: '',
|
||||||
milestone: '',
|
|
||||||
name: '',
|
name: '',
|
||||||
notSelectUrl: '',
|
notSelectUrl: '',
|
||||||
sourceUrl: '',
|
sourceUrl: '',
|
||||||
@ -103,12 +98,6 @@ const nobleVipNameOptions = NOBLE_VIP_OPTIONS.map((item) => ({
|
|||||||
label: item.name,
|
label: item.name,
|
||||||
value: item.value as any,
|
value: item.value as any,
|
||||||
}));
|
}));
|
||||||
const badgeTypeOptions = BADGE_TYPE_OPTIONS.filter((item) =>
|
|
||||||
['VIP', 'ACHIEVEMENT', 'ACTIVITY'].includes(String(item.value)),
|
|
||||||
).map((item) => ({
|
|
||||||
label: item.name,
|
|
||||||
value: item.value as any,
|
|
||||||
}));
|
|
||||||
const badgeDisplayTypeOptions = BADGE_DISPLAY_TYPE_OPTIONS.map((item) => ({
|
const badgeDisplayTypeOptions = BADGE_DISPLAY_TYPE_OPTIONS.map((item) => ({
|
||||||
label: item.name,
|
label: item.name,
|
||||||
value: item.value as any,
|
value: item.value as any,
|
||||||
@ -127,31 +116,17 @@ function parseBadgeExpand(value: unknown) {
|
|||||||
|
|
||||||
function applyBadgeExpand(value: unknown) {
|
function applyBadgeExpand(value: unknown) {
|
||||||
const expand = parseBadgeExpand(value);
|
const expand = parseBadgeExpand(value);
|
||||||
form.badgeKey = expand.badgeKey ?? '';
|
|
||||||
form.badgeLevel = expand.badgeLevel ?? '';
|
|
||||||
form.badgeType = expand.badgeType || 'ACTIVITY';
|
|
||||||
form.badgeDisplayType = normalizeBadgeDisplayType(
|
form.badgeDisplayType = normalizeBadgeDisplayType(
|
||||||
expand.badgeDisplayType || expand.displayType,
|
expand.badgeDisplayType || expand.displayType,
|
||||||
form.badgeType,
|
expand.badgeType,
|
||||||
);
|
);
|
||||||
form.milestone = expand.milestone ?? '';
|
|
||||||
form.notSelectUrl = expand.notSelectUrl ?? '';
|
form.notSelectUrl = expand.notSelectUrl ?? '';
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildBadgeExpand() {
|
function buildBadgeExpand() {
|
||||||
const expand: Record<string, any> = {
|
const expand: Record<string, any> = {
|
||||||
badgeDisplayType: normalizeBadgeDisplayType(form.badgeDisplayType, form.badgeType),
|
badgeDisplayType: normalizeBadgeDisplayType(form.badgeDisplayType),
|
||||||
badgeType: form.badgeType || 'ACTIVITY',
|
|
||||||
};
|
};
|
||||||
if (String(form.badgeKey || '').trim()) {
|
|
||||||
expand.badgeKey = String(form.badgeKey).trim();
|
|
||||||
}
|
|
||||||
if (String(form.badgeLevel || '').trim()) {
|
|
||||||
expand.badgeLevel = Number(form.badgeLevel);
|
|
||||||
}
|
|
||||||
if (String(form.milestone || '').trim()) {
|
|
||||||
expand.milestone = Number(form.milestone);
|
|
||||||
}
|
|
||||||
if (String(form.notSelectUrl || '').trim()) {
|
if (String(form.notSelectUrl || '').trim()) {
|
||||||
expand.notSelectUrl = String(form.notSelectUrl).trim();
|
expand.notSelectUrl = String(form.notSelectUrl).trim();
|
||||||
}
|
}
|
||||||
@ -170,14 +145,10 @@ function resetForm() {
|
|||||||
form.adminFree = false;
|
form.adminFree = false;
|
||||||
form.amount = '';
|
form.amount = '';
|
||||||
form.badgeDisplayType = 'SHORT';
|
form.badgeDisplayType = 'SHORT';
|
||||||
form.badgeKey = '';
|
|
||||||
form.badgeLevel = '';
|
|
||||||
form.badgeType = 'ACTIVITY';
|
|
||||||
form.code = '';
|
form.code = '';
|
||||||
form.cover = '';
|
form.cover = '';
|
||||||
form.expand = '';
|
form.expand = '';
|
||||||
form.id = '';
|
form.id = '';
|
||||||
form.milestone = '';
|
|
||||||
form.name = '';
|
form.name = '';
|
||||||
form.notSelectUrl = '';
|
form.notSelectUrl = '';
|
||||||
form.sourceUrl = '';
|
form.sourceUrl = '';
|
||||||
@ -229,9 +200,6 @@ watch(
|
|||||||
form.sourceUrl = '';
|
form.sourceUrl = '';
|
||||||
form.expand = '';
|
form.expand = '';
|
||||||
}
|
}
|
||||||
if (value === 'BADGE' && !form.badgeType) {
|
|
||||||
form.badgeType = 'ACTIVITY';
|
|
||||||
}
|
|
||||||
if (value === 'BADGE' && !form.badgeDisplayType) {
|
if (value === 'BADGE' && !form.badgeDisplayType) {
|
||||||
form.badgeDisplayType = 'SHORT';
|
form.badgeDisplayType = 'SHORT';
|
||||||
}
|
}
|
||||||
@ -307,30 +275,10 @@ function validateForm() {
|
|||||||
message.warning('请选择类型');
|
message.warning('请选择类型');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (form.type === 'BADGE' && !form.badgeType) {
|
|
||||||
message.warning('请选择徽章类型');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (form.type === 'BADGE' && !form.badgeDisplayType) {
|
if (form.type === 'BADGE' && !form.badgeDisplayType) {
|
||||||
message.warning('请选择徽章展示形态');
|
message.warning('请选择徽章展示形态');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (
|
|
||||||
form.type === 'BADGE' &&
|
|
||||||
String(form.badgeLevel || '').trim() &&
|
|
||||||
Number.isNaN(Number(form.badgeLevel))
|
|
||||||
) {
|
|
||||||
message.warning('请输入正确的徽章等级');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (
|
|
||||||
form.type === 'BADGE' &&
|
|
||||||
String(form.milestone || '').trim() &&
|
|
||||||
Number.isNaN(Number(form.milestone))
|
|
||||||
) {
|
|
||||||
message.warning('请输入正确的成就里程碑');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!String(form.cover || '').trim()) {
|
if (!String(form.cover || '').trim()) {
|
||||||
message.warning('请上传封面');
|
message.warning('请上传封面');
|
||||||
return false;
|
return false;
|
||||||
@ -418,22 +366,6 @@ async function handleSubmit() {
|
|||||||
option-label-prop="label"
|
option-label-prop="label"
|
||||||
/>
|
/>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="徽章类型">
|
|
||||||
<Select
|
|
||||||
v-model:value="form.badgeType"
|
|
||||||
:options="badgeTypeOptions"
|
|
||||||
option-label-prop="label"
|
|
||||||
/>
|
|
||||||
</FormItem>
|
|
||||||
<FormItem label="徽章等级">
|
|
||||||
<Input v-model:value="form.badgeLevel" placeholder="无等级可填 0" />
|
|
||||||
</FormItem>
|
|
||||||
<FormItem label="徽章 Key">
|
|
||||||
<Input v-model:value="form.badgeKey" placeholder="不填则使用编码" />
|
|
||||||
</FormItem>
|
|
||||||
<FormItem label="成就里程碑">
|
|
||||||
<Input v-model:value="form.milestone" placeholder="活动徽章可不填" />
|
|
||||||
</FormItem>
|
|
||||||
</template>
|
</template>
|
||||||
<FormItem label="封面">
|
<FormItem label="封面">
|
||||||
<input
|
<input
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user