From 41c467d285644ee43e5756a23c2baa4b58383897 Mon Sep 17 00:00:00 2001 From: BTMuli Date: Mon, 29 Dec 2025 00:57:04 +0800 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E7=AD=9B=E9=80=89=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/User/Characters.vue | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/pages/User/Characters.vue b/src/pages/User/Characters.vue index efa5e851..e980fe8c 100644 --- a/src/pages/User/Characters.vue +++ b/src/pages/User/Characters.vue @@ -507,24 +507,20 @@ function selectRole(role: TGApp.Sqlite.Character.TableTrans): void { function handleSelect(val: UavSelectModel): void { selectOpts.value = val; - const filterC = AppCharacterData.filter((avatar) => { - if (val.star.length > 0 && !val.star.includes(avatar.star.toString())) return false; - if (val.weapon.length > 0 && !val.weapon.includes(avatar.weapon)) return false; - if (val.element.length > 0 && !val.element.includes(avatar.element)) return false; - if (val.area.length > 0 && !val.area.includes(avatar.area)) return false; - return roleList.value.find( - (role) => - role.avatar.id === avatar.id && getZhElement(role.avatar.element) === avatar.element, - ); + 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.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; + return !(val.area.length > 0 && !val.area.includes(info?.area ?? "")); }); if (filterC.length === 0) { showSnackbar.warn("未找到符合条件的角色"); return; } showSnackbar.success(`筛选出符合条件的角色 ${filterC.length} 个`); - const selectedId = filterC.map((item) => item.id); - const tmpSelect = roleList.value.filter((role) => selectedId.includes(role.cid)); - selectedList.value = getOrderedList(tmpSelect); + selectedList.value = getOrderedList(filterC); if (!dataVal.value) return; if (!selectedList.value.includes(dataVal.value)) { dataVal.value = selectedList.value[0];