dcim-topology2d 2.0.7 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/activity-diagram/src/final/final.d.ts +1 -1
  2. package/activity-diagram/src/final/final.rect.d.ts +1 -1
  3. package/activity-diagram/src/final/final.rect.js +1 -1
  4. package/activity-diagram/src/fork/fork.anchor.d.ts +1 -1
  5. package/activity-diagram/src/fork/fork.anchor.js +1 -1
  6. package/activity-diagram/src/fork/fork.d.ts +1 -1
  7. package/activity-diagram/src/fork/fork.rect.d.ts +1 -1
  8. package/activity-diagram/src/fork/fork.rect.js +1 -1
  9. package/activity-diagram/src/register.js +1 -1
  10. package/activity-diagram/src/swimlaneH/swimlaneH.d.ts +1 -1
  11. package/activity-diagram/src/swimlaneH/swimlaneH.rect.d.ts +1 -1
  12. package/activity-diagram/src/swimlaneH/swimlaneH.rect.js +1 -1
  13. package/activity-diagram/src/swimlaneV/swimlaneV.d.ts +1 -1
  14. package/activity-diagram/src/swimlaneV/swimlaneV.rect.d.ts +1 -1
  15. package/activity-diagram/src/swimlaneV/swimlaneV.rect.js +1 -1
  16. package/chart-diagram/index.d.ts +1 -3
  17. package/chart-diagram/index.js +1 -2
  18. package/chart-diagram/src/echarts/index.d.ts +2 -1
  19. package/chart-diagram/src/echarts/index.js +104 -106
  20. package/chart-diagram/src/register.js +8 -9
  21. package/class-diagram/src/class/class.d.ts +1 -1
  22. package/class-diagram/src/class/class.rect.d.ts +1 -1
  23. package/class-diagram/src/class/class.rect.js +1 -1
  24. package/class-diagram/src/register.js +1 -1
  25. package/core/index.d.ts +0 -2
  26. package/core/index.js +0 -2
  27. package/core/src/activeLayer.d.ts +10 -2
  28. package/core/src/activeLayer.js +47 -42
  29. package/core/src/animateLayer.d.ts +7 -3
  30. package/core/src/animateLayer.js +12 -10
  31. package/core/src/calling.d.ts +4 -1
  32. package/core/src/calling.js +41 -43
  33. package/core/src/canvas.d.ts +6 -1
  34. package/core/src/canvas.js +18 -18
  35. package/core/src/common.d.ts +7 -6
  36. package/core/src/common.js +672 -333
  37. package/core/src/core.d.ts +4 -3
  38. package/core/src/core.js +367 -466
  39. package/core/src/divLayer.d.ts +36 -2
  40. package/core/src/divLayer.js +305 -33
  41. package/core/src/healps/changeData.d.ts +2 -1
  42. package/core/src/healps/changeData.js +66 -32
  43. package/core/src/hoverLayer.d.ts +9 -2
  44. package/core/src/hoverLayer.js +34 -31
  45. package/core/src/middles/default.d.ts +3 -1
  46. package/core/src/middles/default.js +51 -53
  47. package/core/src/middles/index.js +2 -3
  48. package/core/src/middles/nodes/arbitrarygraph.js +9 -11
  49. package/core/src/middles/nodes/pentagon.rect.js +1 -1
  50. package/core/src/middles/nodes/rectangle.rect.js +1 -1
  51. package/core/src/models/data.d.ts +26 -0
  52. package/core/src/models/data.js +77 -0
  53. package/core/src/models/data.js.map +1 -0
  54. package/core/src/models/index.d.ts +1 -0
  55. package/core/src/models/index.js +1 -0
  56. package/core/src/models/node.d.ts +0 -10
  57. package/core/src/models/node.js +32 -54
  58. package/core/src/models/pen.js +59 -19
  59. package/core/src/models/rect.js +2 -2
  60. package/core/src/mqtt.d.ts +14 -0
  61. package/core/src/mqtt.js +82 -0
  62. package/core/src/mqtt.js.map +1 -0
  63. package/core/src/offscreen.d.ts +4 -1
  64. package/core/src/offscreen.js +8 -10
  65. package/core/src/options.d.ts +1 -3
  66. package/core/src/options.js +0 -2
  67. package/core/src/poll.js +39 -0
  68. package/core/src/preview.d.ts +13 -1
  69. package/core/src/preview.js +43 -111
  70. package/core/src/renderLayer.d.ts +9 -11
  71. package/core/src/renderLayer.js +60 -48
  72. package/core/src/socket.d.ts +10 -0
  73. package/core/src/socket.js +51 -0
  74. package/core/src/socket.js.map +1 -0
  75. package/core/src/utils/canvas.js +1 -1
  76. package/core/src/utils/construction.d.ts +3 -12
  77. package/core/src/utils/construction.js +1 -8
  78. package/core/src/utils/conversion.d.ts +0 -11
  79. package/core/src/utils/conversion.js +0 -167
  80. package/core/src/utils/dom.d.ts +8 -0
  81. package/core/src/utils/dom.js +67 -0
  82. package/core/src/utils/dom.js.map +1 -0
  83. package/core/src/utils/index.d.ts +1 -2
  84. package/core/src/utils/index.js +1 -2
  85. package/core/src/utils/math.d.ts +0 -1
  86. package/core/src/utils/math.js +0 -3
  87. package/core/src/utils/onmousevent.d.ts +0 -3
  88. package/core/src/utils/onmousevent.js +8 -37
  89. package/flow-diagram/src/comment/comment.anchor.d.ts +1 -1
  90. package/flow-diagram/src/comment/comment.anchor.js +1 -1
  91. package/flow-diagram/src/comment/comment.d.ts +1 -1
  92. package/flow-diagram/src/data/data.anchor.d.ts +1 -1
  93. package/flow-diagram/src/data/data.anchor.js +1 -1
  94. package/flow-diagram/src/data/data.d.ts +1 -1
  95. package/flow-diagram/src/data/data.rect.d.ts +1 -1
  96. package/flow-diagram/src/data/data.rect.js +1 -1
  97. package/flow-diagram/src/db/db.d.ts +1 -1
  98. package/flow-diagram/src/db/db.rect.d.ts +1 -1
  99. package/flow-diagram/src/db/db.rect.js +1 -1
  100. package/flow-diagram/src/display/display.anchor.d.ts +1 -1
  101. package/flow-diagram/src/display/display.anchor.js +1 -1
  102. package/flow-diagram/src/display/display.d.ts +1 -1
  103. package/flow-diagram/src/display/display.rect.d.ts +1 -1
  104. package/flow-diagram/src/display/display.rect.js +1 -1
  105. package/flow-diagram/src/document/document.anchor.d.ts +1 -1
  106. package/flow-diagram/src/document/document.anchor.js +1 -1
  107. package/flow-diagram/src/document/document.d.ts +1 -1
  108. package/flow-diagram/src/document/document.rect.d.ts +1 -1
  109. package/flow-diagram/src/document/document.rect.js +1 -1
  110. package/flow-diagram/src/externStorage/externStorage.anchor.d.ts +1 -1
  111. package/flow-diagram/src/externStorage/externStorage.anchor.js +1 -1
  112. package/flow-diagram/src/externStorage/externStorage.d.ts +1 -1
  113. package/flow-diagram/src/externStorage/externStorage.rect.d.ts +1 -1
  114. package/flow-diagram/src/externStorage/externStorage.rect.js +1 -1
  115. package/flow-diagram/src/internalStorage/internalStorage.d.ts +1 -1
  116. package/flow-diagram/src/internalStorage/internalStorage.rect.d.ts +1 -1
  117. package/flow-diagram/src/internalStorage/internalStorage.rect.js +1 -1
  118. package/flow-diagram/src/manually/manually.anchor.d.ts +1 -1
  119. package/flow-diagram/src/manually/manually.anchor.js +1 -1
  120. package/flow-diagram/src/manually/manually.d.ts +1 -1
  121. package/flow-diagram/src/manually/manually.rect.d.ts +1 -1
  122. package/flow-diagram/src/manually/manually.rect.js +1 -1
  123. package/flow-diagram/src/parallel/parallel.anchor.d.ts +1 -1
  124. package/flow-diagram/src/parallel/parallel.anchor.js +1 -1
  125. package/flow-diagram/src/parallel/parallel.d.ts +1 -1
  126. package/flow-diagram/src/queue/queue.d.ts +1 -1
  127. package/flow-diagram/src/queue/queue.rect.d.ts +1 -1
  128. package/flow-diagram/src/queue/queue.rect.js +1 -1
  129. package/flow-diagram/src/register.js +1 -1
  130. package/flow-diagram/src/subprocess/subprocess.d.ts +1 -1
  131. package/flow-diagram/src/subprocess/subprocess.rect.d.ts +1 -1
  132. package/flow-diagram/src/subprocess/subprocess.rect.js +1 -1
  133. package/layout/src/align.d.ts +1 -1
  134. package/layout/src/align.js +1 -1
  135. package/layout/src/layout.d.ts +1 -1
  136. package/layout/src/layout.js +1 -1
  137. package/myShape-diagram/{index.js → myShape.js} +1 -4
  138. package/package.json +1 -1
  139. package/sequence-diagram/src/focus/focus.anchor.d.ts +1 -1
  140. package/sequence-diagram/src/focus/focus.anchor.js +1 -1
  141. package/sequence-diagram/src/focus/focus.d.ts +1 -1
  142. package/sequence-diagram/src/focus/focus.rect.d.ts +1 -1
  143. package/sequence-diagram/src/focus/focus.rect.js +1 -1
  144. package/sequence-diagram/src/lifeline/lifeline.anchor.d.ts +1 -1
  145. package/sequence-diagram/src/lifeline/lifeline.anchor.js +1 -1
  146. package/sequence-diagram/src/lifeline/lifeline.d.ts +1 -1
  147. package/sequence-diagram/src/lifeline/lifeline.rect.d.ts +1 -1
  148. package/sequence-diagram/src/lifeline/lifeline.rect.js +1 -1
  149. package/sequence-diagram/src/register.js +1 -1
  150. package/chart-diagram/src/utils/changeOptions.d.ts +0 -7
  151. package/chart-diagram/src/utils/changeOptions.js +0 -253
  152. package/chart-diagram/src/utils/conversion.d.ts +0 -18
  153. package/chart-diagram/src/utils/conversion.js +0 -399
  154. package/chart-diagram/src/utils/drawGraphic.d.ts +0 -3
  155. package/chart-diagram/src/utils/drawGraphic.js +0 -97
  156. package/chart-diagram/src/utils/formatter.d.ts +0 -1
  157. package/chart-diagram/src/utils/formatter.js +0 -129
  158. package/chart-diagram/src/utils/index.d.ts +0 -4
  159. package/chart-diagram/src/utils/index.js +0 -4
  160. package/chart-diagram/src/utils/render.d.ts +0 -8
  161. package/chart-diagram/src/utils/render.js +0 -199
  162. package/core/src/element/common.d.ts +0 -5
  163. package/core/src/element/common.js +0 -54
  164. package/core/src/element/iframe.d.ts +0 -3
  165. package/core/src/element/iframe.js +0 -12
  166. package/core/src/element/index.d.ts +0 -4
  167. package/core/src/element/index.js +0 -4
  168. package/core/src/element/select.d.ts +0 -11
  169. package/core/src/element/select.js +0 -263
  170. package/core/src/element/tab.d.ts +0 -1
  171. package/core/src/element/tab.js +0 -23
  172. package/core/src/middles/arrows/index.d.ts +0 -4
  173. package/core/src/middles/arrows/index.js +0 -5
  174. package/core/src/middles/lines/index.d.ts +0 -4
  175. package/core/src/middles/lines/index.js +0 -5
  176. package/core/src/middles/nodes/formoverflow.js +0 -61
  177. package/core/src/middles/nodes/formselect.d.ts +0 -2
  178. package/core/src/middles/nodes/formselect.js +0 -95
  179. package/core/src/middles/nodes/iframe.d.ts +0 -2
  180. package/core/src/middles/nodes/iframe.js +0 -29
  181. package/core/src/middles/nodes/index.d.ts +0 -48
  182. package/core/src/middles/nodes/index.js +0 -49
  183. package/core/src/store/common.d.ts +0 -9
  184. package/core/src/store/common.js +0 -5
  185. package/core/src/store/data.d.ts +0 -186
  186. package/core/src/store/data.js +0 -178
  187. package/core/src/store/index.d.ts +0 -2
  188. package/core/src/store/index.js +0 -2
  189. package/core/src/utils/assignment.d.ts +0 -6
  190. package/core/src/utils/assignment.js +0 -168
  191. package/core/src/utils/params.d.ts +0 -2
  192. package/core/src/utils/params.js +0 -60
  193. package/static/echartsDefaultData.js +0 -167
  194. package/static/element.js +0 -14
  195. package/static/form.js +0 -11
  196. package/static/index.js +0 -3
  197. package/store/actions.js +0 -1
  198. package/store/clear.js +0 -10
  199. package/store/index.js +0 -2
  200. package/style/common.css +0 -18
  201. package/style/editor.css +0 -13
  202. package/style/index.css +0 -4
  203. package/style/select.css +0 -143
  204. /package/myShape-diagram/{index.ts → myShape.ts} +0 -0
