|
|
@@ -11,14 +11,14 @@
|
|
|
<img :src="logoPng" alt="">
|
|
|
</div>
|
|
|
<a-menu
|
|
|
- v-model:selectedKeys="selectedKeys2"
|
|
|
+ v-model:selectedKeys="selectedKeys"
|
|
|
:openKeys="openKeys"
|
|
|
mode="inline"
|
|
|
:style="{ borderRight: 0 }"
|
|
|
>
|
|
|
<sidebar-item
|
|
|
:item="route"
|
|
|
- v-for="route in appRouter.router.sider.route"
|
|
|
+ v-for="route in sidebarRoute"
|
|
|
:key="route.path"
|
|
|
:base-path="route.path"
|
|
|
/>
|
|
|
@@ -29,12 +29,10 @@
|
|
|
|
|
|
<script lang="ts" setup >
|
|
|
|
|
|
-import { onMounted, ref, computed } from 'vue'
|
|
|
-import { useAppRouter } from '@/store/router'
|
|
|
+import { ref, computed, watch } from 'vue'
|
|
|
+
|
|
|
import SidebarItem from './SidebarItem.vue'
|
|
|
import { useRouter, useRoute } from 'vue-router'
|
|
|
-import { useEmitter } from '@/hooks'
|
|
|
-import { Emitter } from '@/enum'
|
|
|
import { useDesignStore } from '@/store'
|
|
|
|
|
|
const logoPng = require('@/assets/logo.png')
|
|
|
@@ -43,29 +41,32 @@ const designStore = useDesignStore()
|
|
|
|
|
|
const bgColor = computed(() => designStore.theme ? '#141414' : '#fff')
|
|
|
|
|
|
-const appRouter = useAppRouter()
|
|
|
+const route = useRoute()
|
|
|
|
|
|
-const rootRouter = useRouter()
|
|
|
+const router = useRouter()
|
|
|
|
|
|
const collapsed = ref<boolean>(false)
|
|
|
|
|
|
-const selectedKeys2 = ref<string[]>([appRouter.router.sider.selectPath])
|
|
|
-const openKeys = ref<string[]>(appRouter.router.sider!.openKeys)
|
|
|
-
|
|
|
-const emitter = useEmitter()
|
|
|
+const sidebarRoute = ref<any>()
|
|
|
|
|
|
-// 如果是产品类型这种 需要找到父节点 设置openKeys
|
|
|
-// 刷新后也需要打开openKeys
|
|
|
+const selectedKeys = ref<string[]>()
|
|
|
|
|
|
-emitter.on(Emitter.NAVBAR, () => {
|
|
|
- selectedKeys2.value = [appRouter.router.sider.selectPath]
|
|
|
-})
|
|
|
+const openKeys = ref<string[]>()
|
|
|
|
|
|
-onMounted(() => {
|
|
|
- selectedKeys2.value = [appRouter.currentRoute!]
|
|
|
+watch(
|
|
|
+ () => route.path,
|
|
|
+ () => {
|
|
|
+ sidebarRoute.value = router.getRoutes().find(item => item.path === route.matched[0].path)?.children
|
|
|
+ console.log('route.matched.', route.matched)
|
|
|
+ console.log(openKeys)
|
|
|
+ selectedKeys.value = [route.path]
|
|
|
+ openKeys.value = [route.matched[1].path]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ immediate: true
|
|
|
+ }
|
|
|
+)
|
|
|
|
|
|
- rootRouter.push(appRouter.currentRoute!)
|
|
|
-})
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped >
|