|
@@ -9,7 +9,7 @@
|
|
|
|
|
|
<a-form v-show="selectItem.key !== ''">
|
|
|
<a-form-item v-if="isDefined(selectItem.label)" label="标签">
|
|
|
- <Input v-model="selectItem.label" placeholder="请输入" />
|
|
|
+ <Input v-model="selectItem.label" @input="seeSelectItem" placeholder="请输入" />
|
|
|
</a-form-item>
|
|
|
|
|
|
<!-- +++ -->
|
|
@@ -51,6 +51,22 @@
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</a-form-item>
|
|
|
+ <a-form-item
|
|
|
+ v-if="!hideModel && isDefined(selectItem.columns)"
|
|
|
+ label="编辑列"
|
|
|
+ >
|
|
|
+ <el-button type="primary" icon="el-icon-edit" @click="editTableColumns(selectItem)">编辑</el-button>
|
|
|
+ <!-- <el-select v-model="selectItem.model" @change="changeModel" filterable placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in formList.listName"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ <span style="float: left">{{ item.label }}</span>
|
|
|
+ <span style="float: right; color: #8492a6; font-size: 13px">{{ item.fieldDescription }}</span>
|
|
|
+ </el-option>
|
|
|
+ </el-select> -->
|
|
|
+ </a-form-item>
|
|
|
|
|
|
<!-- input type start -->
|
|
|
<a-form-item v-if="selectItem.type === 'input'" label="输入框type">
|
|
@@ -161,7 +177,7 @@
|
|
|
v-if="['tabs', 'selectInputList'].includes(selectItem.type)"
|
|
|
:label="selectItem.type === 'tabs' ? '页签配置' : '列选项配置'"
|
|
|
>
|
|
|
- <KChangeOption v-model="selectItem.columns" type="tab" />
|
|
|
+ <KChangeOption v-model="selectItem.columns" :tableList="formList.formName" type="tab" />
|
|
|
</a-form-item>
|
|
|
<!-- tabs配置 end -->
|
|
|
<a-form-item v-if="selectItem.type === 'grid'" label="栅格间距">
|
|
@@ -562,10 +578,57 @@
|
|
|
</a-form-item>
|
|
|
</a-form>
|
|
|
</div>
|
|
|
+ <!-- 表格展示数据弹窗 -->
|
|
|
+ <el-dialog
|
|
|
+ :visible.sync="tableShowData.isShow"
|
|
|
+ :modal-append-to-body="false"
|
|
|
+ :append-to-body="true"
|
|
|
+ title="表格展示数据"
|
|
|
+ width="500px"
|
|
|
+ >
|
|
|
+ <div class="ben-list mb5" >
|
|
|
+ <el-button type="primary" size="small" icon="el-icon-plus" @click="addOneColumn">添加一列</el-button>
|
|
|
+ <el-button size="small" icon="el-icon-close" @click="tableShowData.isShow=false">关闭</el-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="table-wrap">
|
|
|
+ <el-table v-if="selectItem" :data="selectItem.columns||[]" border stripe>
|
|
|
+ <el-table-column type="index" width="50" />
|
|
|
+ <el-table-column prop="prop" label="字段">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-select v-model="scope.row.prop" filterable size="mini">
|
|
|
+ <el-option
|
|
|
+ v-for="item in formList.listName"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ <span style="float: left">{{ item.label }}</span>
|
|
|
+ <span style="float: right; color: #8492a6; font-size: 13px">{{ item.fieldDescription }}</span>
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="label" label="描述">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-model="scope.row.label" size="mini" clearable ></el-input>
|
|
|
+
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button type="text" size="mini" icon="el-icon-delete" @click="handleDelete(scope.$index)">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import { message } from 'ant-design-vue'
|
|
|
/*
|
|
|
* author kcz
|
|
|
* date 2019-11-20
|
|
@@ -688,6 +751,10 @@ export default {
|
|
|
listName:[],
|
|
|
tableName:""
|
|
|
},
|
|
|
+ tableShowData: {
|
|
|
+ isShow: false,
|
|
|
+ columns:[]
|
|
|
+ }
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
@@ -707,9 +774,34 @@ export default {
|
|
|
hideModel: {
|
|
|
type: Boolean,
|
|
|
default: false
|
|
|
- }
|
|
|
+ },
|
|
|
+
|
|
|
},
|
|
|
methods: {
|
|
|
+ // 删除一列
|
|
|
+ handleDelete(index){
|
|
|
+ this.selectItem.columns.splice(index,1)
|
|
|
+ },
|
|
|
+ // 添加一列
|
|
|
+ addOneColumn(){
|
|
|
+ this.selectItem.columns.push({
|
|
|
+ label:'',
|
|
|
+ prop:'',
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 编辑tableShow的列
|
|
|
+ editTableColumns() {
|
|
|
+ if(!this.selectItem.tableName){
|
|
|
+ this.$message.warning('请先选择表名')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ console.log(this.selectItem)
|
|
|
+ this.tableShowData.isShow = true;
|
|
|
+
|
|
|
+ },
|
|
|
+ seeSelectItem() {
|
|
|
+ console.log('selectItem',this.selectItem);
|
|
|
+ },
|
|
|
// 列名变化回调
|
|
|
changeModel() {
|
|
|
console.log('列',this.selectItem);
|
|
@@ -725,12 +817,13 @@ export default {
|
|
|
* @param {*} value
|
|
|
*/
|
|
|
isDefined(value) {
|
|
|
+
|
|
|
return typeof value !== "undefined";
|
|
|
},
|
|
|
// 判断是否需要列名
|
|
|
isNeedColumn(value) {
|
|
|
console.log(value.type);
|
|
|
- let notNeedColumnList = ['batch', 'selectInputList'];
|
|
|
+ let notNeedColumnList = ['batch', 'selectInputList','tableShow'];
|
|
|
if (notNeedColumnList.includes(value.type)) {
|
|
|
return false;
|
|
|
} else {
|
|
@@ -753,7 +846,9 @@ export default {
|
|
|
let flag=notNeedColumnList.includes(item.type)
|
|
|
if (flag) {
|
|
|
item.model='batch.'+item.tableName
|
|
|
- } else {
|
|
|
+ } else if(item.type){
|
|
|
+ item.model=item.tableName
|
|
|
+ }else {
|
|
|
item.model=''
|
|
|
}
|
|
|
let par2 = {
|
|
@@ -796,5 +891,8 @@ export default {
|
|
|
overflow:hidden;
|
|
|
text-overflow:ellipsis;
|
|
|
}
|
|
|
-
|
|
|
+.table-wrap{
|
|
|
+ max-height: 500px;
|
|
|
+ overflow-y: scroll
|
|
|
+}
|
|
|
</style>
|