@@ -3,23 +3,15 @@ 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} from './models';
7
- import {
8
- s8,
9
- formatPadding,
10
- getRect,
11
- setInitNodeDataValidat,
12
- setDefaultNodeValidat,
13
- setConnectionTagForConf,
14
- setInitConfData,
15
- getParams,
16
- tabHideShowOperation,
17
- tabStaticOperation,
18
- echartsStaticType
19
- } from './utils';
20
- import {useStore, clearStore, commonStore} from './store'
6
+ import {Socket} from './socket';
7
+ import {Line, Node, Pen, Point, TopologyData, EventAction} from './models';
8
+ import {setConfItemNode} from './healps';
9
+ import {s8, formatPadding, getRect, previewType} from './utils';
10
+ import {DefalutOptions} from './options';
11
+ import {POLL} from './poll';
12
+ import axios from 'axios';
21
13
  import * as mqtt from './mqtt.min';
22
- import {setElementSwitchTabState} from './element';
14
+
23
15
  var MoveInType;
24
16
  (function (MoveInType) {
25
17
  MoveInType[MoveInType["None"] = 0] = "None";
@@ -38,33 +30,27 @@ var Common = /** @class */ (function () {
38
30
  var _this = this;
39
31
  _this.moveInType = MoveInType;
40
32
  this.mouseDown = null;
41
- this.renderTimer = 0;
42
- this.lastRender = 0;
43
- this.pageResizeTim = null;
44
- this.isResize = false;
45
- this.id = s8();
46
- this.store = useStore(this.id);
47
33
  if (typeof parent === 'string') {
48
- this.store.parentElem = document.getElementById(parent);
34
+ this.parentElem = document.getElementById(parent);
49
35
  } else {
50
- this.store.parentElem = parent;
36
+ this.parentElem = parent;
51
37
  }
52
38
  if (!options) {
53
39
  options = {};
54
40
  }
55
- this.store.parentElem.style.position = 'relative';
56
- this.store.parentElem.style.overflow = 'auto';
57
- //var font = Object.assign({}, DefalutOptions.font, options.font);
58
- //options.font = font;
59
- // this.options = Object.assign({}, DefalutOptions, options);
60
- Object.assign(this.store.options, options);
61
- this.store.options.interval = 50;
62
- //Store.set(this.generateStoreKey('topology-data'), this.data);
41
+ this.parentElem.style.position = 'relative';
42
+ this.parentElem.style.overflow = 'auto';
43
+ var font = Object.assign({}, DefalutOptions.font, options.font);
44
+ options.font = font;
45
+ this.options = Object.assign({}, DefalutOptions, options);
46
+ this.data = new TopologyData();
47
+ this.id = s8();
48
+ Store.set(this.generateStoreKey('topology-data'), this.data);
63
49
  var id = this.id;
64
- this.animateLayer = new AnimateLayer(id);
65
- this.offscreen = new Offscreen(id);
66
- this.canvas = new RenderLayer(id);
67
- this.divLayer = new DivLayer(id);
50
+ this.animateLayer = new AnimateLayer(this.options, id);
51
+ this.offscreen = new Offscreen(this.parentElem, this.options, id);
52
+ this.canvas = new RenderLayer(this.parentElem, this.options, id);
53
+ this.divLayer = new DivLayer(this.parentElem, this.options, id);
68
54
  this.divLayer.canvas.tabIndex = 0;
69
55
  this.divLayer.canvas.ondblclick = this.ondblclick;
70
56
  this.divLayer.canvas.onblur = function () {
@@ -94,6 +80,7 @@ var Common = /** @class */ (function () {
94
80
  _this.offscreen.render();
95
81
  break;
96
82
  }
83
+ _this.divLayer.playNext(e.data.nextAnimate);
97
84
  _this.dispatch('animateEnd', e);
98
85
  });
99
86
  this.subcribeTableData = Store.subscribe('SYNC:tableData', function (data) {
@@ -121,6 +108,8 @@ var Common = /** @class */ (function () {
121
108
  }
122
109
  };
123
110
  this.openCount = 0;
111
+ this.timmerByTopology = null;
112
+ this.ratioCord = null;
124
113
  this.lastTranlated = {x: 0, y: 0};
125
114
  this.moveIn = {
126
115
  type: 'None',
@@ -133,9 +122,21 @@ var Common = /** @class */ (function () {
133
122
  lineControlPoint: null,
134
123
  eventNode: null
135
124
  };
125
+ this.initType = ''; // 初始化类型
126
+ this.pathRewrite = '';
127
+ this.initData = null; // 初始化数据
128
+ this.tagParams = {}; // 数据属性的集合,对应不同的事件类型
129
+ this.assetPoperties = {}; // 固定的资产详情的集合
130
+ this.isExistAssetKey = false; // 是否存在固定的资产详情
131
+ this.pollTime = { // 轮询的方式的定时器
132
+ Poll: null,
133
+ Poll1: null,
134
+ Poll2: null,
135
+ };
136
136
  this.tip = '';
137
137
  this.rendering = false;
138
138
  this.isFullScreen = false;
139
+ this.socket = null;
139
140
  this.inputObj = null;
140
141
  this.input = document.createElement('textarea');
141
142
  this.input.style.position = 'absolute';
@@ -146,11 +147,11 @@ var Common = /** @class */ (function () {
146
147
  this.input.style.outline = 'none';
147
148
  this.input.style.border = '1px solid #cdcdcd';
148
149
  this.input.style.resize = 'none';
149
- this.store.parentElem.appendChild(this.input);
150
+ this.parentElem.appendChild(this.input);
150
151
  this.paginationPageListBox = document.createElement('ul');
151
152
  this.pagenationPageInput = document.createElement('input');
152
153
  this.tablePaginationPageStyle();
153
- this.store.parentElem.appendChild(this.paginationPageListBox);
154
+ this.parentElem.appendChild(this.paginationPageListBox);
154
155
  // 列表数据选取
155
156
  this.paginationPageListNode = function (ev) {
156
157
  const node = _this.moveIn.activeNode;
@@ -172,174 +173,110 @@ var Common = /** @class */ (function () {
172
173
  this.createMarkdownTip();
173
174
  window.topology = this;
174
175
  }
175
- Common.prototype.categoryDataParams = function (data){
176
- getParams(this.id, data);
177
- };
178
- Common.prototype.getParams = function (assetId){
179
- const params = {
180
- doorIds: this.store.mqttParams.doorIds,
181
- tagIds: this.store.mqttParams.tagIds.join(","),
182
- assetIds: this.store.mqttParams.assetIds.join(","),
183
- areaIds: this.store.mqttParams.areaIds.join(","),
184
- routingkey: this.store.mqttParams.routingkey,
185
- echart: this.store.mqttParams.tagEcharts.join(","),
186
- echartData: this.store.mqttParams.echartData
187
- }
188
- if (this.store.mqttParams.echartAssemblyData.length) params.echartAssemblyData = [...this.store.mqttParams.echartAssemblyData];
189
- if(assetId) {
190
- params.varValueIds = this.store.mqttParams.varVaule.join(",");
191
- }else {
192
- if(this.store.mqttParams.assetIds.length && this.store.mqttParams.varVaule.length) {
193
- const assetId = this.store.mqttParams.assetIds[this.store.mqttParams.assetIds.length -1];
194
- for(let va = 0; va < this.store.mqttParams.varVaule.length; va++) {
195
- this.store.mqttParams.varVaule[va] = `${assetId}_${this.store.mqttParams.varVaule[va]}`;
196
- }
197
- params.varValueIds = this.store.mqttParams.varVaule.join(",");
198
- }else {
199
- params.varVaule = this.store.mqttParams.varVaule.join(",");
200
- }
201
- }
202
- return params;
203
- };
204
- // 根据图表id数据获取测点数据
205
- Common.prototype.getTagIdsForEchartsIds = function (data){
206
- this.store.mqttParams.echartAssemblyData = data;
207
- };
208
- // 根据指标地址数据获取测点数据
209
- Common.prototype.getTagIdsForKpiAddrs = function (data){
210
- let tagIds = [];
211
- data.map((item) => {
212
- tagIds.push(item.tagId);
213
- });
214
- this.store.mqttParams.tagIds = tagIds;
215
- };
216
- // 获取绑定值类型参数
217
- Common.prototype.getVarValueIdsForVarData = function (data){
218
- const ids = [];
219
- data.map((item) => {
220
- if(item.varVal) ids.push(item.assetVarIds);
221
- })
222
- this.store.mqttParams.varVaule = ids;
223
- };
224
- // 固定资产详情数据赋值
225
- Common.prototype.renderForAssetPoperties = function (asset, data){
226
- if(!Object.keys(asset).length) return;
227
- data.map((node) => {
228
- if (node.data && Array.isArray(node.data) && node.data.length) {
229
- node.data.map((item) => {
230
- if (item.key === 'assetKey' && asset[item.value]) {
231
- if (['imgUrl', 'principleImg'].includes(item.value)) {
232
- node.text = '';
233
- node.image = `${this.store.mqttParams.pathRewrite}${asset[item.value]}`;
234
- } else {
235
- node.text = asset[item.value];
236
- }
237
- }
238
- })
239
- }
240
- if (node.children && node.children.length) {
241
- this.renderForAssetPoperties(asset, node.children);
242
- }
243
- });
244
- };
245
176
 
246
177
  Common.prototype.conversionData = function (obj) {
247
- this.clear();
248
- if (!obj) {
249
- obj = {pens: []};
250
- }
178
+ this.parentElem.scrollLeft = 0;
179
+ this.parentElem.scrollTop = 0;
180
+ this.canvas.clearBkImg();
181
+ this.divLayer.clear();
251
182
  let data = JSON.parse(JSON.stringify(obj));
252
- Object.assign(this.store.data, data);
253
- // pageZoomOnly 表示topology页面只全局缩放,不对局部缩放进行调整
254
- if(this.store.options.type !== 'topology' && this.store.options.type !== 'pageZoomOnly') {
255
- const screenWidth = window.screen.width < 1920 ? 1920 : window.screen.width;
256
- const zoom = window.innerWidth < screenWidth ? document.documentElement.clientWidth / screenWidth : 1;
257
- this.store.data.pageZoom = zoom;
258
- this.store.parentElem.style.transform = `scale(${1/zoom})`;
259
- this.store.parentElem.style.transformOrigin = '0 0';
260
- this.store.parentElem.parentElement.style.overflow = 'hidden';
261
- Store.set('PAGE:zoom', zoom);
183
+ if (!data) {
184
+ data = {pens: []};
185
+ }
186
+ Object.assign(this.data, data);
187
+ this.setBKImageRect();
188
+ this.ratioCord = {
189
+ ratio: 1,
190
+ scaleX: 1,
191
+ scaleY: 1
262
192
  };
263
- this.store.data.pens = [];
264
193
  this.openCount = 0
265
- const type = this.store.options.type;
194
+ this.data.pens = [];
266
195
  // for old data.
267
196
  if (data.nodes) {
268
197
  for (var _i = 0, _a = data.nodes; _i < _a.length; _i++) {
269
- setInitNodeDataValidat(_a[_i], this.id, type, _i);
270
- const item = new Node(_a[_i]);
271
- this.store.data.pens.push(item);
272
- ///this.store.pens[item.id] = item;
273
- setConnectionTagForConf(item);
198
+ var item = new Node(_a[_i]);
199
+ this.data.pens.push(item);
200
+ this.setSwitchTabData(item, _i);
274
201
  }
275
202
  for (var _b = 0, _c = data.lines; _b < _c.length; _b++) {
276
- _c[_b].TID = this.id;
277
- const item = new Line(_c[_b]);
278
- this.store.data.pens.push(item);
279
- //this.store.pens[item.id] = item;
203
+ var item = _c[_b];
204
+ this.data.pens.push(new Line(item));
280
205
  }
281
206
  }
282
207
  // end.
283
208
  if (data.pens) {
284
209
  for (var _d = 0, _e = data.pens; _d < _e.length; _d++) {
285
- const item = _e[_d];
210
+ var item = _e[_d];
286
211
  if (!item.from) {
287
- setInitNodeDataValidat(item, this.id, type, _d);
288
- const node = new Node(item);
289
- this.store.data.pens.push(node);
290
- //this.store.pens[item.id] = node;
291
- setConnectionTagForConf(node);
212
+ var node = new Node(item);
213
+ this.data.pens.push(node);
214
+ this.setSwitchTabData(node, _d);
292
215
  } else {
293
- const linNode = new Line(item);
294
- this.store.data.pens.push(linNode);
295
- //this.store.pens[item.id] = linNode;
216
+ this.data.pens.push(new Line(item));
296
217
  }
297
218
  }
298
219
  }
299
220
  };
300
- Common.prototype.clear = function (del){
301
- clearStore(this.store, del);
302
- this.canvas.clearBkImg();
303
- this.divLayer.clear();
304
- this.store.parentElem.scrollLeft = 0;
305
- this.store.parentElem.scrollTop = 0;
306
- };
307
- Common.prototype.canvasResize = function (size) {
308
- try {
309
- this.canvas.resize(size);
310
- //this.canvas.bkImgRectResize(size);
311
- this.offscreen.resize(size);
312
- this.divLayer.resize(size);
313
- }catch (err) {
314
- //console.log('resize-----', err)
221
+ Common.prototype.setBKImageRect = function () {
222
+ if (this.data.bkImageRect) {
223
+ this.data.bkImageRect.x = this.data.bkImageRect.x ? Number(this.data.bkImageRect.x) : 0;
224
+ this.data.bkImageRect.y = this.data.bkImageRect.y ? Number(this.data.bkImageRect.y) : 0;
225
+ this.data.bkImageRect.width = this.data.bkImageRect.width ? Number(this.data.bkImageRect.width) : this.canvas.width;
226
+ this.data.bkImageRect.height = this.data.bkImageRect.height ? Number(this.data.bkImageRect.height) : this.canvas.height;
227
+ this.data.bkImageRect.center = {
228
+ x: this.data.bkImageRect.x + this.data.bkImageRect.width / 2,
229
+ y: this.data.bkImageRect.y + this.data.bkImageRect.height / 2
230
+ }
315
231
  }
316
232
  };
317
- // Render or redraw
318
- Common.prototype.render = function (noFocus) {
319
- try {
320
- const _this = this;
321
- const now = performance.now();
322
- if (now - _this.lastRender < _this.store.options.interval && !noFocus) {
323
- if (_this.renderTimer) {
324
- cancelAnimationFrame(_this.renderTimer);
233
+ Common.prototype.setSwitchTabData = function (node, index, type) {
234
+ if (type) {
235
+ let topologyChangeData = Store.get('TCD:topologyChangeData');
236
+ if (topologyChangeData) {
237
+ const switchTabData = node.tags.find((t) => {
238
+ return t.includes('switchTabType');
239
+ });
240
+ const switchTabTypeData = topologyChangeData[`${switchTabData}Data`];
241
+ if (switchTabTypeData) {
242
+ delete switchTabTypeData[node.id];
243
+ for (let switchNode of Object.values(switchTabTypeData)) {
244
+ if (switchNode.tagOrder > index) switchNode.tagOrder--;
245
+ }
325
246
  }
326
- _this.renderTimer = requestAnimationFrame(_this.render);
327
-
328
- return;
329
247
  }
330
- this.renderTimer = 0;
331
- this.lastRender = now;
332
- if (this.rendering) {
333
- return this;
248
+ return;
249
+ }
250
+ if (node.tags && node.tags.length > 0) {
251
+ const tagTypeData = node.tags.find((t) => {
252
+ return t === 'statisticType' || t.includes('switchTabType');
253
+ });
254
+ if (tagTypeData) {
255
+ node.tagOrder = index;
256
+ let topologyChangeData = Store.get('TCD:topologyChangeData');
257
+ if (!topologyChangeData) topologyChangeData = {};
258
+ if (!topologyChangeData[`${tagTypeData}Data`]) topologyChangeData[`${tagTypeData}Data`] = {};
259
+ topologyChangeData[`${tagTypeData}Data`][node.id] = node;
260
+ Store.set('TCD:topologyChangeData', topologyChangeData);
334
261
  }
335
- this.rendering = true;
336
- this.offscreen.render();
337
- this.canvas.render();
338
- this.rendering = false;
339
- }catch (e) {
340
- //console.log(e)
341
262
  }
342
263
  };
264
+ Common.prototype.canvasResize = function (size) {
265
+ this.canvas.resize(size);
266
+ //this.canvas.bkImgRectResize(size);
267
+ this.offscreen.resize(size);
268
+ this.divLayer.resize(size);
269
+ };
270
+ // Render or redraw
271
+ Common.prototype.render = function (noFocus) {
272
+ if (this.rendering) {
273
+ return this;
274
+ }
275
+ this.rendering = true;
276
+ this.offscreen.render();
277
+ this.canvas.render();
278
+ this.rendering = false;
279
+ };
343
280
  Common.prototype.generateStoreKey = function (key) {
344
281
  return this.id + "-" + key;
345
282
  };
@@ -421,7 +358,7 @@ var Common = /** @class */ (function () {
421
358
  this.pagenationPageInput.style.left = node.paginationData.targetPageLocal.x + 'px';
422
359
  this.pagenationPageInput.style.top = node.paginationData.targetPageLocal.y + 'px';
423
360
  this.pagenationPageInput.style.height = node.rect.height + 'px';
424
- this.store.parentElem.appendChild(this.pagenationPageInput);
361
+ this.parentElem.appendChild(this.pagenationPageInput);
425
362
  };
426
363
  // 展开分页列表
427
364
  Common.prototype.spreadPageListHandle = function (node, e) {
@@ -455,65 +392,116 @@ var Common = /** @class */ (function () {
455
392
  };
456
393
  // 获取表格分页数据
457
394
  Common.prototype.getSyncTableDataFromServer = async function (data, node) {
458
- // const path = this.pathRewrite ? mqttEchartApi.replace('/topo-api', this.pathRewrite): mqttEchartApi;
459
- // const ret = await axios.post(path, data);
460
- // //console.log('ret.data==========', ret, ret.data)
461
- // const tableData = {};
462
- // tableData[node.id] = {loading: true};
463
- // Store.set('SYNC:tableData', tableData);
464
- // if (ret.data && ret.data.data) {
465
- // console.log(ret.data.data)
466
- // tableData[node.id] = {
467
- // loading: false,
468
- // tableBody: ret.data.data.rows,
469
- // total: ret.data.data.total
470
- // }
471
- // Store.set('SYNC:tableData', tableData);
472
- // this.render();
473
- // }
474
- // if (ret.error) {
475
- // console.log('获取数据失败==================')
476
- // } else {
477
- // console.log('获取数据成功==================')
478
- // }
395
+ const path = this.pathRewrite ? this.pathRewrite + '/user/cockpit/mqtt-echart' : '/user/cockpit/mqtt-echart';
396
+ const ret = await axios.post(path, data);
397
+ //console.log('ret.data==========', ret, ret.data)
398
+ const tableData = {};
399
+ tableData[node.id] = {loading: true};
400
+ Store.set('SYNC:tableData', tableData);
401
+ if (ret.data && ret.data.data) {
402
+ console.log(ret.data.data)
403
+ tableData[node.id] = {
404
+ loading: false,
405
+ tableBody: ret.data.data.rows,
406
+ total: ret.data.data.total
407
+ }
408
+ Store.set('SYNC:tableData', tableData);
409
+ this.render();
410
+ }
411
+ if (ret.error) {
412
+ console.log('获取数据失败==================')
413
+ } else {
414
+ console.log('获取数据成功==================')
415
+ }
416
+
479
417
  };
480
418
  Common.prototype.switchStaticsCheckType = function (node, staticTypeNode) {
481
- const staticType = staticTypeNode.dcimStaticForType;
482
- if(!staticType || staticType === 'NONE') return;
483
419
  // 点击切换统计图统计类别
484
420
  const switchTabData = node.tags.find((t) => {
485
421
  return t.includes('switchTabType');
486
422
  }); // 获取按钮组类型
487
423
  if(!switchTabData) return;
488
- const topologyChangeData = commonStore[node.TID].switchTabDataPool; // 获取所有按钮组和按类型统计图组数据
424
+ const topologyChangeData = Store.get('TCD:topologyChangeData'); // 获取所有按钮组和按类型统计图组数据
489
425
  const changeNode = topologyChangeData[`${switchTabData}Data`]; // 分别获取按钮组数据
490
- if(!changeNode[node.id]) return;
491
426
  // 如果存在按钮组节点数据
492
- const tabAreaData = topologyChangeData[`${switchTabData}AreaData`];
493
- let tabIndex = 0;
494
- const visitParams = {
495
- order: 0
496
- };
497
- for (let switchNode of Object.values(changeNode)) {
498
- const penNode = this.store.data.pens[switchNode.order];
499
- if(!penNode) return;
500
- const isActive = switchNode.id !== node.id;
501
- if(!isActive) {
502
- visitParams.order = tabIndex;
503
- visitParams.data = switchNode.tabData;
504
- }
505
- penNode.activeImgeIndex = isActive;
506
- tabIndex++;
507
- if(staticType === 'SH') tabHideShowOperation(switchNode, tabAreaData); // 对显示隐藏的功能进行交互处理
508
- }
509
- // 对绑定的图表进行数据处理
510
- tabStaticOperation(staticType, node, tabAreaData, visitParams);
511
- this.store.data.dataResize = 1;
427
+ if (changeNode[node.id]) {
428
+ for (let switchNode of Object.values(changeNode)) {
429
+ if (this.data.pens[switchNode.tagOrder]) {
430
+ this.data.pens[switchNode.tagOrder].activeImgeIndex = switchNode.id !== node.id;
431
+ }
432
+ }
433
+ }
434
+ if (node.bindStaticId) {
435
+ const statisticTypeData = topologyChangeData.statisticTypeData;
436
+ if(!statisticTypeData) return;
437
+ const findCurentEchart = statisticTypeData[node.bindStaticId]; // 获取当前点中的节点绑定的统计图表数据
438
+ if (findCurentEchart && findCurentEchart.data.params) {
439
+ findCurentEchart.data.params['staticForType'] = staticTypeNode.dcimStaticForType; // 统计类型赋值
440
+ const mqttSyncData = Store.get('mqtt:responseData');
441
+ if (mqttSyncData) setConfItemNode(findCurentEchart, mqttSyncData);
442
+ }
443
+ }
512
444
  this.render();
513
445
  };
514
446
  Common.prototype.s8 = function () {
515
447
  return s8()
516
448
  };
449
+ Common.prototype.openSocket = function (url) {
450
+ this.closeSocket();
451
+ if (url || this.data.websocket) {
452
+ this.socket = new Socket(url || this.data.websocket, this.data);
453
+ }
454
+ };
455
+ Common.prototype.closeSocket = function () {
456
+ if (this.socket) {
457
+ this.socket.close();
458
+ }
459
+ };
460
+ Common.prototype.openMqtt = function (url, options) {
461
+ this.closeMqtt();
462
+ if (url || this.data.mqttUrl) {
463
+ url = url || this.data.mqttUrl;
464
+ const mqttTopics = this.initData && this.initData.mqttTopics ? this.initData.mqttTopics : this.data.mqttTopics;
465
+ options = options || this.data.mqttOptions
466
+ let topics = mqttTopics
467
+ this.isEnd = false;
468
+ // let num = 0; // 记录推送的次数,用于判单丢失情况
469
+ this.mqttClient = mqtt.connect(url, options);
470
+ var _this = this;
471
+ this.mqttClient.on('message', function (topic, message) {
472
+ //console.log('openMqtt11===================', topic, message)
473
+ if (!_this.data.pens.length || !topic || topic != _this.data.mqttTopics) {
474
+ return;
475
+ }
476
+ if (!this.isEnd) {
477
+ _this.doMqttDrow(message.toString())
478
+ }
479
+ });
480
+ if (topics) {
481
+ this.mqttClient.subscribe(topics.split(','));
482
+ }
483
+ }
484
+ };
485
+ Common.prototype.openPoll = function (message, val) {
486
+ if (message) {
487
+ this.poll = new POLL(this.data, message, val);
488
+ }
489
+ };
490
+ Common.prototype.clearInterValAll = function () {
491
+ clearTimeout(this.timmerByTopology);
492
+ this.timmerByTopology = null;
493
+ };
494
+ Common.prototype.closeMqtt = function () {
495
+ if (this.mqttClient) {
496
+ this.isEnd = true
497
+ this.mqttClient.end();
498
+ }
499
+ };
500
+ Common.prototype.closePoll = function () {
501
+ for (let key in this.pollTime) {
502
+ clearInterval(this.pollTime[key])
503
+ }
504
+ };
517
505
  Common.prototype.setNodeText = function () {
518
506
  this.inputObj.text = this.input.value;
519
507
  this.input.style.zIndex = '-1';
@@ -524,10 +512,10 @@ var Common = /** @class */ (function () {
524
512
  this.inputObj = null;
525
513
  };
526
514
  Common.prototype.showInput = function (item) {
527
- if (this.store.data.locked ||
515
+ if (this.data.locked ||
528
516
  item.locked ||
529
517
  item.hideInput ||
530
- this.store.options.hideInput) {
518
+ this.options.hideInput) {
531
519
  return;
532
520
  }
533
521
  this.inputObj = item;
@@ -546,9 +534,9 @@ var Common = /** @class */ (function () {
546
534
  this.input.focus();
547
535
  };
548
536
  Common.prototype.getRect = function (pens) {
549
- if (!this.store || !this.store.data) return;
537
+ if (!this.data) return;
550
538
  if (!pens) {
551
- pens = this.store.data.pens;
539
+ pens = this.data.pens;
552
540
  }
553
541
  return getRect(pens);
554
542
  };
@@ -566,7 +554,7 @@ var Common = /** @class */ (function () {
566
554
  }
567
555
  var offsetX = x - this.lastTranlated.x;
568
556
  var offsetY = y - this.lastTranlated.y;
569
- for (var _i = 0, _a = this.store.data.pens; _i < _a.length; _i++) {
557
+ for (var _i = 0, _a = this.data.pens; _i < _a.length; _i++) {
570
558
  var item = _a[_i];
571
559
  item.translate(offsetX, offsetY);
572
560
  }
@@ -585,7 +573,7 @@ var Common = /** @class */ (function () {
585
573
  var viewCenter = this.getViewCenter(padding);
586
574
  var center = rect.center;
587
575
  this.translate(viewCenter.x - center.x, viewCenter.y - center.y);
588
- var parentElem = this.store.parentElem;
576
+ var parentElem = this.canvas.parentElem;
589
577
  var x = (parentElem.scrollWidth - parentElem.offsetWidth) / 2;
590
578
  var y = (parentElem.scrollHeight - parentElem.offsetHeight) / 2;
591
579
  parentElem.scrollTo(x, y);
@@ -596,7 +584,7 @@ var Common = /** @class */ (function () {
596
584
  return !(rect.width === 99999 || rect.height === 99999);
597
585
  };
598
586
  Common.prototype.getViewCenter = function (viewPadding) {
599
- var padding = formatPadding(viewPadding || this.store.options.viewPadding);
587
+ var padding = formatPadding(viewPadding || this.options.viewPadding);
600
588
  var _a = this.canvas, width = _a.width, height = _a.height;
601
589
  return {
602
590
  x: (width - padding[1] - padding[3]) / 2 + padding[3],
@@ -660,7 +648,7 @@ var Common = /** @class */ (function () {
660
648
  }
661
649
  var tipMarkdownMarginLeft = count * 3 + 11
662
650
 
663
- var parentRect = this.store.parentElem.getBoundingClientRect();
651
+ var parentRect = this.parentElem.getBoundingClientRect();
664
652
  var elemRect = elem.getBoundingClientRect();
665
653
  var x = parentRect.left + dataRect.x;
666
654
  var y = pos.y + parentRect.top;
@@ -668,8 +656,8 @@ var Common = /** @class */ (function () {
668
656
  x = x + dataRect.width / 2 - tipMarkdownMarginLeft
669
657
  y = parentRect.top + dataRect.ey - dataRect.height - 46
670
658
  }
671
- x -= this.store.parentElem.scrollLeft;
672
- y -= this.store.parentElem.scrollTop;
659
+ x -= this.parentElem.scrollLeft;
660
+ y -= this.parentElem.scrollTop;
673
661
  if (x < 0) {
674
662
  x = 0;
675
663
  }
@@ -701,89 +689,460 @@ var Common = /** @class */ (function () {
701
689
  this.tip = '';
702
690
  };
703
691
  Common.prototype.dispatch = function (event, data) {
704
- if(!this.store || !this.store.options) return;
705
- if (this.store.options.on) {
706
- this.store.options.on(event, data);
707
- }
708
- // 先注释掉
709
- // if (event === 'node' && data.name == 'tablePagination' && this.store.options.type !== 'topology') {
710
- // const tableNodes = Store.get('FORM:tableData').data.tableNodes[data.paginationData.bindFromTableId];
711
- // const pageSize = data.paginationData.pageSize;
712
- // const offset = (parseInt(data.paginationData.pageNumber) - 1) * pageSize;
713
- // const params = {
714
- // id: tableNodes.id, // 表格ID
715
- // limit: data.paginationData.pageSize,
716
- // offset: offset
717
- // };
718
- // this.getSyncTableDataFromServer(params, tableNodes);
692
+ if (this.options.on) {
693
+ this.options.on(event, data);
694
+ }
695
+ if (event === 'node' && data.name == 'tablePagination' && this.options.type !== 'topology') {
696
+ const tableNodes = Store.get('FORM:tableData').data.tableNodes[data.paginationData.bindFromTableId];
697
+ const pageSize = data.paginationData.pageSize;
698
+ const offset = (parseInt(data.paginationData.pageNumber) - 1) * pageSize;
699
+ const params = {
700
+ id: tableNodes.id, // 表格ID
701
+ limit: data.paginationData.pageSize,
702
+ offset: offset
703
+ };
704
+ this.getSyncTableDataFromServer(params, tableNodes);
705
+ }
706
+ };
707
+ Common.prototype.onContent = async function (resetDCIM, data, type) {
708
+ //this.shareComponentData = data.shareComponent // 共享组件数据
709
+ if (resetDCIM) {
710
+ if (resetDCIM.pathRewrite != '') {
711
+ this.pathRewrite = resetDCIM.pathRewrite // 路径重写
712
+ }
713
+ if (resetDCIM.mqttUrl) {
714
+ data.mqttUrl = resetDCIM.mqttUrl
715
+ data.mqttOptions.username = resetDCIM.mqttUsername
716
+ data.mqttOptions.password = resetDCIM.mqttPassword
717
+ }
718
+ }
719
+ this.initType = type
720
+ this.initData = data
721
+ const canvasData = data ? data : this.data
722
+ //this.topologyDetailData = initData
723
+ const url = canvasData.mqttUrl
724
+ // if(url && url.indexOf('://') > -1){
725
+ this.onContentForEventType('Mqtt')
719
726
  // }
727
+ if (canvasData.pollUrl) {
728
+ this.onContentForEventType('Poll')
729
+ }
730
+ if (canvasData.pollUrl1) {
731
+ this.onContentForEventType('Poll1')
732
+ }
733
+ if (canvasData.pollUrl2) {
734
+ this.onContentForEventType('Poll2')
735
+ }
720
736
  };
721
- Common.prototype.onContent = function (resetDCIM, data) {
722
- if(!data) data = this.store.data;
723
- let connectParams = {
724
- mqttUrl: data.mqttUrl,
725
- username: data.mqttOptions.username,
726
- password: data.mqttOptions.password,
727
- mqttTopics: data.mqttTopics,
728
- clientId: s8()
729
- };
730
- if (resetDCIM && resetDCIM.mqttUrl) {
731
- connectParams.mqttUrl = resetDCIM.mqttUrl;
732
- connectParams.username = resetDCIM.mqttUsername;
733
- connectParams.password = resetDCIM.mqttPassword;
737
+ Common.prototype.onContentForEventType = async function (eventType) {
738
+ // 获取属性中数据的集合
739
+ if (!this.initType) await this.initTagParams(eventType);
740
+ let tagParams = this.tagParams[eventType]
741
+ if (eventType === 'Mqtt') {
742
+ // 连接测试,MQTT
743
+ this.onMqttContent(tagParams)
744
+ } else if (eventType.indexOf('Poll') > -1) {
745
+ // 连接测试,轮询地址
746
+ this.onPollContent(tagParams, eventType)
734
747
  }
735
- // 连接测试,MQTT
736
- this.openMqtt(connectParams);
737
748
  };
738
- Common.prototype.openMqtt = function (connectParams) {
739
- const _this = this;
740
- _this.closeMqtt();
741
- if(!connectParams.mqttUrl) return;
742
- _this.isEnd = false;
743
- const url = connectParams.mqttUrl.replace('ip', location.hostname);
744
- _this.mqttClient = mqtt.connect(url, connectParams);
745
- _this.mqttClient.on('message', function (topic, message) {
746
- //console.log('openMqtt11===================', topic, message)
747
- if (!topic || topic != connectParams.mqttTopics) return;
748
- if (!this.isEnd) _this.doMqttDrow(message.toString());
749
- });
750
- const topics = connectParams.mqttTopics;
751
- if (topics) {
752
- this.mqttClient.subscribe(topics.split(','));
749
+ Common.prototype.clearTagParams = function (eventType) {
750
+ this.tagParams[eventType] = {};
751
+ this.tagParams[eventType].tagIds = [];
752
+ this.tagParams[eventType].kpiAddrs = [];
753
+ this.tagParams[eventType].tagEcharts = [];
754
+ this.tagParams[eventType].assetIds = [];
755
+ this.tagParams[eventType].areaIds = [];
756
+ // this.tagParams[eventType].cockpitLayoutData = [];//统计图表组件类型ID
757
+ this.tagParams[eventType].echartData = [];//统计图表组件类型ID
758
+ };
759
+ Common.prototype.initTagParams = async function (eventType) {
760
+ this.clearTagParams(eventType)
761
+ const pensData = this.data.pens
762
+ let tagParams = this.getTagParams(pensData, eventType);
763
+ // 详情页面,即URL配置了资产id的页面
764
+ let assetId = this.getUrlParams('assetId')
765
+ // console.log('详情页面,即URL配置了资产id的页面',assetId,eventType, tagParams)
766
+ if (assetId && eventType === 'Mqtt') {
767
+ //if(assetId){
768
+ // 获取属性中绑定指标数据的集合
769
+ await this.getTagParamsForKpiAddrs(assetId, tagParams)
770
+ // 存在固定的资产详情,更新页面数据
771
+ // if(this.assetPoperties && this.isExistAssetKey === true){
772
+ if (this.assetPoperties) {
773
+ // 更新画布上固定的资产详情对应的值
774
+ //const canvasPens = this.pathRewrite ? canvasData.pens : this.canvas.data.pens
775
+ this.renderForAssetPoperties(this.canvas.data.pens);
776
+ }
753
777
  }
754
778
  };
755
- Common.prototype.closeMqtt = function () {
756
- if (this.mqttClient) {
757
- this.isEnd = true
758
- this.mqttClient.end();
779
+ Common.prototype.getTagParams = function (pens, eventType) {
780
+ const _this = this;
781
+ pens.forEach((pen) => {
782
+ if (pen.children != undefined && pen.children.length > 0) {
783
+ _this.getTagParams(pen.children, eventType)
784
+ } else {
785
+ _this.getTagParamsChildren(pen, eventType)
786
+ }
787
+ })
788
+ return this.tagParams[eventType]
789
+ };
790
+ Common.prototype.getTagParamsChildren = function (pen, eventType) {
791
+ let tagIds = []
792
+ let kpiAddrs = []
793
+ let assetIds = []
794
+ let areaIds = []
795
+ let tagEcharts = []
796
+ // let cockpitLayoutData = []
797
+ let echartData = []
798
+ let isEventType = false;
799
+ for (var _b = 0, _c = pen.events; _b < _c.length; _b++) {
800
+ var event_1 = _c[_b];
801
+ if ((event_1.type === 3 && eventType === 'Mqtt') || (event_1.type === 4 && eventType === 'Poll')
802
+ || (event_1.type === 5 && eventType === 'Poll1') || (event_1.type === 6 && eventType === 'Poll2')) {
803
+ isEventType = true;
804
+ }
805
+ }
806
+ if (isEventType === true) {
807
+ if (pen.data != undefined && this.checkType(pen.data) === 'Array' && pen.data.length > 0) {
808
+ pen.data.forEach((item) => {
809
+ if (item.key === 'tagId') {
810
+ tagIds.push(item.value)
811
+ }
812
+ if (item.key === 'kpiAddr') {
813
+ kpiAddrs.push(item.value)
814
+ }
815
+ if (item.key === 'assetKey') {
816
+ this.isExistAssetKey = true
817
+ }
818
+ if (item.key === 'assetId') {
819
+ assetIds.push(item.value)
820
+ }
821
+ if (item.key === 'areaId') {
822
+ areaIds.push(item.value)
823
+ }
824
+ })
825
+ }
826
+ // else if(pen.data != undefined && this.checkType(pen.data) === 'Object' && pen.tags != undefined && this.checkType(pen.tags) === 'Array' && pen.tags.length>0){
827
+ // pen.tags.forEach((item)=>{
828
+ // if( item.indexOf('echart') > -1){
829
+ // tagEcharts.push(item)
830
+ // }
831
+ // })
832
+ // }
833
+ else if (pen.data != undefined && this.checkType(pen.data) === 'Object' && this.checkType(pen.data.params) === 'Object') {
834
+
835
+ // pen.data.echarts && pen.data.echarts.option.series.length > 1 ? echartData.push(pen.data.params.id) : cockpitLayoutData.push(pen.data.params.id)
836
+ echartData.push(pen.data.params.id)
837
+
838
+ }
839
+ this.tagParams[eventType].tagIds = [...new Set(this.tagParams[eventType].tagIds.concat(tagIds))]
840
+ this.tagParams[eventType].kpiAddrs = [...new Set(this.tagParams[eventType].kpiAddrs.concat(kpiAddrs))]
841
+ this.tagParams[eventType].assetIds = [...new Set(this.tagParams[eventType].assetIds.concat(assetIds))]
842
+ this.tagParams[eventType].areaIds = [...new Set(this.tagParams[eventType].areaIds.concat(areaIds))]
843
+ this.tagParams[eventType].tagEcharts = [...new Set(this.tagParams[eventType].tagEcharts.concat(tagEcharts))]
844
+ // this.tagParams[eventType].cockpitLayoutData = [...new Set(this.tagParams[eventType].cockpitLayoutData.concat(cockpitLayoutData))]
845
+ this.tagParams[eventType].echartData = [...new Set(this.tagParams[eventType].echartData.concat(echartData))]
759
846
  }
760
847
  };
761
- Common.prototype.doMqttDrow = function (ret) {
762
- let canvasData = this.store.data;
763
- ret = JSON.parse(ret);
764
- //console.log('处理消息', ret)
765
- this.mqttDataDrawing(canvasData.pens, ret)
848
+ Common.prototype.getMqttData = async function (tagParams, panelData) {
849
+ let ret = {};
850
+ let data = {};
851
+ let path = '';
852
+ let assetData = null;
853
+ let pathRewrite = this.pathRewrite;
854
+ let canvasData = JSON.parse(JSON.stringify(this.canvas.data));
855
+ let mqttTopics = this.data.mqttTopics;
856
+ let tagParamsData = tagParams;
857
+ let detailJson = null;
858
+ Store.set('TIMEOUT:currentPage', `locationPath${this.s8()}`);
859
+ if (panelData) {
860
+ this.data.mqttTopics = mqttTopics
861
+ pathRewrite = panelData.pathRewrite;
862
+ canvasData = JSON.parse(JSON.stringify(panelData.data));
863
+ mqttTopics = panelData.mqttTopics;
864
+ if (panelData.assetId) {
865
+ const detailData = await this.getTagParamsForKpiAddrs(panelData.assetId, tagParams, pathRewrite);
866
+ if (detailData.data) {
867
+ tagParamsData.tagIds = detailData.tagIds;
868
+ assetData = detailData.data.asset;
869
+ detailJson = detailData.data;
870
+ tagParamsData.echartAssemblyData = detailJson.echartAssemblyData;
871
+ }
872
+ }
873
+ }
874
+ tagParamsData.locationPath = Store.get('TIMEOUT:currentPage');
875
+ if (!tagParams) {
876
+ data = this.theData
877
+ path = this.thePath
878
+ } else {
879
+ data = {
880
+ tagIds: tagParamsData.tagIds.join(","),
881
+ assetIds: tagParamsData.assetIds.join(","),
882
+ areaIds: tagParamsData.areaIds.join(","),
883
+ routingkey: mqttTopics,
884
+ echart: tagParamsData.tagEcharts.join(","),
885
+ echartData: tagParamsData.echartData
886
+ }
887
+ if (tagParamsData.echartAssemblyData) {
888
+ data.echartAssemblyData = tagParamsData.echartAssemblyData;
889
+ }
890
+ //const pathRewrite = panelData ? panelData.pathRewrite : this.pathRewrite
891
+ path = pathRewrite ? pathRewrite + '/user/cockpit/mqtt-data' : '/user/cockpit/mqtt-data'
892
+ this.thePath = path
893
+ this.theData = data
894
+ }
895
+ let drawedData = null
896
+ ret = await axios.post(path, data);
897
+ if (ret.data && ret.data.data) {
898
+ if (assetData) ret.data.data.asset = assetData
899
+ drawedData = this.mqttDataDrawing(canvasData, ret.data.data, detailJson)
900
+ }
901
+ this.clearInterValAll();
902
+ this.timmerByTopology = setTimeout(() => {
903
+ const locationPath = Store.get('TIMEOUT:currentPage');
904
+ if (locationPath === tagParamsData.locationPath) {
905
+ this.getMqttData(tagParamsData);
906
+ }
907
+ }, 180000); // 每3分钟定时请求,超过3分钟未收到MQTT将停止推送数据 180000
908
+ if (ret.error) {
909
+ return null;
910
+ } else {
911
+ return {
912
+ mqttData: drawedData,
913
+ detailData: detailJson
914
+ }
915
+ }
766
916
  };
767
- Common.prototype.mqttDataDrawing = function (data, retData) {
917
+ Common.prototype.mqttDataDrawing = function (data, retData, detailJson) {
918
+ const syncData = retData
919
+ const detailData = detailJson ? detailJson.data : [];
768
920
  // console.log('收到消息', syncData)
769
- this.store.monitorAlarm = false;
770
- data.map((item) => {
771
- if(this.store.options.type === 'topology') setInitConfData(this.id, item);
772
- setDefaultNodeValidat(item, retData);
773
- if (item.children && item.children.length) {
774
- this.mqttDataDrawing(item.children, retData);
775
- }
776
- if (item.formData && item.formData.detailPageData && item.formData.detailPageData.pens && item.formData.detailPageData.pens.length) {
777
- this.mqttDataDrawing(item.formData.detailPageData.pens, retData);
921
+ Store.set('mqtt:responseData', syncData);
922
+ data.pens.map((item) => {
923
+ if (item.children != undefined) {
924
+ item.children.map((_item) => {
925
+ item.defaultFillStyle = item.fillStyle;
926
+ item.defaultFontColor = item.font.color;
927
+ if (item.name === 'line') item.defaultLineColor = item.strokeStyle;
928
+ if (!_item.data) return
929
+ //const node = detailData.length > 0 ? detailData : syncData
930
+ const functionData = _item.events.filter((ev) => {
931
+ return ev.action === EventAction.Function
932
+ })
933
+ const dataValue = functionData[0]
934
+ if (functionData.length > 0 && dataValue.value && retData) {
935
+ _item.data.map((d) => {
936
+ const {kpiData, tagData} = retData;
937
+ const key = d.key;
938
+ const value = d.value;
939
+ const _syncItem = key === 'tagId' ? tagData[value] : kpiData[value];
940
+ if ((key === 'tagId' || key === 'kpiAddr') && _syncItem) {
941
+ const isControl = parseInt(_syncItem.isControlDis); // 是否可控,0可控,1不可控
942
+ if (!isControl) {
943
+ d.tagVal = value
944
+ d.controlParams = _syncItem
945
+ // delete _syncItem[value]
946
+ // Object.assign(d, _syncItem)
947
+ }
948
+ }
949
+ })
950
+ //console.log('定制函数=====')
951
+ console.log('定制函数------')
952
+ const func = new Function('pen', 'params', dataValue.value)
953
+ func(_item, JSON.stringify(retData))
954
+ } else {
955
+ // console.log('默认函数')
956
+ setConfItemNode(_item, syncData);
957
+ }
958
+ this.machAnimateReset(item);
959
+ })
960
+ } else {
961
+ item.defaultFillStyle = item.fillStyle;
962
+ item.defaultFontColor = item.font.color;
963
+ if (item.name === 'line') item.defaultLineColor = item.strokeStyle;
964
+ if (!item.data) return
965
+ //const node = detailData.length > 0 ? detailData : syncData
966
+ const functionData = item.events.filter((ev) => {
967
+ return ev.action === EventAction.Function
968
+ })
969
+ const dataValue = functionData[0]
970
+ if (functionData.length > 0 && dataValue.value && retData) {
971
+ item.data.map((d) => {
972
+ const {kpiData, tagData} = retData;
973
+ const key = d.key;
974
+ const value = d.value;
975
+ const _syncItem = key === 'tagId' ? tagData[value] : kpiData[value];
976
+ if ((key === 'tagId' || key === 'kpiAddr') && _syncItem) {
977
+ const isControl = parseInt(_syncItem.isControlDis); // 是否可控,0可控,1不可控
978
+ if (!isControl) {
979
+ d.tagVal = value;
980
+ d.controlParams = _syncItem;
981
+ // delete _syncItem[value]
982
+ // Object.assign(d, _syncItem)
983
+ }
984
+ }
985
+ });
986
+ const func = new Function('pen', 'params', dataValue.value);
987
+ func(item, JSON.stringify(retData));
988
+ //const machData = func(item, JSON.stringify(retData));
989
+ console.log('定制函数------------');
990
+ } else {
991
+ // console.log('默认函数')
992
+ setConfItemNode(item, syncData);
993
+ }
994
+ this.machAnimateReset(item);
778
995
  }
779
- });
780
- //console.log('执行完毕-----', this.store.data.pens)
996
+ })
997
+ // console.log('执行完毕')
781
998
  this.render();
782
999
  this.animate(true);
783
- // 九所的 服务器状态监测功能中用到
784
- if(this.store.options.storeSubscribe) Store.set(this.generateStoreKey('M:monitor'), this.store.monitorAlarm);
785
1000
  return data
786
1001
  };
1002
+ Common.prototype.machAnimateReset = function (pen) {
1003
+ if (!pen.animateFrames || pen.animateFrames.length <= 0) return;
1004
+ for (var _a = 0, _af = pen.animateFrames; _a < _af.length; _a++) {
1005
+ var ani = _af[_a];
1006
+ ani.state.strokeStyle = pen.strokeStyle;
1007
+ ani.state.fillStyle = pen.fillStyle;
1008
+ }
1009
+ };
1010
+ Common.prototype.getTagParamsForKpiAddrs = async function (assetId, tagParams, apiStr) {
1011
+ let params = {
1012
+ assetId: assetId,
1013
+ tagIds: tagParams.tagIds.join(","),
1014
+ kpiAddrs: tagParams.kpiAddrs.join(","),
1015
+ echartAssemblyIds: tagParams.echartData,
1016
+ }
1017
+ let pathRewrite = apiStr ? apiStr : this.pathRewrite
1018
+ const path = pathRewrite ? pathRewrite + '/place/place_monitor/getPlaceAssetDetail' : '/place/place_monitor/getPlaceAssetDetail'
1019
+ let ret = await axios.post(path, params);
1020
+ // 遍历得到属性中绑定指标数据的集合
1021
+ const tagIds = this.getTagIdsForKpiAddrs(ret.data);
1022
+ // 详情页面,固定的资产详情的数据集合
1023
+ this.assetPoperties = ret.asset
1024
+
1025
+ return {
1026
+ data: ret.data,
1027
+ echartAssemblyData: ret.echartAssemblyData,
1028
+ tagIds: tagIds
1029
+ }
1030
+ };
1031
+ Common.prototype.getTagIdsForKpiAddrs = function (data) {
1032
+ let tagIds = [];
1033
+ const delData = this.pathRewrite ? data : data.data;
1034
+ if (delData && delData.length > 0) {
1035
+ delData.forEach((item) => {
1036
+ tagIds.push(item.tagId);
1037
+ })
1038
+ this.tagParams.detailAssetData = data;
1039
+ this.tagParams.Mqtt.tagIds = tagIds;
1040
+ }
1041
+ return tagIds
1042
+ };
1043
+ Common.prototype.renderForAssetPoperties = function (pens) {
1044
+ const _this = this;
1045
+ pens.forEach((pen) => {
1046
+ if (pen.children != undefined) {
1047
+ _this.renderForAssetPoperties(pen.children)
1048
+ } else {
1049
+ _this.renderForAssetPopertiesChildren(pen)
1050
+ }
1051
+ })
1052
+ };
1053
+ Common.prototype.renderForAssetPopertiesChildren = function (pen) {
1054
+ if (pen.data != undefined && pen.data != '' && typeof pen.data === 'object' && Array.isArray(pen.data) && pen.data.length > 0) {
1055
+ pen.data.forEach((item) => {
1056
+ Object.keys(this.assetPoperties).forEach(key => {
1057
+ if (item.key === 'assetKey') {
1058
+ if (item.value === key) {
1059
+ if (key === 'imgUrl' || key === 'principleImg') {
1060
+ pen.text = ''
1061
+ pen.image = this.pathRewrite ? this.pathRewrite + this.assetPoperties[key] : this.assetPoperties[key]
1062
+ } else {
1063
+ pen.text = this.assetPoperties[key]
1064
+ }
1065
+ }
1066
+ }
1067
+ })
1068
+ })
1069
+ }
1070
+ };
1071
+ Common.prototype.onMqttContent = async function (tagParams) {
1072
+ if (!this.initType) this.data.mqttTopics = 'mqtt-' + s8();
1073
+ // 告知MQTT属性中数据的集合
1074
+ const ret = !this.initType ? await this.getMqttData(tagParams) : this.initType;
1075
+ if (ret) {
1076
+ let mqttUrlStr = this.data.mqttUrl, mqttOption = this.data.mqttOptions
1077
+ if (this.initData) {
1078
+ const {mqttUrl, mqttOptions} = this.initData
1079
+ mqttUrlStr = mqttUrl
1080
+ mqttOption = mqttOptions
1081
+ }
1082
+ mqttOption.clientId = s8()
1083
+ this.openMqtt(mqttUrlStr, mqttOption);
1084
+ } else {
1085
+ console.log('请求出错')
1086
+ }
1087
+ };
1088
+ Common.prototype.onPollContent = function (tagParams, eventType) {
1089
+ const index = eventType[4] ? eventType[4] : ''
1090
+ // const url = 'pollUrl'+index;
1091
+ // const second = 'pollSecond'+index;
1092
+ const pollUrl = this.data['pollUrl' + index]
1093
+ const pollSecond = this.data['pollSecond' + index]
1094
+ this.onpollStop(eventType);
1095
+ if (pollUrl && pollSecond) {
1096
+ this.renderForPoll(tagParams, pollUrl, eventType);
1097
+ if (pollSecond != 0) { // 轮询
1098
+ let millisecond = parseInt(pollSecond * 1000)
1099
+ this.pollTime[eventType] = setInterval(() => {
1100
+ this.renderForPoll(tagParams, pollUrl, eventType);
1101
+ }, millisecond);
1102
+ }
1103
+ }
1104
+ };
1105
+ Common.prototype.onpollStop = function (eventType) {
1106
+ if (this.pollTime[eventType]) {
1107
+ clearInterval(this.pollTime[eventType])
1108
+ }
1109
+ };
1110
+ Common.prototype.renderForPoll = async function (tagParams, pollUrl, eventType) {
1111
+ let data = {
1112
+ tagIds: tagParams.tagIds.join(","),
1113
+ // assetIds: tagParams.assetIds.join(","),
1114
+ // echart: tagParams.tagEcharts.join(",")
1115
+ }
1116
+ const _this = this
1117
+ axios.post(pollUrl, data)
1118
+ .then((res) => {
1119
+ _this.openPoll(res, eventType);
1120
+ })
1121
+ .catch((error) => {
1122
+ console.log('轮询地址,连接失败', error)
1123
+ _this.onpollStop(eventType);
1124
+ });
1125
+ };
1126
+ Common.prototype.getUrlParams = function (name) {
1127
+ var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
1128
+ var r = window.location.search.substr(1).match(reg)
1129
+ if (r != null) return unescape(r[2])
1130
+ return null
1131
+ };
1132
+ Common.prototype.checkType = function (data) {
1133
+ return Object.prototype.toString.call(data).slice(8, -1)
1134
+ };
1135
+ Common.prototype.mqttLostMessage = function () {
1136
+ // console.log('发送请求mqtt-data')
1137
+ this.getMqttData(this.tagParams.Mqtt);
1138
+ };
1139
+ Common.prototype.doMqttDrow = function (ret) {
1140
+ let canvasData = this.canvas.data;
1141
+ ret = JSON.parse(ret);
1142
+ // console.log('处理消息')
1143
+ // console.log('this.canvas.data',this.canvas.data)
1144
+ this.mqttDataDrawing(canvasData, ret)
1145
+ };
787
1146
  Common.prototype.hidePenByTag = function (pens, val) {
788
1147
  const _this = this;
789
1148
  pens.forEach((pen) => {
@@ -796,11 +1155,11 @@ var Common = /** @class */ (function () {
796
1155
  Common.prototype.hidePenVal = function (pen, val) {
797
1156
  const tags = pen.tags
798
1157
  const obj = val ? JSON.parse(val) : {}
799
- const visibleRange = obj.visibleRange ? obj.visibleRange.trim() : ''
800
- const visibleFnRange = obj.visibleFnRange ? obj.visibleFnRange.trim() : ''
801
- const visibleValue = obj.visibleValue ? obj.visibleValue.trim() : ''
802
- const hiddenRange = obj.hiddenRange ? obj.hiddenRange.trim() : ''
803
- const tabsValue = obj.tabsValue ? obj.tabsValue.trim() : ''
1158
+ const visibleRange = obj.visibleRange
1159
+ const visibleFnRange = obj.visibleFnRange
1160
+ const visibleValue = obj.visibleValue
1161
+ const hiddenRange = obj.hiddenRange
1162
+ const tabsValue = obj.tabsValue
804
1163
  if (tags.length > 0) {
805
1164
  if (visibleRange == '1') {
806
1165
  if (this.openCount % 2 == 0) {
@@ -838,34 +1197,13 @@ var Common = /** @class */ (function () {
838
1197
  }
839
1198
  }
840
1199
  }
841
- };
842
- Common.prototype.formOverflowConversionData = function (obj) {
843
- if (!obj) {
844
- obj = {pens: []};
845
- }
846
- let data = JSON.parse(JSON.stringify(obj));
847
- Object.assign(this.store.data, data);
848
- this.store.data.pens = [];
849
- this.openCount = 0
850
- const type = this.store.options.type;
851
- if (data.pens) {
852
- for (var _d = 0, _e = data.pens; _d < _e.length; _d++) {
853
- const item = _e[_d];
854
- if (!item.from) {
855
- const node = new Node(item);
856
- this.store.data.pens.push(node);
857
- } else {
858
- const linNode = new Line(item);
859
- this.store.data.pens.push(linNode);
860
- }
861
- }
862
- }
1200
+ this.render();
863
1201
  };
864
1202
  Common.prototype.destroyStatic = function () {
865
- this.clear('destroy');
866
- //this.closeSocket();
1203
+ this.clearInterValAll();
1204
+ this.closeSocket();
867
1205
  this.closeMqtt();
868
- cancelAnimationFrame(this.renderTimer);
1206
+ this.closePoll();
869
1207
  this.subcribe.unsubscribe();
870
1208
  this.subcribeRender.unsubscribe();
871
1209
  this.subcribeImage.unsubscribe();
@@ -879,8 +1217,9 @@ var Common = /** @class */ (function () {
879
1217
  this.canvas = null;
880
1218
  this.offscreen.destroy();
881
1219
  this.offscreen = null;
882
- this.store.parentElem = null;
1220
+ this.data = null;
883
1221
  Store.set('form:tableData', null);
1222
+ Store.set('TIMEOUT:currentPage', `empty${this.s8()}`);
884
1223
  Store.set('FORM:tableData', {
885
1224
  data: {
886
1225
  tableNodes: {},