From 9a3e4e07aba1c207a802ab965013c7e6f85a8b45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B4=AA=E6=B4=AA?= <2498601771@qq.com> Date: Sun, 8 Oct 2023 17:26:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AE=9E=E4=BD=93?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=86=85=E5=AE=B9=E5=8C=85=E5=90=AB=E9=9D=9E?= =?UTF-8?q?=E8=8B=B1=E6=96=87=E6=97=B6=E4=BC=9A=E5=BC=B9=E7=AA=97=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E9=9D=9E=E6=B3=95=E5=AD=97=E7=AC=A6=E4=B8=B2=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 6f72b2258fd8b2ee2af42603a5006711c9814154) --- src/components/advancedSearch/TagMode.vue | 5 +++++ src/components/advancedSearch/TextMode.vue | 5 +++++ src/components/advancedSearch/meta/parser.js | 5 +++-- src/views/entityExplorer/EntityExplorer.vue | 5 +++++ 4 files changed, 18 insertions(+), 2 deletions(-) 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 }