增加成就排序

This commit is contained in:
zhx 2026-07-02 19:23:47 +08:00
parent da85f07340
commit de910547f1
3 changed files with 16 additions and 1 deletions

View File

@ -20,6 +20,7 @@ const emptyForm = (achievement = {}) => ({
achievementType: achievement.achievementType || "ordinary", achievementType: achievement.achievementType || "ordinary",
description: achievement.description || "", description: achievement.description || "",
primaryBadgeResourceId: optionalId(achievement.primaryBadgeResourceId), primaryBadgeResourceId: optionalId(achievement.primaryBadgeResourceId),
sortOrder: String(achievement.sortOrder || 0),
title: achievement.title || "", title: achievement.title || "",
}); });
@ -196,7 +197,7 @@ function buildAchievementPayload(form) {
honor_visibility: true, honor_visibility: true,
primary_badge_resource_id: Number(form.primaryBadgeResourceId || 0), primary_badge_resource_id: Number(form.primaryBadgeResourceId || 0),
reward_resource_group_id: 0, reward_resource_group_id: 0,
sort_order: 0, sort_order: Number(form.sortOrder || 0),
status: "active", status: "active",
title: String(form.title || "").trim(), title: String(form.title || "").trim(),
}; };

View File

@ -46,6 +46,12 @@ const baseColumns = [
<span className={styles.typeBadge}>{achievementTypeLabel(achievement.achievementType)}</span> <span className={styles.typeBadge}>{achievementTypeLabel(achievement.achievementType)}</span>
), ),
}, },
{
key: "sortOrder",
label: "排序",
width: "96px",
render: (achievement) => <span className={styles.meta}>{achievement.sortOrder || 0}</span>,
},
{ {
key: "description", key: "description",
label: "成就描述", label: "成就描述",
@ -201,6 +207,13 @@ function AchievementFormDialog({ disabled, form, loading, mode, onClose, onSubmi
value={form.title} value={form.title}
onChange={changeField(page.setForm, "title")} onChange={changeField(page.setForm, "title")}
/> />
<TextField
disabled={disabled}
label="排序"
type="number"
value={form.sortOrder}
onChange={changeField(page.setForm, "sortOrder")}
/>
<TextField <TextField
disabled={disabled} disabled={disabled}
label="描述" label="描述"

View File

@ -9,6 +9,7 @@ export const achievementFormSchema = z
achievementType: achievementTypeSchema, achievementType: achievementTypeSchema,
description: z.string().trim().max(240, "描述不能超过 240 个字符").optional(), description: z.string().trim().max(240, "描述不能超过 240 个字符").optional(),
primaryBadgeResourceId: optionalNumberInput, primaryBadgeResourceId: optionalNumberInput,
sortOrder: z.coerce.number().int("排序必须是整数").min(0, "排序不能小于 0").default(0),
title: z.string().trim().min(1, "请输入成就名称").max(64, "成就名称不能超过 64 个字符"), title: z.string().trim().min(1, "请输入成就名称").max(64, "成就名称不能超过 64 个字符"),
}) })
.superRefine((value, context) => { .superRefine((value, context) => {