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 相关文章推荐
VBScript版代码高亮
Jun 26 Javascript
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
Dec 10 Javascript
js字符串转成JSON
Nov 07 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
Nov 22 Javascript
jquery删除指定子元素代码实例
Jan 13 Javascript
js获取Html元素的实际宽度高度的方法
May 19 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
Mar 05 Javascript
原生JS实现圆环拖拽效果
Apr 07 Javascript
jQuery实现按比例缩放图片的方法
Apr 29 jQuery
Node.js 中使用 async 函数的方法
Nov 20 Javascript
angularjs select 赋值 ng-options配置方法
Feb 28 Javascript
HTML+JS实现“代码雨”效果源码(黑客帝国文字下落效果)
Mar 17 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
PHP以指定字段为索引返回数据库所取的数据数组
2013/06/30 PHP
PHP循环结构实例讲解
2014/02/10 PHP
PHP调用接口用post方法传送json数据的实例
2018/05/31 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
JavaScript 事件查询综合
2009/07/13 Javascript
jQuery EasyUI API 中文文档 - Panel面板
2011/09/30 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
JavaScript实现按Ctrl键打开新页面
2014/09/04 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
vue项目中使用tinymce编辑器的步骤详解
2018/09/11 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
在Angular项目使用socket.io实现通信的方法
2021/01/05 Javascript
pip 错误unused-command-line-argument-hard-error-in-future解决办法
2014/06/01 Python
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
使用python编写监听端
2018/04/12 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
Django异步任务之Celery的基本使用
2019/03/23 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
python如何写try语句
2020/07/14 Python
python基于爬虫+django,打造个性化API接口
2021/01/21 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
水产养殖学应届生求职信
2013/09/29 职场文书
电力公司个人求职信范文
2014/02/04 职场文书
《小儿垂钓》教学反思
2014/02/23 职场文书
护理专业自荐信范文
2014/02/26 职场文书
教师查摆问题及整改措施
2014/10/11 职场文书
预备党员半年考察意见
2015/06/01 职场文书
卫生主题班会
2015/08/14 职场文书