|
|
|
@ -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 |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|