diff --git a/package.json b/package.json index 764ab4622e869a9bb78d894d39db9b7d91603a54..f54a491daffaa0885cfd50543b0f49f47b9b99e1 100644 --- a/package.json +++ b/package.json @@ -108,7 +108,7 @@ "stylelint-order": "^4.1.0", "ts-node": "^9.1.1", "typescript": "4.2.3", - "vite": "2.1.1", + "vite": "2.0.5", "vite-plugin-compression": "^0.2.3", "vite-plugin-html": "^2.0.3", "vite-plugin-imagemin": "^0.2.9", diff --git a/src/components/Menu/src/components/BasicSubMenuItem.vue b/src/components/Menu/src/components/BasicSubMenuItem.vue index bc6cee706cabc9bc6255c9240c9aa4ab4540fa26..d7903defbf6bdd075a557ebc5a460115645e4e2d 100644 --- a/src/components/Menu/src/components/BasicSubMenuItem.vue +++ b/src/components/Menu/src/components/BasicSubMenuItem.vue @@ -39,6 +39,7 @@ const getShowMenu = computed(() => !props.item.meta?.hideMenu); function menuHasChildren(menuTreeItem: MenuType): boolean { return ( + !menuTreeItem.meta?.hideChildrenInMenu && Reflect.has(menuTreeItem, 'children') && !!menuTreeItem.children && menuTreeItem.children.length > 0 diff --git a/src/components/SimpleMenu/src/SimpleSubMenu.vue b/src/components/SimpleMenu/src/SimpleSubMenu.vue index 47467fb72c60dc273b280f7063fa8d9ed7cba1f8..0b43b51421f437b5cf54293287e0de51a7af6d47 100644 --- a/src/components/SimpleMenu/src/SimpleSubMenu.vue +++ b/src/components/SimpleMenu/src/SimpleSubMenu.vue @@ -91,6 +91,7 @@ function menuHasChildren(menuTreeItem: Menu): boolean { return ( + !menuTreeItem.meta?.hideChildrenInMenu && Reflect.has(menuTreeItem, 'children') && !!menuTreeItem.children && menuTreeItem.children.length > 0 diff --git a/src/layouts/default/header/components/Breadcrumb.vue b/src/layouts/default/header/components/Breadcrumb.vue index 440845da44fed35768e2981a5df7ed2c879502c4..08ebc7f4ca68dccd1e621bd0615e91403533c1e8 100644 --- a/src/layouts/default/header/components/Breadcrumb.vue +++ b/src/layouts/default/header/components/Breadcrumb.vue @@ -54,7 +54,13 @@ watchEffect(async () => { if (currentRoute.value.name === REDIRECT_NAME) return; const menus = await getMenus(); - const path = currentRoute.value.path; + const routeMatched = currentRoute.value.matched; + const cur = routeMatched?.[routeMatched.length - 1]; + let path = currentRoute.value.path; + + if (cur && cur?.meta?.currentActiveMenu) { + path = cur.meta.currentActiveMenu as string; + } const parent = getAllParentPath(menus, path); @@ -70,27 +76,23 @@ (item) => item.path !== PageEnum.BASE_HOME ); - // if (filterBreadcrumbList.length === breadcrumbList.length) { - // filterBreadcrumbList.unshift(({ - // path: PageEnum.BASE_HOME, - // meta: { - // title: t('layout.header.home'), - // isLink: true, - // }, - // } as unknown) as RouteLocationMatched); - // } - if (currentRoute.value.meta?.currentActiveMenu) { - filterBreadcrumbList.push((currentRoute.value as unknown) as RouteLocationMatched); + filterBreadcrumbList.push(({ + ...currentRoute.value, + name: currentRoute.value.meta?.title || currentRoute.value.name, + } as unknown) as RouteLocationMatched); } - routes.value = subRouteExtraction(filterBreadcrumbList); + routes.value = filterBreadcrumbList; }); function getMatched(menus: Menu[], parent: string[]) { const metched: Menu[] = []; menus.forEach((item) => { if (parent.includes(item.path)) { - metched.push(item); + metched.push({ + ...item, + name: item.meta?.title || item.name, + }); } if (item.children?.length) { metched.push(...getMatched(item.children, parent)); @@ -99,22 +101,6 @@ return metched; } - function subRouteExtraction(routeList: RouteLocationMatched[]) { - const resultRoutes: RouteLocationMatched[] = []; - routeList.forEach((route) => { - if (route.children?.length === 1) { - const subRoute = route.children[0] as RouteLocationMatched; - const subRouteName = subRoute.name as string; - const routeName = route.name; - if (subRouteName && `${subRouteName}Parent` === routeName) { - route = subRoute; - } - } - resultRoutes.push(route); - }); - return resultRoutes; - } - function filterItem(list: RouteLocationMatched[]) { let resultList = filter(list, (item) => { const { meta } = item; diff --git a/src/layouts/default/header/index.less b/src/layouts/default/header/index.less index c079dc277def887476001e23f2c89d0e7002a895..1e45a7e74ca0839d245058905c2326885fd6d897 100644 --- a/src/layouts/default/header/index.less +++ b/src/layouts/default/header/index.less @@ -67,7 +67,7 @@ .@{header-trigger-prefix-cls} { display: flex; height: 100%; - padding: 1px 10px 0 16px; + padding: 1px 10px 0 10px; cursor: pointer; align-items: center; diff --git a/src/router/routes/modules/dashboard.ts b/src/router/routes/modules/dashboard.ts index cd93d8bd0f08819a3699d430795067b997a752c1..320a93bfdd466e211ce25d9ddd96ff8f8b9ebc88 100644 --- a/src/router/routes/modules/dashboard.ts +++ b/src/router/routes/modules/dashboard.ts @@ -11,6 +11,7 @@ const dashboard: AppRouteModule = { meta: { icon: 'ion:grid-outline', title: t('routes.dashboard.dashboard'), + hideChildrenInMenu: true, }, children: [ { diff --git a/src/router/routes/modules/demo/feat.ts b/src/router/routes/modules/demo/feat.ts index bf0e5b4e9e8e01dca3ef28d00a00b6506aa39278..d4a79ec2da55684aae44d5f736b13c449e31ef1b 100644 --- a/src/router/routes/modules/demo/feat.ts +++ b/src/router/routes/modules/demo/feat.ts @@ -81,7 +81,7 @@ const feat: AppRouteModule = { component: () => import('/@/views/demo/feat/breadcrumb/ChildrenList.vue'), meta: { title: t('routes.demo.feat.breadcrumbChildren'), - hideBreadcrumb: true, + // hideBreadcrumb: true, }, }, { diff --git a/src/router/types.ts b/src/router/types.ts index 60d6f6fcdbd3731fde807b27fcecb8675d85f4a1..759f6f3639ff5f2a27ac90d6b13601e7ee390743 100644 --- a/src/router/types.ts +++ b/src/router/types.ts @@ -30,6 +30,9 @@ export interface RouteMeta { // Whether the route has been dynamically added hideBreadcrumb?: boolean; + // Hide submenu + hideChildrenInMenu?: boolean; + // Carrying parameters carryParam?: boolean; diff --git a/src/settings/designSetting.ts b/src/settings/designSetting.ts index df0d679b4dfccca732b24cf93020d00677dc9984..e354d9064edebe22366fed783b71ed2330ead841 100644 --- a/src/settings/designSetting.ts +++ b/src/settings/designSetting.ts @@ -31,8 +31,8 @@ export const HEADER_PRESET_BG_COLOR_LIST: string[] = [ // sider preset color export const SIDE_BAR_BG_COLOR_LIST: string[] = [ - '#273352', '#001529', + '#273352', '#ffffff', '#191b24', '#191a23', diff --git a/yarn.lock b/yarn.lock index 64b4ce22b8fc65e244110102e1c9ed792b9e28fe..aa3c20f4e497ab85aa8f0b5225a40b73dec7d931 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4734,7 +4734,7 @@ esbuild-register@^2.2.0: dependencies: jsonc-parser "^3.0.0" -esbuild@^0.8.57: +esbuild@^0.8.52, esbuild@^0.8.57: version "0.8.57" resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.8.57.tgz#a42d02bc2b57c70bcd0ef897fe244766bb6dd926" integrity sha512-j02SFrUwFTRUqiY0Kjplwjm1psuzO1d6AjaXKuOR9hrY0HuPsT6sV42B6myW34h1q4CRy+Y3g4RU/cGJeI/nNA== @@ -11634,12 +11634,12 @@ vite-plugin-windicss@0.8.4: "@windicss/plugin-utils" "0.8.4" windicss "^2.4.5" -vite@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/vite/-/vite-2.1.1.tgz#13c7a7a5665b435f28fe8549caab181e0ad9af7b" - integrity sha512-nlTQrfYIkahcElD8O/oogbLbuKgAZRbvoFOth3GmRSglfPdY4RgfBjj0Fu7HeCU/2u3Jxc6jW4UuV22LGw1Yaw== +vite@2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/vite/-/vite-2.0.5.tgz#ac46857a3fa8686d077921e61bd48a986931df1d" + integrity sha512-QTgEDbq1WsTtr6j+++ewjhBFEk6c8v0xz4fb/OWJQKNYU8ZZtphOshwOqAlnarSstPBtWCBR0tsugXx6ajfoUg== dependencies: - esbuild "^0.9.2" + esbuild "^0.8.52" postcss "^8.2.1" resolve "^1.19.0" rollup "^2.38.5"