From fc87f8c5195b8e697b16fe09e36400e1fe5c7c61 Mon Sep 17 00:00:00 2001 From: icssoa <2570063477@qq.com> Date: Thu, 9 Mar 2023 15:01:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=A1=B6=E9=83=A8=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=97=A0=E6=B3=95=E8=B7=B3=E8=BD=AC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/base/layout/components/amenu.vue | 11 ++++--- src/modules/base/store/menu.ts | 34 ++++++++++++-------- 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/src/modules/base/layout/components/amenu.vue b/src/modules/base/layout/components/amenu.vue index 85b86a5..9353f5f 100644 --- a/src/modules/base/layout/components/amenu.vue +++ b/src/modules/base/layout/components/amenu.vue @@ -18,6 +18,7 @@ import { onMounted, ref } from "vue"; import { useBase } from "/$/base"; import { useCool } from "/@/cool"; +import { Menu } from "../../types"; const { router, route } = useCool(); const { menu } = useBase(); @@ -26,20 +27,20 @@ const { menu } = useBase(); const active = ref(""); // 选择导航 -function select(index: any) { +function select(index: number) { menu.setMenu(index); // 获取第一个菜单地址 - const url = menu.getPath(menu.group[index].children); + const url = menu.getPath(menu.group[index]); router.push(url); } onMounted(function () { // 设置默认 - function deep(e: any, i: number) { + function deep(e: Menu.Item, i: number) { switch (e.type) { case 0: - e.children.forEach((e: any) => { + (e.children || []).forEach((e) => { deep(e, i); }); break; @@ -55,7 +56,7 @@ onMounted(function () { } } - menu.group.forEach((e: any, i: number) => { + menu.group.forEach((e, i) => { deep(e, i); }); }); diff --git a/src/modules/base/store/menu.ts b/src/modules/base/store/menu.ts index 8409e2a..5c475e6 100644 --- a/src/modules/base/store/menu.ts +++ b/src/modules/base/store/menu.ts @@ -136,24 +136,30 @@ export const useMenuStore = defineStore("menu", function () { } // 获取菜单路径 - function getPath(list?: Menu.List) { - list = list || group.value; - + function getPath(item?: Menu.Item) { let path = ""; - function deep(arr: Menu.List) { - arr.forEach((e: Menu.Item) => { - if (e.type == 1) { - if (!path) { - path = e.path; - } - } else { - deep(e.children || []); + switch (item?.type) { + case 0: + function deep(arr: Menu.List) { + arr.forEach((e: Menu.Item) => { + if (e.type == 1) { + if (!path) { + path = e.path; + } + } else { + deep(e.children || []); + } + }); } - }); - } - deep(list); + deep(item.children || group.value || []); + break; + + case 1: + path = item.path; + break; + } return path || "/"; }