UNPKG

ztz-table

Version:

ZTZ Table,一个为开发者准备的基于 Vue 3.0 和 Element Plus 的数据表格二次封装的组件库,旨在通过配置文件快速生成表格。集成CRUD功能,通过简单配置,快速完成一个基本的增删查改功能。

113 lines (112 loc) 3.24 kB
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 {};