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")}
/>
+
{