From 9b4b6fb7ab9ed98684dfa40a9350d5ca242301a5 Mon Sep 17 00:00:00 2001 From: BTMuli Date: Tue, 3 Mar 2026 19:18:34 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E6=96=B0=E5=A2=9E=E6=BB=A1?= =?UTF-8?q?=E5=A5=BD=E6=84=9F=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/userAvatar/tua-select-vals.vue | 12 ++++++++++++ src/components/userAvatar/uav-select.vue | 17 ++++++++++++++++- src/pages/User/Characters.vue | 15 ++++++++++++++- 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/components/userAvatar/tua-select-vals.vue b/src/components/userAvatar/tua-select-vals.vue index 7eeeab3a..91de131c 100644 --- a/src/components/userAvatar/tua-select-vals.vue +++ b/src/components/userAvatar/tua-select-vals.vue @@ -11,6 +11,13 @@ mdi-tshirt-crew mdi-block-helper +
+ 好感:{{ getFetterLabel(props.selectOpts.fetter[0]) }} +
{{ getStarLabel(props.selectOpts.star[0]) }}
@@ -103,6 +110,11 @@ const isOrdered = computed(() => { return !(props.isLevelUp === null && props.isFetterUp === null && props.isConstUp === null); }); +function getFetterLabel(fetter: string): string { + if (fetter === "true") return "已满"; + return "未满"; +} + function getStarLabel(star: string): string { if (star === "4") return "⭐⭐⭐⭐"; return "⭐⭐⭐⭐⭐"; diff --git a/src/components/userAvatar/uav-select.vue b/src/components/userAvatar/uav-select.vue index 5e4b6216..febf2fe3 100644 --- a/src/components/userAvatar/uav-select.vue +++ b/src/components/userAvatar/uav-select.vue @@ -8,6 +8,12 @@ +
+
好感
+
+ +
+
星级
@@ -57,6 +63,8 @@ import { ref, watch } from "vue"; export type UavSelectModel = { /** 皮肤 */ costume: Array; + /** 满好感 */ + fetter: Array; /** 星级 */ star: Array; /** 等级 */ @@ -75,6 +83,10 @@ const costumeOpts: Array = [ { label: "有", value: "true", title: "有衣装" }, { label: "无", value: "false", title: "无衣装" }, ]; +const fetterOpts: Array = [ + { label: "已满", value: "true", title: "满好感" }, + { label: "未满", value: "false", title: "好感未满" }, +]; const starOpts: Array = [ { label: "⭐⭐⭐⭐", value: "4", title: "四星" }, { label: "⭐⭐⭐⭐⭐", value: "5", title: "五星" }, @@ -109,6 +121,7 @@ const areaOpts: Array = [ const emits = defineEmits(); const costumeSelected = ref>([]); +const fetterSelected = ref>([]); const starSelected = ref>([]); const levelSelected = ref>([]); const weaponSelected = ref>([]); @@ -116,7 +129,7 @@ const elementSelected = ref>([]); const areaSelected = ref>([]); const model = defineModel({ - default: { costume: [], star: [], weapon: [], area: [], element: [] }, + default: { costume: [], fetter: [], star: [], weapon: [], area: [], element: [] }, }); const visible = defineModel("show"); @@ -125,6 +138,7 @@ watch( () => { if (visible.value) { costumeSelected.value = model.value.costume; + fetterSelected.value = model.value.fetter; starSelected.value = model.value.star; levelSelected.value = model.value.level; weaponSelected.value = model.value.weapon; @@ -141,6 +155,7 @@ function onCancel(): void { function onConfirm(): void { model.value = { costume: costumeSelected.value, + fetter: fetterSelected.value, star: starSelected.value, level: levelSelected.value, weapon: weaponSelected.value, diff --git a/src/pages/User/Characters.vue b/src/pages/User/Characters.vue index 65c963bd..7f25c4bb 100644 --- a/src/pages/User/Characters.vue +++ b/src/pages/User/Characters.vue @@ -205,6 +205,7 @@ const isFetterUp = ref(null); const isConstUp = ref(null); const selectOpts = ref({ costume: [], + fetter: [], star: [], level: [], weapon: [], @@ -300,7 +301,15 @@ function resetList(): void { isLevelUp.value = null; isFetterUp.value = null; isConstUp.value = null; - selectOpts.value = { costume: [], star: [], level: [], weapon: [], area: [], element: [] }; + selectOpts.value = { + costume: [], + fetter: [], + star: [], + level: [], + weapon: [], + area: [], + element: [], + }; selectedList.value = getOrderedList(roleList.value); showSnackbar.success("已重置筛选条件"); if (!dataVal.value) return; @@ -551,6 +560,10 @@ function handleSelect(val: UavSelectModel): void { if (!val.level.includes("true") && role.avatar.level >= 70) return false; if (!val.level.includes("false") && role.avatar.level < 70) return false; } + if (val.fetter.length > 0) { + if (!val.fetter.includes("true") && role.avatar.fetter === 10) return false; + if (!val.fetter.includes("false") && role.avatar.fetter !== 10) 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;