Commit af6dfec6b444971ff020f3716f1ae1f40db86d9e

Authored by ww
1 parent 326fb519

feat: basic implement image component

... ... @@ -4221,8 +4221,7 @@ App.prototype.loadFile = function (id, sameWindow, file, success, force) {
4221 4221 function getUserPermission() {
4222 4222 defHttp.get('/yt/role/me/permissions')
4223 4223 .then(res => {
4224   - USER_PERMISSION.permission = res
4225   - console.log({ USER_PERMISSION })
  4224 + USER_PERMISSION.permission = res
4226 4225 updateButtonContainer()
4227 4226 // var flag = hasSavePermission()
4228 4227 // if (!flag) {
... ... @@ -4235,8 +4234,7 @@ App.prototype.loadFile = function (id, sameWindow, file, success, force) {
4235 4234 // 调用API,获取保存的内容
4236 4235 function getSaveContent() {
4237 4236 defHttp.get('/yt/configuration/center/getConfigurationInfo/' + Editor.configurationId)
4238   - .then(function (response) {
4239   - console.log({ response })
  4237 + .then(function (response) {
4240 4238 const { platform } = response || {}
4241 4239 const pageSizeControl = PageSetupDialog.getFormats
4242 4240 PageSetupDialog.getFormats = function () {
... ... @@ -4283,8 +4281,7 @@ App.prototype.loadFile = function (id, sameWindow, file, success, force) {
4283 4281
4284 4282 getUserPermission()
4285 4283 })
4286   - .catch(function (error) {
4287   - console.log(error);
  4284 + .catch(function (error) {
4288 4285 });
4289 4286 }
4290 4287
... ...
... ... @@ -268,6 +268,11 @@
268 268 * @description 开关组件状态 {true | false | null}
269 269 */
270 270 SWITCH_STATE: 'switchState',
  271 +
  272 + /**
  273 + * @description 图片组件
  274 + */
  275 + IMAGE: 'image'
271 276
272 277 }
273 278
... ... @@ -717,7 +722,7 @@
717 722
718 723 // TODO thingsKit 设置数据绑定展示面板
719 724 const { LINE_CHART_EXPAND, BAR_CHART_EXPAND, DASHBOARD_CHART_EXPAND, DYNAMIC_EFFECT, DATA_SOURCE, VAR_IMAGE, INTERACTION, VIDEO: VIDEO_PANEL, SWITCH_STATE_SETTING, ONLY_SINGLE_EVENT, RUNNING_AND_STOP } = this.enumPermissionPanel
720   - const { LINE, LINE_CHART, REAL_TIME, TITLE, VARIABLE, DEFAULT, BAR_CHART, VIDEO, SWITCH, PARAMS_SETTING_BUTTON, DASHBOARD_CHART } = this.enumComponentType
  725 + const { LINE, LINE_CHART, REAL_TIME, TITLE, VARIABLE, DEFAULT, BAR_CHART, VIDEO, SWITCH, PARAMS_SETTING_BUTTON, DASHBOARD_CHART, IMAGE } = this.enumComponentType
721 726 this.setComponentPermission(LINE, [RUNNING_AND_STOP, DYNAMIC_EFFECT])
722 727 this.setComponentPermission(DEFAULT, [DYNAMIC_EFFECT])
723 728 this.setComponentPermission(REAL_TIME, [DYNAMIC_EFFECT])
... ... @@ -730,6 +735,7 @@
730 735 this.setComponentPermission(VIDEO, [VIDEO_PANEL])
731 736 this.setComponentPermission(SWITCH, [DATA_SOURCE, SWITCH_STATE_SETTING])
732 737 this.setComponentPermission(PARAMS_SETTING_BUTTON, [DATA_SOURCE, ONLY_SINGLE_EVENT])
  738 + this.setComponentPermission(IMAGE, [DATA_SOURCE])
733 739
734 740 var thingskitEntries = [
735 741 { title: mxResources.get('general'), id: 'general', image: IMAGE_PATH + '/sidebar-general.png' },
... ...
... ... @@ -59,6 +59,12 @@
59 59 this.setCellAttributes(cell, { [basicAttr.COMPONENT_TYPE]: componentType.VIDEO })
60 60 return this.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, '视频');
61 61 })),
  62 + this.addEntry(this.getTagsForStencil('mxgraph.basic', '图片', 'basic').join(' '), mxUtils.bind(this, function () {
  63 + const cell = new mxCell(`<img class="basic-component__image" src="${Proxy_Prefix}/images/thingskit/img-placeholder.png" />`, new mxGeometry(0, 0, 190, 190), 'text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;');
  64 + cell.setVertex(true)
  65 + this.setCellAttributes(cell, { [basicAttr.COMPONENT_TYPE]: componentType.IMAGE })
  66 + return this.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, '图片');
  67 + })),
62 68 ];
63 69
64 70 this.addPaletteFunctions('component', '基础元件', true, fns);
... ...
... ... @@ -5930,7 +5930,8 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5930 5930 [componentType.DEFAULT]: getSubmitValue,
5931 5931 [componentType.VIDEO]: getVideoSubmitValue,
5932 5932 [componentType.SWITCH]: getSwitchSubmitValue,
5933   - [componentType.PARAMS_SETTING_BUTTON]: getSwitchSubmitValue
  5933 + [componentType.PARAMS_SETTING_BUTTON]: getSwitchSubmitValue,
  5934 + [componentType.IMAGE]: getSubmitValue
5934 5935 }
5935 5936
5936 5937 const cell = vertices[0]
... ... @@ -13453,6 +13454,11 @@ class HandleDataSource {
13453 13454 return
13454 13455 }
13455 13456
  13457 + if (type === this.componentType.IMAGE) {
  13458 + this.handleImageComponent(message)
  13459 + return
  13460 + }
  13461 +
13456 13462 if (!data) return
13457 13463 const [[timespan, value]] = data[attr]
13458 13464 node.setValue(value)
... ... @@ -13516,6 +13522,16 @@ class HandleDataSource {
13516 13522 }, node)
13517 13523 }
13518 13524
  13525 + handleImageComponent(message) {
  13526 + const { subscriptionId, data = {} } = message
  13527 + const node = this.getNodeByCmdId(subscriptionId)
  13528 + const { attr } = this.getBindData(subscriptionId)
  13529 + const [[timespan, receiveValue] = []] = data[attr] || []
  13530 + this.updatePage(() => {
  13531 + node.setAttribute('label', `<img class="basic-component__image" alt="图片" src="${Proxy_Prefix}/${receiveValue}" />`)
  13532 + }, node)
  13533 + }
  13534 +
13519 13535 /**
13520 13536 * @description 更新实时数据
13521 13537 * @param {} message
... ...
... ... @@ -595,3 +595,10 @@
595 595 top: -130px;
596 596 z-index: 99;
597 597 }
  598 +
  599 +
  600 +/* basic-component */
  601 +.basic-component__image {
  602 + width: 100%;
  603 + height: 100%;
  604 +}
... ...