概述

一个配置器开发的过程,也即按照要求实现以下接口的过程,组件发布之后,平台会按照与这些接口约定的内容在合适的时机调用这些接口。 具体平台框架如何运作,组件开发者无需关心,只需按照指定的接口实现相关功能即可。

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: '当用户选中某一行时触发'
    }];
    

Enhancer 提供给组件开发者 configurator 相关的 SDK

results matching ""

    No results matching ""