vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信


Posted in Javascript onAugust 15, 2019

父组件

定义表头和表内容

data(){
 return{
  // 表格数据
  tableColumns: [],
  // 表头数据
  titleData:[],
 }
}

引入并注册子组件

import TableComponents from "../../components/table/table";
//注册子组件table
components: {
  tableC: TableComponents
},

获取表头和表内容数据。(真实数据应该是从接口获取的,由于是测试数据这里我先写死)

mounted() {
  this.titleData = 
    [{
      name:'日期',
      value:'date'
    },{
      name:'姓名',
      value:'name'
    },{
      name:'地址',
      value:'address'
    },{
      name:'汇率',
      value:'sharesReturn'
    }];
  this.tableColumns = 
    [{
      date: '2016-05-01',
      name: '王小虎1',
      address: '上海市普陀区金沙江路 1518 弄',
      sharesReturn: 0.03
    }, {
      date: '2016-05-02',
      name: '王小虎2',
      address: '上海市普陀区金沙江路 1517 弄',
      sharesReturn: 0.04
    }, {
      date: '2016-05-03',
      name: '王小虎3',
      address: '上海市普陀区金沙江路 1519 弄',
      sharesReturn: -0.01
    }, {
      date: '2016-05-04',
      name: '王小虎4',
      address: '上海市普陀区金沙江路 1516 弄',
      sharesReturn: 0.00
    }];
}

html代码

<tableC :tableColumns="tableColumns" :titleData="titleData" ></tableC>

子组件

js代码

export default {
 name: 'tbComponents',
 props: ['tableColumns','titleData'],
}

重点来了

html要怎么写呢?官网的文档是这么写的

vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信

el-table :data关联的是表格里的数据

el-table-column :prop关联的是表头的值 :label关联的是表头的文本

html动态渲染

<el-table :data="tableColumns" style="width: 100%">
 <el-table-column v-for="(item,key) in titleData" :key="key" :prop="item.value" 
  :label="item.name"></el-table-column>
</el-table>

效果如下:

vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信

最后剩下一个功能,如果 汇率大于0,则显示红色,小于0则显示绿色

先贴上完整代码:

<el-table :data="tableColumns" style="width: 100%">
  <el-table-column v-for="(item,key) in titleData" :key="key" :prop="item.value" :label="item.name">
    <template slot-scope="scope">
     <span v-if="scope.column.property==='sharesReturn'&&scope.row[scope.column.property]>0" style="color:red">{{scope.row[scope.column.property]}}</span>
     <span v-else-if="scope.column.property==='sharesReturn'&&scope.row[scope.column.property]<0" style="color: #37B328">{{scope.row[scope.column.property]}}</span>
     <span v-else>{{scope.row[scope.column.property]}}</span>
    </template>
  </el-table-column>
</el-table>

scope.row和scope.column分别代表什么呢? 可以在界面输出看看

先输出scope.row

vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信

由此可见scope.row代表 当前行 的数据

再来输出scope.column

vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信

得到这样一个对象,仔细看看,我们可以发现一点门路

vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信

由此可见scope.column.property代表 当前列的值

合并起来,当前单元格的值应该是scope.row[scope.column.property]

总结

以上所述是小编给大家介绍的vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
google 搜索框添加关键字实现代码
Apr 24 Javascript
javascript读取Xml文件做一个二级联动菜单示例
Mar 17 Javascript
详解Javascript中的原型OOP
Oct 12 Javascript
JS对象是否拥有某属性如何判断
Feb 03 Javascript
微信小程序tabbar不显示解决办法
Jun 08 Javascript
JS基于贪心算法解决背包问题示例
Nov 27 Javascript
详解vue移动端日期选择组件
Feb 22 Javascript
Node.js笔记之process模块解读
May 31 Javascript
js数组去重的方法总结
Jan 18 Javascript
详解js常用分割取字符串的方法
May 15 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
Sep 20 Javascript
JavaScript实现多文件下载方法解析
Aug 07 Javascript
解决vuex刷新状态初始化的方法实现
Aug 15 #Javascript
超详细的5个Shell脚本实例分享(值得收藏)
Aug 15 #Javascript
koa2+vue实现登陆及登录状态判断
Aug 15 #Javascript
原生js实现的移动端可拖动进度条插件功能详解
Aug 15 #Javascript
快速对接payjq的个人微信支付接口过程解析
Aug 15 #Javascript
Element-UI中关于table表格的那些骚操作(小结)
Aug 15 #Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
Aug 15 #Javascript
You might like
一个简单的PHP入门源程序
2006/10/09 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
常见php数据文件缓存类汇总
2014/12/05 PHP
PHP中mysqli_affected_rows作用行数返回值分析
2014/12/26 PHP
使用纯php代码实现页面伪静态的方法
2015/07/25 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
浅谈JavaScript函数的四种存在形态
2016/06/08 Javascript
jQuery版AJAX简易封装代码
2016/09/14 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
简述ES6新增关键字let与var的区别
2019/08/23 Javascript
vue下的@change事件的实现
2019/10/25 Javascript
highcharts.js数据绑定方式代码实例
2019/11/13 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
python实现无证书加密解密实例
2014/10/27 Python
python3爬取数据至mysql的方法
2018/06/26 Python
使用python实现数组、链表、队列、栈的方法
2019/12/20 Python
opencv python Canny边缘提取实现过程解析
2020/02/03 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
Canvas与Image互相转换示例代码
2013/08/09 HTML / CSS
初中三年学生的学习自我评价
2013/11/13 职场文书
舞蹈比赛获奖感言
2014/02/04 职场文书
环保志愿者活动总结
2014/06/27 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
领导离职感言
2015/08/03 职场文书
golang 实现两个结构体复制字段
2021/04/28 Golang
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android