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 相关文章推荐
JavaScript使用prototype定义对象类型
Feb 07 Javascript
不用写JS也能使用EXTJS视频演示
Dec 29 Javascript
JavaScript 对象模型 执行模型
Oct 15 Javascript
js中的string.format函数代码
Aug 11 Javascript
Jquery中对数组的操作代码
Aug 12 Javascript
JS清除IE浏览器缓存的方法
Jul 26 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
May 24 Javascript
简单谈谈Vue 模板各类数据绑定
Sep 25 Javascript
vue 配置多页面应用的示例代码
Oct 22 Javascript
基于JS实现计算24点算法代码实例解析
Jul 23 Javascript
原生JavaScript实现幻灯片效果
Feb 19 Javascript
vue项目配置sass及引入外部scss文件
Apr 14 Vue.js
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
php实现encode64编码类实例
2015/03/24 PHP
PHP的伪随机数与真随机数详解
2015/05/27 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
解决在laravel中auth建立时候遇到的问题
2019/10/15 PHP
jquery 按钮状态效果 正常、移上、按下
2013/08/12 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
Jquery时间轴特效(三种不同类型)
2015/11/02 Javascript
javascript中类的定义方式详解(四种方式)
2015/12/22 Javascript
javascript时间排序算法实现活动秒杀倒计时效果
2021/01/28 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
2016/12/26 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
react学习笔记之state以及setState的使用
2017/12/07 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
2021/01/05 Vue.js
详解python的数字类型变量与其方法
2016/11/20 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
CentOS7下python3.7.0安装教程
2018/07/30 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
关于Python形参打包与解包小技巧分享
2019/08/24 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
Python编写万花尺图案实例
2021/01/03 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
html5与css3小应用
2013/04/03 HTML / CSS
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
Urban Decay官方网站:美国化妆品品牌
2020/06/04 全球购物
怎样创建、运行java程序
2014/08/01 面试题
出纳岗位职责
2013/11/09 职场文书
装修五一活动策划案
2014/01/23 职场文书
保卫工作个人总结
2015/03/03 职场文书
pytorch常用数据类型所占字节数对照表一览
2021/05/17 Python
基于python定位棋子位置及识别棋子颜色
2021/07/26 Python
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python