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 相关文章推荐
在IE中调用javascript打开Excel的代码(downmoon原作)
Apr 02 Javascript
如何用js控制css中的float的代码
Aug 16 Javascript
使用JavaScript的AngularJS库编写hello world的方法
Jun 23 Javascript
js中不同的height, top的区别对比
Sep 24 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
Jul 28 Javascript
jQuery3.0中的buildFragment私有函数详解
Aug 16 Javascript
jQuery实现根据生日计算年龄 星座 生肖
Nov 23 Javascript
JS类的定义与使用方法深入探索
Nov 26 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
Mar 23 jQuery
vue 实现axios拦截、页面跳转和token 验证
Jul 17 Javascript
JS代码触发事件代码实例
Jan 02 Javascript
React实现阿里云OSS上传文件的示例
Aug 10 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
做个自己站内搜索引擎
2006/10/09 PHP
swfupload 多文件上传实现代码
2008/08/27 PHP
PHP 数组遍历顺序理解
2009/09/09 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
PHP+Mysql无刷新问答评论系统(源码)
2016/12/20 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
jQuery实现手机自定义弹出输入框
2016/06/13 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
2016/09/02 Javascript
jQuery模拟淘宝购物车功能
2017/02/27 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
Python写入CSV文件的方法
2015/07/08 Python
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
Python基础教程之利用期物处理并发
2018/03/29 Python
Python 中的range(),以及列表切片方法
2018/07/02 Python
keras中的loss、optimizer、metrics用法
2020/06/15 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
巴基斯坦购物网站:Goto
2019/03/11 全球购物
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
土建资料员岗位职责
2014/01/04 职场文书
珍珠鸟教学反思
2014/02/01 职场文书
学雷锋志愿服务月活动总结
2014/03/09 职场文书
冬季施工防火方案
2014/05/17 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
离婚协议书的范本
2015/01/27 职场文书
婚庆公司开业主持词
2015/06/30 职场文书
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers