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 相关文章推荐
在js文件中如何获取basePath处理js路径问题
Jul 10 Javascript
让新消息在网页标题闪烁提示的jQuery代码
Nov 04 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
Jan 03 Javascript
详解JavaScript语言的基本语法要求
Nov 20 Javascript
实例详解ECMAScript5中新增的Array方法
Apr 05 Javascript
JS实现鼠标框选效果完整实例
Jun 20 Javascript
详解微信小程序 wx.uploadFile 的编码坑
Jan 23 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
Feb 14 Javascript
微信小程序左右滑动切换页面详解及实例代码
Feb 28 Javascript
Centos6.8下Node.js安装教程
May 12 Javascript
Bootstrap4如何定制自己的颜色和风格
Feb 26 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
Aug 23 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
动态生成gif格式的图像要注意?
2006/10/09 PHP
利用php+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
PHP目录函数实现创建、读取目录教程实例
2011/01/13 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
解决FLASH需要点击激活的代码
2006/12/20 Javascript
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
详解vue2.0 资源文件assets和static的区别
2018/11/27 Javascript
mocha的时序规则讲解
2019/02/16 Javascript
JavaScript canvas仿代码流瀑布
2020/02/10 Javascript
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
el-table表头根据内容自适应完美解决表头错位和固定列错位
2021/01/07 Javascript
Python中关键字is与==的区别简述
2014/07/31 Python
python学习数据结构实例代码
2015/05/11 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
Python实现矩阵加法和乘法的方法分析
2017/12/19 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
2018/02/01 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
python实现多进程代码示例
2018/10/31 Python
python实现人工智能Ai抠图功能
2019/09/05 Python
Python 如何批量更新已安装的库
2020/05/26 Python
使用Python pip怎么升级pip
2020/08/11 Python
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
《爱如茉莉》教后反思
2014/04/12 职场文书
《欢乐的泼水节》教学反思
2014/04/22 职场文书
怀念母亲教学反思
2014/04/28 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
python 网络编程要点总结
2021/06/18 Python