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_03(ExtJs Grid的简单使用)
Oct 02 Javascript
Javascript实现动态菜单添加的实例代码
Jul 05 Javascript
基于javascript的JSON格式页面展示美化方法
Jul 02 Javascript
javascript动态创建及删除元素的方法
Dec 22 Javascript
jQuery获得字体颜色16位码的方法
Feb 20 Javascript
Angular.js中$resource高大上的数据交互详解
Jul 30 Javascript
node文字生成图片的示例代码
Oct 26 Javascript
three.js加载obj模型的实例代码
Nov 10 Javascript
微信小程序支付及退款流程详解
Nov 30 Javascript
基于vue开发的在线付费课程应用过程
Jan 25 Javascript
解决vuecli3.0热更新失效的问题
Sep 19 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
Jan 22 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
基于qmail的完整WEBMAIL解决方案安装详解
2006/10/09 PHP
附件名前加网站名
2008/03/23 PHP
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
2017/10/12 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
禁用JavaScript控制台调试的方法
2014/03/07 Javascript
22点关于jquery性能优化的建议
2014/05/28 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
JavaScript截屏功能的实现代码
2017/07/28 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
2018/09/05 jQuery
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
vue项目中在外部js文件中直接调用vue实例的方法比如说this
2019/04/28 Javascript
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
JS代码实现页面切换效果
2021/01/10 Javascript
Python 错误和异常小结
2013/10/09 Python
Python中Numpy mat的使用详解
2019/05/24 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
详解Anaconda 的安装教程
2020/09/23 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
文秘应聘自荐书范文
2014/02/18 职场文书
《春晓》教学反思
2014/04/20 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
幼儿园八一建军节活动方案
2014/08/27 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
PHP控制循环操作的时间
2021/04/01 PHP
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
Python中else的三种使用场景
2021/06/16 Python