上面要求做一个根据后台数据动态生成控件,然后让用户输入提交查询信息,然后动态生成表格在显示出来。动态控件代码如下
<el-form :model="formData" style="padding: 0 5px;"> <div v-if="tableshow"> <div v-for="(item,i) in control" :key="i" style="padding-left:10px; float:left" > <el-form-item v-if="item.type=='input'" :key="item.name" :prop="item.name" label-width="100px"> <label slot="label">{{ item.cnname }}:</label> <el-input v-model="item.value" size="mini" style="width: 100px; padding-right: 5px;"/> </el-form-item> <el-form-item v-if="item.type=='time'" :key="item.name" :prop="item.name" label-width="100px"> <label slot="label">{{ item.cnname }}:</label> <el-date-picker v-model="item.value" value-format="yyyy-MM-dd HH:mm:ss" type="date" placeholder="选择日期"/> </el-form-item> </div> <div style="padding-left:10px; float:left"> <el-form-item prop="name" style="width: 20px; margin-bottom: 0px;"> <el-button class="filter-item" type="primary" icon="el-icon-search" size="mini" @click="cmdsearch"> {{ $t('table.search') }} </el-button> </el-form-item> </div> </div> </el-form>
data格式如下
control: [{ name: 'input1', cnname: '输入框1', type: 'input', value: '这里' }, { name: 'time1', cnname: '时间范围', type: 'time', value: null }]
还要监听所有控件变化
computed: { // 监听所有控件变化 formData: function() { var formData = {} this.control.forEach((item) => { formData[item.name] = item.value }) return formData } }
动态表格如下
<el-table v-if="tableshow" id="exportTab" ref="multipleTable" :data="tables" border="true" tooltip-effect="dark" style="width: 100%;" @selection-change="selectArInfo"> <el-table-column fixed="left" label="序号" width="62px" type="index"/> <template v-for="(col) in tableData"> <el-table-column :show-overflow-tooltip="true" :formatter="fmtLength" :prop="col.dataItem" :label="col.dataName" :key="col.dataItem" resizable="true" width="120px"/> </template> </el-table>
需要两个数组,一个保存表格列名,一个保存表格数据
tables: [], tableData: [dataItem: xxx, dataName: xxx], //保存表格列名
补充知识:vue table表格的使用(动态数据展示)
第一种方式
<el-table :data="tableDataalllist" border style="width: 100%" @sort-change="totalusercount"> <el-table-column :label="head" :prop="head" v-for="(head, index) in header" :key="head" :sortable="定义自定义排序项"> <template slot-scope="scope"> {{tableDataalllist[scope.$index][index]}} // 当前行数据 接收两个参数scope.$index; scope.row <template> <el-table-column> <el-table> <script> export default{ data(){ return{ // 数据结构 tableDataalllist:[{ 1,'张三','23' },{ 2,'李四','15' },{ 3,'王五','18' }], header:['id','name','age'] } }, methods:{ // 接受一个obj参数 totalusercount(obj){ console.log(obj.prop) // 排序规则 console.log(obj.order) // 排序方式 } } } </script>
第二种方式(动态进行列的添加)
<el-table :data="gameareatable" v-loading="cardBuyConsumeDataLoading" v-if="gameareatable.length> 0"> <el-table-column align="center" v-for="(item,index) in activePlayerDataPropLabelArray" :prop="item.prop" :label="item.label" :key="item.prop"> <template slot-scope="scope"> {{scope.row[item.prop]"斗地主", prop:"12" },{ label:'麻将', prop:'15' }], gameareatable:[{ date:"2018-09-10", 12:'老k', 15:'一万' },{ date:"2018-08-01", 12:'炸弹', 15:'一条' },{ date:"2018-08-02", 12:'对子', 15:'五筒' }] } } }
以上这篇vue实现动态表格提交参数动态生成控件的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
更新日志
2024年11月25日
2024年11月25日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]