|
@@ -10,7 +10,7 @@
|
|
|
col.prop === 'comparisonOperator' ||
|
|
|
col.inputType[rowIndex] === 'select'
|
|
|
">
|
|
|
- <el-select style="width: 120px;" size="small" v-model="row[col.prop]" placeholder="请选择" @change="
|
|
|
+ <el-select :style="col.prop === 'comparisonOperator' ? 'width:120px':'width:195px'" size="small" v-model="row[col.prop]" placeholder="请选择" @change="
|
|
|
value => {
|
|
|
selectChangeHandler(value, rowIndex, colIndex)
|
|
|
}
|
|
@@ -42,10 +42,10 @@
|
|
|
" @keydown.native="inputHold(row[col.prop])" @input="inputLimit(row[col.prop], rowIndex)" @blur="inputFix(row[col.prop], rowIndex)" />
|
|
|
</template>
|
|
|
<template v-else-if="col.inputType[rowIndex] === 'date'">
|
|
|
- <el-date-picker v-model="row[col.prop]" size="small" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="请选择" :clearable="false" />
|
|
|
+ <el-date-picker style="width: 195px;" v-model="row[col.prop]" size="small" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="请选择" :clearable="false" />
|
|
|
</template>
|
|
|
<template v-else-if="col.inputType[rowIndex] === 'datetime'">
|
|
|
- <el-date-picker v-model="row[col.prop]" size="small" type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" placeholder="请选择" :clearable="false" />
|
|
|
+ <el-date-picker style="width: 195px;" v-model="row[col.prop]" size="small" type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" placeholder="请选择" :clearable="false" />
|
|
|
</template>
|
|
|
<template v-else-if="col.inputType === 'delete'">
|
|
|
<i class="clickable-delete el-icon-error" @click="deleteParam(rowIndex)" />
|
|
@@ -83,6 +83,7 @@
|
|
|
<script>
|
|
|
import { parseTime } from '@/utils/index'
|
|
|
import { mapGetters } from 'vuex'
|
|
|
+import { Query } from "@/api/webApi"
|
|
|
const comparisonOperatorOptions = [
|
|
|
{
|
|
|
label: '小于等于',
|
|
@@ -269,7 +270,7 @@ export default {
|
|
|
const colDatas = this.authMsg
|
|
|
if (colDatas?.length) {
|
|
|
// const columns = colDatas.filter(item => item.isfiltercolumn)
|
|
|
- const columns = colDatas.filter(item => item.pagetype != 'button' && item.isdisplay != 0)
|
|
|
+ const columns = colDatas.filter(item => item.isfiltercolumn)
|
|
|
const datas = _.orderBy(columns, ['displaynumber'], ['asc', 'desc'])
|
|
|
this.getColumnSet(datas)
|
|
|
}
|
|
@@ -342,30 +343,38 @@ export default {
|
|
|
connector: '',
|
|
|
})
|
|
|
},
|
|
|
- selectChangeHandler (value, rowIndex, colIndex) {
|
|
|
+ async selectChangeHandler (value, rowIndex, colIndex) {
|
|
|
if (colIndex === 0) {
|
|
|
// const datas = this.tableColMunt.filter(item => item.columnName == value)
|
|
|
- const { dataType, options } = this.columnSet[value]
|
|
|
+ const { datatype, dropdownlistid, dropdownlistlabel, dropdownlist, defaultparameters } = this.columnSet[value]
|
|
|
// const { dataType, options } = datas[0]
|
|
|
// 下拉框发生改变清空之前的数据
|
|
|
this.paramsForm.params[rowIndex].paramValue = ''
|
|
|
- if (dataType === 'date') {
|
|
|
+ if (datatype === 'date') {
|
|
|
this.paramsTableCols[1].options[rowIndex] = comparisonOperatorOptions
|
|
|
.slice(0, 5)
|
|
|
.reverse()
|
|
|
this.paramsTableCols[2].inputType[rowIndex] = 'date'
|
|
|
- } else if (dataType === 'datetime') {
|
|
|
+ } else if (datatype === 'datetime') {
|
|
|
this.paramsTableCols[1].options[rowIndex] = comparisonOperatorOptions
|
|
|
.slice(0, 5)
|
|
|
.reverse()
|
|
|
this.paramsTableCols[2].inputType[rowIndex] = 'datetime'
|
|
|
- } else if (options) {
|
|
|
+ } else if (dropdownlist || dropdownlist == 0) {
|
|
|
+ const datacontent = defaultparameters ? { filter: this.formatDefault(defaultparameters) } : { filter: { 1: 1 } }
|
|
|
+ const { code, returnData } = await Query({ serviceid: dropdownlist, datacontent, event: '0', page: 1, size: 9999 })
|
|
|
+ if (code == 0 && returnData?.length) {
|
|
|
+ returnData.map(item => {
|
|
|
+ item.label = item[dropdownlistlabel],
|
|
|
+ item.value = item[dropdownlistid]
|
|
|
+ })
|
|
|
+ }
|
|
|
this.paramsTableCols[1].options[rowIndex] =
|
|
|
comparisonOperatorOptions.slice(4, 5)
|
|
|
this.paramsTableCols[2].inputType[rowIndex] = 'select'
|
|
|
- this.paramsTableCols[2].options[rowIndex] = options
|
|
|
+ this.paramsTableCols[2].options[rowIndex] = returnData || []
|
|
|
this.paramsForm.params[rowIndex].paramValue = ''
|
|
|
- } else if (dataType === 'number') {
|
|
|
+ } else if (datatype === 'number') {
|
|
|
this.paramsTableCols[1].options[rowIndex] = comparisonOperatorOptions
|
|
|
.slice(0, 5)
|
|
|
.reverse()
|
|
@@ -387,6 +396,18 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
+ //格式化传递参数数据
|
|
|
+ formatDefault (item) {
|
|
|
+ if (typeof item != 'string') return {}
|
|
|
+ const filterItem = {}
|
|
|
+ const parameters = item.replace('{', '').replace('}', '')
|
|
|
+ const parametersSplit = parameters?.split(',')
|
|
|
+ parametersSplit.map(item => {
|
|
|
+ const [key, val] = item?.split(':')
|
|
|
+ filterItem[key] = val
|
|
|
+ })
|
|
|
+ return filterItem
|
|
|
+ },
|
|
|
inputHold (value) {
|
|
|
this.checkValue = value
|
|
|
},
|