更新时间:2024-11-04 GMT+08:00
分享

文件介绍及示例

文件介绍

{widget}.editor.js为组件属性定义文件,负责组件编辑状态时需要渲染的界面和逻辑。其中,“{widget}”为自定义组件的名称,如本示例中该文件名为“EchartsWidgetTemplate.editor.js”{widget}.editor.js文件只在组件编辑状态被加载,主要包括propertiesConfig方法和create方法。

文件示例

EchartsWidgetTemplate = EchartsWidgetTemplate.extend({
  // 组件事件配置项,定义组件事件结构及说明,给全局变量映射使用
  eventConfig: {
    clickSeries: {
      desc: { zh_CN: "点击系列", en_US: "Click Series" },
      fields: [
        {
          name: 'seriesIndex',
          desc: { zh_CN: '系列索引', en_US: 'Series Index' },
        },
        {
          name: 'seriesName',
          desc: { zh_CN: '系列名', en_US: 'Series Name' },
        },
      ],
    },
  },
  // 配置项大的分类
  classfication: [[{ name: 'configuration' }, { name: 'tooltip' }]],

  // 组件详细配置
  propertiesConfig: [
    {
      config: [
        {
          type: 'dataSetting',
          mapping: {
            x: {
              keyName: 'dataX',
              keyTitle: { zh_CN: 'X轴数据', en_US: 'X axis Data' },
              limitNumber: '1',
              type: 'category',
              label: 'x',
              required: true,
            },
            y: {
              keyName: 'value',
              keyTitle: { zh_CN: 'Y轴数据', en_US: 'Y axis Data' },
              limitNumber: '1',
              type: 'value',
              label: 'y',
              required: true,
            },
            s: {
              label: 's',
              limitNumber: '1',
              series: [
                {
                  type: '',
                  label: '',
                  required: false,
                },
              ],
            },
          },
          mock: {},
          name: 'EchartsWidgetTemplateConnector',
          model: 'CommonViewModel',
        },
      ],
    },
    {
      migrateFrom: 'advancedSettings',
      headerTitle: { zh_CN: '数据映射', en_US: 'Data Mapping' },
      belong: 'configuration',
      config: [
        {
          type: 'select',
          name: 'commonProps.emphasisFocus',
          label: { zh_CN: '高亮时淡出', en_US: 'Emphasis Focus' },
          value: 'series',
          options: [
            {
              label: { zh_CN: '不淡出其它图形', en_US: 'None' },
              value: 'none',
            },
            {
              label: { zh_CN: '只聚焦当前高亮的数据的图形', en_US: 'Self' },
              value: 'self',
            },
            {
              label: { zh_CN: '聚焦当前高亮的数据所在的系列的所有图形', en_US: 'Series' },
              value: 'series',
            },
          ],
        },
        {
          type: 'tab',
          name: 'commonProps.showLabel',
          label: { zh_CN: '显示标签', en_US: 'Emphasis Focus' },
          value: true,
          options: [
            {
              label: { zh_CN: '显示', en_US: 'Show' },
              value: true,
            },
            {
              label: { zh_CN: '隐藏', en_US: 'Hide' },
              value: false,
            },
          ],
        },
      ],
    },
    {
      migrateFrom: 'advancedSettings',
      headerTitle: { zh_CN: '提示', en_US: 'Tooltip' },
      belong: 'tooltip',
      config: [
        {
          type: 'select',
          name: 'commonProps.axisPointerType',
          label: { zh_CN: '指示器', en_US: 'Axis Pointer' },
          value: 'shadow',
          options: [
            {
              label: { zh_CN: '直线指示器', en_US: 'Line' },
              value: 'line',
            },
            {
              label: { zh_CN: '阴影指示器', en_US: 'Shadow' },
              value: 'shadow',
            },
            {
              label: { zh_CN: '无指示器', en_US: 'None' },
              value: 'none',
            },
          ],
        },
      ],
    }
  ],

  // 仅在组件首次被创建时调用一次,必填
  create: function (cbk) {
    if (cbk) {
      this._super();
      cbk();
    }
  },
});

// 注册组件,必填
window.Studio.registerWidget('EchartsWidgetTemplate', 'EchartsWidgetTemplate', {});
  • eventConfig:组件事件描述配置项,用来扩展给全局变量使用。
  • classfication:组件的配置项分类。
  • propertiesConfig:负责组件配置页面中,右侧的属性配置逻辑。
  • create(必须配置):组件内置的扩展,仅在组件首次被创建时调用一次。
  • registerWidget(必须配置):注册组件的逻辑实现。

相关文档