From 4684952973cafff11bd65957bf7078a42fde2acf Mon Sep 17 00:00:00 2001 From: aixianling Date: Mon, 23 Dec 2024 10:20:19 +0800 Subject: [PATCH] =?UTF-8?q?refactor(router):=20=E4=BC=98=E5=8C=96=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E7=94=9F=E6=88=90=E9=80=BB=E8=BE=91=E5=92=8C=E5=AF=BC?= =?UTF-8?q?=E8=88=AA=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改路由生成逻辑,使用 name 作为 path,解决 path 未定义问题- 更新 sliderNav 组件中的路由跳转逻辑,使用 path 方式跳转 - 优化 url 参数处理,支持查询字符串 -调整路由配置模板,统一格式 --- bin/build.js | 4 ++-- src/components/sliderNav.vue | 13 ++++++------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/bin/build.js b/bin/build.js index 04a78070..010cbc31 100644 --- a/bin/build.js +++ b/bin/build.js @@ -53,9 +53,9 @@ const createRoutes = (config = {}) => { {path: '/v', name: 'Home', component: () => import('../views/home'), children: [ ${routes.map(e => { // 解构每个路由的属性,用于生成路由配置 - const {name, label, path, esm} = e + const {name, label, esm} = e // 生成单个路由配置的字符串表示 - return `{name:"${name}",label:"${label}",path:"${path}",component:()=>import("../${esm}")}` + return `{name:"${name}",label:"${label}",path:"${name}",component:()=>import("../${esm}")}` }).join(',\n')} ]}, {path: '/', name: "init"}, diff --git a/src/components/sliderNav.vue b/src/components/sliderNav.vue index d58341cf..50c5d122 100644 --- a/src/components/sliderNav.vue +++ b/src/components/sliderNav.vue @@ -80,12 +80,11 @@ export default { if (item.route == this.$route.name) { //避免同一路由跳转的BUG vue-router官方BUG } else { - let {route: name, path} = item - if (!name) { - this.$message.warning("暂无应用") - } else { - this.goto({name, query: qs.parse(path.split("?")?.[1])}) + let {component, path} = item, urlParams = '' + if (path.indexOf('?') > -1) { + urlParams = path.split('?').at(-1) } + this.goto({path: `/v/${[component, urlParams].filter(Boolean).join("?")}`}) } }, goto(item) { @@ -219,7 +218,7 @@ export default { } } - :deep(.ai-menu ){ + :deep(.ai-menu ) { padding-left: 0; flex: 1; min-height: 0; @@ -233,7 +232,7 @@ export default { } } - :deep(.searchApp ){ + :deep(.searchApp ) { display: flex; align-items: center; height: 44px;