From df7cd7e28985f7dd79aa106d82e0442b1cc5a99c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=88=98=E6=B4=AA=E6=B4=AA?= <2498601771@qq.com>
Date: Wed, 31 May 2023 15:28:27 +0800
Subject: [PATCH] =?UTF-8?q?CN-1049:=20Entity=E5=AE=9E=E4=BD=93=E6=90=9C?=
=?UTF-8?q?=E7=B4=A2=E6=A1=86=E5=8F=82=E6=95=B0=E6=8B=BC=E6=8E=A5=E9=94=99?=
=?UTF-8?q?=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/advancedSearch/TagMode.vue | 13 ++++++++-----
src/components/advancedSearch/meta/parser.js | 7 ++++++-
src/components/advancedSearch/meta/sql-parser.js | 7 ++++++-
3 files changed, 20 insertions(+), 7 deletions(-)
diff --git a/src/components/advancedSearch/TagMode.vue b/src/components/advancedSearch/TagMode.vue
index fe3fce79..ad0b2090 100644
--- a/src/components/advancedSearch/TagMode.vue
+++ b/src/components/advancedSearch/TagMode.vue
@@ -36,7 +36,8 @@
-
+
+
{{meta.value.label}}
@@ -184,7 +185,7 @@ export default {
columnClick (meta, index) {
meta.column.isEditing = true
this.$nextTick(() => {
- this.$refs.columnSelect[index].focus()
+ this.$refs.columnSelect[index === 0 ? index : index - 1].focus() // 避免参数有and等情况
})
},
columnBlur (meta, index) {
@@ -251,7 +252,8 @@ export default {
str = str.substring(1, str.length)
str = str.substring(0, str.length - 1)
}
- if (str.indexOf("'") > -1) {
+ // 如果此时参数为xi'an,处理为xi''an,后一个条件避免若参数为xi''an,则不处理
+ if (str.indexOf("'") > -1 && str.indexOf("''") === -1) {
str = str.replace(/'/g, "''")
}
return str
@@ -270,7 +272,8 @@ export default {
str = str.substring(1, str.length)
str = str.substring(0, str.length - 1)
}
- if (str.indexOf("'") > -1) {
+ // 如果此时参数为xi'an,处理为xi''an,后一个条件避免若参数为xi''an,则不处理
+ if (str.indexOf("'") > -1 && str.indexOf("''") === -1) {
str = str.replace(/'/g, "''")
}
meta.value.value = str
@@ -282,7 +285,7 @@ export default {
valueClick (meta, index) {
meta.value.isEditing = true
this.$nextTick(() => {
- this.$refs.valueInput[index].focus()
+ this.$refs.valueInput[index === 0 ? index : index - 1].focus() // 避免参数有and等情况
})
},
// 判断是否是用户自己添加的内容,用于判断是否是全局搜索
diff --git a/src/components/advancedSearch/meta/parser.js b/src/components/advancedSearch/meta/parser.js
index b31787f6..c218cddf 100644
--- a/src/components/advancedSearch/meta/parser.js
+++ b/src/components/advancedSearch/meta/parser.js
@@ -751,8 +751,13 @@ export default class Parser {
// 使用单引号包裹
export function stringInQuot (value) {
+ if (value.indexOf("'") > -1) {
+ value = value.split("'").join("''") // 如xi'an,多添加一个单引号,处理为xi''an
+ }
+
const match = `${value}`.match(/^'.+?'$/)
- return match ? value : `'${value}'`
+ // return match ? value : `'${value}'` // 单引号包裹,暂时保留
+ return match ? value : `${value}`
}
// IN和LIKE前后加空格
diff --git a/src/components/advancedSearch/meta/sql-parser.js b/src/components/advancedSearch/meta/sql-parser.js
index f0459dc6..9668e209 100644
--- a/src/components/advancedSearch/meta/sql-parser.js
+++ b/src/components/advancedSearch/meta/sql-parser.js
@@ -250,8 +250,13 @@ function handleType (value) {
// 使用单引号包裹
export function stringInQuot (value) {
+ if (value.indexOf("'") > -1) {
+ value = value.split("'").join("''") // 如xi'an,多添加一个单引号,处理为xi''an
+ }
+
const match = `${value}`.match(/^'.+?'$/)
- return match ? value : `'${value}'`
+ // return match ? value : `'${value}'`
+ return match ? value : `${value}`
}
// IN和LIKE前后加空格
export function handleOperatorSpace (operator) {