diff --git a/package.json b/package.json index e32c0c7e..aea8beec 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "form-data": "^4.0.0", "makeit-captcha": "^1.2.5", "naive-ui": "^2.19.9", - "pinia": "^2.0.0-rc.13", + "pinia": "^2.0.0-rc.14", "qs": "^6.10.1", "vue": "^3.2.20", "vue-router": "^4.0.11" @@ -34,7 +34,7 @@ "devDependencies": { "@commitlint/cli": "^13.2.1", "@commitlint/config-conventional": "^13.2.0", - "@iconify/json": "^1.1.416", + "@iconify/json": "^1.1.417", "@iconify/vue": "^3.0.0", "@types/chroma-js": "^2.1.3", "@types/qs": "^6.9.7", @@ -61,7 +61,7 @@ "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.25.2", "eslint-plugin-prettier": "^4.0.0", - "eslint-plugin-vue": "^7.19.1", + "eslint-plugin-vue": "^7.20.0", "husky": "^7.0.2", "lint-staged": "^11.2.3", "patch-package": "^6.4.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fa64defc..6dd42691 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3,7 +3,7 @@ lockfileVersion: 5.3 specifiers: '@commitlint/cli': ^13.2.1 '@commitlint/config-conventional': ^13.2.0 - '@iconify/json': ^1.1.416 + '@iconify/json': ^1.1.417 '@iconify/vue': ^3.0.0 '@types/chroma-js': ^2.1.3 '@types/qs': ^6.9.7 @@ -35,14 +35,14 @@ specifiers: eslint-config-prettier: ^8.3.0 eslint-plugin-import: ^2.25.2 eslint-plugin-prettier: ^4.0.0 - eslint-plugin-vue: ^7.19.1 + eslint-plugin-vue: ^7.20.0 form-data: ^4.0.0 husky: ^7.0.2 lint-staged: ^11.2.3 makeit-captcha: ^1.2.5 naive-ui: ^2.19.9 patch-package: ^6.4.7 - pinia: ^2.0.0-rc.13 + pinia: ^2.0.0-rc.14 postinstall-postinstall: ^2.1.0 prettier: ^2.4.1 qs: ^6.10.1 @@ -69,7 +69,7 @@ dependencies: form-data: 4.0.0 makeit-captcha: registry.npmmirror.com/makeit-captcha/1.2.5 naive-ui: registry.npmmirror.com/naive-ui/2.19.9_vue@3.2.20 - pinia: registry.npmmirror.com/pinia/2.0.0-rc.13_typescript@4.4.4+vue@3.2.20 + pinia: registry.npmmirror.com/pinia/2.0.0-rc.14_typescript@4.4.4+vue@3.2.20 qs: 6.10.1 vue: registry.npmmirror.com/vue/3.2.20 vue-router: registry.nlark.com/vue-router/4.0.11_vue@3.2.20 @@ -77,7 +77,7 @@ dependencies: devDependencies: '@commitlint/cli': registry.npmmirror.com/@commitlint/cli/13.2.1 '@commitlint/config-conventional': registry.npmmirror.com/@commitlint/config-conventional/13.2.0 - '@iconify/json': registry.npmmirror.com/@iconify/json/1.1.416 + '@iconify/json': registry.npmmirror.com/@iconify/json/1.1.417 '@iconify/vue': registry.nlark.com/@iconify/vue/3.0.0_vue@3.2.20 '@types/chroma-js': registry.nlark.com/@types/chroma-js/2.1.3 '@types/qs': registry.nlark.com/@types/qs/6.9.7 @@ -94,7 +94,7 @@ devDependencies: '@vitejs/plugin-vue': registry.npmmirror.com/@vitejs/plugin-vue/1.9.3_vite@2.6.10 '@vue/compiler-sfc': registry.npmmirror.com/@vue/compiler-sfc/3.2.20 '@vue/eslint-config-prettier': 6.0.0_25eba323c3088add261186b25106dbd0 - '@vue/eslint-config-typescript': registry.npmmirror.com/@vue/eslint-config-typescript/8.0.0_e85d40dbf1f7b4357afc93f9c6690188 + '@vue/eslint-config-typescript': registry.npmmirror.com/@vue/eslint-config-typescript/8.0.0_f0343b52b3e342de154fde57f59f8fba commitizen: registry.nlark.com/commitizen/4.2.4 cz-conventional-changelog: registry.nlark.com/cz-conventional-changelog/3.3.0 cz-customizable: registry.nlark.com/cz-customizable/6.3.0 @@ -104,7 +104,7 @@ devDependencies: eslint-config-prettier: registry.nlark.com/eslint-config-prettier/8.3.0_eslint@8.0.1 eslint-plugin-import: registry.npmmirror.com/eslint-plugin-import/2.25.2_eslint@8.0.1 eslint-plugin-prettier: registry.nlark.com/eslint-plugin-prettier/4.0.0_15313026b01cdd263118061498e273ac - eslint-plugin-vue: registry.npmmirror.com/eslint-plugin-vue/7.19.1_eslint@8.0.1 + eslint-plugin-vue: registry.npmmirror.com/eslint-plugin-vue/7.20.0_eslint@8.0.1 husky: registry.nlark.com/husky/7.0.2 lint-staged: registry.npmmirror.com/lint-staged/11.2.3 patch-package: registry.nlark.com/patch-package/6.4.7 @@ -199,7 +199,7 @@ packages: dependencies: nice-try: 1.0.5 path-key: 2.0.1 - semver: 5.7.1 + semver: registry.nlark.com/semver/5.7.1 shebang-command: 1.2.0 which: 1.3.1 dev: true @@ -1073,7 +1073,7 @@ packages: dev: true registry.nlark.com/acorn/7.4.1: - resolution: {integrity: sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz} + resolution: {integrity: sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz} name: acorn version: 7.4.1 engines: {node: '>=0.4.0'} @@ -1714,10 +1714,31 @@ packages: name: debug version: 4.3.2 engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: registry.npmmirror.com/ms/2.1.2 dev: true + registry.nlark.com/debug/4.3.2_supports-color@8.1.1: + resolution: {integrity: sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/debug/download/debug-4.3.2.tgz} + id: registry.nlark.com/debug/4.3.2 + name: debug + version: 4.3.2 + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms/2.1.2 + supports-color: registry.nlark.com/supports-color/8.1.1 + dev: true + registry.nlark.com/decamelize-keys/1.1.0: resolution: {integrity: sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/decamelize-keys/download/decamelize-keys-1.1.0.tgz} name: decamelize-keys @@ -4549,6 +4570,8 @@ packages: esquery: 1.4.0 lodash: 4.17.21 semver: 6.3.0 + transitivePeerDependencies: + - supports-color dev: true registry.nlark.com/vue-router/4.0.11_vue@3.2.20: @@ -4898,6 +4921,8 @@ packages: js-yaml: registry.nlark.com/js-yaml/3.14.1 minimatch: registry.nlark.com/minimatch/3.0.4 strip-json-comments: registry.nlark.com/strip-json-comments/3.1.1 + transitivePeerDependencies: + - supports-color dev: true registry.npmmirror.com/@humanwhocodes/config-array/0.6.0: @@ -4909,12 +4934,14 @@ packages: '@humanwhocodes/object-schema': registry.nlark.com/@humanwhocodes/object-schema/1.2.0 debug: registry.nlark.com/debug/4.3.2 minimatch: registry.nlark.com/minimatch/3.0.4 + transitivePeerDependencies: + - supports-color dev: true - registry.npmmirror.com/@iconify/json/1.1.416: - resolution: {integrity: sha1-ADZZd8htoUoI9qOxqKKTOT1+Vfk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@iconify/json/download/@iconify/json-1.1.416.tgz} + registry.npmmirror.com/@iconify/json/1.1.417: + resolution: {integrity: sha1-SFH/ZbsXkUULG7uXabSZNPLAVDI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@iconify/json/download/@iconify/json-1.1.417.tgz} name: '@iconify/json' - version: 1.1.416 + version: 1.1.417 dev: true registry.npmmirror.com/@iconify/types/1.0.10: @@ -4989,6 +5016,8 @@ packages: semver: registry.nlark.com/semver/7.3.5 tsutils: registry.nlark.com/tsutils/3.21.0_typescript@4.4.4 typescript: registry.npmmirror.com/typescript/4.4.4 + transitivePeerDependencies: + - supports-color dev: true registry.npmmirror.com/@typescript-eslint/experimental-utils/5.1.0_eslint@8.0.1+typescript@4.4.4: @@ -5008,6 +5037,7 @@ packages: eslint-scope: registry.nlark.com/eslint-scope/5.1.1 eslint-utils: registry.nlark.com/eslint-utils/3.0.0_eslint@8.0.1 transitivePeerDependencies: + - supports-color - typescript dev: true @@ -5030,6 +5060,8 @@ packages: debug: registry.nlark.com/debug/4.3.2 eslint: registry.npmmirror.com/eslint/8.0.1 typescript: registry.npmmirror.com/typescript/4.4.4 + transitivePeerDependencies: + - supports-color dev: true registry.npmmirror.com/@typescript-eslint/scope-manager/5.1.0: @@ -5069,6 +5101,8 @@ packages: semver: registry.nlark.com/semver/7.3.5 tsutils: registry.nlark.com/tsutils/3.21.0_typescript@4.4.4 typescript: registry.npmmirror.com/typescript/4.4.4 + transitivePeerDependencies: + - supports-color dev: true registry.npmmirror.com/@typescript-eslint/visitor-keys/5.1.0: @@ -5201,7 +5235,7 @@ packages: version: 6.0.0-beta.19 dev: false - registry.npmmirror.com/@vue/eslint-config-typescript/8.0.0_e85d40dbf1f7b4357afc93f9c6690188: + registry.npmmirror.com/@vue/eslint-config-typescript/8.0.0_f0343b52b3e342de154fde57f59f8fba: resolution: {integrity: sha1-56WqDN9fXVngX36jEOiVSkm4/EE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/eslint-config-typescript/download/@vue/eslint-config-typescript-8.0.0.tgz?cache=0&sync_timestamp=1634109955383&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40vue%2Feslint-config-typescript%2Fdownload%2F%40vue%2Feslint-config-typescript-8.0.0.tgz} id: registry.npmmirror.com/@vue/eslint-config-typescript/8.0.0 name: '@vue/eslint-config-typescript' @@ -5216,8 +5250,10 @@ packages: '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.1.0_5c3e9dad3ab5199adbc8541e4d2d5a4f '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser/5.1.0_eslint@8.0.1+typescript@4.4.4 eslint: registry.npmmirror.com/eslint/8.0.1 - eslint-plugin-vue: registry.npmmirror.com/eslint-plugin-vue/7.19.1_eslint@8.0.1 + eslint-plugin-vue: registry.npmmirror.com/eslint-plugin-vue/7.20.0_eslint@8.0.1 vue-eslint-parser: registry.nlark.com/vue-eslint-parser/7.10.0_eslint@8.0.1 + transitivePeerDependencies: + - supports-color dev: true registry.npmmirror.com/@vue/reactivity/3.2.20: @@ -5320,6 +5356,8 @@ packages: debug: registry.nlark.com/debug/4.3.2 jiti: registry.npmmirror.com/jiti/1.12.9 windicss: registry.npmmirror.com/windicss/3.1.9 + transitivePeerDependencies: + - supports-color dev: true registry.npmmirror.com/@windicss/plugin-utils/1.4.12: @@ -5334,6 +5372,8 @@ packages: magic-string: registry.nlark.com/magic-string/0.25.7 micromatch: registry.nlark.com/micromatch/4.0.4 windicss: registry.npmmirror.com/windicss/3.1.9 + transitivePeerDependencies: + - supports-color dev: true registry.npmmirror.com/array-includes/3.1.4: @@ -5690,20 +5730,22 @@ packages: tsconfig-paths: registry.nlark.com/tsconfig-paths/3.11.0 dev: true - registry.npmmirror.com/eslint-plugin-vue/7.19.1_eslint@8.0.1: - resolution: {integrity: sha1-Q1+yznEoQqlTCyjqy4g2gOjqpPM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-vue/download/eslint-plugin-vue-7.19.1.tgz?cache=0&sync_timestamp=1633513913072&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-vue%2Fdownload%2Feslint-plugin-vue-7.19.1.tgz} - id: registry.npmmirror.com/eslint-plugin-vue/7.19.1 + registry.npmmirror.com/eslint-plugin-vue/7.20.0_eslint@8.0.1: + resolution: {integrity: sha1-mMIYhaa/3wcTw6kpV6Wv6q7tklM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-vue/download/eslint-plugin-vue-7.20.0.tgz} + id: registry.npmmirror.com/eslint-plugin-vue/7.20.0 name: eslint-plugin-vue - version: 7.19.1 + version: 7.20.0 engines: {node: '>=8.10'} peerDependencies: - eslint: ^6.2.0 || ^7.0.0 || ^8.0.0-0 + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 dependencies: eslint: registry.npmmirror.com/eslint/8.0.1 eslint-utils: registry.nlark.com/eslint-utils/2.1.0 natural-compare: registry.nlark.com/natural-compare/1.4.0 semver: registry.nlark.com/semver/6.3.0 - vue-eslint-parser: registry.nlark.com/vue-eslint-parser/7.10.0_eslint@8.0.1 + vue-eslint-parser: registry.npmmirror.com/vue-eslint-parser/7.10.0_eslint@8.0.1 + transitivePeerDependencies: + - supports-color dev: true registry.npmmirror.com/eslint/8.0.1: @@ -5751,6 +5793,8 @@ packages: strip-json-comments: registry.nlark.com/strip-json-comments/3.1.1 text-table: registry.nlark.com/text-table/0.2.0 v8-compile-cache: registry.nlark.com/v8-compile-cache/2.3.0 + transitivePeerDependencies: + - supports-color dev: true registry.npmmirror.com/find-up/2.1.0: @@ -5887,7 +5931,7 @@ packages: colorette: registry.npmmirror.com/colorette/1.4.0 commander: registry.nlark.com/commander/8.2.0 cosmiconfig: registry.nlark.com/cosmiconfig/7.0.1 - debug: registry.nlark.com/debug/4.3.2 + debug: registry.nlark.com/debug/4.3.2_supports-color@8.1.1 enquirer: registry.nlark.com/enquirer/2.3.6 execa: registry.nlark.com/execa/5.1.1 listr2: registry.npmmirror.com/listr2/3.12.2_enquirer@2.3.6 @@ -6081,11 +6125,11 @@ packages: version: 0.2.1 dev: true - registry.npmmirror.com/pinia/2.0.0-rc.13_typescript@4.4.4+vue@3.2.20: - resolution: {integrity: sha1-ufhY2ieBMEae2N2J+DSN5U8hZUE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pinia/download/pinia-2.0.0-rc.13.tgz} - id: registry.npmmirror.com/pinia/2.0.0-rc.13 + registry.npmmirror.com/pinia/2.0.0-rc.14_typescript@4.4.4+vue@3.2.20: + resolution: {integrity: sha1-xcAExgtWgG9GXK4brM45Is8xY6w=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pinia/download/pinia-2.0.0-rc.14.tgz} + id: registry.npmmirror.com/pinia/2.0.0-rc.14 name: pinia - version: 2.0.0-rc.13 + version: 2.0.0-rc.14 peerDependencies: '@vue/composition-api': ^1.2.4 typescript: ^4.4.3 @@ -6272,6 +6316,7 @@ packages: unplugin: registry.npmmirror.com/unplugin/0.2.16_vite@2.6.10 transitivePeerDependencies: - rollup + - supports-color - vite - webpack dev: true @@ -6298,6 +6343,7 @@ packages: vue: registry.npmmirror.com/vue/3.2.20 transitivePeerDependencies: - rollup + - supports-color - vite - webpack dev: true @@ -6311,6 +6357,13 @@ packages: rollup: ^2.50.0 vite: ^2.3.0 webpack: 4 || 5 + peerDependenciesMeta: + rollup: + optional: true + vite: + optional: true + webpack: + optional: true dependencies: vite: registry.npmmirror.com/vite/2.6.10_sass@1.43.2 webpack-virtual-modules: registry.nlark.com/webpack-virtual-modules/0.4.3 @@ -6346,6 +6399,8 @@ packages: debug: registry.nlark.com/debug/4.3.2 vite: registry.npmmirror.com/vite/2.6.10_sass@1.43.2 windicss: registry.npmmirror.com/windicss/3.1.9 + transitivePeerDependencies: + - supports-color dev: true registry.npmmirror.com/vite/2.6.10_sass@1.43.2: @@ -6528,6 +6583,27 @@ packages: vscode-typescript-languageservice: registry.npmmirror.com/vscode-typescript-languageservice/0.28.7 dev: true + registry.npmmirror.com/vue-eslint-parser/7.10.0_eslint@8.0.1: + resolution: {integrity: sha1-6k5LEP0QqjXIp5rHg0iNirzSm+g=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-eslint-parser/download/vue-eslint-parser-7.10.0.tgz?cache=0&sync_timestamp=1634606837435&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fvue-eslint-parser%2Fdownload%2Fvue-eslint-parser-7.10.0.tgz} + id: registry.npmmirror.com/vue-eslint-parser/7.10.0 + name: vue-eslint-parser + version: 7.10.0 + engines: {node: '>=8.10'} + peerDependencies: + eslint: '>=5.0.0' + dependencies: + debug: registry.nlark.com/debug/4.3.2 + eslint: registry.npmmirror.com/eslint/8.0.1 + eslint-scope: registry.nlark.com/eslint-scope/5.1.1 + eslint-visitor-keys: registry.nlark.com/eslint-visitor-keys/1.3.0 + espree: registry.nlark.com/espree/6.2.1 + esquery: registry.nlark.com/esquery/1.4.0 + lodash: registry.nlark.com/lodash/4.17.21 + semver: registry.nlark.com/semver/6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmmirror.com/vue-tsc/0.28.7_typescript@4.4.4: resolution: {integrity: sha1-pvp0bdDK/BrqBs3nTSKz5x7XJm8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-tsc/download/vue-tsc-0.28.7.tgz} id: registry.npmmirror.com/vue-tsc/0.28.7 diff --git a/src/interface/common.ts b/src/interface/common.ts index 3a30dfa9..3e450223 100644 --- a/src/interface/common.ts +++ b/src/interface/common.ts @@ -15,6 +15,8 @@ interface RouteMeta { isNotMenu?: boolean; /** 菜单和面包屑对应的图标 */ icon?: Component; + /** 路由作为菜单时的排序 */ + order?: number; } export type CustomRoute = RouteRecordRaw & { meta: RouteMeta }; diff --git a/src/router/helpers/index.ts b/src/router/helpers/index.ts index 71293c10..486b8027 100644 --- a/src/router/helpers/index.ts +++ b/src/router/helpers/index.ts @@ -1,5 +1,7 @@ import type { Component } from 'vue'; import { getRouteNameMap } from '@/utils'; +import { BasicLayout, BlankLayout } from '@/layouts'; +import type { CustomRoute } from '@/interface'; import getCacheRoutes from './cache'; import transformRouteToMenu from './menus'; @@ -13,4 +15,26 @@ export function setCacheName(component: Component, name?: string) { /** 路由name map */ export const RouteNameMap = getRouteNameMap(); +function getSingleRoute(route: CustomRoute, container: Component) { + const routeItem: CustomRoute = { + name: `${route.name as string}_`, + path: `${route.path}_`, + component: container, + redirect: { name: route.name }, + meta: { + isNotMenu: true + }, + children: [route] + }; + + return routeItem; +} + +export function getSingleBasicLayoutRoute(route: CustomRoute) { + return getSingleRoute(route, BasicLayout); +} +export function getSingleBlankLayoutRoute(route: CustomRoute) { + return getSingleRoute(route, BlankLayout); +} + export { getCacheRoutes, transformRouteToMenu }; diff --git a/src/router/helpers/menus.ts b/src/router/helpers/menus.ts index 454bfc39..6f134b1e 100644 --- a/src/router/helpers/menus.ts +++ b/src/router/helpers/menus.ts @@ -22,24 +22,26 @@ function addPartialProps(menuItem: GlobalMenuOption, icon?: Component, children? export default function transformRouteToMenu(routes: CustomRoute[]) { const globalMenu: GlobalMenuOption[] = []; routes.forEach(route => { + const { name, path, meta } = route; + const routeName = name as string; + let menuChildren: GlobalMenuOption[] | undefined; + if (route.children) { + menuChildren = transformRouteToMenu(route.children as CustomRoute[]); + } + const menuItem: GlobalMenuOption = addPartialProps( + { + key: routeName, + label: meta?.title ?? routeName, + routeName, + routePath: path + }, + meta?.icon, + menuChildren + ); if (asMenu(route)) { - const { name, path, meta } = route; - const routeName = name as string; - let menuChildren: GlobalMenuOption[] | undefined; - if (route.children) { - menuChildren = transformRouteToMenu(route.children as CustomRoute[]); - } - const menuItem: GlobalMenuOption = addPartialProps( - { - key: routeName, - label: meta?.title ?? routeName, - routeName, - routePath: path - }, - meta?.icon, - menuChildren - ); globalMenu.push(menuItem); + } else if (menuChildren) { + globalMenu.push(...menuChildren); } }); return globalMenu; diff --git a/src/router/modules/_single.ts b/src/router/modules/_single.ts deleted file mode 100644 index 01aab31e..00000000 --- a/src/router/modules/_single.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { CustomRoute } from '@/interface'; -import { EnumRoutePath } from '@/enum'; -import { BasicLayout } from '@/layouts'; -import { RouteNameMap } from '../helpers'; -import { ROUTE_HOME } from '../routes'; -import ABOUT from './about'; - -const SINGLE: CustomRoute = { - name: RouteNameMap.get('root'), - path: EnumRoutePath.root, - component: BasicLayout, - redirect: { name: ROUTE_HOME.name }, - meta: { - isNotMenu: true - }, - children: [ABOUT] -}; - -export default SINGLE; diff --git a/src/router/modules/about.ts b/src/router/modules/about.ts index 457e88a1..43f9445a 100644 --- a/src/router/modules/about.ts +++ b/src/router/modules/about.ts @@ -1,10 +1,10 @@ import { BookInformation24Regular } from '@vicons/fluent'; import type { CustomRoute } from '@/interface'; import { EnumRoutePath, EnumRouteTitle } from '@/enum'; -import { RouteNameMap } from '../helpers'; +import { RouteNameMap, getSingleBasicLayoutRoute } from '../helpers'; import { About } from '../components'; -const ABOUT: CustomRoute = { +const ABOUT: CustomRoute = getSingleBasicLayoutRoute({ name: RouteNameMap.get('about'), path: EnumRoutePath.about, component: About, @@ -13,6 +13,5 @@ const ABOUT: CustomRoute = { title: EnumRouteTitle.about, icon: BookInformation24Regular } -}; - +}); export default ABOUT; diff --git a/src/router/modules/index.ts b/src/router/modules/index.ts index 0a33d929..0a61fc6c 100644 --- a/src/router/modules/index.ts +++ b/src/router/modules/index.ts @@ -1,4 +1,4 @@ -import SIGNLE from './_single'; // 没有子菜单的单独页面 +import ROOT from './root'; // 没有子菜单的单独页面 import DASHBOARD from './dashboard'; import DOCUMENT from './document'; import COMPONENT from './component'; @@ -6,4 +6,4 @@ import EXCEPTION from './exception'; import MULTI_MENU from './multiMenu'; import ABOUT from './about'; -export default [SIGNLE, DASHBOARD, DOCUMENT, COMPONENT, EXCEPTION, MULTI_MENU, ABOUT]; +export default [ROOT, DASHBOARD, DOCUMENT, COMPONENT, EXCEPTION, MULTI_MENU, ABOUT]; diff --git a/src/router/modules/root.ts b/src/router/modules/root.ts index 62d90f44..515328ac 100644 --- a/src/router/modules/root.ts +++ b/src/router/modules/root.ts @@ -1,13 +1,11 @@ import type { CustomRoute } from '@/interface'; import { EnumRoutePath } from '@/enum'; -import { BasicLayout } from '@/layouts'; import { RouteNameMap } from '../helpers'; import { ROUTE_HOME } from '../routes'; const ROOT: CustomRoute = { name: RouteNameMap.get('root'), path: EnumRoutePath.root, - component: BasicLayout, redirect: { name: ROUTE_HOME.name }, meta: { isNotMenu: true diff --git a/src/utils/router/index.ts b/src/utils/router/index.ts index 359628c7..de81ed86 100644 --- a/src/utils/router/index.ts +++ b/src/utils/router/index.ts @@ -15,6 +15,7 @@ export function setRouterCacheName(component: Component, name?: string) { } } +// 获取登录后的重定向地址 export function getLoginRedirectUrl() { const path = router.currentRoute.value.fullPath as EnumRoutePath; const redirectUrl = path === EnumRoutePath.root ? undefined : path;