@uozi-admin/curd
Version:
Easy to implement curd.
45 lines (44 loc) • 1.37 kB
TypeScript
import { TableColumnType } from 'ant-design-vue';
import { VNode, VNodeChild } from 'vue';
import { JSX } from 'vue/jsx-runtime';
import { StdFormConfig } from './form';
import { CustomRenderArgs } from './props';
export interface StdTableHeaderScope {
title: string;
column: any;
}
export interface StdTableBodyScope {
text: any;
value: any;
record: Record<string, any>;
index: number;
column: any;
}
export interface StdTableColumnSlotScope {
record: Record<string, any>;
column: any;
text: any;
value: any;
index: number;
}
type CustomHeaderRenderFn = (data: StdTableHeaderScope) => VNode | JSX.Element;
type CustomRenderFn<T> = ((props: CustomRenderArgs<T>, source?: 'table' | 'edit' | 'add' | 'detail') => VNodeChild);
export interface StdTableColumn<T = any> extends Omit<TableColumnType, 'customRender'> {
title: string | (() => string);
dataIndex: string | string[];
customHeaderRender?: CustomHeaderRenderFn;
pure?: boolean;
search?: boolean | Partial<StdFormConfig>;
edit?: StdFormConfig;
batchEdit?: boolean;
customRender?: CustomRenderFn<T>;
hiddenInTable?: boolean;
hiddenInEdit?: boolean;
hiddenInAdd?: boolean;
hiddenInDetail?: boolean;
hiddenInExport?: boolean;
}
export type ExportColumn = Required<StdTableColumn> & {
checked: boolean;
};
export {};