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 相关文章推荐
给Function做的OOP扩展
May 07 Javascript
jQuery学习笔记之控制页面实现代码
Feb 27 Javascript
Node.js中防止错误导致的进程阻塞的方法
Aug 11 Javascript
基于JS实现checkbox全选功能实例代码
Oct 31 Javascript
Node.js实现文件上传的示例
Jun 28 Javascript
mui框架移动开发初体验详解
Oct 11 Javascript
解决vue移动端适配问题
Dec 12 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
Feb 28 Javascript
详解JS浏览器事件循环机制
Mar 27 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
Aug 14 Javascript
VUE渲染后端返回含有script标签的html字符串示例
Oct 28 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
May 26 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面向对象全攻略 (五) 封装性
2009/09/30 PHP
Array of country list in PHP with Zend Framework
2011/10/17 PHP
php最简单的删除目录与文件实现方法
2014/11/28 PHP
PHP从FLV文件获取视频预览图的方法
2015/03/12 PHP
PHP文件上传小程序 适合初学者学习!
2019/05/23 PHP
jQuery DOM操作小结与实例
2010/01/07 Javascript
js中设置元素class的三种方法小结
2011/08/28 Javascript
jQuery插件开发全解析
2012/10/10 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
2013/08/02 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
jquery实现的图片点击滚动效果
2014/04/29 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
属于你的jQuery提示框(Tip)插件
2016/01/20 Javascript
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
2016/10/04 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
关于JSON解析的实现过程解析
2019/10/08 Javascript
JS中this的4种绑定规则详解
2020/02/04 Javascript
Vant 中的Toast设置全局的延迟时间操作
2020/11/04 Javascript
原生JavaScript实现五子棋游戏
2020/11/09 Javascript
python psutil模块使用方法解析
2019/08/01 Python
Django Admin中增加导出CSV功能过程解析
2019/09/04 Python
python实现树的深度优先遍历与广度优先遍历详解
2019/10/26 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
怀旧香味蜡烛:Homesick
2019/11/02 全球购物
护理专业优质毕业生自荐书
2014/01/31 职场文书
倡议书范文
2014/04/16 职场文书
大学专科自荐信
2014/06/17 职场文书
产品委托授权书范本
2014/09/16 职场文书
滞留工资返还协议书
2014/10/19 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB