@zhangqingcq/plug-r-qw
Version:
A JS lib base on Vue and View-design, you can achieve some complex functions with simple code after install this lib.
100 lines (50 loc) • 6.33 kB
Markdown
## btTablePage
表格-页签-表顶操作(如:批量 XX,导出)集成 UI 组件,全局组件,不用引入,直接用
### 属性:
注意:view-design 的 Table 组件的属性都支持,请在使用中注意冲突情况,如果冲突,请不要使用
- url: 字符串,表格数据接口地址(不带参数),如:`'/dcc/gas-iccids'`
- method: 字符串,表格数据接口请求类型,可选值:`'get'`、`'post'`,默认值:`'get'`
- search-data: 对象,拉取表格数据时所有的参数全都放这里面(日常拉取或者条件查询)如:`{useStatus: 1}`
- columns: 数组,格式同 iView 的 columns,但需要表格前多选时,直接设置 selection 属性,不用在这里添加列;align 默认值`'center'`,如需内容居中可不传,配合`tableSetting`使用时,需按需设置`showSettingCheck`字段,详见`tableSetting`的说明文档。
- dataHandler: Function,接口数据处理方法,入参为接口返回数据,返回处理后的数据,格式须为`{data:[...],total:xx}`
- selection: 布尔类型,需要表格多选时设置,默认:`false`
- radio: 布尔类型,表格是否是单选表格,每次只能选中一行,默认:`false`
- selectionFixed: `'left'/'right'/false`三选一或不传,每列开头选择框固定(`left`: 左固定,`right`: 右固定, `false`: 不固定,和 iview table 固定列一样),默认:`false`
- rowClickSelect: 布尔类型,是否点击行操作开头选择框(需要`selection: true`时才有效),默认:`true`
- data: 数组,在展示静态表格(没有请求地址 url,不用更新,只展示一组静态数据)时用,格式同 iView 的 data。
- page-size: 正整数,在需要定义初始化表格页面条数时使用(如果用户设置过,优先使用用户设置的值),默认:`10`
- sortable: 字符串('custom'/''),`custom`: 所有带 key 的列后端排序(不需要排序的列在`columns`对应项设置`sortable:false`;需要排序的字段无需在 columns 做任何设置),`''`: 不排序(即使在 columns 设置了 sortable 也不会生效),不传该字段,和传`''`是同样的效果。
- init-data: 布尔对象,默认为`true`: 组件创建后自动拉取第一次数据,`false`: 不自动拉取第一次,后面改变 search-data 的值或者调用手动拉取方法。
- highlightRow: 布尔类型,当前(选中,无论是否带选择框)行高亮,`radio: true`时会无视该属性值开启高亮,默认:`false`
- rowClickNum: 整数,自动拉取第一次数据(`init-data: true`)时点击第几行,默认:`-1`,不点击
- tableEmptyTdHandle: 布尔类型,表格内容为空是否显示为`--`,默认:`false`
- noBorderTable: 布尔类型,表格无边框,默认:`false`
- noPage: 布尔对象,不带页签,默认:`false`
- orderDefault: `'asc'/'desc'`二选一或不传,默认排序方式,响应式属性,默认:`'desc'`
- orderKey: 字符串,排序字段的 key,响应式属性,默认:`'id'`
- orderKeyFormat: 下划线`‘underline’`和驼峰`‘camelcase’`二选一或不传,排序字段 key 的格式,默认:`‘underline’`
- getDataLoading: 布尔对象,拉取表格数据时显示遮罩层,默认:`false`
- showTopRow: 布尔对象,展示顶行(列表设置、批量操作按钮、导出等按钮、统计信:息等),各项子内容通过 slot 接入,默认:`false`
- lightHead: 布尔对象,浅色背景表头,避免和 headerBar 菜单紧邻时页面局部颜色不平衡,默认:`false`
- pageComponentSize: 字符串,page 的大小,默认:`default`
- noElevator: 布尔对象,page 不带电梯,默认:`false`
- usePagePro: 布尔对象,是否使用pagePro组件作为页签,可用全局属性`btTablePageUsePagePro`更改默认值,默认:`false`
- showTotal: 布尔值,page是否展示total,可通过全局变量`pageShowTotal`改变默认值,默认值:`true`
- showSizer: 布尔值,page是否展示sizer,可通过全局变量`pageShowSizer`改变默认值,默认值:`true`
### 事件:
注意:view-design 的 Table 组件的所有事件都可监听
- on-row-click: 行被点击,返回当前行数据
- on-data-change: 表格数据改变,返回改变后的数据
### 方法:
- getTableData: 主动更新表格数据,一般在操作表格数据后使用,条件查询时只需要更改属性`search-data`的值
- addRow: 添加行(分页时不推荐使用,会导致当前页展示的数据条数和页签显示的不符,分页时直接跟后端新增数据然后重新拉取表格数据)
- setRowData: 更改指定行数据,参数:1.row:新的行数据(只更新旧数据和新数据都有的字段,如想更新的其中一个字段为row.name,那么旧row数据需要有name这个字段)2.setCurrentRow:a.数字,行在表数据中的index;b.布尔值,更新当前行3.clickCurrentRow:更新完数据点击更新的行
- deleteRow: 删除指定行(分页时不推荐使用,会导致当前页展示的数据条数和页签显示的不符,分页时直接跟后端删除数据然后重新拉取表格数据)
- selectRow: 主动选中行,多选、单选模式皆可用,参数:predicate,1. Number:根据索引index选中行;2. Array:根据索引index数组选中行(仅多选);3. Function:根据断言函数返回true的行选中,断言函数参数为行数据,如:`(row) => row.id === 1`;详细示例见btTablePageEX.vue
- clearSelect: 清空选择
- clearTableData: 清空表格数据(用于特殊场景下重置表格,不拉取数据,如需刷新数据直接调用`getTableData`)
- getDataAndClickRow: 单选模式下:拉取表格数据并且自动点击行,如果传 true,则点击当前行,不传则点击 rowClickNum 指定行;非单选模式:仅拉取数据(等同`getTableData`)
- getSelected: 获取已选行数据
- getTableData: 主动拉取(刷新)表格数据
### 注意:
- 该组件的父容器需要有有效的高度,比如给定 px、vh 高度,或者有效的百分比高度(使用百分比高度必须要能让它生效)