Skip to content

高级用法

首先(必看)

  1. 在大部分情况下我们需要使用请求后的数据,而不是静态数据,TablePage能让你更好的查询数据,极大的减少你的代码量,提升你的开发效率,让你拥有丝滑的开发体验。
  2. 以下两个方法需要重写
    • ajaxTableData是获取你请求数据的参数
    • changeTableData改变自已的data数据还有分页的参数
ts
import {TablePage, DinertTablePageProps, AjaxTableProps} from '@dinert/element-plus'
import axios from 'axios'


interface DataProps {
    date: string;
    name: string;
    address: string;
}


interface TableParams<T = any> {
    data: T[];
    page?: number;
    pageNum?: number;
    pageSize?: number;
    total?: number;
    totalPages?: number;
}

/* TablePage的类型参数说明
 * T 表格data数据格式
 * D 表单model的数据格式
 * FI 表单formItem的数据格式
 * P 发起请求的数据格式
 * R 请求回来的数据格式
*/
class RewriteTablePage<T, D, FI> extends TablePage<T, D, FI, Parameters<typeof axios.request>[0], TableParams<T>> {
    constructor(options: DinertTablePageProps<T, D, FI>) {
        super(options)
        this.options = options
    }

    // 注意,这里一定要返回promise
    ajaxTableData(options: AjaxTableProps): Promise<TableParams<T>> {
        return axios.request(this.getAjaxTableDataParams(options))
    }

    changeTableData(res: TableParams<T>) {
        this.table.value.data = res.data
        this.table.value.pagination.total = res.total
    }
}

export default RewriteTablePage

配合TablePage使用

  • 当你调用tablePage.search这个方法后,一个表格查询页面就完成了,无需在分页时自已编写额外的逻辑

属性

属性名说明类型默认值
header是否显示头部的操作栏enmu
footer是否显示底部分页栏Booleantrue
tableSlot表格的插槽为true时,表格中所有的插槽名称都为default,为false时可以正常使用插槽Booleanfalse
table详细请参阅下面table属性Object

Table 属性

属性名说明类型默认值
tableColumns表格头的数据配置项Array
errData表格中无数据时显示的数据String-
setting是否显示表格右上的操作栏Booleantrue
class表格的类名String
pagination详细请参阅element-plus的paginationObjectobject
......更多配置,请参考

TableColumns 属性

属性名说明类型默认值
show当前列是否显示enmu
checked当前列是否是选中状态和右上角的操作栏有联动效果,选中时显示,反之不显示Booleantrue
setting操作栏是否显示在当前列,当值为true时表格右上的操作栏会消失Boolean
maxOperations表格最大显示的操作按钮数,超出这个数显示更多,设置operations有效Number3
operations表格操作按钮列表,详情请参阅下表Object
sort列的排序,数值越小列越靠前Number
children表格头下的数据配置项,多级表头Array
......更多配置,请参考

Operations 属性

属性名说明类型默认值
message名称String
click点击事件Function
show是否显示enmu
sort操作的排序,数值越小列越靠前 前Number
second二次确认框,点确定后才会调用click方法,当operations的key为delete时默认开启,当值为messageBox时是弹窗的确认状态,在操作为更多时下的按钮都为弹窗确认状态enmu
messageBox当second为messageBox时生效,messageBox的配置项Object
......更多配置,请参考

事件

事件名说明类型
size-changepage-size 改变时触发Function
current-changecurrent-page 改变时触发Function
checked-change点击隐藏显示操作栏时触发Function

插槽

插槽名说明
column_[prop]column_是固定的,prop里面的值取决于tableColumns中的prop,自定义表格中的内容
column_header_[prop]column_header_是固定的,prop里面的值取决于tableColumns中的prop,自定义表格头部的内容
header_left_[key]column_header_是固定的,prop里面的值取决于header中的key,自定义表格头部操作栏的左侧
header-footer自定义表格头部操作栏的底部
header-title自定义表格头部操作栏的头部
table-empty自定义表格空的内容
table-append插入至表格最后一行之后的内容

Header 属性

属性名说明类型默认值
message名称String
click点击事件Function
show是否显示enmu
sort操作的排序,数值越小按钮越靠前Number
......更多配置,请参考