diff --git a/src/components/advancedSearch/TagMode.vue b/src/components/advancedSearch/TagMode.vue index 06f3f504..d6b45d2a 100644 --- a/src/components/advancedSearch/TagMode.vue +++ b/src/components/advancedSearch/TagMode.vue @@ -624,6 +624,11 @@ export default { const parser = new Parser(this.columnList) if (q.indexOf('%') === 0 || q.indexOf('%20') > -1 || q.indexOf('%25') > -1) { q = decodeURI(q) + } else { + const str1 = q.substring(q.indexOf('%'), q.indexOf('%') + 3) + if (q.indexOf('%') > 0 && (str1 !== '%20' || str1 === '%25')) { + q = decodeURI(q) + } } this.metaList = parser.parseStr(q).metaList } diff --git a/src/components/advancedSearch/TextMode.vue b/src/components/advancedSearch/TextMode.vue index 666a64c0..7d4d29ae 100644 --- a/src/components/advancedSearch/TextMode.vue +++ b/src/components/advancedSearch/TextMode.vue @@ -225,6 +225,11 @@ export default { if (q) { if (q.indexOf('%') === 0 || q.indexOf('%20') > -1 || q.indexOf('%25') > -1) { q = decodeURI(q) + } else { + const str1 = q.substring(q.indexOf('%'), q.indexOf('%') + 3) + if (q.indexOf('%') > 0 && (str1 !== '%20' || str1 === '%25')) { + q = decodeURI(q) + } } // 为避免地址栏任意输入导致全查询的q带QUERY,解析时不识别导致的语法错误 // 如地址栏输入116.178.222.171,此时的q很长,刷新界面时需要把q里的116.178.222.171拿出来进行搜索 diff --git a/src/components/advancedSearch/meta/parser.js b/src/components/advancedSearch/meta/parser.js index b7e6c68b..e9903aae 100644 --- a/src/components/advancedSearch/meta/parser.js +++ b/src/components/advancedSearch/meta/parser.js @@ -6,9 +6,10 @@ import { ElMessage } from 'element-plus' import i18n from '@/i18n' const strReg = { - all: /^[\da-zA-Z\s.'> -1 || q.indexOf('%25') > -1)) { q = decodeURI(q) } + // %位置不为0,即内容包含非英文时 + const str1 = q.substring(q.indexOf('%'), q.indexOf('%') + 3) + if (q && q.indexOf('%') > 0 && (str1 !== '%20' || str1 === '%25')) { + q = decodeURI(q) + } this.initSearch(q) this.listMode = listMode }