diff --git a/src/components/pageWiki/two-select-c.vue b/src/components/pageWiki/two-select-c.vue index 1cfc63a7..89c94b97 100644 --- a/src/components/pageWiki/two-select-c.vue +++ b/src/components/pageWiki/two-select-c.vue @@ -1,12 +1,13 @@ + - diff --git a/src/components/pageWiki/two-select-w.vue b/src/components/pageWiki/two-select-w.vue index ac74b9a1..8636ca63 100644 --- a/src/components/pageWiki/two-select-w.vue +++ b/src/components/pageWiki/two-select-w.vue @@ -1,12 +1,13 @@ + - diff --git a/src/pages/WIKI/Character.vue b/src/pages/WIKI/Character.vue index c521ca89..602db6a4 100644 --- a/src/pages/WIKI/Character.vue +++ b/src/pages/WIKI/Character.vue @@ -77,17 +77,17 @@ onBeforeMount(() => { watch( () => resetSelect.value, (val) => { - if (val) cardsInfo.value = AppCharacterData; + if (val) cardsInfo.value = appCData; }, ); function handleSelect(val: SelectedCValue): void { showSelect.value = false; const filterC = AppCharacterData.filter((item) => { - if (!val.star.includes(item.star)) return false; - if (!val.weapon.includes(item.weapon)) return false; - if (!val.elements.includes(item.element)) return false; - return val.area.includes(item.area); + if (val.star.length > 0 && !val.star.includes(item.star)) return false; + if (val.weapon.length > 0 && !val.weapon.includes(item.weapon)) return false; + if (val.elements.length > 0 && !val.elements.includes(item.element)) return false; + return !(val.area.length > 0 && val.area.includes(item.area)); }); if (filterC.length === 0) { showSnackbar.warn("未找到符合条件的角色"); @@ -134,6 +134,7 @@ async function toOuter(item?: TGApp.App.Character.WikiBriefInfo): Promise } .wc-left { + position: relative; display: flex; width: fit-content; flex-direction: column; @@ -161,11 +162,11 @@ async function toOuter(item?: TGApp.App.Character.WikiBriefInfo): Promise .wc-list { position: relative; display: grid; + overflow: hidden auto; width: 100%; padding-right: 8px; gap: 8px; grid-template-columns: repeat(3, 160px); - overflow-y: auto; } .wc-detail { diff --git a/src/pages/WIKI/Weapon.vue b/src/pages/WIKI/Weapon.vue index cd2a986b..19216bb9 100644 --- a/src/pages/WIKI/Weapon.vue +++ b/src/pages/WIKI/Weapon.vue @@ -30,12 +30,12 @@ import TwcListItem from "@comp/pageWiki/twc-list-item.vue"; import TwcWeapon from "@comp/pageWiki/twc-weapon.vue"; import TwoSelectW, { type SelectedWValue } from "@comp/pageWiki/two-select-w.vue"; import { toObcPage } from "@utils/TGWindow.js"; -import { onBeforeMount, ref, shallowRef } from "vue"; +import { onBeforeMount, ref, shallowRef, watch } from "vue"; import { useRoute } from "vue-router"; import { AppWeaponData } from "@/data/index.js"; -const sortedData = AppWeaponData.sort((a, b) => { +const appWData = AppWeaponData.sort((a, b) => { if (a.star !== b.star) return b.star - a.star; if (a.weapon !== b.weapon) return a.weapon.localeCompare(b.weapon); return b.id - a.id; @@ -44,7 +44,7 @@ const sortedData = AppWeaponData.sort((a, b) => { const id = useRoute().params.id.toString() ?? "0"; const showSelect = ref(false); const resetSelect = ref(false); -const cardsInfo = shallowRef>(sortedData); +const cardsInfo = shallowRef>(appWData); const curItem = shallowRef({ id: 0, contentId: 0, @@ -67,15 +67,24 @@ onBeforeMount(() => { curItem.value = cardsInfo.value[0]; }); +watch( + () => resetSelect.value, + () => { + if (resetSelect.value) { + cardsInfo.value = appWData; + } + }, +); + function switchW(item: TGApp.App.Weapon.WikiBriefInfo): void { curItem.value = item; } function handleSelectW(val: SelectedWValue) { - if (!val.isReset) showSelect.value = true; + showSelect.value = false; const filterW = AppWeaponData.filter((item) => { - if (!val.star.includes(item.star)) return false; - return val.weapon.includes(item.weapon); + if (val.star.length > 0 && !val.star.includes(item.star)) return false; + return !(val.weapon.length > 0 && !val.weapon.includes(item.weapon)); }); if (filterW.length === 0) { showSnackbar.warn("未找到符合条件的武器"); @@ -139,7 +148,7 @@ async function toOuter(item?: TGApp.App.Weapon.WikiBriefInfo): Promise { padding-right: 8px; gap: 8px; grid-template-columns: repeat(3, 160px); - overflow-y: auto; + overflow: hidden auto; } .ww-detail {