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;