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>

  動態生成表格的行和列,主要是要求後端返回的數據格式,根據數據來動態渲染spa

  注意點:這裏兩個數組 :    表格字段數據: 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 }
相關文章
相關標籤/搜索