From e58982688c8898f06e545072ec4907fd09dad3e5 Mon Sep 17 00:00:00 2001 From: Gary Fu Date: Sun, 7 Jan 2024 16:13:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/public.d.ts | 3 ++- src/services/menu/MenuService.js | 9 ++++++++- src/views/admin/MenuEdit.vue | 7 ++++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/components/public.d.ts b/src/components/public.d.ts index 2635ae3..84a0b1b 100644 --- a/src/components/public.d.ts +++ b/src/components/public.d.ts @@ -18,5 +18,6 @@ export interface CommonPage { export interface CommonTreeNode { value: string; label: string; - children: Array; + children?: Array; + isLeaf?: boolean; } diff --git a/src/services/menu/MenuService.js b/src/services/menu/MenuService.js index 140c9f8..7ab6908 100644 --- a/src/services/menu/MenuService.js +++ b/src/services/menu/MenuService.js @@ -28,6 +28,11 @@ export const loadMenuResult = (id, config) => { * @return {[CommonFormOption]} */ export const useMenuFormOptions = (menus) => { + /** + * @type {CommonTreeNode[]} + */ + const treeData = menus ? menus.map(menu2TreeMenu) : [] + const defaultExpandedKeys = treeData.map(node => node.value) return [{ labelKey: 'menu.label.menuNameCn', prop: 'nameCn', @@ -41,7 +46,9 @@ export const useMenuFormOptions = (menus) => { prop: 'parentId', type: 'tree-select', attrs: { - data: menus ? menus.map(menu2TreeMenu) : [] + checkStrictly: true, + defaultExpandedKeys, + data: treeData } }, { labelKey: 'menu.label.menuIcon', diff --git a/src/views/admin/MenuEdit.vue b/src/views/admin/MenuEdit.vue index e9cca40..d095c6a 100644 --- a/src/views/admin/MenuEdit.vue +++ b/src/views/admin/MenuEdit.vue @@ -24,9 +24,10 @@ const loadMenu = async () => { } } -onMounted(async () => { - const menus = await loadAndParseMenus() - selectMenus.value = menus +onMounted(() => { + loadAndParseMenus().then(menus => { + selectMenus.value = menus + }) loadMenu() })