From 0d7336bce83dd8ddae5fd8fea07e92df4e7c15b1 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Wed, 5 Aug 2026 11:24:04 -0600 Subject: [PATCH] =?UTF-8?q?refactor(achievement):=20=E7=A8=80=E6=9C=89?= =?UTF-8?q?=E5=BA=A6=E9=85=8D=E8=89=B2=E6=94=B6=E8=BF=9B=20constants?= =?UTF-8?q?=EF=BC=8C=E6=96=87=E5=AD=97=E8=89=B2=E9=80=82=E9=85=8D=E6=B5=85?= =?UTF-8?q?=E8=89=B2=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 四份重复的 RARITY_COLOR / RARITY_LABEL 合并到 utils/constants。 拆成两套:边框色块继续用饱和的原色,文字改走 useRarityColor, 按明暗主题切换,两套都压到 4.5:1 以上——原色是照深色底调的, 白底上白金只有 1.7:1、黄金 2.2:1,卡片上的稀有度 tag 看不清。 Co-Authored-By: Claude Opus 5 --- .../components/AchievementModal.vue | 16 ++++---- src/admin/achievement/list.vue | 8 +--- .../components/AchievementCard.vue | 19 +++------- src/oj/achievement/index.vue | 24 ++---------- src/shared/components/AchievementToast.vue | 8 +--- src/shared/composables/rarity.ts | 15 ++++++++ src/utils/constants.ts | 38 ++++++++++++++++++- 7 files changed, 69 insertions(+), 59 deletions(-) create mode 100644 src/shared/composables/rarity.ts diff --git a/src/admin/achievement/components/AchievementModal.vue b/src/admin/achievement/components/AchievementModal.vue index 7982a0e..676ba19 100644 --- a/src/admin/achievement/components/AchievementModal.vue +++ b/src/admin/achievement/components/AchievementModal.vue @@ -7,6 +7,12 @@ import { type MetricOption, } from "admin/api" import AchievementIcon from "shared/components/AchievementIcon.vue" +import { RARITY_LABEL } from "utils/constants" + +const rarityOptions = Object.entries(RARITY_LABEL).map(([value, label]) => ({ + label, + value, +})) const props = defineProps<{ show: boolean @@ -118,15 +124,7 @@ async function save() { - + (null) -const RARITY_LABEL: Record = { - bronze: "青铜", - silver: "白银", - gold: "黄金", - platinum: "白金", -} - // 下架的只在有的时候才提,全部上架时标题不啰嗦 const title = computed(() => { if (!list.value.length) return "成就管理" diff --git a/src/oj/achievement/components/AchievementCard.vue b/src/oj/achievement/components/AchievementCard.vue index 946fc61..d20b42b 100644 --- a/src/oj/achievement/components/AchievementCard.vue +++ b/src/oj/achievement/components/AchievementCard.vue @@ -1,22 +1,13 @@