z-crud-table
Version:
A powerful and flexible CRUD table component for Vue 3 and Element Plus.
314 lines (312 loc) • 8.04 kB
TypeScript
import { PropType } from 'vue';
declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<import('vue').ExtractPropTypes<{
/**
* @description 组件的主题风格
* @type {'default' | 'large-screen'}
*/
theme: {
type: PropType<"default" | "large-screen">;
default: string;
};
apiUrlQuery: {
type: StringConstructor;
required: true;
};
apiUrlDetail: {
type: StringConstructor;
required: true;
};
apiUrlCreate: {
type: StringConstructor;
required: true;
};
apiUrlUpdate: {
type: StringConstructor;
required: true;
};
apiUrlDelete: {
type: StringConstructor;
required: true;
};
columns: {
type: PropType<any[]>;
default: () => never[];
};
onBeforeQuery: {
type: PropType<(params: any) => any>;
};
onAfterQuery: {
type: PropType<(data: any[]) => any[] | Promise<any[]>>;
};
onBeforeOpenDialog: {
type: PropType<(mode: string, data?: any) => any>;
};
onAfterOpenDialog: {
type: PropType<(mode: string, data: any) => void>;
};
onBeforeSubmit: {
type: PropType<(data: any) => any>;
};
onAfterSubmit: {
type: PropType<(mode: string, data: any) => void>;
};
onBeforeDelete: {
type: PropType<(ids: number[]) => boolean | Promise<boolean>>;
};
onAfterDelete: {
type: PropType<(ids: number[]) => void>;
};
showSelectionColumn: {
type: BooleanConstructor;
default: boolean;
};
showIndexColumn: {
type: BooleanConstructor;
default: boolean;
};
showActionsColumn: {
type: BooleanConstructor;
default: boolean;
};
showEditButton: {
type: BooleanConstructor;
default: boolean;
};
showDeleteButton: {
type: BooleanConstructor;
default: boolean;
};
actionsColumnWidth: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
dialogWidth: {
type: StringConstructor;
default: string;
};
initialSearchForm: {
type: ObjectConstructor;
default: () => {
pageNum: number;
pageSize: number;
};
};
showPagination: {
type: BooleanConstructor;
default: boolean;
};
pageSizes: {
type: ArrayConstructor;
default: () => number[];
};
paginationLayout: {
type: StringConstructor;
default: string;
};
paginationBackground: {
type: BooleanConstructor;
default: boolean;
};
paginationSmall: {
type: BooleanConstructor;
default: boolean;
};
paginationHideOnSinglePage: {
type: BooleanConstructor;
default: boolean;
};
dialogFormConfig: {
type: () => any[];
default: () => never[];
};
dialogFormRules: {
type: ObjectConstructor;
default: () => {};
};
}>, {
refresh: () => Promise<void>;
search: () => void;
handleDelete: (ids: number[]) => Promise<void>;
openDialog: (mode: "add" | "edit", rowData?: any) => Promise<void>;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
submit: (...args: any[]) => void;
delete: (...args: any[]) => void;
"open-dialog": (...args: any[]) => void;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
/**
* @description 组件的主题风格
* @type {'default' | 'large-screen'}
*/
theme: {
type: PropType<"default" | "large-screen">;
default: string;
};
apiUrlQuery: {
type: StringConstructor;
required: true;
};
apiUrlDetail: {
type: StringConstructor;
required: true;
};
apiUrlCreate: {
type: StringConstructor;
required: true;
};
apiUrlUpdate: {
type: StringConstructor;
required: true;
};
apiUrlDelete: {
type: StringConstructor;
required: true;
};
columns: {
type: PropType<any[]>;
default: () => never[];
};
onBeforeQuery: {
type: PropType<(params: any) => any>;
};
onAfterQuery: {
type: PropType<(data: any[]) => any[] | Promise<any[]>>;
};
onBeforeOpenDialog: {
type: PropType<(mode: string, data?: any) => any>;
};
onAfterOpenDialog: {
type: PropType<(mode: string, data: any) => void>;
};
onBeforeSubmit: {
type: PropType<(data: any) => any>;
};
onAfterSubmit: {
type: PropType<(mode: string, data: any) => void>;
};
onBeforeDelete: {
type: PropType<(ids: number[]) => boolean | Promise<boolean>>;
};
onAfterDelete: {
type: PropType<(ids: number[]) => void>;
};
showSelectionColumn: {
type: BooleanConstructor;
default: boolean;
};
showIndexColumn: {
type: BooleanConstructor;
default: boolean;
};
showActionsColumn: {
type: BooleanConstructor;
default: boolean;
};
showEditButton: {
type: BooleanConstructor;
default: boolean;
};
showDeleteButton: {
type: BooleanConstructor;
default: boolean;
};
actionsColumnWidth: {
type: (StringConstructor | NumberConstructor)[];
default: number;
};
dialogWidth: {
type: StringConstructor;
default: string;
};
initialSearchForm: {
type: ObjectConstructor;
default: () => {
pageNum: number;
pageSize: number;
};
};
showPagination: {
type: BooleanConstructor;
default: boolean;
};
pageSizes: {
type: ArrayConstructor;
default: () => number[];
};
paginationLayout: {
type: StringConstructor;
default: string;
};
paginationBackground: {
type: BooleanConstructor;
default: boolean;
};
paginationSmall: {
type: BooleanConstructor;
default: boolean;
};
paginationHideOnSinglePage: {
type: BooleanConstructor;
default: boolean;
};
dialogFormConfig: {
type: () => any[];
default: () => never[];
};
dialogFormRules: {
type: ObjectConstructor;
default: () => {};
};
}>> & Readonly<{
onSubmit?: ((...args: any[]) => any) | undefined;
onDelete?: ((...args: any[]) => any) | undefined;
"onOpen-dialog"?: ((...args: any[]) => any) | undefined;
}>, {
theme: "default" | "large-screen";
columns: any[];
showSelectionColumn: boolean;
showIndexColumn: boolean;
showActionsColumn: boolean;
showEditButton: boolean;
showDeleteButton: boolean;
actionsColumnWidth: string | number;
dialogWidth: string;
initialSearchForm: Record<string, any>;
showPagination: boolean;
pageSizes: unknown[];
paginationLayout: string;
paginationBackground: boolean;
paginationSmall: boolean;
paginationHideOnSinglePage: boolean;
dialogFormConfig: any[];
dialogFormRules: Record<string, any>;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>, Partial<Record<any, (_: {
row: any;
}) => any>> & {
header?(_: {}): any;
"query-conditions"?(_: {
searchForm: {
pageNum: number;
pageSize: number;
};
}): any;
"query-left"?(_: {}): any;
"query-right"?(_: {}): any;
"action-left"?(_: {
selections: any[];
}): any;
"add-button-content"?(_: {}): any;
"action-right"?(_: {}): any;
actions?(_: {
row: any;
}): any;
"dialog-form-content"?(_: {
formData: Record<string, any>;
mode: "add" | "edit";
}): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
new (): {
$slots: S;
};
};