概述
一个配置器开发的过程,也即按照要求实现以下接口的过程,组件发布之后,平台会按照与这些接口约定的内容在合适的时机调用这些接口。 具体平台框架如何运作,组件开发者无需关心,只需按照指定的接口实现相关功能即可。
construct() - 配置器构造函数接口[必需]
整个配置页面会被放进一个 iframe 里, 当 iframe 加载好后平台会立即调用构造函数。您需要在该函数内完相关配置界面的初始化工作。在生成的脚手架中
src/configurator/index.html
是一个 handlebars 模版。src/configurator/i18n
文件夹存放了需要国际化的文本,您可以利用他们来完成具体的配置界面。
getProfile() - 获取组件配置函数接口[必需]
当用户在工作台配置页面点击保存按钮时平台会调用此方法,来保存配置信息。您需要在此方法内把当前组件配置内容汇总成合理的 JSON 对象并返回。
- @return profileJSON {Object|false} 当前配置器承载的组件配置信息。如果发现用户配置内容不合法,则在此函数内直接调用 Enhancer.alert('提示内容') 来告知用户,然后返回 false,阻止本次保存操作。
setProfile(prof) - 设置组件配置函数接口[必需]
用户打开配置器时,平台会把上一次用户配置的合法内容(由 getProfile 方法返回),通过此方法,反填给配置器。如果第一次打开,那么反填内容为空对象。您需要根据反填的配置对象,设置各配置项的值。
- @param prof {Object} 上一次组件配置内容。
getSupportedVariableList(prof) - 获取组件变量支持列表接口[可选]
该函数会在用户点击配置器保存按钮时调用,用于获取当前配置下组件所支持的变量,方便外部做变量引用提示和查阅。 您需要在此方法内,根据已有配置信息,返回出当前组件支持的变量。
- @param prof {Object} 当前配置器返回的配置内容。此参数由平台传递,方便根据配置信息,返回支持的变量。
- @return list {Array} 变量支持列表,如:
[{ name: 'LAST_SELECTED_LEVEL', // 变量名 type: 'number', // 变量类型 des: '上次选中节点层级' // 变量描述 }, { name: 'LAST_SELECTED_NODE_NAME', type: 'string', des: '上次选中节点名称' }]
getDependentVariableList(prof) - 获取组件依赖的变量列表接口[可选]
该函数会在用户点击配置器保存按钮时调用。如果组件在运行时有依赖外部变量,则需要在此函数内事先返回给平台框架,以便运行时,框架根据依赖关系,把组件需要的变量,在依赖发生变化时传递给组件。
- @param prof {Object} 当前配置器返回的配置内容。此参数由平台传递,方便您根据配置信息,返回依赖的变量。
- @return list {Array} 变量依赖列表如:['11-NAME', '11-LAST_SELECTED_ID']。
getSupportedEventList(prof) - 获取组件事件支持列表接口[可选]
该函数会在用户点击配置器保存按钮时调用。如果组件运行时会触发一些事件,那么您需要在此函数内返回组件支持的事件列表。平台拿到事件列表之后,当用户在流程图上右键点击窗口时,这些事件会罗列在事件菜单里,供用户配置事件响应逻辑。
- @param prof {Object} 当前配置器返回的配置内容。此参数由平台传递,方便您根据配置信息,返回支持的事件列表。
- @return list {Array} 事件支持列表,如:
[{ id: 'onNodeCheck', // 事件 ID,也即组件运行时调用 trig 方法触发事件时传入的值, // 比如 widget.trig('onNodeCheck')。 name: '勾选节点', // 事件名。 des: '当用户勾选节点时触发' // 事件描述。 }, { id: 'onRowSelected', name: '选中行', des: '当用户选中某一行时触发' }];