# SuperTable 表格
table plus版本
默认支持table+pagination
支持post/get请求获取table数据
支持筛选和table数据联动
预留多处勾子,支持表前、表后等自定义
v2.7.0以上版本支持。
# 初始化
单独引入时:在入口js文件处引入
import { SuperTable } from '@xiaoe/sense'
import '@xiaoe/sense/static/index.css'
Vue.use(SuperTable)
1
2
3
2
3
# 效果
# 基础使用
基础使用只需要配置数据接口和表头,即可实现基本的table+pagination效果
<template>
<ss-super-table
ref="xe-table"
:table-header="tableHeader"
:fetch-options="fetchOptions"
is-horizontal
>
</ss-super-table>
</template>
<script>
export default {
data() {
return {
tableHeader: [{
props: {
prop: 'date',
label: '日期',
},
},
{
props: {
prop: 'name',
label: '姓名',
}
},
{
props: {
prop: 'address',
label: '地址',
}
}],
fetchOptions: {
url: '/sense/super-table/demo',
method: 'get',
formatter(data) {
return data.list
}
},
}
}
}
</script>
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
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
# 筛选、多选
支持input、select筛选
选择多行数据时使用 Checkbox,手动添加is-selection
筛选布局水平is-horizontal
# 属性
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| tableHeader | 表头 | array | — | — |
| fetchOptions | table数据获取配置见下表(fetchOptions) | object | — | — |
| tableOptions | table配置 | object | — | — |
| filterOptions | 筛选 | array | — | - |
| filterLabelWidth | 筛选项表单label宽度 | string | — | '120px' |
| loadingText | 加载中文字显示 | - | — | - |
| pageSize | 页数 | - | number | 10 |
| emptyCell | 单元格值为空时显示值 | - | string | -- |
| is-selection | 选择多行数据 | - | string | -- |
| toolbarLayoutType | toolbar布局模式,multipleColumns多行布局,spaceBetween单行两端布局 | string | multipleColumns/spaceBetween | multipleColumns |
# fetchOptions
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| url | 请求地址 | string | ||
| method | 请求方法 | string | post/get/delete/put | |
| params | 请求参数携带的参数,写死的使用这个 | object | {} | {} |
| fetchParams | 向后台发起的请求参数,比如依赖vue实例上的,比较常用于这个返回对象 | Function | ||
| formatter | 格式化后端返回数据,回调参数为后端返回的data | Function | 空函数 |
# filterOptions使用说明
- toolbarLayoutType 值为multipleColumns的情况
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| key | 传给后端数据字段的key | string | 必填 | |
| formatter | 对拿到的值进行格式化 | Function (val) {},参数val为表单绑定的值 | 非必填 | |
| toolbarType | 工具类型,这种布局场景下只支持buttonGroup一种 | string | 如果是button组需要自己配置的时候必填 | |
| btnList | toolbarType为buttonGroup时必须对应的配置,具体配置见下面 | Array | ||
| component | 组件对象配置详情见下表 | Object | 必填 |
当toolbarType这个项没有的时候,会默认存在一个配置
{
toolbarType: 'buttonGroup',
btnList: [{
type: 'primary',
text: '筛选',
onClickCallback(refreshTable) {
refreshTable()
}
}, {
type: 'text',
text: '清空筛选项',
onClickCallback(refreshTable, resetFilterItem) {
resetFilterItem()
}
}]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- btnList配置
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| type | 按钮类型,对应button的type | string | 参考button的type配置 | primary |
| text | 按钮内容 | string | 无 | 无 |
| onClickCallback | 点击按钮后的回调函数 | Function | 无,回调参数(refreshTable, resetFilterItem) | 无 |
- components配置目前支持常见表单与相应表单配置一致如下:
name: 'ss-input', // 必须
props: {
placeholder: '请输入姓名',
},
events: {
/*blur(e){
console.log('姓名----',e);
self.handleSearch()
}*/
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
- toolbarLayoutType 值为spaceBetween的情况
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| toolbarType | 工具类型 | String | button/text/search | 无 |
| type | toolbarType 为button时存在 | string | 对应button颜色 | 无 |
| onClickCallback | toolbarType为button时存在,search | Function(refreshTable, resetFilterItem) | 无 | 无 |
| align | 位置(必填) | string | left/right | 无 |
| key | 表单提交的时候对应的key(toolbar=search需要配置,搜索框和提交类表单需要配置) | string | 无 | 无 |
# tableOptions使用说明
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| selectionOptions | 复选框配置 | object | — | — |
| pagination | 表格底部页码配置 | object | — | 默认完整页码配置,属性值参考pagination组件 |
仅列举特殊配置,其他参考table属性
# TableHeader配置
对应table-column配置,popover存在会给标题添加说明
{
props: {
prop: 'name',
label: '姓名',
},
popover: {
content: '我是一段文字介绍'
}
// headerConfig: {
// columnDes: '我是列说明文字',
// columnDesIcon: '---'
// }
},
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 其他
# 事件
| 事件名 | 说明 | 参数 |
|---|---|---|
| on-select-change | 当用户手动勾选数据行的 Checkbox 时触发的事件 | 选中行信息 |
| on-table-raw-data | 获取table http请求的原始数据 | object |
# 方法
| 方法名 | 说明 | 参数 |
|---|---|---|
| handleFilter | 表格重新发起筛选请求获取数据 | — |
| handleReset | 筛选数据重置 | — |
| resetSelectedRows | 重置选中的数据行 | — |
| updateListData | 更新表格数据 | — |
# Slot
| name | 说明 | 默认值 |
|---|---|---|
| empty | 数据为空 | 暂无数据 |
| top | 表格最上方(筛选项之前) | -- |
| horizontal-filter-left | 表格左上方(筛选项存在时生效) | -- |
| horizontal-filter-right | 表格右上方(筛选项存在时生效) | 筛选/清空 |
| table-before | 表格上方,筛选栏下方 | -- |
| footer-left | 表格左下方(页码左侧) | -- |
| bottom | 表格最下方 | -- |
← Table表格 Tooltip 文字提示 →