# agilityTable 组件使用
基础表格组件,基于 JSON 动态生成固定的基础表格,支持原生大部分的属性和事件,目前只有个别事件是自定义。
# 基本用法(数据脱敏、复选框、单击、图片、url、操作列、工具条)
- 1
# 展开行
- 1
# 添加标题和操作按钮
标题、操作按钮、工具条的布局可以使用actionHeaderStyle属性进行调整(工具条可以通过toolbar设置隐藏)
- 1
# 多级表头
- 1
# 合并行或列
对标elementui的 span-method 方法,用法参考elementui官方教程。
- 1
- 1
# 图片、url(a标签)、link(el-link)
单元格可渲染图片、url、link 连接等,同时支持服务端返回 HTML 进行渲染。
- 1
# 排序、多列点击、操作按钮
- 1
# 自定义列
- 1
# 权限篇
权限是比较重要和复杂的工作,权限一般分为:菜单权限、按钮权限、接口权限、数据权限。
我们基于 agilityTable 开发时,只会涉及到按钮权限和数据权限。
# 按钮权限用法
- 1
- 1
# 表格操作列的按钮权限判断
- 1
permission 用来控制操作按钮或者列表中的按钮的显示和隐藏,也可以直接使用函数来处理更加方便。
# json 参数
data(){
return {
json:{
...
}
}
}
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
actionHeaderStyle | 可以自定义工具条的样式 | Object | { } | { } |
loading | 表格请求过程显示 loading 效果 | Boolean | true/false | 无 |
columns | 表格表头对象,需要添加 sync | Array(Object) | 参考下文 | 无 |
data | 表格数据渲染对象 | Array(Object) | 参考下文 | 无 |
pagination | 表格分页对象,需要添加 sync | Object | pagination | 无 |
showPagination | 显示分页控件 | Boolean | true/false | true |
toolBarIncludes | 工具条项(当toolbar为true时,才生效) | Array | ['reload','density','setColumn','fullScreen'] | ['reload','density','setColumn','fullScreen'] |
toolbar | 显示工具条 | Boolean | true/false | true |
spanMethod | 对数据进行合并行、列 | Function({ row, column, rowIndex, columnIndex }) | 参考 Element | 无 |
# 单元格对象属性
json > columns:[{...}] > {...}
data(){
return{
json:[
columns:[{
...
}]
]
}
}
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
prop | 列属性 | String | 无 | 无 |
label | 列头 | String | 无 | 无 |
width | 设置列宽度 | Number | 无 | 无 |
type | 列特殊类型显示 | String | 参考 column-type | 无 |
list | 在表格内的操作列进行展示 | Array | 参考 column-list | 无 |
sortable | 是否排序 | Boolean | true/false/custom | 无 |
sortOrders | 设置排序方式 | Array | 参考 Element | 无 |
span | 多级表头 | Array | 参考示例 | 无 |
fieldEmptyTxt | 当返回空的时候,设置默认显示值 | String | -- | 无 |
tips | 表头增加提示语 | String | -- | 无 |
desensitizeDefaultVal | 默认是否脱敏(当单元格类型为desensitize 时,该配置才会生效) | Boolean | true/false | true |
unDesensitizeIcon | 非脱敏状态的icon图标(当单元格类型为desensitize 时,该配置才会生效) | String | 参考elementui的icon或者阿里icon等图标库 | el-icon-unlock |
desensitizeIcon | 脱敏状态的icon图标(当单元格类型为desensitize 时,该配置才会生效) | String | 参考elementui的icon或者阿里icon等图标库 | el-icon-lock |
formatter | 单元格自定义处理函数(当单元格类型为desensitize 时,默认脱敏展示的格式为$1****$2 ,您也可以使用formatter函数覆盖其规则) | Function(scope.row) | -- | 无 |
filter | 过滤器,用来处理日期和金额 | String | 'money/date/datetime' | 无 |
showOverflowTooltip | 当内容过长被隐藏时显示 tooltip | Boolean | true | true |
showOverflowTooltip 官方默认为关闭,为了表格体验,统一开启,也可以手动关闭
type=action 时,只有设置了 width 才会关闭 tool-tip,否则也会开启。
# pagination对象属性
默认只需要设置 total 即可,如果产品有要求,可手动调整 表格中分页控件以及工具条刷新按钮等点击,会触发 pagination 对象同步修改,所以参数需要加.sync
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
pageNum | 当前页码 | Number | 无 | 1 |
pageSize | 每页条数 | Number | 可不填 | 20 |
total | 总条数 | Number | 动态赋值 | 无 |
# 单元格类型
json > columns:[{...}] > {...} > type
data(){
return {
json:[
columns:[
{
type:'...'
}
]
]
}
}
主要用于对列数据进行处理,比如:点击、图片、链接、操作按钮等
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
desensitize | 脱敏类型(可以进行遮掩码的切换) | String | 无 | |
index | 列索引 | String | 无 | 无 |
click | type 为 click 时,该列可点击 | String | 无 | 无 |
image | type 为 image 时,会自动渲染成图片 | String | 无 | 无 |
link | type 为 link 时,循环渲染成多个可点击列 | String | {prop,limit} | 无 |
url | type 为 url 时,直接生成 a 标签 | String | 无 | 无 |
badge | 列是否显示标记(参考 Badge 组件) | String | {id,state} | 无 |
action | 标记为操作按钮 | String | 无 | 无 |
selection | 表格增加批量勾选 | String | 无 | 无 |
slot | 插槽 | String | 无 | 无 |
html | 支持 html 赋值 | String | 无 | 无 |
当 type='slot'时,需要指定 slotName,这样才能在 base-table 中嵌套组件,可参考上面的自定义列
# 操作列对象属性 json > columns[{type=action}]
data(){
return {
json:{
columns:[
{
type:'action',
...
}
]
}
}
}
主要用于操作按钮列(新增、编辑、删除)
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
text | 按钮文本 | String | 无 | 无 |
permission | 是否可见 | Boolean/Function/Object | true、false、{prop:'status',show:{1:true}}、function(){return true} | 无 |
prop | 按钮映射字段 | Object/String | 参考上文 Demo | 无 |
val | 根据值去映射 | Object | 参考上文 Demo | 无 |
# agilityTable组件事件
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
@handleChange | 页码/条数变动 | Function(page) | 跟列表方法一致 | 无 |
@handleAction | 操作按钮点击 | Function({index,row,text}) | 参考上文使用方法 | 无 |
@handleCellClick | 单元格点击 | Function({row,prop,link}) | 参考上文使用方法 | 无 |
@sort-change | 本地排序事件 | Function({column,prop,order }) | 参考上文使用方法 | 无 |
@selection-change | 多选框 | Function([row]) | 参考 ElmentUI | 无 |
@handleChange、@handleAction、@handleCellClick 为新增的自定义事件,其它为原生事件