dcim-topology2d 1.1.5 → 1.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -71,12 +71,14 @@ var Calling = (function () {
71
71
  if (data.nodes) {
72
72
  for (var _i = 0, _a = data.nodes; _i < _a.length; _i++) {
73
73
  var item = _a[_i];
74
+ item.TID = this.id;
74
75
  item.rect.x = 0;
75
76
  item.rect.y = 0;
76
77
  this.store.data.pens.push(new Node(item));
77
78
  }
78
79
  for (var _b = 0, _c = data.lines; _b < _c.length; _b++) {
79
80
  var item = _c[_b];
81
+ item.TID = this.id;
80
82
  this.store.data.pens.push(new Line(item));
81
83
  }
82
84
  }
@@ -84,6 +86,7 @@ var Calling = (function () {
84
86
  if (data.pens) {
85
87
  for (var _d = 0, _e = data.pens; _d < _e.length; _d++) {
86
88
  var item = _e[_d];
89
+ item.TID = this.id;
87
90
  if (!item.from) {
88
91
  this.store.data.pens.push(new Node(item));
89
92
  } else {
@@ -3,10 +3,10 @@ import {DivLayer} from './divLayer';
3
3
  import {AnimateLayer} from './animateLayer';
4
4
  import {RenderLayer} from './renderLayer';
5
5
  import {Offscreen} from './offscreen';
6
- import {Line, Node, Point, EventAction} from './models';
6
+ import {Line, Node, Point} from './models';
7
7
  import {setConfItemNode, setStatisticalData} from './healps';
8
- import {s8, formatPadding, getRect} from './utils';
9
- import { useStore, clearStore } from './store'
8
+ import {s8, formatPadding, getRect, setInitNodeDataValidat, setDefaultNodeValidat} from './utils';
9
+ import { useStore, clearStore, syncMqttData } from './store'
10
10
  import {POLL} from './poll';
11
11
  import axios from 'axios';
12
12
  import * as mqtt from './mqtt.min';
@@ -189,7 +189,7 @@ var Common = /** @class */ (function () {
189
189
  // for old data.
190
190
  if (data.nodes) {
191
191
  for (var _i = 0, _a = data.nodes; _i < _a.length; _i++) {
192
- _a[_i].TID = this.id;
192
+ setInitNodeDataValidat(_a[_i], this.id);
193
193
  const item = new Node(_a[_i]);
194
194
  this.store.data.pens.push(item);
195
195
  this.store.pens[item.id] = item;
@@ -210,8 +210,8 @@ var Common = /** @class */ (function () {
210
210
  if (data.pens) {
211
211
  for (var _d = 0, _e = data.pens; _d < _e.length; _d++) {
212
212
  const item = _e[_d];
213
- item.TID = this.id;
214
213
  if (!item.from) {
214
+ setInitNodeDataValidat(item, this.id);
215
215
  const node = new Node(item);
216
216
  this.store.data.pens.push(node);
217
217
  this.store.pens[item.id] = node;
@@ -491,6 +491,7 @@ var Common = /** @class */ (function () {
491
491
  let topics = mqttTopics
492
492
  this.isEnd = false;
493
493
  // let num = 0; // 记录推送的次数,用于判单丢失情况
494
+ //console.log('mqtt.connect======', url)
494
495
  this.mqttClient = mqtt.connect(url, options);
495
496
  var _this = this;
496
497
  this.mqttClient.on('message', function (topic, message) {
@@ -928,8 +929,15 @@ var Common = /** @class */ (function () {
928
929
  }
929
930
  });
930
931
  if (ret.data && ret.data.data) {
931
- if (assetData) ret.data.data.asset = assetData
932
- drawedData = this.mqttDataDrawing(canvasData, ret.data.data, detailJson)
932
+ if (assetData) ret.data.data.asset = assetData;
933
+ drawedData = ret.data.data;
934
+ if(panelData) {
935
+ syncMqttData.data = drawedData; // 初始化调用
936
+ Store.set('mqtt:responseData', drawedData);
937
+ }else {
938
+ syncMqttData.data = null;
939
+ this.mqttDataDrawing(canvasData, drawedData);
940
+ }
933
941
  }
934
942
  this.clearInterValAll();
935
943
  this.timmerByTopology = setTimeout(() => {
@@ -943,109 +951,29 @@ var Common = /** @class */ (function () {
943
951
  } else {
944
952
  return {
945
953
  mqttData: drawedData,
946
- detailData: detailJson
954
+ // detailData: detailJson
947
955
  }
948
956
  }
949
957
  };
950
958
  Common.prototype.mqttDataDrawing = function (data, retData, detailJson) {
951
959
  const syncData = retData
952
- const detailData = detailJson ? detailJson.data : [];
960
+ //const detailData = detailJson ? detailJson.data : [];
953
961
  // console.log('收到消息', syncData)
954
962
  Store.set('mqtt:responseData', syncData);
955
963
  data.pens.map((item) => {
956
- item.TID = this.id;
957
964
  if (item.children && item.children.length) {
958
965
  item.children.map((_item) => {
959
- item.defaultFillStyle = item.fillStyle;
960
- item.defaultFontColor = item.font.color;
961
- if (item.name === 'line') item.defaultLineColor = item.strokeStyle;
962
- if (!_item.data) return
963
- //const node = detailData.length > 0 ? detailData : syncData
964
- const functionData = _item.events.filter((ev) => {
965
- return ev.action === EventAction.Function
966
- })
967
- const dataValue = functionData[0]
968
- if (functionData.length > 0 && dataValue.value && retData) {
969
- _item.data.map((d) => {
970
- const {kpiData, tagData} = retData;
971
- const key = d.key;
972
- const value = d.value;
973
- const _syncItem = key === 'tagId' ? tagData[value] : kpiData[value];
974
- if ((key === 'tagId' || key === 'kpiAddr') && _syncItem) {
975
- const isControl = parseInt(_syncItem.isControlDis); // 是否可控,0可控,1不可控
976
- if (!isControl) {
977
- d.tagVal = value
978
- d.controlParams = _syncItem
979
- // delete _syncItem[value]
980
- // Object.assign(d, _syncItem)
981
- }
982
- }
983
- })
984
- //console.log('定制函数=====')
985
- try {
986
- const func = new Function('pen', 'params', dataValue.value)
987
- func(_item, JSON.stringify(retData))
988
- }catch (e) {
989
- console.log(`自定义函数 ${item.id} 出错>>>`, e);
990
- }
991
- } else {
992
- // console.log('默认函数')
993
- setConfItemNode(_item, syncData);
994
- }
995
- this.machAnimateReset(item);
966
+ setDefaultNodeValidat(_item, syncData);
996
967
  })
997
968
  } else {
998
- item.defaultFillStyle = item.fillStyle;
999
- item.defaultFontColor = item.font.color;
1000
- if (item.name === 'line') item.defaultLineColor = item.strokeStyle;
1001
- if (!item.data) return
1002
- //const node = detailData.length > 0 ? detailData : syncData
1003
- const functionData = item.events.filter((ev) => {
1004
- return ev.action === EventAction.Function
1005
- })
1006
- const dataValue = functionData[0]
1007
- if (functionData.length > 0 && dataValue.value && retData) {
1008
- item.data.map((d) => {
1009
- const {kpiData, tagData} = retData;
1010
- const key = d.key;
1011
- const value = d.value;
1012
- const _syncItem = key === 'tagId' ? tagData[value] : kpiData[value];
1013
- if ((key === 'tagId' || key === 'kpiAddr') && _syncItem) {
1014
- const isControl = parseInt(_syncItem.isControlDis); // 是否可控,0可控,1不可控
1015
- if (!isControl) {
1016
- d.tagVal = value;
1017
- d.controlParams = _syncItem;
1018
- // delete _syncItem[value]
1019
- // Object.assign(d, _syncItem)
1020
- }
1021
- }
1022
- });
1023
- try {
1024
- const func = new Function('pen', 'params', dataValue.value);
1025
- func(item, JSON.stringify(retData));
1026
- }catch (e) {
1027
- console.log(`自定义函数 ${item.id} 出错>>>`, e);
1028
- }
1029
- } else {
1030
- // console.log('默认函数')
1031
- setConfItemNode(item, syncData);
1032
- }
1033
- this.machAnimateReset(item);
969
+ setDefaultNodeValidat(item, syncData);
1034
970
  }
1035
971
  })
1036
- // console.log('执行完毕')
972
+ //console.log('执行完毕-----', this.store.data.pens)
1037
973
  this.render();
1038
974
  this.animate(true);
1039
975
  return data
1040
976
  };
1041
- Common.prototype.machAnimateReset = function (pen) {
1042
- if (!pen.animateFrames || pen.animateFrames.length <= 0) return;
1043
- for (var _a = 0, _af = pen.animateFrames; _a < _af.length; _a++) {
1044
- var ani = _af[_a];
1045
- ani.state.strokeStyle = pen.strokeStyle;
1046
- ani.state.fillStyle = pen.fillStyle;
1047
- }
1048
- };
1049
977
  Common.prototype.getTagParamsForKpiAddrs = async function (assetId, tagParams, apiStr) {
1050
978
  let params = {
1051
979
  assetId: assetId,
@@ -1178,8 +1106,7 @@ var Common = /** @class */ (function () {
1178
1106
  Common.prototype.doMqttDrow = function (ret) {
1179
1107
  let canvasData = this.store.data;
1180
1108
  ret = JSON.parse(ret);
1181
- // console.log('处理消息')
1182
- // console.log('this.canvas.data',this.canvas.data)
1109
+ //console.log('处理消息', ret)
1183
1110
  this.mqttDataDrawing(canvasData, ret)
1184
1111
  };
1185
1112
  Common.prototype.hidePenByTag = function (pens, val) {
package/core/src/core.js CHANGED
@@ -47,7 +47,6 @@ var Topology = (function (_super) {
47
47
  close: false, //闭合
48
48
  };
49
49
  _this.onMouseMove = function (e) {
50
- _this.store.data.dataResize = 0;
51
50
  if (Store.get('addingArbitraryGraph')) {
52
51
  return
53
52
  }
@@ -179,12 +178,13 @@ var Topology = (function (_super) {
179
178
  if ((moveLeft || moveTop)) {
180
179
  _this.scroll(moveLeft ? -100 : 0, moveTop ? -100 : 0);
181
180
  }
182
- // console.log('_this.moveIn.type----', _this.moveIn.type)
181
+ //console.log('_this.moveIn.type----', _this.moveIn.type)
183
182
  switch (_this.moveIn.type) {
184
183
  case _this.moveInType.None:
185
184
  _this.hoverLayer.dragRect = new Rect(_this.mouseDown.x, _this.mouseDown.y, pos.x - _this.mouseDown.x, pos.y - _this.mouseDown.y);
186
185
  break;
187
186
  case _this.moveInType.Nodes:
187
+ _this.store.data.dataResize = 0;
188
188
  if (_this.activeLayer.locked()) {
189
189
  break;
190
190
  }
@@ -197,6 +197,7 @@ var Topology = (function (_super) {
197
197
  }
198
198
  break;
199
199
  case _this.moveInType.ResizeCP:
200
+ _this.store.data.dataResize = 1;
200
201
  var p1 = new Point(_this.mouseDown.x, _this.mouseDown.y);
201
202
  var p2 = new Point(pos.x, pos.y);
202
203
  var offsetX = p2.x - p1.x;
@@ -562,7 +563,7 @@ var Topology = (function (_super) {
562
563
  _this.needCache = false;
563
564
  };
564
565
  _this.onkeydown = function (key) {
565
- if (_this.store.data.locked ||
566
+ if (_this.store && _this.store.data.locked ||
566
567
  key.target.tagName === 'INPUT' ||
567
568
  key.target.tagName === 'TEXTAREA') {
568
569
  return;
@@ -85,9 +85,12 @@ var DivLayer = /** @class */ (function (_super) {
85
85
  return _this;
86
86
  }
87
87
  DivLayer.prototype.addIframe = function (node) {
88
- const iframe = createIframeElement(node);
89
- this.iframes[node.id] = iframe;
90
- commonStore[node.TID].parentElem.appendChild(iframe);
88
+ let iframe = document.getElementById(`iframe${node.id}`);
89
+ if (!iframe){
90
+ iframe = createIframeElement(node);
91
+ this.iframes[node.id] = iframe;
92
+ commonStore[node.TID].parentElem.appendChild(iframe);
93
+ }
91
94
  return iframe;
92
95
  };
93
96
  DivLayer.prototype.addGif = function (node) {
@@ -239,12 +239,13 @@ var Node = /** @class */ (function (_super) {
239
239
  if (this.iframe ||
240
240
  this.elementId ||
241
241
  this.hasGif()) {
242
- if(type || this.iframe) {
243
- // 复合Echarts初始化
244
- createChildrenDivByElementId(this);
245
- }else {
246
- Store.set(this.generateStoreKey('LT:addDiv'), this);
247
- }
242
+ Store.set(this.generateStoreKey('LT:addDiv'), this);
243
+ // if(type || this.iframe) {
244
+ // // 复合Echarts初始化
245
+ // createChildrenDivByElementId(this);
246
+ // }else {
247
+ // Store.set(this.generateStoreKey('LT:addDiv'), this);
248
+ // }
248
249
  }
249
250
  };
250
251
  Node.prototype.hasGif = function () {
@@ -21,9 +21,6 @@ var Pen = /** @class */ (function () {
21
21
  this.strokeStyle = '';
22
22
  this.visitStrokeStyle = '';
23
23
  this.fillStyle = '';
24
- this.defaultFillStyle = '';
25
- this.defaultFontColor = '#fff';
26
- this.defaultStrokeStyle = '';
27
24
  this.font = {
28
25
  color: '',
29
26
  fontFamily: '"Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial',
@@ -48,6 +45,9 @@ var Pen = /** @class */ (function () {
48
45
  this.events = [];
49
46
  this.eventFns = ['link', 'doAnimate', 'doFn', 'doWindowFn'];
50
47
  this.floorImageIndex = false;
48
+ this.defaultFillStyle = '';
49
+ this.defaultFontColor = '';
50
+ this.defaultStrokeStyle = '';
51
51
  if (json) {
52
52
  this.id = json.id || s8();
53
53
  this.name = json.name || '';
@@ -76,9 +76,6 @@ var Pen = /** @class */ (function () {
76
76
  this.visitStrokeStyle = json.visitStrokeStyle || '';
77
77
  this.strokeStyle = json.strokeStyle || '';
78
78
  this.fillStyle = json.fillStyle || '';
79
- this.defaultFillStyle = json.defaultFillStyle || '';
80
- this.defaultFontColor = json.defaultFontColor || '#fff';
81
- this.defaultStrokeStyle = json.defaultStrokeStyle || '';
82
79
  this.lineCap = json.lineCap;
83
80
  this.globalAlpha = (json.globalAlpha || json.globalAlpha === 0) ? json.globalAlpha : 1
84
81
  this.rotate = json.rotate || 0;
@@ -111,6 +108,9 @@ var Pen = /** @class */ (function () {
111
108
  this.tipId = json.tipId;
112
109
  this.title = json.title;
113
110
  this.visible = json.visible !== false;
111
+ this.defaultFillStyle = json.defaultFillStyle || '';
112
+ this.defaultFontColor = json.defaultFontColor || '';
113
+ this.defaultStrokeStyle = json.defaultStrokeStyle || '';
114
114
  if (json.rectInParent) {
115
115
  this.rectInParent = json.rectInParent;
116
116
  }
@@ -47,7 +47,10 @@ export interface visualization2DStore {
47
47
  },
48
48
  parentElem: HTMLElement
49
49
  }
50
-
50
+ export interface mqttData {
51
+ data: null
52
+ }
53
+ export const syncMqttData: mqttData;
51
54
  // @ts-ignore
52
55
  export const createStore = () => {
53
56
  return {
@@ -14,6 +14,9 @@ import { Lock } from '../models';
14
14
  import {DefalutOptions} from '../options';
15
15
  import {s8} from '../utils';
16
16
  import { commonStore } from './common'
17
+ export const syncMqttData = {
18
+ data: null
19
+ }
17
20
  export var createStore = function () {
18
21
  return {
19
22
  id: '',
@@ -78,5 +81,6 @@ export var clearStore = function (store, del) {
78
81
  scaleX: 1,
79
82
  scaleY: 1
80
83
  };
84
+ syncMqttData.data = null;
81
85
  if(del) delete commonStore[store.id];
82
86
  };
@@ -0,0 +1,3 @@
1
+ export declare function setInitNodeDataValidat(node: any): void;
2
+ export declare function setDefaultColorValidat(node: any, TID: string): void;
3
+ export declare function setDefaultNodeValidat(node: any, retData: any): any;
@@ -0,0 +1,69 @@
1
+ // 变量赋值操作
2
+ import {syncMqttData} from '../store';
3
+ import { setConfItemNode } from '../healps';
4
+ import { EventAction } from '../models';
5
+ export function setInitNodeDataValidat(node, TID) {
6
+ const syncData = syncMqttData.data;
7
+ if (node.children && node.children.length) {
8
+ node.children.map((_item) => {
9
+ node.TID = TID;
10
+ setDefaultColorValidat(node);
11
+ setDefaultNodeValidat(node, syncData);
12
+ })
13
+ }else {
14
+ node.TID = TID;
15
+ setDefaultColorValidat(node);
16
+ setDefaultNodeValidat(node, syncData);
17
+ }
18
+ }
19
+ export function setDefaultColorValidat(node) {
20
+ node.defaultFillStyle = node.fillStyle;
21
+ node.defaultFontColor = node.font.color;
22
+ if (node.name === 'line') {
23
+ node.defaultStrokeStyle = node.font.color;
24
+ }
25
+ }
26
+ export function setDefaultNodeValidat(node, retData) {
27
+ //const item = JSON.parse(JSON.stringify(node));
28
+ if (!node.data || !retData) return;
29
+ //const node = detailData.length > 0 ? detailData : syncData
30
+ const functionData = node.events.filter((ev) => {
31
+ return ev.action === EventAction.Function
32
+ })
33
+ const dataValue = functionData[0]
34
+ if (functionData.length > 0 && dataValue.value && retData) {
35
+ node.data.map((d) => {
36
+ const {kpiData, tagData} = retData;
37
+ const key = d.key;
38
+ const value = d.value;
39
+ const _syncItem = key === 'tagId' ? tagData[value] : kpiData[value];
40
+ if ((key === 'tagId' || key === 'kpiAddr') && _syncItem) {
41
+ const isControl = parseInt(_syncItem.isControlDis); // 是否可控,0可控,1不可控
42
+ if (!isControl) {
43
+ d.tagVal = value
44
+ d.controlParams = _syncItem
45
+ // delete _syncItem[value]
46
+ // Object.assign(d, _syncItem)
47
+ }
48
+ }
49
+ })
50
+ // console.log('定制函数=====')
51
+ try {
52
+ const func = new Function('pen', 'params', dataValue.value)
53
+ func(node, JSON.stringify(retData))
54
+ }catch (e) {
55
+ console.log(`自定义函数 ${node.id} 出错>>>`, e);
56
+ }
57
+ } else {
58
+ // console.log('默认函数')
59
+ setConfItemNode(node, retData);
60
+ }
61
+ if (node.animateFrames && node.animateFrames.length) {
62
+ for (var _a = 0, _af = node.animateFrames; _a < _af.length; _a++) {
63
+ var ani = _af[_a];
64
+ ani.state.strokeStyle = node.strokeStyle;
65
+ ani.state.fillStyle = node.fillStyle;
66
+ }
67
+ }
68
+ //return node;
69
+ }
@@ -7,3 +7,4 @@ export * from './padding'
7
7
  export * from './construction';
8
8
  export * from './onmousevent';
9
9
  export * from './conversion';
10
+ export * from './assignment';
@@ -7,4 +7,5 @@ export * from './padding'
7
7
  export * from './construction';
8
8
  export * from './onmousevent';
9
9
  export * from './conversion';
10
+ export * from './assignment';
10
11
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dcim-topology2d",
3
- "version": "1.1.5",
3
+ "version": "1.1.6",
4
4
  "description": "",
5
5
  "main": "-",
6
6
  "scripts": {