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) {