Merge remote-tracking branch 'origin/master'

main
liu.shiyi 1 year ago
commit a0720799a0

@ -1277,8 +1277,7 @@ export default {
item.sourceTable = this.tableNameList[0] item.sourceTable = this.tableNameList[0]
}) })
} }
this.structurePreviewListCopy = cloneDeep(this.structurePreviewList) this.structurePreviewListCopy = cloneDeep(this.structurePreviewList).sort((a, b) => {
this.structurePreviewListCopy = this.structurePreviewListCopy.sort((a, b) => {
return a.orderNum - b.orderNum return a.orderNum - b.orderNum
}) })
let paramsNameCheck = false let paramsNameCheck = false

@ -171,6 +171,11 @@ export default {
default: () => [] default: () => []
} }
}, },
computed: {
innerParamsList () {
return cloneDeep(this.paramsList)
}
},
data () { data () {
return { return {
dialogVisible: false dialogVisible: false
@ -187,7 +192,7 @@ export default {
this.dialogVisible = false this.dialogVisible = false
}, },
addParam () { addParam () {
this.paramsList.push({ this.innerParamsList.push({
name: '', name: '',
type: '', type: '',
value: '', value: '',
@ -197,10 +202,10 @@ export default {
}) })
}, },
delRow (index) { delRow (index) {
this.paramsList.splice(index, 1) this.innerParamsList.splice(index, 1)
}, },
checkParamsName (value) { checkParamsName (value) {
const checkList = this.paramsList.filter(item => item.fieldName === value.name) const checkList = this.innerParamsList.filter(item => item.fieldName === value.name)
if (checkList.length) { if (checkList.length) {
this.$message.warning('参数名称不可以与字段名相同!') this.$message.warning('参数名称不可以与字段名相同!')
value.name = '' value.name = ''
@ -210,7 +215,7 @@ export default {
this.dialogVisible = false this.dialogVisible = false
}, },
confirm () { confirm () {
this.$emit('saveParams', cloneDeep(this.paramsList)) this.$emit('saveParams', this.innerParamsList)
this.dialogVisible = false this.dialogVisible = false
} }
} }

@ -432,6 +432,7 @@ export default {
}) })
} }
return { return {
autoFill: true,
dataForm: { dataForm: {
id: '', id: '',
name: '', name: '',
@ -642,7 +643,9 @@ export default {
try { try {
const scriptAfterReplacement = javascript.replace(/\${(.*?)}/g, (match, p) => { const scriptAfterReplacement = javascript.replace(/\${(.*?)}/g, (match, p) => {
const value = this.dataForm.config.paramsList.find(param => param.name === p).value const value = this.dataForm.config.paramsList.find(param => param.name === p).value
if (!isNaN(value)) { if (value === null || value === undefined || value === '') {
return "''"
} else if (!isNaN(value)) {
return value return value
} else { } else {
return `'${value}'` return `'${value}'`
@ -654,8 +657,8 @@ export default {
this.passTest = false this.passTest = false
const javascriptParams = javascript.match(/\${(.*?)}/g) const javascriptParams = javascript.match(/\${(.*?)}/g)
// ${} // ${}
let paramList = []
if (javascriptParams) { if (javascriptParams) {
const paramList = []
javascriptParams.forEach(item => { javascriptParams.forEach(item => {
const name = item.replace(/\${(.*?)}/g, '$1') const name = item.replace(/\${(.*?)}/g, '$1')
const param = this.dataForm.config.paramsList.find(param => param.name === name) const param = this.dataForm.config.paramsList.find(param => param.name === name)
@ -664,24 +667,12 @@ export default {
paramList.push(name) paramList.push(name)
} }
}) })
this.$confirm(`脚本中的参数${paramList.join(',')}不存在,是否添加?`, '提示', { if (this.autoFill && paramList.length > 0) {
confirmButtonText: '确定', this.addParams(paramList)
cancelButtonText: '取消', paramList = []
customClass: 'bs-el-message-box', }
type: 'warning'
}).then(() => {
paramList.forEach(name => {
this.dataForm.config.paramsList.push({
name,
type: '',
value: '',
status: 1,
require: 0,
remark: ''
})
})
}).catch(() => {})
} else { } else {
console.info(error)
this.$message.error(`脚本执行错误,请检查脚本,具体错误:${error}`) this.$message.error(`脚本执行错误,请检查脚本,具体错误:${error}`)
} }
return return
@ -762,6 +753,19 @@ export default {
this.$message.error('请填写脚本') this.$message.error('请填写脚本')
} }
}, },
addParams (paramList) {
this.$refs.paramsSettingDialog.open()
paramList.forEach(name => {
this.dataForm.config.paramsList.push({
name,
type: '',
value: '',
status: 1,
require: 0,
remark: ''
})
})
},
// //
// toExecute () { // toExecute () {
// if (this.dataForm.config.paramsList.length) { // if (this.dataForm.config.paramsList.length) {

@ -319,7 +319,7 @@
</div> </div>
<div class="field-wrap bs-field-wrap bs-scrollbar"> <div class="field-wrap bs-field-wrap bs-scrollbar">
<div <div
v-for="field in structurePreviewList" v-for="field in sortedStructurePreviewList"
:key="field.fieldName" :key="field.fieldName"
class="field-item" class="field-item"
@click="fieldsetVisible = true" @click="fieldsetVisible = true"
@ -363,15 +363,15 @@
class="bs-el-table bs-scrollbar" class="bs-el-table bs-scrollbar"
> >
<el-table-column <el-table-column
v-for="(value, key) in dataPreviewList[0] ? dataPreviewList[0] : noDataTableDisplayFields" v-for="(value, key) in sortedTablePreviewList"
:key="key" :key="key"
:label="key" :label="value"
align="center" align="center"
show-overflow-tooltip show-overflow-tooltip
:render-header="renderHeader" :render-header="renderHeader"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row[key] }}</span> <span>{{ scope.row[value] }}</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -609,6 +609,21 @@ export default {
tableColumnObject[item.fieldName] = '' tableColumnObject[item.fieldName] = ''
}) })
return tableColumnObject return tableColumnObject
},
sortedTablePreviewList () {
const tableList = this.dataPreviewList[0] ? this.dataPreviewList[0] : this.noDataTableDisplayFields
const list = Object.keys(tableList)
list.sort((a, b) => {
return this.structurePreviewListCopy.findIndex(item => item.fieldName === a) - this.structurePreviewListCopy.findIndex(item => item.fieldName === b)
})
return list
},
sortedStructurePreviewList () {
const list = this.structurePreviewList
list.sort((a, b) => {
return a.orderNum - b.orderNum
})
return list
} }
}, },
watch: { watch: {
@ -630,8 +645,10 @@ export default {
}, },
deep: true, deep: true,
immediate: true immediate: true
},
sortedStructurePreviewList (val) {
this.structurePreviewListCopy = cloneDeep(val)
} }
}, },
mounted () { mounted () {
this.init() this.init()
@ -718,7 +735,7 @@ export default {
if (this.dataForm.fieldList == null) { if (this.dataForm.fieldList == null) {
this.dataForm.fieldList = cloneDeep(data.structure) this.dataForm.fieldList = cloneDeep(data.structure)
} }
this.dataPreviewList = data.data.list this.dataPreviewList = cloneDeep(data.data.list)
this.totalCount = data.data.totalCount this.totalCount = data.data.totalCount
this.tableLoading = false this.tableLoading = false
}).catch(() => { }).catch(() => {
@ -958,7 +975,9 @@ export default {
}) })
} }
this.structurePreviewListCopy = cloneDeep(this.structurePreviewList) this.structurePreviewListCopy = cloneDeep(this.structurePreviewList).sort((a, b) => {
return a.orderNum - b.orderNum
})
this.totalCount = data.data.totalCount this.totalCount = data.data.totalCount
this.currentCount = data.data.currentCount this.currentCount = data.data.currentCount
this.tableLoading = false this.tableLoading = false

@ -156,8 +156,9 @@ export default {
try { try {
const scriptAfterReplacement = res.data.script.replace(/\${(.*?)}/g, (match, p) => { const scriptAfterReplacement = res.data.script.replace(/\${(.*?)}/g, (match, p) => {
const value = this.config.dataSource?.params[p] const value = this.config.dataSource?.params[p]
if (value === null || value === undefined || value === '') {
if (!isNaN(value)) { return "''"
} else if (!isNaN(value)) {
return value || p return value || p
} else { } else {
return `'${value}' || '${p}'` return `'${value}' || '${p}'`
@ -224,7 +225,9 @@ export default {
try { try {
const scriptAfterReplacement = res.data.script.replace(/\${(.*?)}/g, (match, p) => { const scriptAfterReplacement = res.data.script.replace(/\${(.*?)}/g, (match, p) => {
const value = this.config.dataSource?.params[p] const value = this.config.dataSource?.params[p]
if (!isNaN(value)) { if (value === null || value === undefined || value === '') {
return "''"
} else if (!isNaN(value)) {
return value || p return value || p
} else { } else {
return `'${value}' || '${p}'` return `'${value}' || '${p}'`

Loading…
Cancel
Save