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获取及设置TextArea或input文本框选择文本位置的方法
Mar 24 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
Aug 24 Javascript
vue-resource + json-server模拟数据的方法
Nov 02 Javascript
结合mint-ui移动端下拉加载实践方法总结
Nov 08 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
Dec 21 Javascript
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
Jan 23 Javascript
layui-tree实现Ajax异步请求后动态添加节点的方法
Sep 23 Javascript
JavaScript实现飞舞的泡泡效果
Feb 07 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
Aug 27 Javascript
Vue通过provide inject实现组件通信
Sep 03 Javascript
浅析我对JS延迟异步脚本的思考
Oct 12 Javascript
小程序实现筛子抽奖
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
星际初学者游戏中永远要做的事
2020/03/04 星际争霸
用PHP实现小型站点广告管理(修正版)
2006/10/09 PHP
在线增减.htpasswd内的用户
2006/10/09 PHP
hadoop常见错误以及处理方法详解
2013/06/19 PHP
php实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
PHP实现的文件上传类与用法详解
2017/07/05 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
js前台分页显示后端JAVA数据响应
2013/03/18 Javascript
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
Extjs grid panel自带滚动条失效的解决方法
2014/09/11 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
浅谈vue引用静态资源需要注意的事项
2018/09/28 Javascript
layui表格数据重载
2019/07/27 Javascript
js实现图片实时时钟
2020/01/15 Javascript
Python使用CMD模块更优雅的运行脚本
2015/05/11 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
python批量复制图片到另一个文件夹
2018/09/17 Python
Python自定义一个异常类的方法
2019/06/27 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
施华洛世奇水晶荷兰官方网站:SWAROVSKI荷兰
2017/05/12 全球购物
出纳试用期自我鉴定
2014/04/07 职场文书
大学国际贸易专业自荐信
2014/06/05 职场文书
工作作风承诺书
2014/08/30 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书
详解CocosCreator项目结构机制
2021/04/14 Javascript
golang slice元素去重操作
2021/04/30 Golang
一文搞懂redux在react中的初步用法
2021/06/09 Javascript