Skip to content

Table 表格

Element Plus的el-table的单元格无法根据内容的长度分配单元格宽度,导致一些列在没有数据的情况下会显得特别空,hl-table就是为了解决此问题

WARNING

  • 项目中为了保持代码一致性,请大家统一使用hl-table作为表格渲染组件
  • 但是如果表格有单元格合并需求请使用el-table或原生table

基础用法

vue

表头固定

组件默认带有表头固定功能,且不能取消

默认表格主体部分的高度等于外层容器高度减去表头高度;
当外层容器高度不固定或这需要自定义最大高度时可以通过maxHeight属性设置表格主体的最大高度

vue

内容隐藏

默认情况下,hl-table会以换行的形式将内容全部显示出来,当我们需要用...截断文字时可以将nowrap设为true实现

vue

表头定制

需求:当表格字段过多时我们希望可以自定义显示的字段

hl-table内部实现了表头定制的组件,可以通过edit-header属性控制组件的显示与隐藏,用户配置的需要显示的字段信息保存在了storage中,这样保证下次打开的内容和当前一致,所以还需要配置storage对应的key值

vue
  • storage-key:整个项目必须唯一

单元格宽度

  • 原生标签td即使设置了宽度,最终渲染出来的单元格的宽度也是根据内容来分配的,设置的宽度只是作为其中一个分配因子。
  • hl-table-column的width属性表现效果和原生td保持一致。
  • hl-table-column的min-width设置最小宽度

Table属性

属性说明类型可选值默认值
data数据源Array[]
maxHeight表格的最大高度:不包括表头String
nowrap内容是否换行Booleanfalse
align单元格对齐方式Stringleft/right/centercenter
hover鼠标hover行上的鼠标样式Arraycss - cursordefault
border是否显示边框Booleanfalse
borderColor边框颜色String#333
borderWidth边框宽度String1px
emptyText没有数据时显示的文字String没有数据
hightLight是否高亮选中行Booleanfalse
lightLine默认高亮的行数Number0
editHeader控制显示和隐藏表头定制Booleanfalse
storageKey自定义表头的信息存储在localstorage,storageKey为对应的key值String
rowClass行样式,可以根据方法的回调参数自定义每一行的样式Function(row,index)--
tooltipEffect文字提示的样式Stringlight/darklight
tooltopMaxWidth文字提示框的最大宽度Stringcss宽度样式90vw

Table方法

名称说明参数
doLayout重新布局

Table事件

事件名说明回调参数
rowClick点击行触发(row:Object, index:Number)

Table插槽

插槽名说明
empty当数据为空时自定义的内容

TableColumn属性

属性说明类型可选值默认值
type列的类型Stringdefault/indexdefault
prop字段名String--
label表头名String--
index索引,默认从1开始计数,传入方法时,会将当前索引作为参数传过去String/Number/Function--
width宽度,可以是20也可以是20px,即使设置了此宽度,最后渲染出来的宽度还是要以原生table自适应的结果为准String/Number--
minWidth最小宽度,和el-table的逻辑不同,hl-table不会根据最小宽度去分配宽度,就是设置了最小宽度String/Number--
align对齐方式Stringcenter/right/left-
style自定义样式String/Object--
className自定义classString--
labelStyle自定义表头样式String/Object--

TableColumn插槽

插槽名说明
default自定义列的内容 作用域参数为 "{row, index}"
header自定义表头的内容