From 47ed849f706210f8ead00a3cb81a31aac363db99 Mon Sep 17 00:00:00 2001 From: BTMuli Date: Sat, 28 Feb 2026 22:55:12 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=B8=20=E7=AD=9B=E9=80=89=E5=A2=9E?= =?UTF-8?q?=E5=8A=A070=E7=BA=A7=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit close #229 --- src/components/userAvatar/uav-select.vue | 15 +++++++++++++++ src/pages/User/Characters.vue | 7 ++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/components/userAvatar/uav-select.vue b/src/components/userAvatar/uav-select.vue index d76d0e72..17ef075e 100644 --- a/src/components/userAvatar/uav-select.vue +++ b/src/components/userAvatar/uav-select.vue @@ -14,6 +14,12 @@ +
+
等级
+
+ +
+
武器
@@ -53,6 +59,8 @@ export type UavSelectModel = { costume: Array; /** 星级 */ star: Array; + /** 等级 */ + level: Array; /** 武器 */ weapon: Array; /** 元素 */ @@ -71,6 +79,10 @@ const starOpts: Array = [ { label: "⭐⭐⭐⭐", value: "4", title: "四星" }, { label: "⭐⭐⭐⭐⭐", value: "5", title: "五星" }, ]; +const levelOpts: Array = [ + { label: "≥70", value: "true", title: "不低于70级" }, + { label: "<70", value: "false", title: "低于70级" }, +]; const weaponOpts: Array = ["单手剑", "双手剑", "弓", "法器", "长柄武器"].map( (i) => ({ label: i, value: i, title: i, icon: `/icon/weapon/${i}.webp` }), ); @@ -98,6 +110,7 @@ const emits = defineEmits(); const costumeSelected = ref>([]); const starSelected = ref>([]); +const levelSelected = ref>([]); const weaponSelected = ref>([]); const elementSelected = ref>([]); const areaSelected = ref>([]); @@ -113,6 +126,7 @@ watch( if (visible.value) { costumeSelected.value = model.value.costume; starSelected.value = model.value.star; + levelSelected.value = model.value.level; weaponSelected.value = model.value.weapon; areaSelected.value = model.value.area; elementSelected.value = model.value.element; @@ -128,6 +142,7 @@ function onConfirm(): void { model.value = { costume: costumeSelected.value, star: starSelected.value, + level: levelSelected.value, weapon: weaponSelected.value, element: elementSelected.value, area: areaSelected.value, diff --git a/src/pages/User/Characters.vue b/src/pages/User/Characters.vue index 1ee07817..0ad792ef 100644 --- a/src/pages/User/Characters.vue +++ b/src/pages/User/Characters.vue @@ -204,6 +204,7 @@ const isConstUp = ref(null); const selectOpts = ref({ costume: [], star: [], + level: [], weapon: [], area: [], element: [], @@ -297,7 +298,7 @@ function resetList(): void { isLevelUp.value = null; isFetterUp.value = null; isConstUp.value = null; - selectOpts.value = { costume: [], star: [], weapon: [], area: [], element: [] }; + selectOpts.value = { costume: [], star: [], level: [], weapon: [], area: [], element: [] }; selectedList.value = getOrderedList(roleList.value); showSnackbar.success("已重置筛选条件"); if (!dataVal.value) return; @@ -544,6 +545,10 @@ function handleSelect(val: UavSelectModel): void { const filterC = roleList.value.filter((role) => { const info = AppCharacterData.find((i) => i.id === role.cid); if (val.star.length > 0 && !val.star.includes(role.avatar.rarity.toString())) return false; + if (val.level.length > 0) { + if (!val.level.includes("true") && role.avatar.level >= 70) return false; + if (!val.level.includes("false") && role.avatar.level < 70) return false; + } if (val.weapon.length > 0 && !val.weapon.includes(role.weapon.type_name)) return false; if (val.element.length > 0 && !val.element.includes(getZhElement(role.avatar.element))) return false;