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 相关文章推荐
匹配任意字符的正则表达式写法
Apr 29 Javascript
从零开始学习jQuery (六) jquery中的AJAX使用
Feb 23 Javascript
js修改table中Td的值(定义td的双击事件)
Jan 10 Javascript
使用javascript实现页面定时跳转总结篇
Sep 21 Javascript
JavaScript实现的一个日期格式化函数分享
Dec 06 Javascript
jquery实现左右无缝轮播图
Jul 31 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
Feb 20 Javascript
vue 打包后的文件部署到express服务器上的方法
Aug 09 Javascript
微信小程序日期选择器实例代码
Jul 18 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
Sep 04 Javascript
jQuery实现二级导航菜单的示例
Sep 30 jQuery
vue实现选中效果
Oct 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代码
2007/03/08 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
2014/06/19 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
2010/07/24 Javascript
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
jquery插件validate验证的小例子
2013/05/08 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
javascript中replace( )方法的使用
2015/04/24 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
基于jquery实现最简单的选项卡切换效果
2016/05/08 Javascript
微信小程序性能优化之checkSession的使用
2019/03/06 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
ionic3双击返回退出应用的方法
2019/09/17 Javascript
微信小程序wx.request的简单封装
2019/11/13 Javascript
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
[56:24]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第二局
2016/03/04 DOTA
浅谈numpy数组的几种排序方式
2017/12/15 Python
Python Numpy库安装与基本操作示例
2019/01/08 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
django 信号调度机制详解
2019/07/19 Python
django+echart数据动态显示的例子
2019/08/12 Python
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
如何进行有效的自我评价
2013/09/27 职场文书
鉴定评语大全
2014/05/05 职场文书
本科生自荐信
2014/06/18 职场文书
教师节寄语2015
2015/03/23 职场文书
民间借贷借条范本
2015/05/25 职场文书
入党积极分子半年考察意见
2015/06/02 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
2016简历自荐信优秀范文
2016/01/29 职场文书
Python基于Opencv识别两张相似图片
2021/04/25 Python