fix 修复 HeaderSearch组件跳转query参数丢失问题
This commit is contained in:
parent
8ca601dc66
commit
81dcd8b512
@ -45,12 +45,17 @@ function close() {
|
|||||||
}
|
}
|
||||||
function change(val) {
|
function change(val) {
|
||||||
const path = val.path;
|
const path = val.path;
|
||||||
|
const query = val.query;
|
||||||
if (isHttp(path)) {
|
if (isHttp(path)) {
|
||||||
// http(s):// 路径新窗口打开
|
// http(s):// 路径新窗口打开
|
||||||
const pindex = path.indexOf("http");
|
const pindex = path.indexOf("http");
|
||||||
window.open(path.substr(pindex, path.length), "_blank");
|
window.open(path.substr(pindex, path.length), "_blank");
|
||||||
} else {
|
} else {
|
||||||
router.push(path)
|
if (query) {
|
||||||
|
router.push({ path: path, query: JSON.parse(query) });
|
||||||
|
} else {
|
||||||
|
router.push(path)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
search.value = ''
|
search.value = ''
|
||||||
@ -77,7 +82,7 @@ function initFuse(list) {
|
|||||||
}
|
}
|
||||||
// Filter out the routes that can be displayed in the sidebar
|
// Filter out the routes that can be displayed in the sidebar
|
||||||
// And generate the internationalized title
|
// And generate the internationalized title
|
||||||
function generateRoutes(routes, basePath = '', prefixTitle = []) {
|
function generateRoutes(routes, basePath = '', prefixTitle = [], query = {}) {
|
||||||
let res = []
|
let res = []
|
||||||
|
|
||||||
for (const r of routes) {
|
for (const r of routes) {
|
||||||
@ -99,9 +104,13 @@ function generateRoutes(routes, basePath = '', prefixTitle = []) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (r.query) {
|
||||||
|
data.query = r.query
|
||||||
|
}
|
||||||
|
|
||||||
// recursive child routes
|
// recursive child routes
|
||||||
if (r.children) {
|
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) {
|
if (tempRoutes.length >= 1) {
|
||||||
res = [...res, ...tempRoutes]
|
res = [...res, ...tempRoutes]
|
||||||
}
|
}
|
||||||
@ -176,4 +185,4 @@ watch(searchPool, (list) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -71,12 +71,17 @@ export default {
|
|||||||
},
|
},
|
||||||
change(val) {
|
change(val) {
|
||||||
const path = val.path;
|
const path = val.path;
|
||||||
|
const query = val.query;
|
||||||
if(this.ishttp(val.path)) {
|
if(this.ishttp(val.path)) {
|
||||||
// http(s):// 路径新窗口打开
|
// http(s):// 路径新窗口打开
|
||||||
const pindex = path.indexOf("http");
|
const pindex = path.indexOf("http");
|
||||||
window.open(path.substr(pindex, path.length), "_blank");
|
window.open(path.substr(pindex, path.length), "_blank");
|
||||||
} else {
|
} 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.search = ''
|
||||||
this.options = []
|
this.options = []
|
||||||
@ -102,7 +107,7 @@ export default {
|
|||||||
},
|
},
|
||||||
// Filter out the routes that can be displayed in the sidebar
|
// Filter out the routes that can be displayed in the sidebar
|
||||||
// And generate the internationalized title
|
// And generate the internationalized title
|
||||||
generateRoutes(routes, basePath = '/', prefixTitle = []) {
|
generateRoutes(routes, basePath = '/', prefixTitle = [], query = {}) {
|
||||||
let res = []
|
let res = []
|
||||||
|
|
||||||
for (const router of routes) {
|
for (const router of routes) {
|
||||||
@ -124,9 +129,13 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (router.query) {
|
||||||
|
data.query = router.query
|
||||||
|
}
|
||||||
|
|
||||||
// recursive child routes
|
// recursive child routes
|
||||||
if (router.children) {
|
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) {
|
if (tempRoutes.length >= 1) {
|
||||||
res = [...res, ...tempRoutes]
|
res = [...res, ...tempRoutes]
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user