Преглед изворни кода

自定义事件修改优化

wu пре 3 месеци
родитељ
комит
99ac2ec687
1 измењених фајлова са 11 додато и 5 уклоњено
  1. 11 5
      src/views/form/webDesign/customFormEvent.vue

+ 11 - 5
src/views/form/webDesign/customFormEvent.vue

@@ -13,7 +13,7 @@
     <div >
       <div style="margin-bottom:5px;">
         事件名称:<el-input style="width:300px" v-model="eventName" placeholder="请输入事件名称"></el-input>
-        <el-button style="float:right;" type="success" plain size="mini" @click="list.length < 3 && list.push({formName:'',dataTable:'',FormColumnList:[{columnName:'',value:''}],columnList:[],filterColumnList:[{columnId:'',viewDataType:'STRING',function:'like',value:''}]});">+添加分组</el-button>
+        <el-button style="float:right;" type="success" plain size="mini" @click="list.length < 3 && list.push({formName:'',dataTable:'',operate:1,primaryStrategy:'',idKeyName:'',FormColumnList:[{columnId:'',columnName:'',value:''}],columnList:[],filterColumnList:[{columnId:'',viewDataType:'STRING',function:'like',value:''}]});">+添加分组</el-button>
       </div>
       <div style="height: 500px;overflow-y:auto">
         <el-card class="box-card" v-for="(value,key) in list" style="margin-bottom: 10px" :key="key">
@@ -25,7 +25,11 @@
             <span style="margin-left:10px">物理数据表:{{value.dataTable}}</span>
             <i class="el-icon-delete" style="font-size:20px;color:#13ce66;float: right;cursor: pointer;" @click="list.length > 1 ? list.splice(key,1) : $message.warning('至少保留一个分组') "></i>
           </div>
-          <el-button type="success" plain size="mini" @click="value.FormColumnList.push({columnName:'',value:''});">+添加字段</el-button>
+          <el-button type="success" plain size="mini" @click="value.FormColumnList.push({columnId:'',columnName:'',value:''});">+添加字段</el-button>
+          <el-select style="float:right;bottom:5px;" v-model="value.operate" filterable placeholder="请选择方式" clearable >
+            <el-option  label="新增" :value="0" :key="0"></el-option>
+            <el-option  label="编辑" :value="1" :key="1"></el-option>
+          </el-select>
           <el-table v-loading="loading" size="mini" :data="value.FormColumnList"  border  style="width: 100%;margin:10px 0;">
             <el-table-column width="50" align="center">
               <template slot-scope="scope">
@@ -34,7 +38,7 @@
             </el-table-column>
             <el-table-column label="表单字段" width="180"  align="center">
               <template slot-scope="scope">
-                <el-select v-model="scope.row.columnName" filterable placeholder="请选择表单字段" clearable >
+                <el-select v-model="scope.row.columnId" filterable @change="scope.row.columnName = value.columnList.find(o=> o.propId === $event).prop" placeholder="请选择表单字段" clearable >
                   <el-option v-for="(item, index) in value.columnList" :label="item.label" :value="item.propId" :key="item.propId"></el-option>
                 </el-select>
               </template>
@@ -160,7 +164,7 @@ export default {
       paramList: [],
       id:'',
       list:[
-        {formName:'',dataTable:'',FormColumnList:[{columnName:'',value:''}],columnList:[],filterColumnList:[{columnId:'',viewDataType:'STRING',function:'like',value:''}]}
+        {formName:'',dataTable:'',operate:1,primaryStrategy:'',idKeyName:'',FormColumnList:[{columnId:'',columnName:'',value:''}],columnList:[],filterColumnList:[{columnId:'',viewDataType:'STRING',function:'like',value:''}]}
       ],
       nowParam:[]
     }
@@ -189,7 +193,7 @@ export default {
           this.eventStatus = 0
           this.datasourceId = this.dbSourceId
           this.list =[
-            {formName:'',dataTable:'',FormColumnList:[{columnName:'',value:''}],columnList:[],filterColumnList:[{columnId:'',viewDataType:'STRING',function:'like',value:''}]}
+            {formName:'',dataTable:'',operate:1,primaryStrategy:'',idKeyName:'',FormColumnList:[{columnId:'',columnName:'',value:''}],columnList:[],filterColumnList:[{columnId:'',viewDataType:'STRING',function:'like',value:''}]}
           ]
         }
       })
@@ -236,8 +240,10 @@ export default {
       getConfigData(v).then((res) => {
         let data = res.data.data
         value.dataTable = data.primaryTableName
+        value.primaryStrategy = data.primaryStrategy
         let columnData = JSON.parse(data.columnData)
         value.columnList = columnData.columnList
+        value.idKeyName = columnData.columnList.find(o=> o.propId === data.idKey)?.prop || ''
         this.loading = false
       }).finally(()=>{
         this.loading = false