修复引入问题

This commit is contained in:
2026-01-20 09:13:52 +08:00
parent 33d97b2efc
commit 9312d47430
4 changed files with 67 additions and 90 deletions

View File

@@ -89,7 +89,8 @@
<div class="logo-box-top">
<span class="logo-text">VUE ADMIN</span>
</div>
<a-menu v-model:selectedKeys="selectedKeys" mode="horizontal" :selected-keys="[route.path]" style="line-height: 60px">
<a-menu v-model:selectedKeys="selectedKeys" mode="horizontal" :selected-keys="[route.path]"
style="line-height: 60px">
<navMenu :menu-items="menuList" :active-path="route.path" />
</a-menu>
</div>
@@ -118,7 +119,7 @@
</template>
<script setup>
import { computed, defineOptions, ref, watch, onMounted } from 'vue'
import { computed, ref, watch, onMounted } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { useLayoutStore } from '@/stores/modules/layout'
import { useUserStore } from '@/stores/modules/user'
@@ -133,8 +134,8 @@ import setting from './components/setting.vue'
// 定义组件名称(多词命名)
defineOptions({
name: 'AppLayouts'
});
name: 'AppLayouts',
})
const route = useRoute()
const router = useRouter()
@@ -149,9 +150,7 @@ const selectedParentMenu = computed(() => layoutStore.selectedParentMenu)
// 缓存的视图列表
const cachedViews = computed(() => {
return layoutStore.viewTags
.filter(tag => !tag.meta?.noCache)
.map(tag => tag.name)
return layoutStore.viewTags.filter((tag) => !tag.meta?.noCache).map((tag) => tag.name)
})
// 布局类名
@@ -160,7 +159,7 @@ const layoutClass = computed(() => {
'layout-default': layoutMode.value === 'default',
'layout-menu': layoutMode.value === 'menu',
'layout-top': layoutMode.value === 'top',
'is-collapse': sidebarCollapsed.value
'is-collapse': sidebarCollapsed.value,
}
})
@@ -207,8 +206,8 @@ const updateMenuState = () => {
selectedKeys.value = [route.path]
// 获取所有父级路径
const matched = route.matched.filter(item => item.path !== '/' && item.path !== route.path)
const parentPaths = matched.map(item => item.path)
const matched = route.matched.filter((item) => item.path !== '/' && item.path !== route.path)
const parentPaths = matched.map((item) => item.path)
// 对于不同的布局模式,处理方式不同
if (layoutMode.value === 'default') {
@@ -271,24 +270,34 @@ const findParentMenu = (menus, path) => {
}
// 监听路由变化,更新菜单状态
watch(() => route.path, (newPath) => {
console.log('路由变化:', newPath)
updateMenuState()
}, { immediate: true })
watch(
() => route.path,
(newPath) => {
console.log('路由变化:', newPath)
updateMenuState()
},
{ immediate: true },
)
// 监听布局模式变化,确保菜单状态正确
watch(() => layoutMode.value, () => {
updateMenuState()
})
watch(
() => layoutMode.value,
() => {
updateMenuState()
},
)
// 监听折叠状态
watch(() => sidebarCollapsed.value, (val) => {
if (val) {
openKeys.value = []
} else {
updateMenuState()
}
})
watch(
() => sidebarCollapsed.value,
(val) => {
if (val) {
openKeys.value = []
} else {
updateMenuState()
}
},
)
// 初始化
onMounted(() => {