diff --git a/src/admin/achievement/components/AchievementModal.vue b/src/admin/achievement/components/AchievementModal.vue index bab15b1..6db9ae1 100644 --- a/src/admin/achievement/components/AchievementModal.vue +++ b/src/admin/achievement/components/AchievementModal.vue @@ -6,6 +6,7 @@ import { type AdminAchievement, type MetricOption, } from "admin/api" +import AchievementIcon from "shared/components/AchievementIcon.vue" const props = defineProps<{ show: boolean @@ -21,7 +22,7 @@ function emptyForm() { return { name: "", description: "", - icon: "🏆", + icon: "noto:trophy", rarity: "bronze", hidden: false, metric: "", @@ -99,7 +100,22 @@ async function save() { /> - + + + +
+ +
+
+ + 填 iconify 图标名(推荐 noto: 开头的彩色 emoji 图标),右侧是实时 + 预览;预览不出来说明名字写错了。图标名可在 icon-sets.iconify.design + 搜索。 + +
+ + diff --git a/src/admin/achievement/list.vue b/src/admin/achievement/list.vue index 6c1f2f7..ffccbf4 100644 --- a/src/admin/achievement/list.vue +++ b/src/admin/achievement/list.vue @@ -5,6 +5,7 @@ import { getAdminAchievements, type AdminAchievement, } from "admin/api" +import AchievementIcon from "shared/components/AchievementIcon.vue" import AchievementModal from "./components/AchievementModal.vue" const message = useMessage() @@ -57,7 +58,12 @@ function remove(row: AdminAchievement) { } const columns: DataTableColumn[] = [ - { title: "图标", key: "icon", width: 60 }, + { + title: "图标", + key: "icon", + width: 60, + render: (row) => h(AchievementIcon, { icon: row.icon, size: 24 }), + }, { title: "名称", key: "name" }, { title: "稀有度", diff --git a/src/oj/achievement/components/AchievementCard.vue b/src/oj/achievement/components/AchievementCard.vue index bc4a7f6..946fc61 100644 --- a/src/oj/achievement/components/AchievementCard.vue +++ b/src/oj/achievement/components/AchievementCard.vue @@ -1,4 +1,5 @@ + + + + diff --git a/src/shared/components/AchievementToast.vue b/src/shared/components/AchievementToast.vue index 2e7c7e5..c3bff66 100644 --- a/src/shared/components/AchievementToast.vue +++ b/src/shared/components/AchievementToast.vue @@ -1,4 +1,5 @@