diff --git a/src/features/achievements/hooks/useAchievementsPage.js b/src/features/achievements/hooks/useAchievementsPage.js index 8f02274..a2b2cff 100644 --- a/src/features/achievements/hooks/useAchievementsPage.js +++ b/src/features/achievements/hooks/useAchievementsPage.js @@ -20,6 +20,7 @@ const emptyForm = (achievement = {}) => ({ achievementType: achievement.achievementType || "ordinary", description: achievement.description || "", primaryBadgeResourceId: optionalId(achievement.primaryBadgeResourceId), + sortOrder: String(achievement.sortOrder || 0), title: achievement.title || "", }); @@ -196,7 +197,7 @@ function buildAchievementPayload(form) { honor_visibility: true, primary_badge_resource_id: Number(form.primaryBadgeResourceId || 0), reward_resource_group_id: 0, - sort_order: 0, + sort_order: Number(form.sortOrder || 0), status: "active", title: String(form.title || "").trim(), }; diff --git a/src/features/achievements/pages/AchievementConfigPage.jsx b/src/features/achievements/pages/AchievementConfigPage.jsx index 06aab97..264e2c9 100644 --- a/src/features/achievements/pages/AchievementConfigPage.jsx +++ b/src/features/achievements/pages/AchievementConfigPage.jsx @@ -46,6 +46,12 @@ const baseColumns = [ {achievementTypeLabel(achievement.achievementType)} ), }, + { + key: "sortOrder", + label: "排序", + width: "96px", + render: (achievement) => {achievement.sortOrder || 0}, + }, { key: "description", label: "成就描述", @@ -201,6 +207,13 @@ function AchievementFormDialog({ disabled, form, loading, mode, onClose, onSubmi value={form.title} onChange={changeField(page.setForm, "title")} /> + {