备份代码
This commit is contained in:
@ -22,18 +22,22 @@ const closeSidebar = () => {
|
||||
sidebarVisible.value = false
|
||||
}
|
||||
|
||||
const toggleSubMenu = (url) => {
|
||||
const idx = expandedSubMenus.value.indexOf(url)
|
||||
const toggleSubMenu = (navId) => {
|
||||
const idx = expandedSubMenus.value.indexOf(navId)
|
||||
if (idx > -1) {
|
||||
expandedSubMenus.value.splice(idx, 1)
|
||||
} else {
|
||||
expandedSubMenus.value.push(url)
|
||||
expandedSubMenus.value.push(navId)
|
||||
}
|
||||
}
|
||||
|
||||
const getTargetUrl = (nav) => {
|
||||
return nav.mobileUrl || nav.url
|
||||
}
|
||||
|
||||
const handleNavClick = (nav) => {
|
||||
if (nav.hasChildren || nav.children?.length > 0) {
|
||||
toggleSubMenu(nav.url)
|
||||
toggleSubMenu(nav.id)
|
||||
return
|
||||
}
|
||||
if (nav.open) {
|
||||
@ -41,9 +45,10 @@ const handleNavClick = (nav) => {
|
||||
sidebarVisible.value = false
|
||||
return
|
||||
}
|
||||
navStore.changeNavIndex(nav.url)
|
||||
activeIndex.value = nav.url
|
||||
router.push(nav.url)
|
||||
const targetUrl = getTargetUrl(nav)
|
||||
navStore.changeNavIndex(targetUrl)
|
||||
activeIndex.value = targetUrl
|
||||
router.push(targetUrl)
|
||||
sidebarVisible.value = false
|
||||
}
|
||||
|
||||
@ -83,21 +88,21 @@ const toMIIF = () => {
|
||||
<div v-if="nav.hasChildren || nav.children?.length > 0" class="nav-group">
|
||||
<div
|
||||
class="nav-item nav-item--parent"
|
||||
:class="{'nav-item--expanded': expandedSubMenus.includes(nav.url)}"
|
||||
:class="{'nav-item--expanded': expandedSubMenus.includes(nav.id)}"
|
||||
@click="handleNavClick(nav)"
|
||||
>
|
||||
<span class="nav-label">{{ nav.label }}</span>
|
||||
<el-icon class="nav-arrow" :size="12">
|
||||
<ArrowDown v-if="expandedSubMenus.includes(nav.url)" />
|
||||
<ArrowDown v-if="expandedSubMenus.includes(nav.id)" />
|
||||
<ArrowRight v-else />
|
||||
</el-icon>
|
||||
</div>
|
||||
<div v-show="expandedSubMenus.includes(nav.url)" class="nav-sub">
|
||||
<div v-show="expandedSubMenus.includes(nav.id)" class="nav-sub">
|
||||
<div
|
||||
v-for="child in nav.children"
|
||||
:key="child.id"
|
||||
class="nav-item nav-item--child"
|
||||
:class="{'nav-item--active': activeIndex === child.url}"
|
||||
:class="{'nav-item--active': activeIndex === getTargetUrl(child)}"
|
||||
@click="handleNavClick(child)"
|
||||
>
|
||||
{{ child.label }}
|
||||
@ -108,7 +113,7 @@ const toMIIF = () => {
|
||||
<div
|
||||
v-else
|
||||
class="nav-item"
|
||||
:class="{'nav-item--active': activeIndex === nav.url}"
|
||||
:class="{'nav-item--active': activeIndex === getTargetUrl(nav)}"
|
||||
@click="handleNavClick(nav)"
|
||||
>
|
||||
<span class="nav-label">{{ nav.label }}</span>
|
||||
|
||||
Reference in New Issue
Block a user