# Table 组件
lx-table是 ElementUI的 el-table的二次封装,所以可以像el-table一样配置。
# 示例
# 基本使用
我是表格
Copy
# 自定义header和自定义单元格
我是表格
Copy
# 带图片
我是表格
Copy
# 带复选框
# 多选
[]
我是表格
Copy
# 单选
选择数据:[
"1"
]
我是表格
Copy
# Table Attributes
参数 | 是否必填 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|---|
data | 否 | 显示的数据 | Array | - | - |
columns | 是 | 表格的配置(下面会有详细介绍) | Array | - | - |
table-attr | 否 | el-table的attr(具体参考elementUI的官方文档) | Object | - | - |
table-loading | 否 | 加载动画 | Boolean | true / false | false |
pagination | 否 | 分页,配置相应配置(具体参考elementUI的官方文档) | Boolean/Object | false/ Object | false |
pagination-align | 否 | 分页的位置 | String | right / left | right |
primary-key | 否 | 配置selection后有效,的主键字段名称,selection的用法在columns介绍中 | String | - | - |
selected | 否 | 配置selection后有效,selection的已选值,是一个字符串数组 | Array | - | - |
# Table Event
处理单元格的数据显示
事件名 | 说明 | 参数 |
---|---|---|
select-change | selection配置后,监听checkbox的变化 | selection |
current-change | 切换分页后触发 | page |
prev-click | 上一页 | page |
next-click | 下一页 | page |
size-change | 分页最大显示数变化后触发 | pageSizes |
# Table Methods
处理单元格的数据显示
方法名 | 说明 | 参数 |
---|---|---|
setAllCheckbox | 传入一个Boolean值,可以切换全选和取消所有选择 | true/false |
# Columns
columns 是一个object array,object是列的配置。
[
{
hidden: true, // true 隐藏表头 / false 不隐藏
label: '标题', // 表头
filed: 'title', // 需要显示data中对应的字段数据
filedPrimaryKey: 'url', // 当type === image,并且 filed的值是一个对象数组的时候,该项会从对象中取响应的字段的值
props: { // el-table的attrs,具体参考ElementUI官方文档
sortable: true
},
componentProps: { // 组件的props,例如type=image的时候
props: { ... },
style: { ... },
class: { ... },
on: { ... }
},
type: 'enum', // 枚举数据, 如果不设置,则仅显示filed配置的字段数据,该配置可以处理一些简单的数据类型
options: [ // 当 type = enum 之类的类型时,会使用 options 的数据,value对应filed字段的值
{ label: '开启', value: 1 },
{ label: '关闭', value: 0 }
],
optionColors: ['#67C23A', '#F56C6C'], // 按 index 顺序匹配 options 显示文字颜色
width: '200px', // 单元格的宽度
align: 'center', // 内容定位
format: 'YYYY-MM-DD HH:mm:ss', // 当type = date / date-time的时候,使用该format格式
headerRender: (h, scope) => { // 自定义头部
return '自定义头部'
},
render (h, e) { // 自定义单元格内容,优先级为最高
return h('div', e.row['filed'])
}
},
{
selection: true, // 该列开启 checkobox 选择
filed: 'id' // 主键
},
// 表头嵌套
{
label: '地址',
children: [
{ label: '区域', filed: 'area' },
{ label: '街道', filed: 'street' },
{ label: '详细地址', filed: 'address' },
]
}
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# Type
处理单元格的数据显示
参数 | 说明 | 特殊 |
---|---|---|
enum | 枚举,需要配置columns的options项,options配置的value值对应filed项的字段 | |
date | 日期,把毫秒或者时间格式的值显示成 YYYY-MM-DD 的格式 | 自定义 columns[{ format: 'xxxx' }] |
date-time | 日期,把毫秒或者时间格式的值显示成 YYYY-MM-DD HH:mm:ss 的格式 | 自定义 columns[{ format: 'xxxx' }] |
date-time-range | 日期时间范围,数据:Array[Date, Date] | 自定义 columns[{ format: 'xxxx' }] |
time-range | 时间范围,数据:Array[Date, Date] | 自定义 columns[{ format: 'xxxx' }] |
image | 图片 | filed的值:单个url,url数组,或者是一个对象数组,对象数组需要配置“filedPrimaryKey” |
thousands | 千分位 | |
percentage | 百分比,数值乘以100后显示,自动添加“%” | |
perMill | 千分,数值乘以1000后显示,自动添加“‰” |
# searchConfig 查询config里的某个配置
查询config的配置,可以用于修改我们想要修改配置的属性值,例如disabled = true,改为 false
可以通过 ref 的方式调用组件内部的 searchConfig 函数 searchConfig({ key: 'filed', value: 'name' })
就可以找到 属性名:filed,值:name 的这一项配置,直接修改想要修改的属性即可
WARNING
注意:
table在加载之后由于columns已经固定,当设置一个type=enum的column后,想要通过异步配置options是无法更新视图的,所以这种情况下
最好使用render函数来处理该column
← form表单 filter-table →