|
@@ -94,9 +94,33 @@
|
|
|
<!-- 选择数据 -->
|
|
|
<template v-if="model.type === 'dataSelect'">
|
|
|
<a-form-item label="选择表单">
|
|
|
- <a-select style="width:50%" v-model="model.attrs.dict" placeholder="请选择" :options="DictCache.getChildrenList('TABLE_MAPPING')">
|
|
|
+ <a-select v-model="model.attrs.dict" placeholder="请选择" :options="DictCache.getChildrenList('TABLE_MAPPING')" @change="dictChange">
|
|
|
</a-select>
|
|
|
- <a-button style="width:50%" type="primary" @click="bindTable(model.attrs.dict)">绑定字段</a-button>
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item label="选择类型">
|
|
|
+ <a-radio-group name="radioGroup" v-model="model.attrs.selectType" @change="selectTypeChange">
|
|
|
+ <a-radio value="radio">
|
|
|
+ 单选
|
|
|
+ </a-radio>
|
|
|
+ <a-radio value="checkbox">
|
|
|
+ 多选
|
|
|
+ </a-radio>
|
|
|
+ </a-radio-group>
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item label="默认字段" v-if="model.attrs.connect.length">
|
|
|
+ <a-select v-model="model.attrs.connect[0].columnName" placeholder="请选择">
|
|
|
+ <a-select-option v-for="item in tableList" :value="item.columnName" :key="item.columnName">
|
|
|
+ {{ item.columnComment }}
|
|
|
+ </a-select-option>
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item label="附加字段" v-if="model.attrs.connect.length&&model.attrs.selectType=='radio'">
|
|
|
+ <a-select mode="multiple" v-model="additionalField" placeholder="请选择" @change="additionalFieldChange">
|
|
|
+ <a-select-option v-for="item in tableList" :value="item.columnName" :key="item.columnName" :label=" item.columnComment">
|
|
|
+ {{ item.columnComment }}
|
|
|
+ </a-select-option>
|
|
|
+ </a-select>
|
|
|
+ <a-button type="primary" @click="addForm()">添加到表单</a-button>
|
|
|
</a-form-item>
|
|
|
</template>
|
|
|
<a-popconfirm
|
|
@@ -157,16 +181,21 @@ export default {
|
|
|
key: '1',
|
|
|
tab: '表单属性'
|
|
|
}
|
|
|
- ]
|
|
|
+ ],
|
|
|
+ tableList: [],
|
|
|
+ additionalField: []
|
|
|
}
|
|
|
},
|
|
|
-
|
|
|
created () {
|
|
|
},
|
|
|
methods: {
|
|
|
base (val, config) {
|
|
|
this.model = val
|
|
|
this.config = config
|
|
|
+ if (this.model.attrs.dict !== undefined && this.model.attrs.dict !== '') {
|
|
|
+ this.dictChange(this.model.attrs.dict)
|
|
|
+ }
|
|
|
+ this.additionalField = val.attrs.connect && val.attrs.connect.length > 1 ? val.attrs.connect.slice(1, val.attrs.connect.length).map(item => item.columnName) : []
|
|
|
},
|
|
|
addOption () {
|
|
|
this.model.attrs.options.push({
|
|
@@ -180,11 +209,38 @@ export default {
|
|
|
deleteModel () {
|
|
|
this.$emit('delete', this.model)
|
|
|
},
|
|
|
- bindTable (tableName) {
|
|
|
+ dictChange (tableName) {
|
|
|
getTableInfos({ tableName }).then(res => {
|
|
|
- this.$refs.bindTable.base(res.data)
|
|
|
+ this.tableList = res.data
|
|
|
+ if (this.model.attrs.connect.length === 0) {
|
|
|
+ this.model.attrs.connect.push({
|
|
|
+ bind: 'id',
|
|
|
+ columnName: 'id',
|
|
|
+ columnComment: 'id'
|
|
|
+ })
|
|
|
+ }
|
|
|
})
|
|
|
},
|
|
|
+ selectTypeChange () {
|
|
|
+ this.model.attrs.connect.splice(1)
|
|
|
+ this.additionalField = []
|
|
|
+ },
|
|
|
+ additionalFieldChange (val, e) {
|
|
|
+ const arr = e.map(item => {
|
|
|
+ return {
|
|
|
+ bind: item.key,
|
|
|
+ columnName: item.key,
|
|
|
+ columnComment: item.componentOptions.propsData.label
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.model.attrs.connect.splice(1, this.model.attrs.connect.length - 1, ...arr)
|
|
|
+ },
|
|
|
+ addForm () {
|
|
|
+ this.$emit('addForm', this.model.attrs.connect.slice(1, this.model.attrs.connect.length))
|
|
|
+ },
|
|
|
+ bindTable (tableName) {
|
|
|
+ this.$refs.bindTable.base(this.tableList)
|
|
|
+ },
|
|
|
handleBind (val) {
|
|
|
this.model.attrs.connect = val
|
|
|
},
|