云服务器内容精选

  • 组件使用静态数据 AstroCanvas通过调用组件定义的getMockData,来获取默认静态数据。 getMockData() { const seviceWaterLevel = this.$t('setting.seviceWaterLevel'); const seviceLoad = this.$t('setting.seviceLoad'); return [ { x: '00:00', y: 11.69, s: seviceWaterLevel, }, { x: '02:30', y: 17.46, s: seviceWaterLevel, }, { x: '05:00', y: 28.57, s: seviceWaterLevel, }, { x: '07:30', y: 12.7, s: seviceWaterLevel, }, { x: '10:00', y: 18.99, s: seviceWaterLevel, }, { x: '12:30', y: 3.7, s: seviceWaterLevel, }, { x: '15:00', y: 18.52, s: seviceWaterLevel, }, { x: '17:30', y: 23.81, s: seviceWaterLevel, }, { x: '20:00', y: 10.58, s: seviceWaterLevel, }, { x: '22:30', y: 15.82, s: seviceWaterLevel, }, { x: '24:00', y: 3.76, s: seviceWaterLevel, }, { x: '00:00', y: 5.69, s: seviceLoad, }, { x: '02:30', y: 12.46, s: seviceLoad, }, { x: '05:00', y: 18.57, s: seviceLoad, }, { x: '07:30', y: 25.7, s: seviceLoad, }, { x: '10:00', y: 13.99, s: seviceLoad, }, { x: '12:30', y: 9.7, s: seviceLoad, }, { x: '15:00', y: 20.52, s: seviceLoad, }, { x: '17:30', y: 28.81, s: seviceLoad, }, { x: '20:00', y: 15.58, s: seviceLoad, }, { x: '22:30', y: 19.82, s: seviceLoad, }, { x: '24:00', y: 9.76, s: seviceLoad, }, ]; }, 配置数据数据时,下图中的“静态数据”选项即为静态数据,支持直接在线编辑静态数据。 图3 静态数据
  • 多数据集 部分组件可能存在使用多个数据源的情况,例如地图组件可能存在多个图层,相应配置可以如下: propertiesConfig: [ { config: [ { type: "dataSetting", name: 'heatMapDataConnector', mapping: {} }, { type: "dataSetting", name: 'DistrictDataConnector', mapping: {} } ], } ],
  • 组件使用静态数据 AstroCanvas通过调用组件定义的getMockData,来获取默认静态数据。 getMockData: function () { return { "dataValue": [ { "label": "周六", "value": "Sunday" }, { "label": "周日", "value": "Monday" }, { "label": "周一", "value": "Tuesday" } ] }; } 配置数据数据时,下图中的“静态数据”选项即为静态数据,支持直接在线编辑静态数据。 图3 静态数据
  • 组件使用数据集 数据集实例获取。 组件代码中可使用如下API,来获取对应的数据集实例。 ConnectorIns: thisObj.getConnectorInstanceByName('SelectDataConnector') || '' 调用数据集,获取数据。 thisObj.callFlowConn( this.ConnectorInsTabel, connParam, getFlowCallTabel); 例如,调用了dmax_line这个数据集,返回值如下图所示: 图1 返回值 这个数据因为键值名称并不是label、value,所以并不能渲染。此时需要一层映射,例如将city映射到label上,将code映射到value上。但是每次这个映射都不固定,需要交给用户自行配置,所以提出了映射的概念,即mapping。 图2 映射 由用户自己决定将什么字段拖拽映射到什么字段。例如,将city字段映射到了“选项标签展示值”字段,即label中,将code字段映射到了“选项值”字段,即value中。 [{ "city": "斗罗大陆", "pid": "null", "code": 0, "hasChildren": "true", "bool": 1 }, { "city": "武魂殿", "pid": 0, "code": 11111, "hasChildren": "true", "bool": 1 }] 映射后结果: [{ "label": "斗罗大陆", "pid": "null", "value": 0, "hasChildren": "true", "bool": 1 }, { "label": "武魂殿", "pid": 0, "value": 11111, "hasChildren": "true", "bool": 1 }] 组件在获取数据时,获取到的是经过映射转换的数据,可以直接使用label、value等固定字段。
  • 多数据集 部分组件可能存在使用多个数据源的情况,例如地图组件可能存在多个图层,相应配置可以如下: propertiesConfig: [ { config: [ { type: "dataSetting", name: 'heatMapDataConnector', mapping: {} }, { type: "dataSetting", name: 'DistrictDataConnector', mapping: {} } ], } ],
  • 组件对接数据配置开关 组件的数据可来自于静态数据或通过数据集获取,在“{Widget}”.editor.js文件中,可配置组件接入的数据。当识别到组件propertiesConfig中存在dataSetting类型的配置项时,默认组件需要对接数据集。配置示例如下: propertiesConfig: [{ type: 'dataSetting', name: 'selectDataConnector', mapping: { label: { keyTitle: { zh_CN: '选项标签展示值', en_US: 'Option label' }, limitNumber: '1', type: 'any', }, value: { keyTitle: { zh_CN: '选项值', en_US: 'Option value' }, limitNumber: '1', type: 'any', required: true, }, }, }, }] 表1 数据集字段说明 字段 类型 是否必填 示例 说明 type String 是 type: "dataSetting" dataSetting为数据集类型。 mapping Object 否 mapping 数据集数据拖拽的配置项。 name String 是 selectDataConnector 数据集实例的唯一标识。 表2 mapping字段说明 字段 类型 是否必填 示例 说明 type String 是 type: "value" 根据type校验拖入字段,为枚举值。 value: 数字 dateString: 日期 catacary: 任意字符 numberOrString: number或者String类型 keyTitle Object 是 keyTitle: { zh_CN: "X轴数据", en_US: "X axis Data" } 标题,需要国际化。 limitNumber String 否 type: '1' 拖拽字段个数限制。 1:只能拖拽一个字段。 1+:可以拖拽多个字段。 required Boolean 否 required: true 是否必须配置。