UNPKG

ideaz-element

Version:

<p align="center"> <a href="" target="_blank" rel="noopener noreferrer"> <img src="./docs/public/logo.svg" alt="Ideaz Element" width="180" style="width: 180px;" /> </a> </p>

73 lines (71 loc) 2.5 kB
import { ButtonProps, ElForm, TableColumnCtx, dropdownItemProps, dropdownProps } from 'element-plus'; import { ExtractPropTypes, Ref, VNode } from 'vue'; import { OptionsItem } from './common'; import { FormColumn } from './form'; export type BtnItem = Partial<Omit<ButtonProps, 'type' | 'disabled'>> & { type?: 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'dropdown'; disabled?: ((scope: TableColumnScopeData) => boolean) | boolean; hide?: ((scope: TableColumnScopeData) => boolean) | boolean; onClick?: (scope: TableColumnScopeData) => void; children?: BtnItem; reference?: string | ((scope: TableColumnScopeData) => VNode); onCommand?: (command: string) => void; [propName: string]: any; } & Partial<ExtractPropTypes<typeof dropdownItemProps>> & Omit<Partial<ExtractPropTypes<typeof dropdownProps>>, 'type'>; export interface ToolBar { uncheck?: string[]; exclude?: string[]; refresh?: boolean; fullScreen?: boolean; density?: boolean; setting?: boolean; } export interface TableFormConfig { columns: FormColumn[]; [propName: string]: any; } export interface DefaultButtonOperation { renderEdit: BtnItem; renderSave: BtnItem; renderCancel: BtnItem; renderDelete: BtnItem; } export type ButtonRender<T = any> = (renderData: DefaultButtonOperation, tableData: Ref<T>) => BtnItem[]; export interface TableCol<T = any> extends Partial<Omit<TableColumnCtx<T>, 'label'>> { slot?: string; label?: string | ((scope: TableColumnScopeData) => VNode); type?: 'index' | 'selection' | 'radio' | 'expand' | 'sort' | 'button'; component?: string | (() => string); buttons?: BtnItem[] | ButtonRender<T>; fieldProps?: { [propName: string]: any; }; options?: OptionsItem[]; dropdown?: number | number[] | { maxlength?: number; exclude?: number[]; dropdownItem?: { [propName: string]: any; }; reference?: string | any; [propName: string]: any; } | any; add?: boolean | FormColumn; edit?: boolean | FormColumn; detail?: boolean | any; search?: boolean | FormColumn; form?: FormColumn; __uid?: string; [propName: string]: any; } export interface TableColumnScopeData<T = any> { row: T; column: TableColumnCtx<T>; $index: number; } export interface EditableTableEventParams<T = any> { row: T; $index: number; column: TableColumnCtx<T>; formRef: typeof ElForm; }