UNPKG

element-ui-saas-extend

Version:

基于 Element UI 对 SaaS 平台常见交互开发的预设组件

183 lines (177 loc) 3.75 kB
import { ElForm } from "element-ui/types/form"; export declare interface ElAutoOption { icon?: string; label: string; type?: "primary" | "warning" | "info" | "danger"; value: string | number; disabled?: boolean; children?: ElAutoOption[]; props?: Record<string, any>; } export declare type ElAutoMixinOptions = | Record<string | number, string | number> | Array<string | ElAutoOption>; export declare type ElFormAutoFieldType = | "hidden" | "plain" | "text" | "numberrange" | "component" | "password" | "number" | "textarea" | "slider" | "switch" | "year" | "month" | "week" | "date" | "years" | "months" | "dates" | "time" | "timeselect" | "datetime" | "timerange" | "monthrange" | "daterange" | "datetimerange" | "radio" | "radiobutton" | "check" | "select" | "cascader" | "rate"; export declare interface ElFormAutoField { /** * 组件引用col */ col?: number; /** * 标签名,可空 */ label?: string; /** * 默认值,可空 */ value?: any; /** * 字段类型,根据字段类型使用不同的组件 */ type: ElFormAutoFieldType; /** * 是否隐藏标签 * @default false */ labelHidden?: boolean; /** * 表单项提示 */ labelTooltip?: string; /** * 设置标签宽度 */ labelWidth?: string; /** * 是否禁用字段 * @default false */ disabled?: boolean; /** * 字段是否必填 * @default false */ required?: boolean; /** * 改变字段验证类型 * 根据asyncValidator方式 */ ruleType?: string; /** * 字段追加验证规则 * 根据element rules方式 */ addRules?: any[]; /** * 改用动态插槽自定义 * @default false */ slot?: boolean | string; /** * 绑定显示,(model)=>{return boolean} * model为表单所有字段值 * @default false */ bindShow?: (model: Record<string, any>) => boolean; /** */ remote?: boolean; /** * type为select,check,radio,cascader时 * 选项数组,支持Promise * @default false */ options?: | ElAutoMixinOptions | ((query?: string, page?: number = 1) => Promise<ElAutoMixinOptions>); /** * type为check时 * 去除 全选复选框 * @default true */ notAll?: boolean; /** * type为radio时 * 去除 全选复选框 * @default true */ allOption?: boolean; /** * type为select时 * select可多选 * @default true */ multiple?: boolean; /** * type为select 且 remote 为 true 时 * select 可滚动分页加载 * @default true */ loadScroll?: boolean; /** * type为 datetimerange,timerange,daterange,slider,numberrange 时 必填 * 范围选择时返回的范围 值和会按顺序返回rangeName中的值 * rangeName:['startTime','endTime'] * //output: * { * startTime:"00:00:00" * endTime:"10:00:00" * } */ rangeName?: [string, string]; /** * 【选填】type为 daterange 时 * @default false */ suffixTime?: boolean; component?: string; [name: string]: any; /** * 自定义增加事件 * @default false */ on?: Record<string, (...args: any[]) => void>; } export declare class ElFormAuto extends ElForm { /** 表单项配置 */ data: Record<string, ElFormAutoField>; /** el-row 属性 gutter 栅格间格 */ gutter: number; /** 所有表单项标签是否隐藏 */ labelHidden: boolean; reset(): void; refreshOptions(fieldName: string, clearEcho: boolean = true): void; getModel(): Record<string, any>; setModel(model: Record<string, any>): void; getOptions(fieldName: string): Record<string, any>; // clearEchoOptions(fieldName: string): Record<string, any>; }