widget-dev-demo 组件配置器的具体代码请参考 configurator

开发完成后的效果

2.开发配置器  - 图1

下面介绍一下主要步骤:

1. 在 contruct 函数里初始化 html 元素

  1. const tplHTML = template({
  2. locale: locale()
  3. });
  4. $('body').html(tplHTML);
  5. // 初始化数据源配置器
  6. this.dataSourceConfig = Enhancer.DatasourceManager.createConfigurator('dataSourceDom', {
  7. supportedTypes: ['rdb', 'http', 'static', 'jsonp'],
  8. dataSpecification: 'dataSpecification', // 组件数据格式说明
  9. onSave: (source) => {
  10. this.profile.dataSourceId = source.id;
  11. }
  12. });

2. 在 setProfile 函数里回填之前保存过的配置项

  1. // 用保存过的数据源Id区加载数据源, 然后回填给数据源配置器
  2. if (this.profile.dataSourceId) {
  3. Enhancer.DatasourceManager.getDatasource(this.profile.dataSourceId, (source) => {
  4. this.dataSourceConfig.setConfig(source);
  5. });
  6. }
  7. // 回填 单行显示 配置项
  8. if (this.profile.oneLine) {
  9. $('input[name=oneLine]').prop('checked', true);
  10. }

3. 在 getProfile 函数里检查配置的合法性并返回新的配置数据

由于 widget-dev-demo 组件只有一个 数据源 配置项和一个 单行显示 的配置项, 因此 getProfile 函数只会返回这两个字段。

  1. return {
  2. dataSourceId: this.profile.dataSourceId,
  3. oneLine: $('input[name=oneLine]').prop('checked')
  4. };
配置器至少要实现 setProfile 和 getProfile 这两个接口函数