|
@@ -13,19 +13,10 @@
|
|
|
:selected-keys="menuActive">
|
|
|
<template v-for="route in filterRoutes">
|
|
|
<template v-if="route.children && route.children.length">
|
|
|
- <a-sub-menu class="nav-item"
|
|
|
- :key="route.path"
|
|
|
- :title="route.meta.title">
|
|
|
- <router-link v-for="child in route.children"
|
|
|
- :key="formatRoutes(child.path, route.path)"
|
|
|
- :to="formatRoutes(child.path, route.path)"
|
|
|
- custom
|
|
|
- v-slot={navigate}>
|
|
|
- <a-menu-item>
|
|
|
- <p @click.stop="navigate">{{child.meta.title}}</p>
|
|
|
- </a-menu-item>
|
|
|
- </router-link>
|
|
|
- </a-sub-menu>
|
|
|
+ <app-sub-menu class="nav-item"
|
|
|
+ :menus="route"
|
|
|
+ :parent-path="route.path"
|
|
|
+ :key="route.path" />
|
|
|
</template>
|
|
|
<template v-else>
|
|
|
<router-link :key="route.path"
|
|
@@ -56,6 +47,7 @@
|
|
|
import { computed, defineComponent, reactive, ref, toRefs } from "vue";
|
|
|
|
|
|
import appHeader from "./components/AppHeader.vue";
|
|
|
+import appSubMenu from "./components/AppSubMenu.vue";
|
|
|
|
|
|
import useApp from "@/hooks/useApp";
|
|
|
import { pathResolve } from "@/helper/index";
|
|
@@ -66,13 +58,11 @@ import { RouteConfig } from "@/types/route";
|
|
|
const LayoutComponent = defineComponent({
|
|
|
components: {
|
|
|
appHeader,
|
|
|
+ appSubMenu,
|
|
|
},
|
|
|
setup() {
|
|
|
const { store, route, router } = useApp();
|
|
|
|
|
|
- // 待优化
|
|
|
- let openKeys = ref(["/" + route.path.substr(1).split("/")[0]]);
|
|
|
-
|
|
|
const data = reactive({
|
|
|
navRoutes: computed(() => store.getters.permissionRoutes),
|
|
|
roles: computed(() => store.getters.userRoles),
|
|
@@ -99,6 +89,19 @@ const LayoutComponent = defineComponent({
|
|
|
return icon_url;
|
|
|
};
|
|
|
|
|
|
+ const onCalcOpenKeys = () => {
|
|
|
+ const routeArr = route.path.split("/");
|
|
|
+ let openKeys: string[] = [];
|
|
|
+ routeArr.forEach((r) => {
|
|
|
+ routeArr.pop();
|
|
|
+ let target = routeArr.join("/");
|
|
|
+ openKeys.push(target);
|
|
|
+ });
|
|
|
+ return openKeys;
|
|
|
+ };
|
|
|
+ // 待优化
|
|
|
+ let openKeys = ref(onCalcOpenKeys());
|
|
|
+
|
|
|
return {
|
|
|
...toRefs(data),
|
|
|
openKeys,
|