From 960c1797bfa2bbf0bc1b859442028726e62bffec Mon Sep 17 00:00:00 2001 From: uuai <1411741081@qq.com> Date: Wed, 15 Mar 2023 23:05:46 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=AF=E7=94=B1=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vite-demo/src/components/routerView/index.vue | 3 + vite-demo/src/router/backRouter.js | 347 +++++++++--------- vite-demo/src/router/baseRouter.js | 61 ++- vite-demo/src/router/index.js | 4 +- vite-demo/src/store/modules/permission.js | 3 + vite-demo/src/views/antd/modal/index.vue | 2 +- vite-demo/src/views/layout/sidebar/index.vue | 45 +-- .../src/views/tool/digitalTokens/index.vue | 2 +- 8 files changed, 248 insertions(+), 219 deletions(-) create mode 100644 vite-demo/src/components/routerView/index.vue diff --git a/vite-demo/src/components/routerView/index.vue b/vite-demo/src/components/routerView/index.vue new file mode 100644 index 0000000..ba32c22 --- /dev/null +++ b/vite-demo/src/components/routerView/index.vue @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/vite-demo/src/router/backRouter.js b/vite-demo/src/router/backRouter.js index 1cc2b1f..d1bda01 100644 --- a/vite-demo/src/router/backRouter.js +++ b/vite-demo/src/router/backRouter.js @@ -1,7 +1,4 @@ -import routerView from "@/views/form/index"; -// import elementFrom from "../views/form/element/from.vue" -import elementFrom from '@/views/form/element/from'; export default [ { path: '/form', @@ -9,46 +6,38 @@ export default [ meta: { title: '表单配置', }, - component: routerView, + component: 'Layout', children: [ - // { - // path: 'page', - // name: 'page', - // meta: { - // title: '表单配置', - // }, - // component: '/views/form/index.vue', - // }, { - path: 'elementPlus', + path: '/elementPlus', name: 'elementPlus', meta: { title: 'element-plus', }, - component: routerView, + component: 'routerView', // redirect: '/form/elementPlus/elementFrom', children: [ { - path: 'elementFrom', + path: '/form/elementPlus/elementFrom', name: 'elementFrom', meta: { title: '表单筛选', }, - component: elementFrom + component: '/views/form/element/from.vue' }, ] }, { - path: 'antdVue', + path: '/antdVue', name: 'antdVue', meta: { title: 'antdVue', }, - component: routerView, + component: 'routerView', // redirect: '/form/antdVue/antdForm', children: [ { - path: 'antdForm', + path: '/antdForm', name: 'antdForm', meta: { title: 'antd表单', @@ -56,7 +45,7 @@ export default [ component: '/views/form/antd/form.vue', }, { - path: 'screening', + path: '/screening', name: 'screening', meta: { title: '条件筛选', @@ -68,164 +57,164 @@ export default [ ] }, - // { - // path: '/antd', - // name: 'antd', - // meta: { - // title: 'antd二次封装', - // }, - // component: routerView, - // children: [ - // { - // path: 'antdDemo', - // name: 'antdDemo', - // title: 'demo', - // meta: { - // title: 'demo', - // }, - // component: '/views/antd/index.vue', - // }, - // { - // path: 'modal', - // name: 'modal', - // title: '对话框', - // meta: { - // title: '对话框', - // }, - // component: '/views/antd/modal/index.vue', - // }, - // { - // path: 'drawer', - // name: 'drawer', - // title: '抽屉', - // meta: { - // title: '抽屉', - // }, - // component: '/views/antd/drawer/index.vue', - // }, - // { - // path: 'table', - // name: 'table', - // title: '表格', - // meta: { - // title: '表格', - // }, - // component: '/views/antd/table/index.vue', - // }, - // - // ] - // }, - // { - // path: '/tool', - // name: 'tool', - // meta: { - // title: '工具库', - // }, - // component: routerView, - // children: [ - // { - // path: 'md', - // name: 'md', - // title: 'md编译器', - // meta: { - // title: 'md编译器', - // }, - // component: '/views/tool/mdEditor.vue', - // }, - // { - // path: 'digitalTokens', - // name: 'digitalTokens', - // title: '数字令牌', - // meta: { - // title: '数字令牌', - // }, - // component: '/views/tool/digitalTokens/index.vue', - // }, - // { - // path: 'ui', - // name: 'ui', - // title: 'ui库插件化', - // meta: { - // title: 'ui库插件化', - // }, - // component: '/views/MyUI/UI.vue', - // }, - // ] - // }, - // { - // path: '/skills', - // name: 'skills', - // meta: { - // title: '知识点', - // }, - // component: routerView, - // children: [ - // { - // path: 'vue3', - // name: 'vue3', - // title: 'vue3', - // meta: { - // title: 'vue3', - // }, - // component: routerView, - // children: [ - // { - // path: 'fnApi', - // name: 'fnApi', - // meta: { - // title: 'vue3开发技巧', - // }, - // component: '/views/skills/vue3/fnApi.vue', - // }, - // ] - // }, - // ] - // }, - // { - // path: '/chart', - // name: 'chart', - // meta: { - // title: '图表', - // }, - // component: routerView, - // children: [ - // { - // path: 'charts', - // name: 'charts', - // title: 'charts', - // meta: { - // title: 'charts', - // }, - // component: '/views/chart/index.vue', - // }, { - // path: 'configuration', - // name: 'configuration', - // title: 'charts配置', - // meta: { - // title: 'charts配置', - // }, - // component: '/views/chart/configuration.vue', - // }, - // ] - // }, - // { - // path: '/node', - // name: 'node', - // meta: { - // title: 'sqlite', - // }, - // component: routerView, - // children: [ - // { - // path: 'sqlite', - // name: 'sqlite', - // title: 'sqlite', - // meta: { - // title: 'sqlite', - // }, - // component: '/views/node/sqlite3/index.vue', - // } - // ] - // }, + { + path: '/antd', + name: 'antd', + meta: { + title: 'antd二次封装', + }, + component: 'Layout', + children: [ + { + path: '/antdDemo', + name: 'antdDemo', + title: 'demo', + meta: { + title: 'demo', + }, + component: '/views/antd/index.vue', + }, + { + path: '/modal', + name: 'modal', + title: '对话框', + meta: { + title: '对话框', + }, + component: '/views/antd/modal/index.vue', + }, + { + path: '/drawer', + name: 'drawer', + title: '抽屉', + meta: { + title: '抽屉', + }, + component: '/views/antd/drawer/index.vue', + }, + { + path: '/table', + name: 'table', + title: '表格', + meta: { + title: '表格', + }, + component: '/views/antd/table/index.vue', + }, + ] + }, + { + path: '/tool', + name: 'tool', + meta: { + title: '工具库', + }, + component: 'Layout', + children: [ + { + path: '/md', + name: 'md', + title: 'md编译器', + meta: { + title: 'md编译器', + }, + component: '/views/tool/mdEditor.vue', + }, + { + path: '/digitalTokens', + name: 'digitalTokens', + title: '数字令牌', + meta: { + title: '数字令牌', + }, + component: '/views/tool/digitalTokens/index.vue', + }, + { + path: '/ui', + name: 'ui', + title: 'ui库插件化', + meta: { + title: 'ui库插件化', + }, + component: '/views/MyUI/UI.vue', + }, + ] + }, + { + path: '/skills', + name: 'skills', + meta: { + title: '知识点', + }, + component: "Layout", + children: [ + { + path: '/vue3', + name: 'vue3', + title: 'vue3', + meta: { + title: 'vue3', + }, + component: 'routerView', + children: [ + { + path: '/fnApi', + name: 'fnApi', + meta: { + title: 'vue3开发技巧', + }, + component: '/views/skills/vue3/fnApi.vue', + }, + ] + }, + ] + }, + { + path: '/chart', + name: 'chart', + meta: { + title: '图表', + }, + component: "Layout", + children: [ + { + path: '/charts', + name: 'charts', + title: 'charts', + meta: { + title: 'charts', + }, + component: '/views/chart/index.vue', + }, { + path: '/configuration', + name: 'configuration', + title: 'charts配置', + meta: { + title: 'charts配置', + }, + component: '/views/chart/configuration.vue', + }, + ] + }, + { + path: '/node', + name: 'node', + meta: { + title: 'sqlite', + }, + component: "Layout", + redirect: '/sqlite', + children: [ + { + path: '/sqlite', + name: 'sqlite', + title: 'sqlite', + meta: { + title: 'sqlite', + }, + component: '/views/node/sqlite3/index.vue', + } + ] + }, {path: '/:pathMatch(.*)', hidden: true, redirect: '/'} //当用户输入页面链接错误或者没有该页面时,显示该路径页面 ] diff --git a/vite-demo/src/router/baseRouter.js b/vite-demo/src/router/baseRouter.js index df55288..914a02f 100644 --- a/vite-demo/src/router/baseRouter.js +++ b/vite-demo/src/router/baseRouter.js @@ -1,20 +1,13 @@ import Layout from "@/views/layout/index.vue"; +import routerView from "@/views/form/index.vue"; export default [ { path: '/login', name: 'login', component: () => import('@/views/Login/Login.vue'), - hidden: false + hidden: true }, - // { - // path: '/login2', - // name: 'login2', - // // component: () => import('@/views/welcome/index.vue'), - // component: () => import('@/views/form/element/from.vue'), - // // component: '/views/form/element/from.vue', - // // hidden: true - // }, { path: '/', component: Layout, @@ -26,7 +19,7 @@ export default [ }, children: [ { - path: 'welcome', + path: '/welcome', name: 'welcome', title: '欢迎页', meta: { @@ -36,4 +29,52 @@ export default [ } ] }, + // { + // path: '/antd', + // name: 'antd', + // meta: { + // title: 'antd二次封装', + // }, + // component: Layout, + // children: [ + // { + // path: '/antdDemo', + // name: 'antdDemo', + // title: 'demo', + // meta: { + // title: 'demo', + // }, + // // component: '/views/antd/index.vue', + // component: () => import('@/views/antd/index.vue') + // }, + // { + // path: '/modal', + // name: 'modal', + // title: '对话框', + // meta: { + // title: '对话框', + // }, + // + // component: () => import('@/views/antd/modal/index.vue'), + // }, + // { + // path: '/drawer', + // name: 'drawer', + // title: '抽屉', + // meta: { + // title: '抽屉', + // }, + // component: () => import('@/views/antd/drawer/index.vue'), + // }, + // { + // path: '/table', + // name: 'table', + // title: '表格', + // meta: { + // title: '表格', + // }, + // component: () => import('@/views/antd/table/index.vue'), + // }, + // ] + // }, ] \ No newline at end of file diff --git a/vite-demo/src/router/index.js b/vite-demo/src/router/index.js index 09c1cb0..c9c8ea6 100644 --- a/vite-demo/src/router/index.js +++ b/vite-demo/src/router/index.js @@ -1,4 +1,4 @@ -import {createRouter, createWebHistory} from 'vue-router' +import {createRouter, createWebHistory,createWebHashHistory} from 'vue-router' // 基本路由信息 import baseRouter from './baseRouter' @@ -6,7 +6,7 @@ import baseRouter from './baseRouter' console.log(baseRouter); const router = createRouter({ - history: createWebHistory(), //===>mode:"history" + history: createWebHashHistory(), //===>mode:"history" routes: baseRouter }) diff --git a/vite-demo/src/store/modules/permission.js b/vite-demo/src/store/modules/permission.js index a6284b3..21095dc 100644 --- a/vite-demo/src/store/modules/permission.js +++ b/vite-demo/src/store/modules/permission.js @@ -24,6 +24,7 @@ function hasPermission(roles, route) { const comp = import.meta.glob(`/src/views/**/*/*.vue`); // const comp = comp1.concat(comp2) import Layout from "@/views/layout/index.vue"; +import routerView from "@c/routerView/index.vue"; console.log('component', comp); @@ -49,6 +50,8 @@ function filterAsyncRouter(asyncRouterMap) { //遍历后台传来的路由字符 if (route.component) { if (route.component === 'Layout') { //Layout组件特殊处理 route.component = Layout; + }else if (route.component === 'routerView') { //Layout组件特殊处理 + route.component = routerView; } else { route.component = comp['/src' + route.component] } diff --git a/vite-demo/src/views/antd/modal/index.vue b/vite-demo/src/views/antd/modal/index.vue index f489196..2036581 100644 --- a/vite-demo/src/views/antd/modal/index.vue +++ b/vite-demo/src/views/antd/modal/index.vue @@ -10,7 +10,7 @@ > - +