From 819bcbe5263c721f1f77cb277d670a9868b229f7 Mon Sep 17 00:00:00 2001 From: vben Date: Thu, 24 Dec 2020 22:02:24 +0800 Subject: [PATCH] feat(breadcrumb): add breadcrumb demo #143 --- CHANGELOG.zh_CN.md | 3 + src/components/Menu/src/BasicMenu.vue | 17 +-- .../Menu/src/components/BasicSubMenuItem.vue | 16 ++- src/components/Menu/src/useOpenKeys.ts | 3 + .../default/header/components/Breadcrumb.vue | 101 ++++++++++++++---- src/layouts/default/setting/handler.ts | 2 +- src/layouts/default/sider/MixSider.vue | 1 + src/layouts/default/tabs/index.vue | 24 ++++- src/locales/lang/en/routes/demo/feat.ts | 7 ++ src/locales/lang/zh_CN/routes/demo/feat.ts | 7 ++ src/router/helper/routeHelper.ts | 4 +- src/router/menus/index.ts | 6 +- src/router/menus/modules/demo/comp.ts | 6 +- src/router/menus/modules/demo/feat.ts | 22 ++++ src/router/menus/modules/demo/iframe.ts | 8 +- src/router/menus/modules/demo/level.ts | 3 - src/router/menus/modules/demo/page.ts | 7 +- src/router/routes/modules/demo/charts.ts | 17 +-- src/router/routes/modules/demo/feat.ts | 62 +++++++++++ src/router/routes/modules/demo/iframe.ts | 18 ++-- src/router/routes/modules/demo/level.ts | 4 +- src/router/types.ts | 11 +- .../demo/feat/breadcrumb/ChildrenList.vue | 10 ++ .../feat/breadcrumb/ChildrenListDetail.vue | 8 ++ src/views/demo/feat/breadcrumb/FlatList.vue | 10 ++ .../demo/feat/breadcrumb/FlatListDetail.vue | 8 ++ 26 files changed, 312 insertions(+), 73 deletions(-) create mode 100644 src/views/demo/feat/breadcrumb/ChildrenList.vue create mode 100644 src/views/demo/feat/breadcrumb/ChildrenListDetail.vue create mode 100644 src/views/demo/feat/breadcrumb/FlatList.vue create mode 100644 src/views/demo/feat/breadcrumb/FlatListDetail.vue diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index c8a728f6d34..7565be1c85e 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -6,6 +6,8 @@ - 新增左侧菜单混合模式 - 新增 markdown 嵌入表单内示例 - 新增主框架外页面示例 +- `route.meta` 新增`currentActiveMenu`,`hideTab`,`hideMenu`参数 用于控制详情页面包屑级菜单显示隐藏。 +- 新增面包屑导航示例 ### 🐛 Bug Fixes @@ -14,6 +16,7 @@ - 修复图表库切换页面导致宽高计算错误 - 修复多语言配置 `Locale.show`导致配置不生效 - 修复路由类型错误 +- 修复菜单分割时权限失效问题 ## 2.0.0-rc.14 (2020-12-15) diff --git a/src/components/Menu/src/BasicMenu.vue b/src/components/Menu/src/BasicMenu.vue index 463b0516c2a..1c454fd7665 100644 --- a/src/components/Menu/src/BasicMenu.vue +++ b/src/components/Menu/src/BasicMenu.vue @@ -118,16 +118,21 @@ listenerLastChangeTab((route) => { if (route.name === REDIRECT_NAME) return; handleMenuChange(route); - }, false); + const currentActiveMenu = route.meta?.currentActiveMenu; + if (currentActiveMenu) { + menuState.selectedKeys = [currentActiveMenu]; + setOpenKeys(currentActiveMenu); + } + }); watch( () => props.items, () => { handleMenuChange(); - }, - { - immediate: true, } + // { + // immediate: true, + // } ); async function handleMenuClick({ key, keyPath }: { key: string; keyPath: string[] }) { @@ -149,9 +154,7 @@ return; } const path = (route || unref(currentRoute)).path; - if (props.mode !== MenuModeEnum.HORIZONTAL) { - setOpenKeys(path); - } + setOpenKeys(path); if (props.isHorizontal && unref(getSplit)) { const parentPath = await getCurrentParentPath(path); menuState.selectedKeys = [parentPath]; diff --git a/src/components/Menu/src/components/BasicSubMenuItem.vue b/src/components/Menu/src/components/BasicSubMenuItem.vue index cf883db7baf..990460e6d11 100644 --- a/src/components/Menu/src/components/BasicSubMenuItem.vue +++ b/src/components/Menu/src/components/BasicSubMenuItem.vue @@ -1,6 +1,9 @@ + diff --git a/src/views/demo/feat/breadcrumb/ChildrenListDetail.vue b/src/views/demo/feat/breadcrumb/ChildrenListDetail.vue new file mode 100644 index 00000000000..f37c36755a9 --- /dev/null +++ b/src/views/demo/feat/breadcrumb/ChildrenListDetail.vue @@ -0,0 +1,8 @@ + + diff --git a/src/views/demo/feat/breadcrumb/FlatList.vue b/src/views/demo/feat/breadcrumb/FlatList.vue new file mode 100644 index 00000000000..5a5aba2728f --- /dev/null +++ b/src/views/demo/feat/breadcrumb/FlatList.vue @@ -0,0 +1,10 @@ + + diff --git a/src/views/demo/feat/breadcrumb/FlatListDetail.vue b/src/views/demo/feat/breadcrumb/FlatListDetail.vue new file mode 100644 index 00000000000..1dfc75a9b62 --- /dev/null +++ b/src/views/demo/feat/breadcrumb/FlatListDetail.vue @@ -0,0 +1,8 @@ + +