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 相关文章推荐
jQuery each()方法的使用方法
Mar 18 Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
Apr 11 Javascript
Highcharts 非常实用的Javascript统计图demo示例
Jul 03 Javascript
jquery ajax方式直接提交整个表单核心代码
Aug 15 Javascript
JS简单的图片放大缩小的两种方法
Nov 11 Javascript
JavaScript删除数组元素的方法
Mar 20 Javascript
JavaScript对象数组排序函数及六个用法
Dec 23 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
Mar 21 Javascript
JavaScript数据结构之二叉树的计数算法示例
Apr 13 Javascript
node.js中使用Export和Import的方法
Sep 18 Javascript
JS 中document.write()的用法和清空的原因浅析
Dec 04 Javascript
js对象属性名驼峰式转下划线的实例代码
Sep 17 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&amp;mysql(五)
2006/10/09 PHP
在IIS上安装PHP4.0正式版
2006/10/09 PHP
PHP常用函数小技巧
2008/09/11 PHP
php目录操作函数之获取目录与文件的类型
2010/12/29 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
php堆排序实现原理与应用方法
2015/01/03 PHP
整理php防注入和XSS攻击通用过滤
2015/09/13 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
php实现的后台表格分页功能示例
2017/10/23 PHP
利用php获得flv视频长度的实例代码
2017/10/26 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
toString()一个会自动调用的方法
2010/02/08 Javascript
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
浅析Js中的单引号与双引号问题
2013/11/06 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
2015/04/02 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
vue双向绑定的简单实现
2016/12/22 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
讲解Python中fileno()方法的使用
2015/05/24 Python
星球大战与Python之间的那些事
2016/01/07 Python
Django ORM 聚合查询和分组查询实现详解
2019/08/09 Python
python批量修改xml属性的实现方式
2020/03/05 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
python绘制趋势图的示例
2020/09/17 Python
编写python代码实现简单抽奖器
2020/10/20 Python
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
新西兰杂志订阅:isubscribe
2019/08/26 全球购物
组织关系转移介绍信
2014/01/16 职场文书
学校周年庆活动方案
2014/08/22 职场文书
个人查摆问题及整改措施
2014/10/16 职场文书