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