UNPKG

snowy-designer

Version:

基于Epic-Designer-Pro版本的设计器,可视化开发页面表单

83 lines (82 loc) 2.4 kB
import { FormItemRule } from '../../ui-kit/panel-ui/src/index/src/components/ERuleEditor/types'; import { AttributeConfig, ComponentConfigModel, GlobalApiConfig } from './index'; import { ActionsModel } from '../../utils/src/index'; import { TableJson } from './designer'; export interface ComponentStatus { invalid?: boolean; lock?: boolean; } export interface ComponentSchema { [fieldName: string]: any; bindable?: boolean; children?: ComponentSchema[]; componentProps?: any; dataSource?: any; editData?: any; field?: string; id?: string; input?: boolean; label?: string; noFormItem?: boolean; on?: { [eventName: string]: ActionsModel[]; }; onChange?: (params: { componentAttributes?: AttributeConfig[]; tableJson?: TableJson; value: any; values: ComponentSchema; }) => void; rules?: FormItemRule[]; show?: ((params: { tableJson?: TableJson; values: ComponentSchema; }) => boolean) | boolean; slotName?: string; slots?: { [slotName: string]: ComponentSchema[]; }; status?: ComponentStatus; type: string; } export interface FormConfig { customStyle?: string; hideRequiredMark?: boolean; labelCol: any; labelLayout: any; labelWidth?: string; layout?: string; wrapperCol: any; } export type FormDataModel = Record<string, any>; export interface PageSchema { canvas?: { height?: string; mode?: 'desktop' | 'mobile' | 'pad' | 'pc' | 'tablet'; width?: string; }; globalApiConfig?: GlobalApiConfig; schemas: ComponentSchema[]; script?: string; } export interface DesignerState { disabledHover: boolean; hoverNode: ComponentSchema | null; matched: ComponentSchema[]; selectedNode: ComponentSchema | null; selectedNodeConfig: ComponentConfigModel | null; } export interface Designer { handleDelete: () => void; handleDuplicate: () => void; handleImported: (data: PageSchema) => void; handleToggleDeviceMode: (mode: string) => void; pageSchema: PageSchema; preview: () => void; reset: () => void; save: () => void; setDisabledHover: (disabledHover?: boolean) => void; setHoverNode: (schema: ComponentSchema | null) => void; setSelectedNode: (schema?: ComponentSchema) => void; state: DesignerState; }