Element el-table 表格详解
点此查看全部文字教程、视频教程、源代码
本文目录
- 1. 前言
- 2. 基本用法
- 3. 显示斑马纹
- 4. 显示边框
- 5. 自定义尺寸
- 6. 显示索引
- 7. 显示内容过长时的提示
- 8. 自定义行样式
- 9. 固定表头
- 10. 固定列
- 11. 多级表头
- 12. 展开行
- 13. 自定义列模板
- 14. 单选
- 15. 多选
- 16. 前端排序
- 17. 小结
1. 前言
如果是开发功能型的网站,例如各类信息管理系统,那么表格的使用频率会相当之高。
实际上,我们的数据存储到数据库,不就是以表格的形式存在吗?所以在界面上显示、操作,使用表格来处理也是非常合理的。
本篇就来介绍下el-table表格组件的使用方法。
2. 基本用法
针对如下数据:
tableData: [{date: '2016-05-02',name: '王小虎',address: '上海市普陀区金沙江路 1518 弄'}, {date: '2016-05-04',name: '王小虎',address: '上海市普陀区金沙江路 1517 弄'}, {date: '2016-05-01',name: '王小虎',address: '上海市普陀区金沙江路 1519 弄'}],
可以使用el-table将数据展示为表格,代码如下:
基本用法<el-table :data="tableData"><el-table-column prop="date" label="日期" width="180"></el-table-column><el-table-column prop="name" label="姓名" width="180"></el-table-column><el-table-column prop="address" label="地址"></el-table-column></el-table>
解释下,el-table表示表格组件,data属性用来绑定数据列表。
el-table-column表示表格的一列,prop属性用于指定该列绑定数据列表的属性名,label是列的显示名称,width用于指定列宽度。
注意,一般最后一列的宽度我们不指定,这样的话可以自动占满剩余空间。
上述代码效果如下:
3. 显示斑马纹
为表格添加stripe属性,即可开启斑马纹,由于斑马纹效果较好,所以一般都是开启的。
显示斑马纹<el-table :data="tableData" stripe><el-table-column prop="date" label="日期" width="180"></el-table-column><el-table-column prop="name" label="姓名" width="180"></el-table-column><el-table-column prop="address" label="地址"></el-table-column></el-table>
效果如下:
4. 显示边框
边框就不用说了,基本所有表格,带上边框会效果更好一些。添加border属性即可显示边框:
带边框<el-table :data="tableData" border><el-table-column prop="date" label="日期" width="180"></el-table-column><el-table-column prop="name" label="姓名" width="180"></el-table-column><el-table-column prop="address" label="地址"></el-table-column></el-table>
效果如下,注意最外围的灰色框线,是我截图时候添加的,不是网页实际效果。
5. 自定义尺寸
通过将size设置为medium/small/mini,可以调整表格尺寸,例如mini:
自定义尺寸--medium / small / mini<el-table :data="tableData" size="mini" border><el-table-column prop="date" label="日期" width="180"></el-table-column><el-table-column prop="name" label="姓名" width="180"></el-table-column><el-table-column prop="address" label="地址"></el-table-column></el-table>
效果如下,很明显更加紧凑了。
6. 显示索引
可以添加一列,并将列类型设置为type,即可自动显示索引:
显示索引<el-table :data="tableData" border><el-table-column label="序号" type="index" width="100"></el-table-column><el-table-column prop="date" label="日期" width="300"></el-table-column><el-table-column prop="name" label="姓名" width="300"></el-table-column><el-table-column prop="address" label="地址" width="300"></el-table-column></el-table>
效果:
7. 显示内容过长时的提示
当某列数据内容超过列宽度时,可以通过为列添加show-overflow-tooltip
属性,展示提示信息。
显示内容过长时的提示<el-table :data="tableData" border><el-table-column prop="date" label="日期" width="100" show-overflow-tooltip></el-table-column><el-table-column prop="name" label="姓名" width="100" show-overflow-tooltip></el-table-column><el-table-column prop="address" label="地址" width="100" show-overflow-tooltip></el-table-column></el-table>
效果如下:
8. 自定义行样式
如果自带的样式无法满足需求,还可以自定义样式:
自定义行样式<el-table :data="tableData" border :row-class-name="tableRowClassName"><el-table-column prop="date" label="日期" width="180"></el-table-column><el-table-column prop="name" label="姓名" width="180"></el-table-column><el-table-column prop="address" label="地址"></el-table-column></el-table>
如上代码,行样式由tableRowClassName方法决定,代码如下:
tableRowClassName({ row, rowIndex }) {if (rowIndex === 0) {return 'warning-row';} else if (rowIndex === 1) {return 'success-row';}return '';},
这样,第一行就会使用warning-row类,而第二行会采用success-row类,我们编写类样式代码如下:
<style>
.el-table .warning-row {background: wheat;
}.el-table .success-row {background: #f0f9eb;
}
</style>
最终效果如下:
9. 固定表头
如果表格行数较多,那么往下滚动界面时,会看不到表格的标题,这无疑是体验不佳的。el-table只需要设定一个高度,就能固定表头:
固定表头<el-table :data="tableData" border height="120"><el-table-column prop="date" label="日期" width="180"></el-table-column><el-table-column prop="name" label="姓名" width="180"></el-table-column><el-table-column prop="address" label="地址"></el-table-column></el-table>
效果如下:
10. 固定列
当表格中列数过多时,el-table会展示横向滚动条,但是有时候我们希望一些列,如操作按钮所在的列,能够固定住,此时可以使用fixed属性:
固定列:<el-table :data="tableData" border><el-table-column prop="date" label="日期" width="300"></el-table-column><el-table-column prop="name" label="姓名" width="300"></el-table-column><el-table-column prop="address" label="地址" width="300"></el-table-column><el-table-column fixed="right" label="操作" width="100"><template slot-scope="scope"><el-button type="text" size="small">查看</el-button><el-button type="text" size="small">编辑</el-button></template></el-table-column></el-table>
效果如下:
11. 多级表头
实际上多级表头el-table的实现非常简单,直接在el-table-column内部嵌套el-table-column即可。
数据部分:
cityData: [{date: '2016-05-03',name: '王小虎',province: '上海',city: '普陀区',address: '上海市普陀区金沙江路 1518 弄',zip: 200333}]
表格组件:
多级表头<el-table :data="cityData" border><el-table-column prop="date" label="日期" width="150"></el-table-column><el-table-column label="配送信息"><el-table-column prop="name" label="姓名" width="120"></el-table-column><el-table-column label="地址"><el-table-column prop="province" label="省份" width="120"></el-table-column><el-table-column prop="city" label="市区" width="120"></el-table-column><el-table-column prop="address" label="地址" width="300"></el-table-column><el-table-column prop="zip" label="邮编"></el-table-column></el-table-column></el-table-column></el-table>
效果如下:
12. 展开行
有时候如果信息特别多,我们可以设计点击左侧按钮后,在当前行下方展示详细信息。
展开行<el-table :data="tableData" border><el-table-column type="expand"><template slot-scope="props"><el-form label-position="left"><el-form-item label="日期"><span>{{ props.row.date }}</span></el-form-item><el-form-item label="姓名"><span>{{ props.row.name }}</span></el-form-item><el-form-item label="地址"><span>{{ props.row.address }}</span></el-form-item></el-form></template></el-table-column><el-table-column prop="date" label="日期" width="180"></el-table-column><el-table-column prop="name" label="姓名"></el-table-column></el-table>
注意,展开行的类型需要为expand
,然后可以通过slot-scope
指定的props来取出当前行的数据,按照我们想要的方式展现即可。如上代码效果如下:
13. 自定义列模板
我们可以完全自定义列里面的显示内容:
自定义列模板<el-table :data="tableData" border><el-table-column prop="date" label="日期" width="180"><template slot-scope="scope">{{scope.row.date.replaceAll('-','')}}</template></el-table-column><el-table-column prop="name" label="姓名" width="180"></el-table-column><el-table-column prop="address" label="地址"></el-table-column><el-table-column fixed="right" label="操作" width="150"><template slot-scope="scope"><el-button @click="btnView(scope.row)" type="primary" size="small">查看</el-button><el-button type="danger" size="small">编辑</el-button></template></el-table-column></el-table>
如上代码中,我们通过在列中间添加如下内容,template中间的内容可以随意定制,而且可以通过scope.row拿到当前行的数据。
<template slot-scope="scope">{{scope.row.date.replaceAll('-','')}}</template>
效果如下:
14. 单选
通过添加highlight-current-row
属性即可开启单选功能,然后可以通过@current-change
指定选中项发生变化时触发的方法。
单选<el-table :data="tableData" border highlight-current-row @current-change="handleCurrentChange"><el-table-column prop="date" label="日期" width="180"></el-table-column><el-table-column prop="name" label="姓名" width="180"></el-table-column><el-table-column prop="address" label="地址"></el-table-column></el-table>
handleCurrentChange(row) {console.log(row);},
效果如下:
15. 多选
可以通过添加type值为selection
的列,来启用多选功能,然后@selection-change
可以指定选中项变化时触发的方法。
多选(显示复选框)<el-table :data="tableData" ref="multipleTable" border @selection-change="handleSelectionChange"><el-table-column type="selection" width="100"></el-table-column><el-table-column prop="date" label="日期" width="180"></el-table-column><el-table-column prop="name" label="姓名" width="180"></el-table-column><el-table-column prop="address" label="地址"></el-table-column></el-table><div style="margin-top: 20px"><el-button @click="btnGetSelection()">获取选中项</el-button></div>
JS代码如下:
handleSelectionChange(selection) {console.log(selection);},btnGetSelection() {let selection = this.$refs.multipleTable.selection;console.log(selection);}
上述代码中,通过this.$refs.multipleTable.selection
可以获取到当前所有选中项信息,便于提交时使用。
16. 前端排序
el-table还支持前端排序,我们直接看演示代码:
前端排序<el-table :data="tableData" border :default-sort="{prop: 'date', order: 'descending'}"><el-table-column prop="date" label="日期" width="180"></el-table-column><el-table-column prop="name" label="姓名" width="180"></el-table-column><el-table-column prop="address" label="地址"></el-table-column></el-table>
通过default-sort,指定了按date列排序,且是降序。所以效果如下:
17. 小结
el-table的功能还是相当全面的,本篇按我自己的理解讲解了一些经常会用到的用法,供大家参考。
Element el-table 表格详解相关推荐
- JSP 中EL表达式用法详解
EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user.sex} 所有EL都是以${ ...
- 【前端就业课 第一阶段】HTML5 零基础到实战(六)表格详解
注意:手机(APP)打开,内容显示更佳,不会的私聊博主即可 想要拿代码或加入学习计划(** 博主会监督你并且教你写文章 **)的拉到最下面(PC端Web打开)加博主即可,目录也在最下面. 参加博主前端 ...
- css中table标签详解(一)
css中table标签详解(一) 什么是table标签,以及table标签的组成? 不叨叨,直接上代码 <table><tr><td></td>< ...
- Oracle创建表语句(Create table)语法详解及示例
Oracle创建表语句(Create table)语法详解及示例 创建表(Create table)语法详解 1. ORACLE常用的字段类型ORACLE常用的字段类型有 VARCHAR2 (si ...
- Element UI Table表格样式调整
调整Element UI Table表格的样式 最终效果: 单元格合并,样式调整 模拟后端返回数据 {teamName: '小组一',outsourceFlag: '是',adminName: '张三 ...
- Spring EL表达式使用详解
Spring EL表达式使用详解 什么是Spring EL表达式 注入字面值 注入操作系统(OS)的属性 注入properties配置文件中数据 Bean属性调用 Bean方法调用 T运算符 构造器 ...
- Easypoi使用模板导出文档或excel表格详解
Easypoi使用模板导出docx文档或excel表格详解 **doc或docx文档的模板导出** **Excel的模板导出** 话不多说先上依赖 <dependency><grou ...
- element ui Table表格数据筛选功能实现
先来看看实现效果 element ui Table表格数据筛选功能实现 查看Element官网 关于筛选的实例. 在列中设置filters filter-method属性即可开启该列的筛选,filte ...
- Excel 绘制表格 详解!
Excel 绘制表格 详解! 1.在桌面上点击Excel图标,打开工作表,纵向是1.2.3.4-的顺序号,横向是A.B.C.D-的顺序号. 2.数一下你拟打的表格的列数,比如是8列,则你将鼠标箭头移到 ...
- MySQL建表(create table)命令详解
MySQL建表(create table)命令详解 create table命令 强调:使用建表命令之前必须使用use命令选择表所在的数据库.create table命令的格式如下: create t ...
最新文章
- 15个应该掌握的jupyter notebook技巧
- 使用gulp和vsc构建高效的typescript开发环境
- 【JavaScript脚本】——T1基本语法
- flume linux 命令,flume启动命令 · Mr.Deng’s Blog
- pandas 对某一行标准化_Python中的神器Pandas,但是有人说Pandas慢...
- 因开源协议“大打出手”,AWS 宣布创建 Elasticsearch、Kibana 分支
- windows下杀死关不掉的进程
- 免费随机图片api接口
- 行测备考丨易混词傻傻分不清?大神来拯救你!
- 单片机需要数电模电基础吗?单片机要多少模电数电知识 ?
- 北京大学肖臻老师《区块链技术与应用》公开课-ETH
- 【LeetCode】第934题——最短的桥(难度:中等)
- 《挚爱》简谱,网上没找到,自己写了个,非专业,敬请指教!
- 不服就GAN:GAN网络生成 cifar10 的图片实例(keras 详细实现步骤),GAN 的训练的各种技巧总结,GAN的注意事项和大坑汇总
- 华硕天选2键盘背光灯切换颜色
- 根据账户名称筛选收支明细
- 【时间从来不语,却回答了所有问题】读书摘记
- html前端几种加密方式的整理
- LINUX命令(1)-创建文件
- 分布式存储 HDFS原理