vue+element创建动态的form表单.以及动态生成表格的行和列

动态创建form表单,网上有插件 (form-create) 不过我不知道它怎么用,没有使用成功,如果你使用成功了,欢迎下方留言.

  最后我使用了笨方法,针对各个表单写好通用的组件,然后根据typev-if来渲染对应的表单,数据,事件什么的都可以动态的传进去,比较好用

  

 1 <el-form size="mini" class="lj-form lj-form-s1">
 2             <div v-for="(item,i) in table.customerList" :key="i">
 3               <!-- 0单行文本 -->
 4               <el-form-item
 5                 :label="item.field_title + ': '"
 6                 v-if="item.field_type == '0' && item.is_show == '1'"
 7               >
 8                 <el-input v-model="item.value" :placeholder="item.placeholder"></el-input>
 9               </el-form-item>
10             <!-- 3下拉菜单 -->
11               <el-form-item
12                 :label="item.field_title + ': '"
13                 v-if="item.field_type == '3' && item.is_show == '1'"
14               >
15                 <el-select v-model="item.value" :placeholder="item.placeholder">
16                   <span v-for="(item1,i) in item.field_value" :key="i">
17                     <el-option :label="item1" :value="item1"></el-option>
18                   </span>
19                 </el-select>
20               </el-form-item>
21             </div>
22 </el-form>

  动态生成表格的行和列,主要是要求后端返回的数据格式,根据数据来动态渲染

  注意点:这里两个数组 :    表格字段数据: titleData: [],   表格详细数据: tables: [], 数据通过字段来查找/渲染成表格的

 1 <template>
 2   <div class="boxShadow">
 3     <div style="margin-top: 20px">
 4  
 5       <el-table
 6         :data="tables"
 7         ref="multipleTable"
 8         tooltip-effect="dark"
 9         style="width: 100%"
10         @selection-change='selectArInfo'>
11         <el-table-column type="selection" width="45px"></el-table-column>
12         <el-table-column label="序号" width="62px" type="index">
13         </el-table-column>
14         <template v-for='(col) in titleData'>
15           <el-table-column
16             sortable
17             :show-overflow-tooltip="true"
18             :prop="col.dataItem"
19             :label="col.dataName"
20             :key="col.dataItem"
21             width="124px">
22           </el-table-column>
23         </template>
24         <el-table-column label="操作" width="80" align="center">
25           <template slot-scope="scope">
26             <el-button size="mini" class="del-com" @click="delTabColOne()" ><i class="iconfont icon-shanchu"></i></el-button>
27           </template>
28         </el-table-column>
29       </el-table>
30  
31  
32     </div>
33   </div>
34  
35 </template>

 

 1 data () {
 2       return {
 3         tables: [{
 4           xiaoxue: '福兰',
 5           chuzhong: '加芳',
 6           gaozhong: '蒲庙', 7 daxue: '西安', 8 yanjiusheng: '西安', 9 shangban: '北京' 10  }, { 11 xiaoxue: '南坊', 12 chuzhong: '礼泉', 13 gaozhong: '礼泉', 14 daxue: '西安', 15 yanjiusheng: '西安', 16 shangban: '南坊' 17  }, ], 18  titleData: [{ 19 dataItem: 'xiaoxue', 20 dataName: '小学' 21  }, { 22 dataItem: 'chuzhong', 23 dataName: '初中' 24  }, { 25 dataItem: 'gaozhong', 26 dataName: '高中' 27  }, { 28 dataItem: 'daxue', 29 dataName: '大学' 30  }, { 31 dataItem: 'yanjiusheng', 32 dataName: '研究生' 33  }, { 34 dataItem: 'shangban', 35 dataName: '上班' 36  }] 37 }

转载于:https://www.cnblogs.com/jun-qi/p/10895039.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值