fix: simplify badge resource form
This commit is contained in:
parent
5260a674ae
commit
1b835ba52d
@ -25,7 +25,6 @@ import {
|
||||
|
||||
import {
|
||||
BADGE_DISPLAY_TYPE_OPTIONS,
|
||||
BADGE_TYPE_OPTIONS,
|
||||
NOBLE_VIP_OPTIONS,
|
||||
PROPS_RESOURCE_CONFIG_TYPES,
|
||||
} from '../shared';
|
||||
@ -56,14 +55,10 @@ const form = reactive<Record<string, any>>({
|
||||
adminFree: false,
|
||||
amount: '',
|
||||
badgeDisplayType: 'SHORT',
|
||||
badgeKey: '',
|
||||
badgeLevel: '',
|
||||
badgeType: 'ACTIVITY',
|
||||
code: '',
|
||||
cover: '',
|
||||
expand: '',
|
||||
id: '',
|
||||
milestone: '',
|
||||
name: '',
|
||||
notSelectUrl: '',
|
||||
sourceUrl: '',
|
||||
@ -103,12 +98,6 @@ const nobleVipNameOptions = NOBLE_VIP_OPTIONS.map((item) => ({
|
||||
label: item.name,
|
||||
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) => ({
|
||||
label: item.name,
|
||||
value: item.value as any,
|
||||
@ -127,31 +116,17 @@ function parseBadgeExpand(value: unknown) {
|
||||
|
||||
function applyBadgeExpand(value: unknown) {
|
||||
const expand = parseBadgeExpand(value);
|
||||
form.badgeKey = expand.badgeKey ?? '';
|
||||
form.badgeLevel = expand.badgeLevel ?? '';
|
||||
form.badgeType = expand.badgeType || 'ACTIVITY';
|
||||
form.badgeDisplayType = normalizeBadgeDisplayType(
|
||||
expand.badgeDisplayType || expand.displayType,
|
||||
form.badgeType,
|
||||
expand.badgeType,
|
||||
);
|
||||
form.milestone = expand.milestone ?? '';
|
||||
form.notSelectUrl = expand.notSelectUrl ?? '';
|
||||
}
|
||||
|
||||
function buildBadgeExpand() {
|
||||
const expand: Record<string, any> = {
|
||||
badgeDisplayType: normalizeBadgeDisplayType(form.badgeDisplayType, form.badgeType),
|
||||
badgeType: form.badgeType || 'ACTIVITY',
|
||||
badgeDisplayType: normalizeBadgeDisplayType(form.badgeDisplayType),
|
||||
};
|
||||
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()) {
|
||||
expand.notSelectUrl = String(form.notSelectUrl).trim();
|
||||
}
|
||||
@ -170,14 +145,10 @@ function resetForm() {
|
||||
form.adminFree = false;
|
||||
form.amount = '';
|
||||
form.badgeDisplayType = 'SHORT';
|
||||
form.badgeKey = '';
|
||||
form.badgeLevel = '';
|
||||
form.badgeType = 'ACTIVITY';
|
||||
form.code = '';
|
||||
form.cover = '';
|
||||
form.expand = '';
|
||||
form.id = '';
|
||||
form.milestone = '';
|
||||
form.name = '';
|
||||
form.notSelectUrl = '';
|
||||
form.sourceUrl = '';
|
||||
@ -229,9 +200,6 @@ watch(
|
||||
form.sourceUrl = '';
|
||||
form.expand = '';
|
||||
}
|
||||
if (value === 'BADGE' && !form.badgeType) {
|
||||
form.badgeType = 'ACTIVITY';
|
||||
}
|
||||
if (value === 'BADGE' && !form.badgeDisplayType) {
|
||||
form.badgeDisplayType = 'SHORT';
|
||||
}
|
||||
@ -307,30 +275,10 @@ function validateForm() {
|
||||
message.warning('请选择类型');
|
||||
return false;
|
||||
}
|
||||
if (form.type === 'BADGE' && !form.badgeType) {
|
||||
message.warning('请选择徽章类型');
|
||||
return false;
|
||||
}
|
||||
if (form.type === 'BADGE' && !form.badgeDisplayType) {
|
||||
message.warning('请选择徽章展示形态');
|
||||
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()) {
|
||||
message.warning('请上传封面');
|
||||
return false;
|
||||
@ -418,22 +366,6 @@ async function handleSubmit() {
|
||||
option-label-prop="label"
|
||||
/>
|
||||
</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>
|
||||
<FormItem label="封面">
|
||||
<input
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user