• 开发完成后的效果
  • 1. 在 contruct 函数里初始化 html 元素
  • 2. 在 setProfile 函数里回填之前保存过的配置项
  • 3. 在 getProfile 函数里检查配置的合法性并返回新的配置数据

    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 这两个接口函数