From 3131e00f0f4a66756f547892a8d312cde3aaf868 Mon Sep 17 00:00:00 2001 From: Soybean Date: Sun, 15 Jan 2023 23:32:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(projects):=20add=20new=20route=20plugin=20?= =?UTF-8?q?@soybeanjs/vite-plugin-vue-page-route=20[=E9=9B=86=E6=88=90?= =?UTF-8?q?=E6=96=B0=E7=9A=84=E8=B7=AF=E7=94=B1=E6=8F=92=E4=BB=B6]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 2 +- build/plugins/index.ts | 4 +- package.json | 8 +- pnpm-lock.yaml | 309 ++++++++++++++++++++++++----------- src/router/modules/about.ts | 4 +- src/typings/page-route.d.ts | 122 ++++++++++++++ src/typings/route.d.ts | 8 +- src/typings/router-page.d.ts | 67 -------- src/views/index.ts | 5 +- 9 files changed, 357 insertions(+), 172 deletions(-) create mode 100644 src/typings/page-route.d.ts delete mode 100644 src/typings/router-page.d.ts diff --git a/.env b/.env index 94de8bfa..8b27fe6f 100644 --- a/.env +++ b/.env @@ -7,7 +7,7 @@ VITE_APP_TITLE=Soybean管理系统 VITE_APP_DESC=SoybeanAdmin是一个中后台管理系统模版 # 权限路由模式: static | dynamic -VITE_AUTH_ROUTE_MODE=dynamic +VITE_AUTH_ROUTE_MODE=static # 路由首页(根路由重定向), 用于static模式的权限路由,dynamic模式取决于后端返回的路由首页 VITE_ROUTE_HOME_PATH=/dashboard/analysis diff --git a/build/plugins/index.ts b/build/plugins/index.ts index cd180721..eec2abea 100644 --- a/build/plugins/index.ts +++ b/build/plugins/index.ts @@ -3,7 +3,7 @@ import vue from '@vitejs/plugin-vue'; import vueJsx from '@vitejs/plugin-vue-jsx'; import unocss from '@unocss/vite'; import progress from 'vite-plugin-progress'; -import routerPage from '@soybeanjs/router-page'; +import pageRoute from '@soybeanjs/vite-plugin-vue-page-route'; import html from './html'; import unplugin from './unplugin'; import mock from './mock'; @@ -16,7 +16,7 @@ import pwa from './pwa'; * @param viteEnv - 环境变量配置 */ export function setupVitePlugins(viteEnv: ImportMetaEnv): (PluginOption | PluginOption[])[] { - const plugins = [vue(), vueJsx(), html(viteEnv), ...unplugin(viteEnv), unocss(), mock, progress(), routerPage()]; + const plugins = [vue(), vueJsx(), html(viteEnv), ...unplugin(viteEnv), unocss(), mock, progress(), pageRoute()]; if (viteEnv.VITE_VISUALIZER === 'Y') { plugins.push(visualizer as PluginOption); diff --git a/package.json b/package.json index 0730899b..25a6a236 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "qs": "^6.11.0", "swiper": "^8.4.5", "ua-parser-js": "^1.0.32", - "vditor": "^3.8.18", + "vditor": "^3.9.0", "vue": "3.2.45", "vue-i18n": "^9.2.2", "vue-router": "^4.1.6", @@ -85,10 +85,10 @@ }, "devDependencies": { "@amap/amap-jsapi-types": "^0.0.10", - "@iconify/json": "^2.2.6", + "@iconify/json": "^2.2.7", "@iconify/vue": "^4.0.2", "@soybeanjs/cli": "^0.1.6", - "@soybeanjs/router-page": "1.0.3", + "@soybeanjs/vite-plugin-vue-page-route": "^0.0.5", "@types/bmapgl": "^0.0.5", "@types/crypto-js": "^4.1.1", "@types/node": "18.11.18", @@ -100,7 +100,7 @@ "@vitejs/plugin-vue-jsx": "^3.0.0", "conventional-changelog": "^3.1.25", "cross-env": "^7.0.3", - "eslint": "^8.31.0", + "eslint": "^8.32.0", "eslint-config-soybeanjs-vue": "^0.2.2", "lint-staged": "12.5.0", "mockjs": "^1.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 383484aa..d4ab68df 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,10 +10,10 @@ specifiers: '@antv/data-set': ^0.11.8 '@antv/g2': ^4.2.8 '@better-scroll/core': ^2.5.0 - '@iconify/json': ^2.2.6 + '@iconify/json': ^2.2.7 '@iconify/vue': ^4.0.2 '@soybeanjs/cli': ^0.1.6 - '@soybeanjs/router-page': 1.0.3 + '@soybeanjs/vite-plugin-vue-page-route': ^0.0.5 '@soybeanjs/vue-admin-layout': ^1.1.1 '@soybeanjs/vue-admin-tab': ^1.0.5 '@types/bmapgl': ^0.0.5 @@ -34,7 +34,7 @@ specifiers: crypto-js: ^4.1.1 dayjs: ^1.11.7 echarts: ^5.4.1 - eslint: ^8.31.0 + eslint: ^8.32.0 eslint-config-soybeanjs-vue: ^0.2.2 form-data: ^4.0.0 lint-staged: 12.5.0 @@ -57,7 +57,7 @@ specifiers: unplugin-vue-components: 0.22.12 unplugin-vue-macros: ^1.3.3 utility-types: ^3.10.0 - vditor: ^3.8.18 + vditor: ^3.9.0 vite: ^4.0.4 vite-plugin-compression: ^0.5.1 vite-plugin-html: ^3.2.0 @@ -94,7 +94,7 @@ dependencies: qs: 6.11.0 swiper: 8.4.5 ua-parser-js: 1.0.32 - vditor: 3.8.18 + vditor: 3.9.0 vue: 3.2.45 vue-i18n: 9.2.2_vue@3.2.45 vue-router: 4.1.6_vue@3.2.45 @@ -104,10 +104,10 @@ dependencies: devDependencies: '@amap/amap-jsapi-types': 0.0.10 - '@iconify/json': 2.2.6 + '@iconify/json': 2.2.7 '@iconify/vue': 4.0.2_vue@3.2.45 '@soybeanjs/cli': 0.1.6 - '@soybeanjs/router-page': 1.0.3 + '@soybeanjs/vite-plugin-vue-page-route': 0.0.5 '@types/bmapgl': 0.0.5 '@types/crypto-js': 4.1.1 '@types/node': 18.11.18 @@ -119,8 +119,8 @@ devDependencies: '@vitejs/plugin-vue-jsx': 3.0.0_vite@4.0.4+vue@3.2.45 conventional-changelog: 3.1.25 cross-env: 7.0.3 - eslint: 8.31.0 - eslint-config-soybeanjs-vue: 0.2.2_iukboom6ndih5an6iafl45j2fe + eslint: 8.32.0 + eslint-config-soybeanjs-vue: 0.2.2_7uibuqfxkfaozanbtbziikiqje lint-staged: 12.5.0 mockjs: 1.1.0_3y7clh66jsbznbjsqlxuh6722u node-html-to-image: 3.2.4 @@ -1867,8 +1867,8 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@iconify/json/2.2.6: - resolution: {integrity: sha512-fRP5PwXvX0PAGne1/xHvd6zVYiHq9dQzdvhhxamwJuNjoIVRWNNP5y465NkxybzEX94kn2JnoULkA9kbZkXoqA==} + /@iconify/json/2.2.7: + resolution: {integrity: sha512-cWDwr+KE0KNSFmxrR0rvM5AmP4JmJWCZiyhFZ1bywwBJsrV/x+19bLbEAvmn4pmKKYWCAy4F9clpVWynYslzoQ==} dependencies: '@iconify/types': 2.0.0 pathe: 1.0.0 @@ -2246,10 +2246,17 @@ packages: - supports-color dev: true - /@soybeanjs/router-page/1.0.3: - resolution: {integrity: sha512-jFGAdgcTnV6guMQh6rXBbPdKL3VkH0G0+SOdlUjEP5HZLRBUvqPhqb5iZWPP88v7HMvw0EUUPDTH4L1vuRr/qg==} + /@soybeanjs/vite-plugin-vue-page-route/0.0.5: + resolution: {integrity: sha512-rMxbLh6oyGyj1iXf4Bw81ZRxAGBZmz/LSOhQei2vDLRfyyQLA/+lGl9Qr1fzKUkD1o6UQ0I+eURioBsNvOPHAw==} dependencies: + '@swc/core': 1.3.26 + chokidar: 3.5.3 + execa: 5.1.1 fast-glob: 3.2.12 + fs-extra: 11.1.0 + kolorist: 1.6.0 + magic-string: 0.27.0 + micromatch: 4.0.5 dev: true /@soybeanjs/vue-admin-layout/1.1.1_vue@3.2.45: @@ -2292,6 +2299,117 @@ packages: string.prototype.matchall: 4.0.8 dev: true + /@swc/core-darwin-arm64/1.3.26: + resolution: {integrity: sha512-FWWflBfKRYrUJtko2xiedC5XCa31O75IZZqnTWuLpe9g3C5tnUuF3M8LSXZS/dn6wprome1MhtG9GMPkSYkhkg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64/1.3.26: + resolution: {integrity: sha512-0uQeebAtsewqJ2b35aPZstGrylwd6oJjUyAJOfVJNbremFSJ5JzytB3NoDCIw7CT5UQrSRpvD3mU95gfdQjDGA==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm-gnueabihf/1.3.26: + resolution: {integrity: sha512-06T+LbVFlyciQtwrUB5/a16A1ju1jFoYvd/hq9TWhf7GrtL43U7oJIgqMOPHx2j0+Ps2R3S6R/UUN5YXu618zA==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-gnu/1.3.26: + resolution: {integrity: sha512-2NT/0xALPfK+U01qIlHxjkGdIj6F0txhu1U2v6B0YP2+k0whL2gCgYeg9QUvkYEXSD5r1Yx+vcb2R/vaSCSClg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl/1.3.26: + resolution: {integrity: sha512-64KrTay9hC0mTvZ1AmEFmNEwV5QDjw9U7PJU5riotSc28I+Q/ZoM0qcSFW9JRRa6F2Tr+IfMtyv8+eB2//BQ5g==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-gnu/1.3.26: + resolution: {integrity: sha512-Te8G13l3dcRM1Mf3J4JzGUngzNXLKnMYlUmBOYN/ORsx7e+VNelR3zsTLHC0+0jGqELDgqvMyzDfk+dux/C/bQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-musl/1.3.26: + resolution: {integrity: sha512-nqQWuSM6OTKepUiQ9+rXgERq/JiO72RBOpXKO2afYppsL96sngjIRewV74v5f6IAfyzw+k+AhC5pgRA4Xu/Jkg==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-arm64-msvc/1.3.26: + resolution: {integrity: sha512-xx34mx+9IBV1sun7sxoNFiqNom9wiOuvsQFJUyQptCnZHgYwOr9OI204LBF95dCcBCZsTm2hT1wBnySJOeimYw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-ia32-msvc/1.3.26: + resolution: {integrity: sha512-48LZ/HKNuU9zl8c7qG6IQKb5rBCwmJgysGOmEGzTRBYxAf/x6Scmt0aqxCoV4J02HOs2WduCBDnhUKsSQ2kcXQ==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-x64-msvc/1.3.26: + resolution: {integrity: sha512-UPe7S+MezD/S6cKBIc50TduGzmw6PBz1Ms5p+5wDLOKYNS/LSEM4iRmLwvePzP5X8mOyesXrsbwxLy8KHP65Yw==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core/1.3.26: + resolution: {integrity: sha512-U7vEsaLn3IGg0XCRLJX/GTkK9WIfFHUX5USdrp1L2QD29sWPe25HqNndXmUR9KytzKmpDMNoUuHyiuhpVrnNeQ==} + engines: {node: '>=10'} + requiresBuild: true + optionalDependencies: + '@swc/core-darwin-arm64': 1.3.26 + '@swc/core-darwin-x64': 1.3.26 + '@swc/core-linux-arm-gnueabihf': 1.3.26 + '@swc/core-linux-arm64-gnu': 1.3.26 + '@swc/core-linux-arm64-musl': 1.3.26 + '@swc/core-linux-x64-gnu': 1.3.26 + '@swc/core-linux-x64-musl': 1.3.26 + '@swc/core-win32-arm64-msvc': 1.3.26 + '@swc/core-win32-ia32-msvc': 1.3.26 + '@swc/core-win32-x64-msvc': 1.3.26 + dev: true + /@szmarczak/http-timer/5.0.1: resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} @@ -2436,7 +2554,7 @@ packages: dev: true optional: true - /@typescript-eslint/eslint-plugin/5.48.0_k73wpmdolxikpyqun3p36akaaq: + /@typescript-eslint/eslint-plugin/5.48.0_jmtqj3bwz6xemlrp3yko2wnir4: resolution: {integrity: sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2447,12 +2565,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.48.0_iukboom6ndih5an6iafl45j2fe + '@typescript-eslint/parser': 5.48.0_7uibuqfxkfaozanbtbziikiqje '@typescript-eslint/scope-manager': 5.48.0 - '@typescript-eslint/type-utils': 5.48.0_iukboom6ndih5an6iafl45j2fe - '@typescript-eslint/utils': 5.48.0_iukboom6ndih5an6iafl45j2fe + '@typescript-eslint/type-utils': 5.48.0_7uibuqfxkfaozanbtbziikiqje + '@typescript-eslint/utils': 5.48.0_7uibuqfxkfaozanbtbziikiqje debug: 4.3.4 - eslint: 8.31.0 + eslint: 8.32.0 ignore: 5.2.4 natural-compare-lite: 1.4.0 regexpp: 3.2.0 @@ -2463,7 +2581,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.48.0_iukboom6ndih5an6iafl45j2fe: + /@typescript-eslint/parser/5.48.0_7uibuqfxkfaozanbtbziikiqje: resolution: {integrity: sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2477,7 +2595,7 @@ packages: '@typescript-eslint/types': 5.48.0 '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.4 debug: 4.3.4 - eslint: 8.31.0 + eslint: 8.32.0 typescript: 4.9.4 transitivePeerDependencies: - supports-color @@ -2491,7 +2609,7 @@ packages: '@typescript-eslint/visitor-keys': 5.48.0 dev: true - /@typescript-eslint/type-utils/5.48.0_iukboom6ndih5an6iafl45j2fe: + /@typescript-eslint/type-utils/5.48.0_7uibuqfxkfaozanbtbziikiqje: resolution: {integrity: sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2502,9 +2620,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.4 - '@typescript-eslint/utils': 5.48.0_iukboom6ndih5an6iafl45j2fe + '@typescript-eslint/utils': 5.48.0_7uibuqfxkfaozanbtbziikiqje debug: 4.3.4 - eslint: 8.31.0 + eslint: 8.32.0 tsutils: 3.21.0_typescript@4.9.4 typescript: 4.9.4 transitivePeerDependencies: @@ -2537,7 +2655,7 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.48.0_iukboom6ndih5an6iafl45j2fe: + /@typescript-eslint/utils/5.48.0_7uibuqfxkfaozanbtbziikiqje: resolution: {integrity: sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2548,9 +2666,9 @@ packages: '@typescript-eslint/scope-manager': 5.48.0 '@typescript-eslint/types': 5.48.0 '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.4 - eslint: 8.31.0 + eslint: 8.32.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.31.0 + eslint-utils: 3.0.0_eslint@8.32.0 semver: 7.3.8 transitivePeerDependencies: - supports-color @@ -3458,7 +3576,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001444 + caniuse-lite: 1.0.30001445 electron-to-chromium: 1.4.284 node-releases: 2.0.8 update-browserslist-db: 1.0.10_browserslist@4.21.4 @@ -3498,7 +3616,7 @@ packages: '@npmcli/move-file': 2.0.1 chownr: 2.0.0 fs-minipass: 2.1.0 - glob: 8.0.3 + glob: 8.1.0 infer-owner: 1.0.4 lru-cache: 7.14.1 minipass: 3.3.6 @@ -3522,7 +3640,7 @@ packages: dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.0 - glob: 8.0.3 + glob: 8.1.0 lru-cache: 7.14.1 minipass: 4.0.0 minipass-collect: 1.0.2 @@ -3612,8 +3730,8 @@ packages: engines: {node: '>=14.16'} dev: true - /caniuse-lite/1.0.30001444: - resolution: {integrity: sha512-ecER9xgJQVMqcrxThKptsW0pPxSae8R2RB87LNa+ivW9ppNWRHEplXcDzkCOP4LYWGj8hunXLqaiC41iBATNyg==} + /caniuse-lite/1.0.30001445: + resolution: {integrity: sha512-8sdQIdMztYmzfTMO6KfLny878Ln9c2M0fc7EH60IjlP4Dc4PiCy7K2Vl3ITmWgOyPgVQKa5x+UP/KqFsxj4mBg==} dev: true /ccount/1.1.0: @@ -5215,32 +5333,32 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-prettier/8.6.0_eslint@8.31.0: + /eslint-config-prettier/8.6.0_eslint@8.32.0: resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.31.0 + eslint: 8.32.0 dev: true - /eslint-config-soybeanjs-base/0.2.2_m2kn7xiag5lymyarkgri27ztxm: + /eslint-config-soybeanjs-base/0.2.2_bbsr56q3yiibcp6ame6jqxdzvy: resolution: {integrity: sha512-zl1NDSFFJyhqunkaNJEGgJC/lmNdNZi/HFR6kYi5iaO8BDaPRrRMkEd9RZiH+kcoxc5hMMDjtIHXgagQV/SoCw==} peerDependencies: eslint: '>=7.4.0' dependencies: '@html-eslint/parser': 0.15.0 - eslint: 8.31.0 - eslint-config-prettier: 8.6.0_eslint@8.31.0 + eslint: 8.32.0 + eslint-config-prettier: 8.6.0_eslint@8.32.0 eslint-import-resolver-alias: 1.1.2_fkfqfehjtk7sk2efaqbgxsuasa eslint-plugin-html: 7.1.0 - eslint-plugin-import: 2.26.0_m2kn7xiag5lymyarkgri27ztxm - eslint-plugin-jsonc: 2.6.0_eslint@8.31.0 + eslint-plugin-import: 2.26.0_bbsr56q3yiibcp6ame6jqxdzvy + eslint-plugin-jsonc: 2.6.0_eslint@8.32.0 eslint-plugin-md: 1.0.19 - eslint-plugin-n: 15.6.0_eslint@8.31.0 - eslint-plugin-prettier: 4.2.1_32m5uc2milwdw3tnkcq5del26y - eslint-plugin-promise: 6.1.1_eslint@8.31.0 - eslint-plugin-yml: 1.4.0_eslint@8.31.0 + eslint-plugin-n: 15.6.0_eslint@8.32.0 + eslint-plugin-prettier: 4.2.1_vvyty2uiicstqaqhofuybvpnki + eslint-plugin-promise: 6.1.1_eslint@8.32.0 + eslint-plugin-yml: 1.4.0_eslint@8.32.0 markdown-eslint-parser: 1.2.1 prettier: 2.8.1 yaml-eslint-parser: 1.1.0 @@ -5251,15 +5369,15 @@ packages: - supports-color dev: true - /eslint-config-soybeanjs-ts/0.2.2_iukboom6ndih5an6iafl45j2fe: + /eslint-config-soybeanjs-ts/0.2.2_7uibuqfxkfaozanbtbziikiqje: resolution: {integrity: sha512-8NJ5nw6Iuc1LDVOfR4FF4XUBkxw4+ucorE222TmuCHCYLVZGtBSG1oLwxqx0Z5yEhsEo6TDZoLLB4EMFCbroJg==} peerDependencies: eslint: '>=7.4.0' dependencies: - '@typescript-eslint/eslint-plugin': 5.48.0_k73wpmdolxikpyqun3p36akaaq - '@typescript-eslint/parser': 5.48.0_iukboom6ndih5an6iafl45j2fe - eslint: 8.31.0 - eslint-config-soybeanjs-base: 0.2.2_m2kn7xiag5lymyarkgri27ztxm + '@typescript-eslint/eslint-plugin': 5.48.0_jmtqj3bwz6xemlrp3yko2wnir4 + '@typescript-eslint/parser': 5.48.0_7uibuqfxkfaozanbtbziikiqje + eslint: 8.32.0 + eslint-config-soybeanjs-base: 0.2.2_bbsr56q3yiibcp6ame6jqxdzvy transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -5267,14 +5385,14 @@ packages: - typescript dev: true - /eslint-config-soybeanjs-vue/0.2.2_iukboom6ndih5an6iafl45j2fe: + /eslint-config-soybeanjs-vue/0.2.2_7uibuqfxkfaozanbtbziikiqje: resolution: {integrity: sha512-7K4UGC0MeW6y3NQli9DenchprfyFFCQ7tl6If+ZONXdri/C7JVQ1GzMLd4+brt1/Hgx8SZ42ahivHQfNq+GyEQ==} peerDependencies: eslint: '>=7.4.0' dependencies: - eslint: 8.31.0 - eslint-config-soybeanjs-ts: 0.2.2_iukboom6ndih5an6iafl45j2fe - eslint-plugin-vue: 9.8.0_eslint@8.31.0 + eslint: 8.32.0 + eslint-config-soybeanjs-ts: 0.2.2_7uibuqfxkfaozanbtbziikiqje + eslint-plugin-vue: 9.8.0_eslint@8.32.0 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -5288,7 +5406,7 @@ packages: peerDependencies: eslint-plugin-import: '>=1.4.0' dependencies: - eslint-plugin-import: 2.26.0_m2kn7xiag5lymyarkgri27ztxm + eslint-plugin-import: 2.26.0_bbsr56q3yiibcp6ame6jqxdzvy dev: true /eslint-import-resolver-node/0.3.7: @@ -5301,7 +5419,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_cu65iacqe4wfvwbgdkmsaqc5ra: + /eslint-module-utils/2.7.4_zbzl2sarhw3tzg2ryibr6t2nf4: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -5322,21 +5440,21 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.48.0_iukboom6ndih5an6iafl45j2fe + '@typescript-eslint/parser': 5.48.0_7uibuqfxkfaozanbtbziikiqje debug: 3.2.7 - eslint: 8.31.0 + eslint: 8.32.0 eslint-import-resolver-node: 0.3.7 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es/4.1.0_eslint@8.31.0: + /eslint-plugin-es/4.1.0_eslint@8.32.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.31.0 + eslint: 8.32.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true @@ -5347,7 +5465,7 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-import/2.26.0_m2kn7xiag5lymyarkgri27ztxm: + /eslint-plugin-import/2.26.0_bbsr56q3yiibcp6ame6jqxdzvy: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -5357,14 +5475,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.48.0_iukboom6ndih5an6iafl45j2fe + '@typescript-eslint/parser': 5.48.0_7uibuqfxkfaozanbtbziikiqje array-includes: 3.1.6 array.prototype.flat: 1.3.1 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.31.0 + eslint: 8.32.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4_cu65iacqe4wfvwbgdkmsaqc5ra + eslint-module-utils: 2.7.4_zbzl2sarhw3tzg2ryibr6t2nf4 has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -5378,14 +5496,14 @@ packages: - supports-color dev: true - /eslint-plugin-jsonc/2.6.0_eslint@8.31.0: + /eslint-plugin-jsonc/2.6.0_eslint@8.32.0: resolution: {integrity: sha512-4bA9YTx58QaWalua1Q1b82zt7eZMB7i+ed8q8cKkbKP75ofOA2SXbtFyCSok7RY6jIXeCqQnKjN9If8zCgv6PA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.31.0 - eslint-utils: 3.0.0_eslint@8.31.0 + eslint: 8.32.0 + eslint-utils: 3.0.0_eslint@8.32.0 jsonc-eslint-parser: 2.1.0 natural-compare: 1.4.0 dev: true @@ -5405,16 +5523,16 @@ packages: - supports-color dev: true - /eslint-plugin-n/15.6.0_eslint@8.31.0: + /eslint-plugin-n/15.6.0_eslint@8.32.0: resolution: {integrity: sha512-Hd/F7wz4Mj44Jp0H6Jtty13NcE69GNTY0rVlgTIj1XBnGGVI6UTdDrpE6vqu3AHo07bygq/N+7OH/lgz1emUJw==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 5.0.1 - eslint: 8.31.0 - eslint-plugin-es: 4.1.0_eslint@8.31.0 - eslint-utils: 3.0.0_eslint@8.31.0 + eslint: 8.32.0 + eslint-plugin-es: 4.1.0_eslint@8.32.0 + eslint-utils: 3.0.0_eslint@8.32.0 ignore: 5.2.4 is-core-module: 2.11.0 minimatch: 3.1.2 @@ -5422,7 +5540,7 @@ packages: semver: 7.3.8 dev: true - /eslint-plugin-prettier/4.2.1_32m5uc2milwdw3tnkcq5del26y: + /eslint-plugin-prettier/4.2.1_vvyty2uiicstqaqhofuybvpnki: resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -5433,47 +5551,47 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.31.0 - eslint-config-prettier: 8.6.0_eslint@8.31.0 + eslint: 8.32.0 + eslint-config-prettier: 8.6.0_eslint@8.32.0 prettier: 2.8.1 prettier-linter-helpers: 1.0.0 dev: true - /eslint-plugin-promise/6.1.1_eslint@8.31.0: + /eslint-plugin-promise/6.1.1_eslint@8.32.0: resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.31.0 + eslint: 8.32.0 dev: true - /eslint-plugin-vue/9.8.0_eslint@8.31.0: + /eslint-plugin-vue/9.8.0_eslint@8.32.0: resolution: {integrity: sha512-E/AXwcTzunyzM83C2QqDHxepMzvI2y6x+mmeYHbVDQlKFqmKYvRrhaVixEeeG27uI44p9oKDFiyCRw4XxgtfHA==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.31.0 - eslint-utils: 3.0.0_eslint@8.31.0 + eslint: 8.32.0 + eslint-utils: 3.0.0_eslint@8.32.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.11 semver: 7.3.8 - vue-eslint-parser: 9.1.0_eslint@8.31.0 + vue-eslint-parser: 9.1.0_eslint@8.32.0 xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-yml/1.4.0_eslint@8.31.0: + /eslint-plugin-yml/1.4.0_eslint@8.32.0: resolution: {integrity: sha512-vzggXNfPKa+arIaNUGoC3DPRZCxNty+xD/v9xOcE5D3Bj9SbgIrEobqVB35I8QxHd2YjL/dOS0xIIFmjAalwbw==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4 - eslint: 8.31.0 + eslint: 8.32.0 lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.1.0 @@ -5511,13 +5629,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.31.0: + /eslint-utils/3.0.0_eslint@8.32.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.31.0 + eslint: 8.32.0 eslint-visitor-keys: 2.1.0 dev: true @@ -5582,8 +5700,8 @@ packages: - supports-color dev: true - /eslint/8.31.0: - resolution: {integrity: sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==} + /eslint/8.32.0: + resolution: {integrity: sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: @@ -5598,7 +5716,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.31.0 + eslint-utils: 3.0.0_eslint@8.32.0 eslint-visitor-keys: 3.3.0 espree: 9.4.1 esquery: 1.4.0 @@ -6077,6 +6195,15 @@ packages: universalify: 2.0.0 dev: true + /fs-extra/11.1.0: + resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.10 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + /fs-extra/5.0.0: resolution: {integrity: sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==} dependencies: @@ -6297,8 +6424,8 @@ packages: path-is-absolute: 1.0.1 dev: true - /glob/8.0.3: - resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==} + /glob/8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} engines: {node: '>=12'} dependencies: fs.realpath: 1.0.0 @@ -9011,7 +9138,7 @@ packages: resolution: {integrity: sha512-b/9jxWJ8EwogJPpv99ma+QwtqB7FSl3+V6UXS7Aaay8/5VwMY50oIFooY1UKXMWpfNCM6T/PoGqa5GD1g9xf9w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - glob: 8.0.3 + glob: 8.1.0 json-parse-even-better-errors: 3.0.0 normalize-package-data: 5.0.0 npm-normalize-package-bin: 3.0.0 @@ -11308,8 +11435,8 @@ packages: vue: 3.2.45 dev: false - /vditor/3.8.18: - resolution: {integrity: sha512-RSKCPKy0zrKwkI5GuEXUSxsxUhEO8hcIQivj5JVYvtUDWHfEOS1W7xKP8+zFKvoZNC4qm8zly2qErSMzHcEbNQ==} + /vditor/3.9.0: + resolution: {integrity: sha512-CLLtrexUY/LGN1Lp1iu242Uq9GuNP98UTXFRY9hjTNFkpVH9L4M3jrQ9yIZ711zYwsl78GxKeskuU7WieA96ow==} dependencies: diff-match-patch: 1.0.5 dev: false @@ -11512,14 +11639,14 @@ packages: dependencies: vue: 3.2.45 - /vue-eslint-parser/9.1.0_eslint@8.31.0: + /vue-eslint-parser/9.1.0_eslint@8.32.0: resolution: {integrity: sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4 - eslint: 8.31.0 + eslint: 8.32.0 eslint-scope: 7.1.1 eslint-visitor-keys: 3.3.0 espree: 9.4.1 diff --git a/src/router/modules/about.ts b/src/router/modules/about.ts index 6f149fc1..a8101afe 100644 --- a/src/router/modules/about.ts +++ b/src/router/modules/about.ts @@ -1,4 +1,4 @@ -const about: AuthRoute.Route = { +const about1: AuthRoute.Route = { name: 'about', path: '/about', component: 'self', @@ -12,4 +12,4 @@ const about: AuthRoute.Route = { } }; -export default about; +export default about1; diff --git a/src/typings/page-route.d.ts b/src/typings/page-route.d.ts new file mode 100644 index 00000000..48bdafa1 --- /dev/null +++ b/src/typings/page-route.d.ts @@ -0,0 +1,122 @@ +declare namespace PageRoute { + /** + * the root route key + * @translate 根路由 + */ + type RootRouteKey = 'root'; + + /** + * the not found route, which catch the invalid route path + * @translate 未找到路由(捕获无效路径的路由) + */ + type NotFoundRouteKey = 'not-found'; + + /** + * the route key + * @translate 页面路由 + */ + type RouteKey = + | '403' + | '404' + | '500' + | 'constant-page' + | 'login' + | 'not-found' + | 'about' + | 'auth-demo' + | 'auth-demo_permission' + | 'auth-demo_super' + | 'component' + | 'component_button' + | 'component_card' + | 'component_table' + | 'dashboard' + | 'dashboard_analysis' + | 'dashboard_workbench' + | 'document' + | 'document_naive' + | 'document_project-link' + | 'document_project' + | 'document_vite' + | 'document_vue' + | 'exception' + | 'exception_403' + | 'exception_404' + | 'exception_500' + | 'function' + | 'function_tab-detail' + | 'function_tab-multi-detail' + | 'function_tab' + | 'management' + | 'management_auth' + | 'management_role' + | 'management_route' + | 'management_user' + | 'multi-menu' + | 'multi-menu_first' + | 'multi-menu_first_second-new' + | 'multi-menu_first_second-new_third' + | 'multi-menu_first_second' + | 'plugin' + | 'plugin_charts' + | 'plugin_charts_antv' + | 'plugin_charts_echarts' + | 'plugin_copy' + | 'plugin_editor' + | 'plugin_editor_markdown' + | 'plugin_editor_quill' + | 'plugin_icon' + | 'plugin_map' + | 'plugin_print' + | 'plugin_swiper' + | 'plugin_video'; + + /** + * last degree route key, which has the page file + * @translate 最后一级路由(该级路有对应的页面文件) + */ + type LastDegreeRouteKey = Extract< + RouteKey, + | '403' + | '404' + | '500' + | 'constant-page' + | 'login' + | 'not-found' + | 'about' + | 'auth-demo_permission' + | 'auth-demo_super' + | 'component_button' + | 'component_card' + | 'component_table' + | 'dashboard_analysis' + | 'dashboard_workbench' + | 'document_naive' + | 'document_project-link' + | 'document_project' + | 'document_vite' + | 'document_vue' + | 'exception_403' + | 'exception_404' + | 'exception_500' + | 'function_tab-detail' + | 'function_tab-multi-detail' + | 'function_tab' + | 'management_auth' + | 'management_role' + | 'management_route' + | 'management_user' + | 'multi-menu_first_second-new_third' + | 'multi-menu_first_second' + | 'plugin_charts_antv' + | 'plugin_charts_echarts' + | 'plugin_copy' + | 'plugin_editor_markdown' + | 'plugin_editor_quill' + | 'plugin_icon' + | 'plugin_map' + | 'plugin_print' + | 'plugin_swiper' + | 'plugin_video' + >; +} diff --git a/src/typings/route.d.ts b/src/typings/route.d.ts index 671ab219..4464d745 100644 --- a/src/typings/route.d.ts +++ b/src/typings/route.d.ts @@ -5,13 +5,13 @@ declare namespace AuthRoute { /** 捕获无效路由的路由路径 */ type NotFoundRoutePath = '/:pathMatch(.*)*'; - type RootRouteKey = RouterPage.RootRouteKey; + type RootRouteKey = PageRoute.RootRouteKey; - type NotFoundRouteKey = RouterPage.NotFoundRouteKey; + type NotFoundRouteKey = PageRoute.NotFoundRouteKey; - type RouteKey = RouterPage.RouteKey; + type RouteKey = PageRoute.RouteKey; - type LastDegreeRouteKey = RouterPage.LastDegreeRouteKey; + type LastDegreeRouteKey = PageRoute.LastDegreeRouteKey; type AllRouteKey = RouteKey | RootRouteKey | NotFoundRouteKey; diff --git a/src/typings/router-page.d.ts b/src/typings/router-page.d.ts deleted file mode 100644 index 3f4dd3a1..00000000 --- a/src/typings/router-page.d.ts +++ /dev/null @@ -1,67 +0,0 @@ -declare namespace RouterPage { - /** 根路由 */ - type RootRouteKey = 'root'; - - /** 未找到路由(捕获无效路径的路由) */ - type NotFoundRouteKey = 'not-found'; - - /** 页面路由 */ - type RouteKey = - | '403' - | '404' - | '500' - | 'about' - | 'auth-demo' - | 'auth-demo_permission' - | 'auth-demo_super' - | 'component' - | 'component_button' - | 'component_card' - | 'component_table' - | 'constant-page' - | 'dashboard' - | 'dashboard_analysis' - | 'dashboard_workbench' - | 'document' - | 'document_naive' - | 'document_project' - | 'document_project-link' - | 'document_vite' - | 'document_vue' - | 'exception' - | 'exception_403' - | 'exception_404' - | 'exception_500' - | 'function' - | 'function_tab' - | 'function_tab-detail' - | 'function_tab-multi-detail' - | 'login' - | 'management' - | 'management_auth' - | 'management_role' - | 'management_route' - | 'management_user' - | 'multi-menu' - | 'multi-menu_first' - | 'multi-menu_first_second' - | 'multi-menu_first_second-new' - | 'multi-menu_first_second-new_third' - | 'not-found' - | 'plugin' - | 'plugin_charts' - | 'plugin_charts_antv' - | 'plugin_charts_echarts' - | 'plugin_copy' - | 'plugin_editor' - | 'plugin_editor_markdown' - | 'plugin_editor_quill' - | 'plugin_icon' - | 'plugin_map' - | 'plugin_print' - | 'plugin_swiper' - | 'plugin_video'; - - /** 最后一级路由(该级路有对应的vue文件) */ - type LastDegreeRouteKey = Extract -} diff --git a/src/views/index.ts b/src/views/index.ts index 500a9d46..f4b28ffa 100644 --- a/src/views/index.ts +++ b/src/views/index.ts @@ -1,6 +1,9 @@ import type { RouteComponent } from 'vue-router'; -export const views: Record Promise)> = { +export const views: Record< + PageRoute.LastDegreeRouteKey, + RouteComponent | (() => Promise<{ default: RouteComponent }>) +> = { 403: () => import('./_builtin/403/index.vue'), 404: () => import('./_builtin/404/index.vue'), 500: () => import('./_builtin/500/index.vue'),