From 99e66bf11c38ebe2f21f73b956918468eae4929c Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期日, 30 六月 2024 08:02:22 +0800 Subject: [PATCH] 若依 3.8.8 --- ruoyi-ui/src/components/HeaderSearch/index.vue | 30 ++++++++++++++++++++++++------ 1 files changed, 24 insertions(+), 6 deletions(-) diff --git a/ruoyi-ui/src/components/HeaderSearch/index.vue b/ruoyi-ui/src/components/HeaderSearch/index.vue index 8974171..a01325a 100644 --- a/ruoyi-ui/src/components/HeaderSearch/index.vue +++ b/ruoyi-ui/src/components/HeaderSearch/index.vue @@ -12,7 +12,7 @@ class="header-search-select" @change="change" > - <el-option v-for="item in options" :key="item.path" :value="item" :label="item.title.join(' > ')" /> + <el-option v-for="option in options" :key="option.item.path" :value="option.item" :label="option.item.title.join(' > ')" /> </el-select> </div> </template> @@ -20,7 +20,7 @@ <script> // fuse is a lightweight fuzzy-search module // make search results more in line with expectations -import Fuse from 'fuse.js' +import Fuse from 'fuse.js/dist/fuse.min.js' import path from 'path' export default { @@ -70,7 +70,19 @@ this.show = false }, change(val) { - this.$router.push(val.path) + 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 { + if (query) { + this.$router.push({ path: path, query: JSON.parse(query) }); + } else { + this.$router.push(path) + } + } this.search = '' this.options = [] this.$nextTick(() => { @@ -83,7 +95,6 @@ threshold: 0.4, location: 0, distance: 100, - maxPatternLength: 32, minMatchCharLength: 1, keys: [{ name: 'title', @@ -104,7 +115,7 @@ if (router.hidden) { continue } const data = { - path: path.resolve(basePath, router.path), + path: !this.ishttp(router.path) ? path.resolve(basePath, router.path) : router.path, title: [...prefixTitle] } @@ -116,6 +127,10 @@ // special case: need to exclude parent router without redirect res.push(data) } + } + + if (router.query) { + data.query = router.query } // recursive child routes @@ -134,6 +149,9 @@ } else { this.options = [] } + }, + ishttp(url) { + return url.indexOf('http://') !== -1 || url.indexOf('https://') !== -1 } } } @@ -159,7 +177,7 @@ display: inline-block; vertical-align: middle; - /deep/ .el-input__inner { + ::v-deep .el-input__inner { border-radius: 0; border: 0; padding-left: 0; -- Gitblit v1.9.2