CN-1049 fix: 修复不点击condition,选择左侧filter条件时搜索框参数没有单引号包裹的问题

This commit is contained in:
刘洪洪
2023-05-31 17:33:45 +08:00
parent df7cd7e289
commit 28e23111a5
3 changed files with 19 additions and 14 deletions

View File

@@ -29,7 +29,7 @@
></el-option> ></el-option>
</el-select> </el-select>
</div> </div>
<span v-show="!meta.column.isEditing" @click="columnClick(meta, index)">{{meta.column.label}}</span> <span v-show="!meta.column.isEditing" @click="columnClick(meta)">{{meta.column.label}}</span>
</div> </div>
<!-- 已选操作符显示 --> <!-- 已选操作符显示 -->
<div class="condition__operator" @click="operatorClick(meta)" v-if="meta.operator.show">{{meta.operator.value}}</div> <div class="condition__operator" @click="operatorClick(meta)" v-if="meta.operator.show">{{meta.operator.value}}</div>
@@ -37,9 +37,9 @@
<div class="condition__value"> <div class="condition__value">
<div v-if="meta.value.isEditing"> <div v-if="meta.value.isEditing">
<!--避免blur事件和keyup.enter重复执行--> <!--避免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> <el-input v-model="meta.value.value" size="mini" @blur="valueBlur(meta)" ref="valueInput" @keyup.enter="valueBlur(meta)"></el-input>
</div> </div>
<span v-else @click="valueClick(meta, index)">{{meta.value.label}}</span> <span v-else @click="valueClick(meta)">{{meta.value.label}}</span>
</div> </div>
<!-- 操作符选择器 --> <!-- 操作符选择器 -->
<div class="condition__operation-select" v-if="meta.operator.show && meta.operator.isEditing"> <div class="condition__operation-select" v-if="meta.operator.show && meta.operator.isEditing">
@@ -182,10 +182,10 @@ export default {
selectConnection (value, meta) { selectConnection (value, meta) {
meta.isEditing = false meta.isEditing = false
}, },
columnClick (meta, index) { columnClick (meta) {
meta.column.isEditing = true meta.column.isEditing = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.columnSelect[index === 0 ? index : index - 1].focus() // 避免参数有and等情况 this.$refs.columnSelect[this.$refs.columnSelect.length - 1].focus()
}) })
}, },
columnBlur (meta, index) { columnBlur (meta, index) {
@@ -282,10 +282,10 @@ export default {
} }
meta.value.isEditing = !meta.isCompleteCondition() meta.value.isEditing = !meta.isCompleteCondition()
}, },
valueClick (meta, index) { valueClick (meta) {
meta.value.isEditing = true meta.value.isEditing = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.valueInput[index === 0 ? index : index - 1].focus() // 避免参数有and等情况 this.$refs.valueInput[0].focus()
}) })
}, },
// 判断是否是用户自己添加的内容,用于判断是否是全局搜索 // 判断是否是用户自己添加的内容,用于判断是否是全局搜索
@@ -323,7 +323,7 @@ export default {
} }
}, },
// 处理value例如转换IN的值 // 处理value例如转换IN的值
handleValue (value, column, operator) { handleValue (value, column, operator, flag) {
const isArray = ['IN', 'NOT IN'].indexOf(operator) > -1 const isArray = ['IN', 'NOT IN'].indexOf(operator) > -1
if (isArray) { if (isArray) {
if (_.isArray(value)) { if (_.isArray(value)) {
@@ -333,7 +333,14 @@ export default {
return value return value
} }
} else { } else {
return column.type === columnType.string ? stringInQuot(value) : value let newValue = column.type === columnType.string ? stringInQuot(value) : value
if (flag) {
newValue = newValue.slice(1)
newValue = newValue.slice(0, newValue.length - 1)
return newValue
} else {
return newValue
}
} }
}, },
addParams (params) { addParams (params) {
@@ -347,7 +354,7 @@ export default {
meta.column.label = column ? column.label : param.column meta.column.label = column ? column.label : param.column
meta.operator.value = '=' meta.operator.value = '='
meta.operator.show = true meta.operator.show = true
meta.value.value = this.handleValue(param.value, column, column.operator) meta.value.value = this.handleValue(param.value, column, column.operator, 'noQuotes')
meta.value.show = true meta.value.show = true
meta.value.label = meta.value.value meta.value.label = meta.value.value
this.addCondition(meta) this.addCondition(meta)

View File

@@ -756,8 +756,7 @@ export function stringInQuot (value) {
} }
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

@@ -255,8 +255,7 @@ export function stringInQuot (value) {
} }
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) {