From 81dcd8b512edd641f8822640aa30e0d3f9f9ad92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Mon, 9 Oct 2023 10:27:50 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20HeaderSearch?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E8=B7=B3=E8=BD=ACquery=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E4=B8=A2=E5=A4=B1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/HeaderSearch/index.vue | 17 +++++++++++++---- ruoyi-ui/src/components/HeaderSearch/index.vue | 15 ++++++++++++--- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/ruoyi-ui-vue3/src/components/HeaderSearch/index.vue b/ruoyi-ui-vue3/src/components/HeaderSearch/index.vue index 543559be8..a1aca22ff 100644 --- a/ruoyi-ui-vue3/src/components/HeaderSearch/index.vue +++ b/ruoyi-ui-vue3/src/components/HeaderSearch/index.vue @@ -45,12 +45,17 @@ function close() { } function change(val) { const path = val.path; + const query = val.query; if (isHttp(path)) { // http(s):// 路径新窗口打开 const pindex = path.indexOf("http"); window.open(path.substr(pindex, path.length), "_blank"); } else { - router.push(path) + if (query) { + router.push({ path: path, query: JSON.parse(query) }); + } else { + router.push(path) + } } search.value = '' @@ -77,7 +82,7 @@ function initFuse(list) { } // Filter out the routes that can be displayed in the sidebar // And generate the internationalized title -function generateRoutes(routes, basePath = '', prefixTitle = []) { +function generateRoutes(routes, basePath = '', prefixTitle = [], query = {}) { let res = [] for (const r of routes) { @@ -99,9 +104,13 @@ function generateRoutes(routes, basePath = '', prefixTitle = []) { } } + if (r.query) { + data.query = r.query + } + // recursive child routes if (r.children) { - const tempRoutes = generateRoutes(r.children, data.path, data.title) + const tempRoutes = generateRoutes(r.children, data.path, data.title, data.query) if (tempRoutes.length >= 1) { res = [...res, ...tempRoutes] } @@ -176,4 +185,4 @@ watch(searchPool, (list) => { } } } - \ No newline at end of file + diff --git a/ruoyi-ui/src/components/HeaderSearch/index.vue b/ruoyi-ui/src/components/HeaderSearch/index.vue index c4d76bbb9..888be5d9d 100644 --- a/ruoyi-ui/src/components/HeaderSearch/index.vue +++ b/ruoyi-ui/src/components/HeaderSearch/index.vue @@ -71,12 +71,17 @@ export default { }, change(val) { const path = val.path; + const query = val.query; if(this.ishttp(val.path)) { // http(s):// 路径新窗口打开 const pindex = path.indexOf("http"); window.open(path.substr(pindex, path.length), "_blank"); } else { - this.$router.push(val.path) + if (query) { + this.$router.push({ path: path, query: JSON.parse(query) }); + } else { + this.$router.push(path) + } } this.search = '' this.options = [] @@ -102,7 +107,7 @@ export default { }, // Filter out the routes that can be displayed in the sidebar // And generate the internationalized title - generateRoutes(routes, basePath = '/', prefixTitle = []) { + generateRoutes(routes, basePath = '/', prefixTitle = [], query = {}) { let res = [] for (const router of routes) { @@ -124,9 +129,13 @@ export default { } } + if (router.query) { + data.query = router.query + } + // recursive child routes if (router.children) { - const tempRoutes = this.generateRoutes(router.children, data.path, data.title) + const tempRoutes = this.generateRoutes(router.children, data.path, data.title, data.query) if (tempRoutes.length >= 1) { res = [...res, ...tempRoutes] }