propsService方法
setDisabledDataSource
参数:
{boolean}disabled 是否禁用数据源
返回:
{void}
详情:
设置是否禁用数据源(内部状态),影响 fillConfig 注入的公共配置
setDisabledCodeBlock
参数:
{boolean}disabled 是否禁用代码块
返回:
{void}
详情:
设置是否禁用代码块(内部状态),影响 fillConfig 注入的公共配置
getDisabledDataSource
返回:
{boolean}是否禁用数据源
详情:
获取是否禁用数据源的内部状态
getDisabledCodeBlock
返回:
{boolean}是否禁用代码块
详情:
获取是否禁用代码块的内部状态
fillConfig
扩展支持: 是
参数:
- {
FormConfig} config {string}labelWidth 表单项 label 宽度,默认'80px'
查看 FormConfig 及关联类型定义
tsexport type FormConfig<T = never> = FormItemConfig<T>[];tsexport type FormItemConfig<T = never> = ChildConfig<T> | DynamicTypeConfig | EditorChildConfig<T> | T;tsexport type ChildConfig<T = never> = | ContainerCommonConfig<T> | TabConfig<T> | RowConfig<T> | FieldsetConfig<T> | PanelConfig<T> | TableConfig | GroupListConfig<T> | StepConfig<T> | DisplayConfig | TextConfig | NumberConfig | NumberRangeConfig | HiddenConfig | LinkConfig<T> | DaterangeConfig | TimerangeConfig | SelectConfig | CascaderConfig | HtmlField | DateConfig | ColorPickConfig | TimeConfig | DateTimeConfig | CheckboxConfig | SwitchConfig | RadioGroupConfig | CheckboxGroupConfig | TextareaConfig | DynamicFieldConfig | ComponentConfig | FlexLayoutConfig<T>;tsexport interface DynamicTypeConfig extends FormItem { type: TypeFunction; [key: string]: any; }tsexport interface FormItem { /** vnode的key值,默认是遍历数组时的index */ __key?: string | number; /** 表单域标签的的宽度,例如 '50px'。支持 auto。 */ labelWidth?: string | number; /** label 标签的title属性 */ labelTitle?: string; className?: string; /** 字段名 */ name?: string | number; /** 额外的提示信息,和 help 类似,当提示文案同时出现时,可以使用这个。 */ extra?: string | FilterFunction<string>; /** 配置提示信息 */ tooltip?: ToolTipConfigType | FilterFunction<ToolTipConfigType>; /** 是否置灰 */ disabled?: boolean | FilterFunction; /** 使用表单中的值作为key,例如配置了text,则使用model.text作为key */ key?: string; /** 是否显示 */ display?: boolean | 'expand' | FilterFunction<boolean | 'expand'>; /** 值发生改变时调用的方法 */ onChange?: OnChangeHandler; /** label 标签的文本 */ text?: string | FilterFunction<string>; /** 右侧感叹号 */ tip?: string; filter?: 'number' | OnChangeHandler; /** 是否去除首尾空格 */ trim?: boolean; /** 默认值 */ defaultValue?: any | DefaultValueFunction; /** 表单验证规则 */ rules?: Rule[]; extensible?: boolean; dynamicKey?: string; /** 是否需要显示`展开更多配置` */ expand?: boolean; style?: Record<string, any>; fieldStyle?: Record<string, any>; labelPosition?: 'top' | 'left' | 'right'; }- {
返回:
- {Promise<
FormConfig>}
- {Promise<
详情:
扩展属性表单配置DSL,用于为所有表单配置添加公共配置
setPropsConfigs
参数:
- {Record<string,
FormConfig|PropsFormConfigFunction>} configs
查看 PropsFormConfigFunction 类型定义
tsexport type PropsFormConfigFunction = (data: { editorService: EditorService }) => FormConfig;- {Record<string,
返回:
{void}
详情:
设置组件与属性表单配置DSL的对应关系
setPropsConfig
扩展支持: 是
参数:
{string}type 组件类型- {
FormConfig} config 属性表单配置DSL
返回:
{Promise<void>}
详情:
为指定类型组件设置组件属性表单配置
getPropsConfig
扩展支持: 是
参数:
{string}type 组件类型{Object}data 可选参数- {
MNode| null} node 当前节点
- {
查看 MNode 及关联类型定义
tsexport type MNode = MComponent | MContainer | MIteratorContainer | MPage | MApp | MPageFragment;tsexport interface MComponent { /** 组件ID,默认为${type}_${number}}形式, 如:page_123 */ id: Id; /** 组件类型 */ type?: string; /** 组件显示名称 */ name?: string; /** 组件根Dom上的class */ className?: string; /* 关联事件集合 */ events?: EventConfig[]; /** 是否隐藏 */ visible?: boolean; /** 显示条件中配置的数据源条件的编译结果 */ condResult?: boolean; /** 组件根Dom的style */ style?: StyleSchema; [NODE_CONDS_KEY]?: DisplayCond[]; [NODE_CONDS_RESULT_KEY]?: boolean; [key: string]: any; }tsexport interface MContainer extends MComponent { /** 容器类型,默认为'container' */ type?: NodeType.CONTAINER | string; /** 容器子元素 */ items: (MComponent | MContainer)[]; }tsexport interface MIteratorContainer extends MContainer { type: 'iterator-container'; iteratorData: any[]; dsField: string[]; itemConfig: { layout: string; [NODE_CONDS_KEY]: DisplayCond[]; style: Record<string, string | number>; }; }tsexport interface MPage extends MContainer { /** 页面类型 */ type: NodeType.PAGE; }tsexport interface MApp extends MComponent { /** App页面类型,app作为整个结构的根节点;有且只有一个 */ type: NodeType.ROOT; /** */ items: (MPage | MPageFragment)[]; /** 代码块 */ codeBlocks?: CodeBlockDSL; dataSources?: DataSourceSchema[]; dataSourceDeps?: DataSourceDeps; dataSourceCondDeps?: DataSourceDeps; }tsexport interface MPageFragment extends MContainer { /** 页面类型 */ type: NodeType.PAGE_FRAGMENT; }返回:
- {Promise<
FormConfig>}
- {Promise<
详情:
获取指点类型的组件属性表单配置
setPropsValues
参数:
- {Record<string,
MNode>} values
- {Record<string,
返回:
{void}
详情:
设置组件与属性表单默认值的对应关系
setPropsValue
参数:
{string}type 组件类型- {
MNode} value 组件初始值
返回:
{Promise<void>}
详情:
设置组件与属性表单默认值的对应关系
getPropsValue
扩展支持: 是
参数:
{string}type 组件类型{Object}defaultValue 组件默认值,可选
返回:
- {Promise<
MNode>} 合并默认配置后的节点对象
- {Promise<
详情:
获取指定类型的组件初始值,会合并 getDefaultPropsValue 与已注册的 propsValue,并自动生成 id
createId
扩展支持: 是
参数:
{string | number}type 组件类型
返回:
{string}生成的组件id(格式为type_guid)
详情:
生成组件id
setNewItemId
扩展支持: 是
参数:
- {
MNode} config {boolean}force 是否强制设置新ID,默认true
- {
返回:
- {
MNode} 处理后的节点
- {
详情:
将组件与组件的子元素配置中的id都设置成一个新的ID
getDefaultPropsValue
扩展支持: 是
参数:
{string}type 组件类型
返回:
{Object}默认属性配置对象(包含type、style、name等基础字段,page/container类型会额外包含layout、items)
详情:
获取默认属性配置
replaceRelateId
参数:
- {
MNode[]} originConfigs 原始组件配置 - {
MNode[]} targetConfigs 待替换的组件配置 {TargetOptions}collectorOptions 依赖收集器配置
- {
返回:
{void}
详情:
根据 setNewItemId 收集到的新旧 id 映射,替换目标配置中关联引用的 id(用于复制粘贴时保持组件间的关联依赖)
clearRelateId
返回:
{void}
详情:
清除 setNewItemId 维护的新旧 id 映射关系
resetState
详情:
清空所有组件的属性配置 (
propsConfigMap) 与初始值 (propsValueMap)。TIP
本方法不会重置
disabledDataSource/disabledCodeBlock标记,也不会清空relateIdMap;如需清理后两者,请分别调用 setDisabledDataSource / setDisabledCodeBlock 与 clearRelateId。
destroy
详情:
销毁propsService
use
使用中间件的方式扩展方法,上述方法中标记有扩展支持: 是的方法都支持使用use扩展
usePlugin
- 详情:
相对于use, usePlugin支持更加灵活更加细致的扩展, 上述方法中标记有扩展支持: 是的方法都支持使用usePlugin扩展
每个支持扩展的方法都支持定制before、after两个hook来干预原有方法的行为,before可以用于修改传入参数,after可以用于修改返回的值
removeAllPlugins
- 详情:
删掉当前设置的所有扩展