# 基本用法
注意:翻页或者更改页面大小都会向上冒
list-change这个事件,list-change这个事件将用作统一更改列表数据事件 翻页参数将从options中传入,如果请求后台需要直接使用即可。组件内部在翻页时候回进行对值的修改无需关注新增了一个前端自增长id,注意在该模式下@list-change将改成props形式并且
list-change函数为Promise否则无法同步更新id!后续所有的
@list-change将改成:list-change以应对需要通过异步来完成的功能
当前页面1, 当前页面条数10
# 居中的表格
- 通过
align设置整体的对齐方式
# 多选
选择多行数据时使用 Checkbox。
实现多选非常简单: 手动添加一个设type属性为selection即可;
4.2.5 新增参数autoSelection是否自动设置多选分页选中。开启后会让分页记录多选。您可以通过实例中的selectionAll来快捷获取全部选中。也可以通过getSelectionAll方法获取结构数组
- 注意!如果你的
:list-change函数返回不是一个Promise自动分页多选将会失效因为他是通过awaitPromise的成功来触发的! 所以分页多选必须要返回一个Promise。并且需要添加row-key作为匹配参数!
# 带操作栏
# 自定义表头
- 通过制定
slot为header来开启自定义表头 - 自定义可通过插槽
header来设置总体表头样式,也可以单独设置通过header-${key}来设定 slot不为header插槽不会生效
# 带快捷筛选
- 在列中设置
filtersfilter-method属性即可开启该列的筛选,filters是一个数组,filter-method是一个方法,它用于决定某些数据是否显示,会传入三个参数:value, row 和 column。
# 数据过滤
- 有时候我们需要在不改变原始数据的情况下进行数据修改那么可以添加
filterColumn这个选项 props添加filterColumn所有为text类型的数据都会调用改方法- 如果你需要单步设置
filterColumn那么在item中传filterColumn就可以针对一列选项过滤
注意:item中的filterColumn会覆盖组件props中传的filterColumn
# 自定义插槽
- 当
type为slot时候自定义插槽会自动生效,插槽名称会以key为name进行插入
# 合并单元格
当前页面1, 当前页面条数10
# 合并表头
- 表头中声明
children是array就可以达到合并表头效果。这个效果可以无限嵌套
# 展开行
- 通过设置 type="expand",使用方式和普通插槽一致。通过key来区分插槽名称
# 树形数据与懒加载
- 支持树类型的数据的显示。当 row 中包含 children 字段时,被视为树形数据。渲染树形数据时,必须要指定 row-key。支持子节点数据异步加载。设置 Table 的 lazy 属性为 true 与加载函数 load 。通过指定 row 中的 hasChildren 字段来指定哪些行是包含子节点。children 与 hasChildren 都可以通过 tree-props 配置。
# 表格中使用字典
- 通过指定
type=code,并且数据上拥有code
# 关于翻页数据懒更新
请注意以下需在4.8.3版本以上使用
由于form组件数据是实时双向绑定的所以会导致一个问题在筛选查询完毕后,在更改筛选项此时进行翻页查询。由于
list-change是业务上内部实现的。一般list-change是实时获取form绑定数据,此时的翻页将会带最新的查询条件,和之前点击查询的条件不统一。以下是对该问题的解决方案
新增
form-instance参数,支持直接Vue实例或者return实例的方法。添加该参数就会进入自动获取form数据模式。通过监听
update:list-change事件同步更新:list-change传入函数,内部将会自动对该方法调用进行代理监听,如:@update:list-change="getList = $event"
通过以上两个步骤就会开启自动传入
form数据你也可以自己进行同步数据, 通过传入
is-custom-upload-data为true进入自定义同步模式,通过手动调用this.$refs.table.updateFormData传入formData, 来手动同步。不传入formData也会自动从form-instance实例中查找
# Table Attributes
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| list | 表数据 | Array | - | [] |
| columns | 表头数据 | Array | - | [] |
| align | 对齐方式 | String | left/center/right | left |
| tableLoad | 表加载中状态 | Boolean | - | false |
| fixed | 列是否固定在左侧或者右侧,true 表示固定在左侧 | string, boolean | true, left, right | - |
| width | 统一表格宽度 | string | - | - |
| minWidth | 统一表格最小宽度 | string | - | - |
| filterColumn | 过滤属性 | function | - | - |
| timeout | 节流时间属性 | number | - | 300 |
| emptySize | 占位图大小 | string | large normal small | small |
| emptyType | 占位图类型 | string | 404 noContent noNetwork noResult | noContent |
| height | Table 的高度,默认为自动高度。如果 height 为 number 类型,单位 px;如果 height 为 string 类型,则这个高度会设置为 Table 的 style.height 的值,Table 的高度会受控于外部样式。 | string/number | — | — |
| max-height | Table 的最大高度。合法的值为数字或者单位为 px 的高度。 | string/number | — | — |
| stripe | 是否为斑马纹 table | boolean | — | false |
| border | 是否带有纵向边框 | boolean | — | false |
| size | Table 的尺寸 | string | medium / small / mini | — |
| fit | 列的宽度是否自撑开 | boolean | — | true |
| show-header | 是否显示表头 | boolean | — | true |
| highlight-current-row | 是否要高亮当前行 | boolean | — | false |
| current-row-key | 当前行的 key,只写属性 | String,Number | — | — |
| row-class-name | 行的 className 的回调方法,也可以使用字符串为所有行设置一个固定的 className。 | Function({row, rowIndex})/String | — | — |
| row-style | 行的 style 的回调方法,也可以使用一个固定的 Object 为所有行设置一样的 Style。 | Function({row, rowIndex})/Object | — | — |
| cell-class-name | 单元格的 className 的回调方法,也可以使用字符串为所有单元格设置一个固定的 className。 | Function({row, column, rowIndex, columnIndex})/String | — | — |
| cell-style | 单元格的 style 的回调方法,也可以使用一个固定的 Object 为所有单元格设置一样的 Style。 | Function({row, column, rowIndex, columnIndex})/Object | — | — |
| header-row-class-name | 表头行的 className 的回调方法,也可以使用字符串为所有表头行设置一个固定的 className。 | Function({row, rowIndex})/String | — | — |
| header-row-style | 表头行的 style 的回调方法,也可以使用一个固定的 Object 为所有表头行设置一样的 Style。 | Function({row, rowIndex})/Object | — | — |
| header-cell-class-name | 表头单元格的 className 的回调方法,也可以使用字符串为所有表头单元格设置一个固定的 className。 | Function({row, column, rowIndex, columnIndex})/String | — | — |
| header-cell-style | 表头单元格的 style 的回调方法,也可以使用一个固定的 Object 为所有表头单元格设置一样的 Style。 | Function({row, column, rowIndex, columnIndex})/Object | — | — |
| row-key | 行数据的 Key,用来优化 Table 的渲染;在使用 reserve-selection 功能与显示树形数据时,该属性是必填的。类型为 String 时,支持多层访问:user.info.id,但不支持 user.info[0].id,此种情况请使用 Function。 | Function(row)/String | — | — |
| empty-text | 空数据时显示的文本内容,也可以通过 slot="empty" 设置 | String | — | 暂无数据 |
| default-expand-all | 是否默认展开所有行,当 Table 包含展开行存在或者为树形表格时有效 | Boolean | — | false |
| expand-row-keys | 可以通过该属性设置 Table 目前的展开行,需要设置 row-key 属性才能使用,该属性为展开行的 keys 数组。 | Array | — | |
| default-sort | 默认的排序列的 prop 和顺序。它的prop属性指定默认的排序的列,order指定默认排序的顺序 | Object | order: ascending, descending | 如果只指定了prop, 没有指定order, 则默认顺序是ascending |
| tooltip-effect | tooltip effect 属性 | String | dark/light | |
| show-summary | 是否在表尾显示合计行 | Boolean | — | false |
| sum-text | 合计行第一列的文本 | String | — | 合计 |
| summary-method | 自定义的合计计算方法 | Function({ columns, data }) | — | — |
| span-method | 合并行或列的计算方法 | Function({ row, column, rowIndex, columnIndex }) | — | — |
| select-on-indeterminate | 在多选表格中,当仅有部分行被选中时,点击表头的多选框时的行为。若为 true,则选中所有行;若为 false,则取消选择所有行 | Boolean | — | true |
| indent | 展示树形数据时,树节点的缩进 | Number | — | 16 |
| lazy | 是否懒加载子节点数据 | Boolean | — | — |
| load | 加载子节点数据的函数,lazy 为 true 时生效,函数第二个参数包含了节点的层级信息 | Function(row, treeNode, resolve) | — | — |
| tree-props | 渲染嵌套数据的配置选项 | Object | — | { hasChildren: 'hasChildren', children: 'children' } |
| auto-selection | 是否分页自动记录选中 | Boolean | — | false |
| form-instance | 需要匹配的form实例 | Vue | — | - |
| is-custom-upload-data | 手动同步formData | Boolean | — | false |
# 事件
事件说明如下:
| 事件名 | 说明 | 参数 | 版本 |
|---|---|---|---|
| size-change | 分页大小更改触发 | 每页条数 | 1.0.0 |
| list-change | 是否要更新列表 | 每页条数 | 1.0.0 |
| current-change | 当前页更改触发 | 每页条数 | 1.0.0 |
| header-click | 表头点击 | column, event | 1.0.0 |
| sort-change | 排序触发 | event | 1.0.0 |
| selection-change | 当选择项发生变化时会触发该事件 | selection |
← 表单 多选 checkbox →