ztz-table
Version:
ZTZ Table,一个为开发者准备的基于 Vue 3.0 和 Element Plus 的数据表格二次封装的组件库,旨在通过配置文件快速生成表格。集成CRUD功能,通过简单配置,快速完成一个基本的增删查改功能。
113 lines (112 loc) • 3.24 kB
TypeScript
import type { Component, VNode, ComponentPublicInstance } from 'vue';
import type { ElDialog, ElButton } from 'element-plus';
declare type ElDialogProps = Partial<typeof ElDialog>;
declare type ElButtonProps = Partial<typeof ElButton>;
declare type NullType = null | undefined;
export declare type TableColumn = {
prop?: string;
label?: string;
render?({ row, $index }: {
row: any;
$index: number;
}): Component | Array<Component>;
renderHeader?({ column, $index }: {
column: any;
$index: number;
}): Component | Array<Component>;
[propName: string]: any;
};
export declare type TableDataRow = {
[propName: string]: any;
_options?: ITableDataRowOptions;
};
export declare type CustomVNode = VNode & {
children?: SlotRenderType;
};
export declare type SlotRenderType = {
render?(): VNode | Array<VNode>;
header?(): VNode | Array<VNode>;
default?(): VNode | Array<VNode>;
renderHeader?(): VNode | Array<VNode>;
};
export declare type CreateCrudBtnConfig = {
label?: string;
injectEdit?: boolean;
injectDelete?: boolean;
};
export declare type AnyObject = {
[propName: string]: any;
_options?: TableDataRow['_options'];
};
export declare type FormRef = {
getFormModel(): AnyObject;
getFormRef(): {
resetFields(): void;
clearValidate(): void;
validate(callback: (valid: boolean) => void): Promise<(valid: boolean) => void>;
};
} & Element & ComponentPublicInstance;
export declare type DataFunc = {
(queryParams: AnyObject): Promise<{
total: number;
content: Array<TableDataRow>;
}> | any;
};
export interface ICrudAdd {
api(): Promise<any>;
formComponent: Component;
successMsg?: string | NullType;
errorMsg?: string | NullType;
dialogProps?: ElDialogProps;
}
export interface ICrudEdit {
api(): Promise<any>;
detailApi?: Promise<any> | NullType;
formComponent: Component;
successMsg?: string | NullType;
errorMsg?: string | NullType;
dialogProps?: ElDialogProps;
buttonProps?: ElButtonProps;
}
export interface ICrudDelete {
api(): Promise<any>;
crudSort?: number | NullType;
confirmText?: string | NullType;
successMsg?: string | NullType;
errorMsg?: string | NullType;
buttonProps?: ElButtonProps;
}
export interface ICrud {
add?: ICrudAdd;
edit?: ICrudEdit;
delete?: ICrudDelete;
}
export interface ITableDataRowOptions {
uid?: string;
loadingDelete?: boolean;
disabledEdit?: boolean;
disabledDelete?: boolean;
permission?: {
edit?: boolean;
delete?: boolean;
};
}
export declare class TableDataRowOptions implements ITableDataRowOptions {
uid: string;
loadingDelete: boolean;
disabledEdit: boolean;
disabledDelete: boolean;
permission: {
edit?: boolean | undefined;
delete?: boolean | undefined;
} | undefined;
}
export declare class TablePagination {
pageNum: number;
pageSize: number;
total: undefined;
layout: string;
background: boolean;
position: string;
}
export {};