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 相关文章推荐
Ajax一统天下之Dojo整合篇
Mar 24 Javascript
Dom 学习总结以及实例的使用介绍
Apr 24 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
May 12 Javascript
node.js中的http.response.addTrailers方法使用说明
Dec 14 Javascript
JS实现很酷的水波文字特效实例
Feb 26 Javascript
详解JavaScript中的客户端消息框架设计原理
Jun 24 Javascript
js防刷新的倒计时代码 js倒计时代码
Sep 06 Javascript
微信小程序模板template简单用法示例
Dec 04 Javascript
详解CommonJS和ES6模块循环加载处理的区别
Dec 26 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
Mar 12 Javascript
微信小程序中网络请求缓存的解决方法
Dec 29 Javascript
extjs4图表绘制之折线图实现方法分析
Mar 06 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
第二节--PHP5 的对象模型
2006/11/16 PHP
谈谈新手如何学习PHP
2006/12/14 PHP
理解PHP5中static和const关键字的区别
2007/03/19 PHP
在PHP里得到前天和昨天的日期的代码
2007/08/16 PHP
ThinkPHP提交表单时默认自动转义的解决方法
2014/11/25 PHP
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
php 防止表单重复提交两种实现方法
2016/11/03 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
2017/06/02 PHP
javascript采用数组实现tab菜单切换效果
2012/12/12 Javascript
jquery 获取标签名(tagName)示例代码
2013/07/11 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
js实现的动画导航菜单效果代码
2015/09/10 Javascript
快速学习JavaScript的6个思维技巧
2015/10/13 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
vue拦截器Vue.http.interceptors.push使用详解
2017/04/22 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
浅析前端路由简介以及vue-router实现原理
2018/06/01 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
Python设置默认编码为utf8的方法
2016/07/01 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
Python抖音快手代码舞(字符舞)的实现方法
2021/02/07 Python
HTML5 新旧语法标记对我们有什么好处
2012/12/13 HTML / CSS
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
三月学雷锋月活动总结
2014/04/28 职场文书
公司员工手册范本
2015/05/14 职场文书
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android