表格(SchemaTable)
/web/src/components/schemaTable/SchemaTable.vue
该组件对 Element Plus 的 Table 表格 和 Pagination 分页 进行了二次封装,提供了默认的表格布局、操作按钮、分页等功能,以及完全使用 TypeScript 编写的动态表格功能。
示例:/web/src/views/demo/SchemaTableDemo.vue
API
Attributes
参数 | 说明 | 类型 | 默认值 | 必填 |
---|---|---|---|---|
v-model | 分页属性 | Pagination | 是 | |
table | 表格配置,T 为 FormModel 类型的参数 | SchemaTable<T extends FormModel> | 是 |
Slots
参数 | 说明 | 类型 |
---|---|---|
default | 表格操作列 | { row: any, column: any, $index: number } |
类型声明
/web/src/components/schemaTable/types/index.d.ts
Pagination
参数 | 说明 | 类型 | 默认值 | 必填 |
---|---|---|---|---|
pageSize | 页大小 | number | 是 | |
currentPage | 当前页码 | number | 是 | |
total | 总条数 | number | 是 |
SchemaTable
参数 | 说明 | 类型 | 默认值 | 必填 |
---|---|---|---|---|
props | 表格属性 | TableProps<T> | - | 是 |
events | 表格事件,与 Element Plus 的 Table 事件 属性 | - | 否 | |
columns | 以表格数据的key ,作为表格各列的key , 值为去除prop 属性的 Element Plus 的 Table-column 属性 | 否 | ||
actionsProps | 表格操作列属性,与去除prop 属性的 Element Plus 的 Table-column 属性一致 | - | 否 | |
pagination | 分页属性 | PaginationProps | - | 否 |
TableProps
继承了 Element Plus 的 Table 属性,删除了data
属性,并添加了以下属性:
参数 | 说明 | 类型 | 默认值 | 必填 |
---|---|---|---|---|
data | 表数据,提供了类型提示 | T[] | - | 是 |
loading | 是否显示表格加载中 | boolean | - | 否 |
showSelection | 是否显示多选框 | boolean | - | 否 |
PaginationProps
参数 | 说明 | 类型 | 默认值 | 必填 |
---|---|---|---|---|
props | Element Plus 的 Pagination 分页属性,去除了pageSize、currentPage、defaultPageSize、defaultCurrentPage、total、pageCount | - | 否 | |
events | Element Plus 的 Pagination 分页事件 | - | 否 |