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;