CN-1049: Entity实体搜索框参数拼接错误

This commit is contained in:
刘洪洪
2023-05-31 15:28:27 +08:00
parent 9675a54455
commit df7cd7e289
3 changed files with 20 additions and 7 deletions

View File

@@ -36,7 +36,8 @@
<!-- --> <!-- -->
<div class="condition__value"> <div class="condition__value">
<div v-if="meta.value.isEditing"> <div v-if="meta.value.isEditing">
<el-input v-model="meta.value.value" size="mini" @blur="valueBlur(meta)" ref="valueInput" @keyup.enter="valueBlur(meta)"></el-input> <!--避免blur事件和keyup.enter重复执行-->
<el-input v-model="meta.value.value" size="mini" @blur="valueBlur(meta)" ref="valueInput" @keyup.enter="$event.target.blur(meta)"></el-input>
</div> </div>
<span v-else @click="valueClick(meta, index)">{{meta.value.label}}</span> <span v-else @click="valueClick(meta, index)">{{meta.value.label}}</span>
</div> </div>
@@ -184,7 +185,7 @@ export default {
columnClick (meta, index) { columnClick (meta, index) {
meta.column.isEditing = true meta.column.isEditing = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.columnSelect[index].focus() this.$refs.columnSelect[index === 0 ? index : index - 1].focus() // 避免参数有and等情况
}) })
}, },
columnBlur (meta, index) { columnBlur (meta, index) {
@@ -251,7 +252,8 @@ export default {
str = str.substring(1, str.length) str = str.substring(1, str.length)
str = str.substring(0, str.length - 1) 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, "''") str = str.replace(/'/g, "''")
} }
return str return str
@@ -270,7 +272,8 @@ export default {
str = str.substring(1, str.length) str = str.substring(1, str.length)
str = str.substring(0, str.length - 1) 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, "''") str = str.replace(/'/g, "''")
} }
meta.value.value = str meta.value.value = str
@@ -282,7 +285,7 @@ export default {
valueClick (meta, index) { valueClick (meta, index) {
meta.value.isEditing = true meta.value.isEditing = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.valueInput[index].focus() this.$refs.valueInput[index === 0 ? index : index - 1].focus() // 避免参数有and等情况
}) })
}, },
// 判断是否是用户自己添加的内容,用于判断是否是全局搜索 // 判断是否是用户自己添加的内容,用于判断是否是全局搜索

View File

@@ -751,8 +751,13 @@ export default class Parser {
// 使用单引号包裹 // 使用单引号包裹
export function stringInQuot (value) { export function stringInQuot (value) {
if (value.indexOf("'") > -1) {
value = value.split("'").join("''") // 如xi'an多添加一个单引号处理为xi''an
}
const match = `${value}`.match(/^'.+?'$/) const match = `${value}`.match(/^'.+?'$/)
return match ? value : `'${value}'` // return match ? value : `'${value}'` // 单引号包裹,暂时保留
return match ? value : `${value}`
} }
// IN和LIKE前后加空格 // IN和LIKE前后加空格

View File

@@ -250,8 +250,13 @@ function handleType (value) {
// 使用单引号包裹 // 使用单引号包裹
export function stringInQuot (value) { export function stringInQuot (value) {
if (value.indexOf("'") > -1) {
value = value.split("'").join("''") // 如xi'an多添加一个单引号处理为xi''an
}
const match = `${value}`.match(/^'.+?'$/) const match = `${value}`.match(/^'.+?'$/)
return match ? value : `'${value}'` // return match ? value : `'${value}'`
return match ? value : `${value}`
} }
// IN和LIKE前后加空格 // IN和LIKE前后加空格
export function handleOperatorSpace (operator) { export function handleOperatorSpace (operator) {