fengyuan_yang 1 month ago
parent
commit
a20c923184
  1. 32
      cclqms-vue/src/views/modules/common/Chooselist_eam.vue

32
cclqms-vue/src/views/modules/common/Chooselist_eam.vue

@ -126,6 +126,8 @@ export default {
sqlcode: '',
tagno: '',
},
conditionField1: '',
conditionField2: '',
defaultParam: false
}
},
@ -157,6 +159,8 @@ export default {
getChooselistEam({"tagNo": tagNo}).then(({data}) => {
this.columnList = []
this.baseListData = data.data
this.conditionField1 = this.qualifyAmbiguousUserField(this.baseListData.fieldname1, this.baseListData.sqlcode)
this.conditionField2 = this.qualifyAmbiguousUserField(this.baseListData.fieldname2, this.baseListData.sqlcode)
let start = data.data.sqlcode.toUpperCase().indexOf("Select".toUpperCase())
let end = data.data.sqlcode.toUpperCase().indexOf("from".toUpperCase())
let length = end - start
@ -221,6 +225,8 @@ export default {
getDataList (bool) {
let sql = this.baseListData.sqlcode
const field1 = this.conditionField1 || this.baseListData.fieldname1
const field2 = this.conditionField2 || this.baseListData.fieldname2
console.log(this.param1)
console.log(this.param2)
console.log(this.param3)
@ -229,13 +235,17 @@ export default {
console.log(this.param6)
console.log(this.baseListData)
if (bool) {
sql += " and (" + this.baseListData.fieldname1 + " like '%" + this.param + "%' OR " + this.baseListData.fieldname2 + " like '%" + this.param + "%'" + " ) "
if (field1 && field2) {
sql += " and (" + field1 + " like '%" + this.param + "%' OR " + field2 + " like '%" + this.param + "%'" + " ) "
} else if (field1) {
sql += " and " + field1 + " like '%" + this.param + "%'"
}
}
if (this.param1) {
sql += " and " + this.baseListData.fieldname1 + " like '%" + this.param1 + "%'"
if (this.param1 && field1) {
sql += " and " + field1 + " like '%" + this.param1 + "%'"
}
if (this.param2) {
sql += " and " + this.baseListData.fieldname2 + " like '%" + this.param2 + "%'"
if (this.param2 && field2) {
sql += " and " + field2 + " like '%" + this.param2 + "%'"
}
if (this.param3) {
sql += " and " + this.baseListData.fieldname3 + " like '%" + this.param3 + "%'"
@ -287,6 +297,18 @@ export default {
this.param7 = this.$store.state.user.name
this.param = ''
this.dataList = []
},
qualifyAmbiguousUserField (field, sqlCode) {
const fieldText = String(field || '').trim()
if (!fieldText || fieldText.indexOf('.') > -1) {
return fieldText
}
const sqlText = String(sqlCode || '').toLowerCase()
const hasUserAliasJoin = sqlText.indexOf('from sys_user as a') > -1 && sqlText.indexOf('join access_role as b') > -1
if (hasUserAliasJoin && (fieldText === 'username' || fieldText === 'user_display')) {
return 'a.' + fieldText
}
return fieldText
}
}
}

Loading…
Cancel
Save