Skip to content

WetProTable 高级查询表格

基本介绍

WetProTable 是根据 JSON Schema 来生成查询表格的组件。其实就是WetSchemaTableWetProFormElPagination的组合,并添加了业务常见的场景

引入方法: import { WetProTable } from '@wetspace/pro-components';

基本使用

WetProTable 会根据列来生成一个 Form,用于筛选列表数据,最后的值会根据通过 request 的第一个参数返回。

按照规范,table 的表单不需要任何的必选参数,所有点击搜索和重置都会触发 request 来发起一次查询

Form 的列是根据 valueType 来生成不同的类型,详细的值类型请查看WetSchemaForm配置

表格单元格枚举渲染

枚举配置是依赖于表格配置项属性valueEnum,可以设置状态,一共内置了'danger' | 'warning'| 'primary'|'success' | 'info' 这样五个状态,具体使用如下

行选择

表格充满整个容器

设置fill属性即可

表格工具栏

默认是无ToolBar的查询表格,如果要有TooBar,可以使用插槽,对toolbar进行填充,也可以设置showMoreTools 或者title 属性显示默认的toolbar操作来显示工具栏

嵌套表格

Columns 列定义

ts 描述

ts
import type { aaTableColumnCtx } from 'element-plus'
export type WetBaseColumns = {
    title?: string,
    label?: string,
    isScrollMark?: boolean,
    dataIndex: string | string[]
    tooltip?: string,
    ellipsis?: boolean | Partial<ElTooltipProps>,
    valueEnum?: WetFormOption[],
    isRender?: boolean,
    render?: (rowInfo: { row: any, $index: number }) => Component | VNode | undefined,
    columns?: WetBaseColumns[]
} & Partial<Omit<TableColumnCtx<any>,'columns'>>

export type WetProTableColumns = Omit<WetBaseColumns, 'columns'> & {
    required?: boolean,
    columns?: WetProTableColumns[]
    valueType?: WetValueType,
    formItemProps?: WetSchemaItemType,
    fieldProps?: Record<string, any>
    search?: boolean,
    hideInSearch?: boolean,
    hideInTable?: boolean,
}

valueType 值类型

WetProTable 封装了一些常用的值类型来减少重复的 render 操作,配置一个 valueType 即可展示格式化响应的数据

属性

基本属性继承element-plusElTable组件

属性描述类型默许值
columns表格列名称,对label做兼容WetSchemaItemType[]-
emptyFormat单元格空值处理string-
rowKey指定行唯一标记string | string[]-
expandable可行展开配置PropType<WetTableExpandable>-
ellipsisProps行数据超出省略提示配置Partial<ElTooltipProps>{effect: 'light',placement: 'top'}
selections/v-model:selectionsSchema配置行选择数据绑定-
rowSelection行选择配置WetRowSelection-
mergeDataIndexs数据合并索引string | string[]-
title表格标题WetProTableRequest-
request数据请求数据请求-
search查询表格配置Partial<Omit<WetSchemaProps, 'labelWidth'>&{ollapsed?: boolean,labelWidth?: number,collapseShowNum?:number}|boolean-
pagination表格标题PropType<Partial<PaginationProps>&{ position?: 'left' | 'right' | 'center'}|boolean-
showMoreTools更多工具栏booleantrue
cardBordered是否为卡片表格样式boolean-
fill是否充满容器boolean-

WetProElement