vue实现动态表格提交参数动态生成控件的操作


Posted in Javascript onNovember 09, 2020

上面要求做一个根据后台数据动态生成控件,然后让用户输入提交查询信息,然后动态生成表格在显示出来。动态控件代码如下

<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>
id name age
1 张三 23
2 李四 15
3 王五 18

第二种方式(动态进行列的添加)

<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]?scope.row[item.prop]:'暂无数据'}}
  </template>
 </el-table-column>
 </el-table>

export default {
 data(){
  return{
  // 数据结构 activePlayerDataPropLabelArray为label标签显示label表示当前列th的显示的值,prop表示当前'日期'列下显示date数据,'斗地主'列下显示prop为12的数据,'麻将'列下显示prop为15的数据,
   activePlayerDataPropLabelArray:[{
    label:'日期',
    prop:'date'
   },{
    label:"斗地主",
    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:'五筒' 
   }]
  }
 }
}
日期 斗地主 麻将
2018-09-10 老k 一万
2018-08-01 炸弹 一条
2018-08-02 对子 一万

以上这篇vue实现动态表格提交参数动态生成控件的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
免费空间广告万能消除代码
Sep 04 Javascript
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
Mar 07 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
Apr 19 Javascript
javascript浏览器窗口之间传递数据的方法
Jan 20 Javascript
jQuery DOM插入节点操作指南
Mar 03 Javascript
JS脚本实现动态给标签控件添加事件的方法
Jun 02 Javascript
jQueryUI DatePicker 添加时分秒
Jun 04 Javascript
html+js+highcharts绘制圆饼图表的简单实例
Aug 04 Javascript
微信小程序 实战小程序实例
Oct 08 Javascript
Vue项目history模式下微信分享爬坑总结
Mar 29 Javascript
js实现视图和数据双向绑定的方法分析
Feb 05 Javascript
如何HttpServletRequest文件对象并储存
Aug 14 Javascript
es5 类与es6中class的区别小结
Nov 09 #Javascript
vue实现标签云效果的示例
Nov 09 #Javascript
写一个Vue loading 插件
Nov 09 #Javascript
解决Vue大括号字符换行踩的坑
Nov 09 #Javascript
vue data有值,但是页面{{}} 取不到值的解决
Nov 09 #Javascript
vue 防止页面加载时看到花括号的解决操作
Nov 09 #Javascript
Webpack的Loader和Plugin的区别
Nov 09 #Javascript
You might like
基于curl数据采集之正则处理函数get_matches的使用
2013/04/28 PHP
PHP检测链接是否存在的代码实例分享
2016/05/06 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
动态表格Table类的实现
2009/08/26 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
点击button获取text内容并改变样式的js实现
2014/09/09 Javascript
JavaScript设计模式之外观模式介绍
2014/12/28 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
JS实现评价的星星功能
2017/08/20 Javascript
解决Layui数据表格中checkbox位置不居中的方法
2018/08/15 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
python使用arp欺骗伪造网关的方法
2015/04/24 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
python实现可视化动态CPU性能监控
2018/06/21 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
Python利用pip安装tar.gz格式的离线资源包
2020/09/14 Python
如何用Python进行时间序列分解和预测
2021/03/01 Python
深入探究HTML5的History API
2015/07/09 HTML / CSS
Unineed旗下时尚轻奢网站:FABHunt
2019/05/13 全球购物
Interflora澳大利亚:同日鲜花速递
2019/06/25 全球购物
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
城管综合整治方案
2014/05/01 职场文书
团支部建设方案
2014/05/02 职场文书
六一儿童节标语
2014/10/08 职场文书
铁路安全反思材料
2014/12/24 职场文书
关于召开会议的通知
2015/04/15 职场文书
会议主持词结束语
2015/07/03 职场文书
寒假致家长的一封信
2015/10/10 职场文书
Nginx 502 Bad Gateway错误原因及解决方案
2021/03/31 Servers