dcim-topology2d 1.1.5 → 2.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 (77) hide show
  1. package/chart-diagram/src/echarts/index.js +88 -96
  2. package/chart-diagram/src/register.js +3 -3
  3. package/chart-diagram/src/utils/changeOptions.d.ts +4 -4
  4. package/chart-diagram/src/utils/changeOptions.js +172 -144
  5. package/chart-diagram/src/utils/conversion.d.ts +12 -12
  6. package/chart-diagram/src/utils/conversion.js +278 -137
  7. package/chart-diagram/src/utils/render.d.ts +5 -0
  8. package/chart-diagram/src/utils/render.js +107 -0
  9. package/core/index.d.ts +1 -0
  10. package/core/index.js +1 -0
  11. package/core/src/activeLayer.js +0 -6
  12. package/core/src/calling.js +3 -0
  13. package/core/src/canvas.js +1 -0
  14. package/core/src/common.d.ts +1 -2
  15. package/core/src/common.js +124 -614
  16. package/core/src/core.js +65 -49
  17. package/core/src/divLayer.d.ts +0 -3
  18. package/core/src/divLayer.js +14 -32
  19. package/core/src/element/common.d.ts +5 -0
  20. package/core/src/element/common.js +52 -0
  21. package/core/src/element/iframe.d.ts +3 -0
  22. package/core/src/element/iframe.js +12 -0
  23. package/core/src/element/index.d.ts +4 -0
  24. package/core/src/element/index.js +4 -0
  25. package/core/src/element/select.d.ts +11 -0
  26. package/core/src/element/select.js +199 -0
  27. package/core/src/element/tab.d.ts +1 -0
  28. package/core/src/element/tab.js +22 -0
  29. package/core/src/healps/changeData.d.ts +1 -2
  30. package/core/src/healps/changeData.js +16 -122
  31. package/core/src/middles/default.js +3 -1
  32. package/core/src/middles/nodes/arbitrarygraph.js +11 -9
  33. package/core/src/middles/nodes/formselect.d.ts +2 -0
  34. package/core/src/middles/nodes/formselect.js +73 -0
  35. package/core/src/middles/nodes/iframe.js +21 -4
  36. package/core/src/middles/nodes/index.d.ts +1 -0
  37. package/core/src/middles/nodes/index.js +1 -0
  38. package/core/src/models/node.d.ts +4 -0
  39. package/core/src/models/node.js +25 -22
  40. package/core/src/models/pen.js +7 -8
  41. package/core/src/models/rect.js +2 -2
  42. package/core/src/options.d.ts +1 -0
  43. package/core/src/preview.js +45 -31
  44. package/core/src/renderLayer.d.ts +10 -6
  45. package/core/src/renderLayer.js +36 -43
  46. package/core/src/store/data.d.ts +19 -17
  47. package/core/src/store/data.js +38 -12
  48. package/core/src/utils/assignment.d.ts +6 -0
  49. package/core/src/utils/assignment.js +138 -0
  50. package/core/src/utils/construction.d.ts +9 -3
  51. package/core/src/utils/construction.js +6 -1
  52. package/core/src/utils/conversion.d.ts +3 -0
  53. package/core/src/utils/conversion.js +67 -0
  54. package/core/src/utils/index.d.ts +2 -1
  55. package/core/src/utils/index.js +2 -1
  56. package/core/src/utils/math.d.ts +1 -0
  57. package/core/src/utils/math.js +3 -0
  58. package/core/src/utils/onmousevent.d.ts +3 -0
  59. package/core/src/utils/onmousevent.js +28 -7
  60. package/core/src/utils/params.d.ts +7 -0
  61. package/core/src/utils/params.js +125 -0
  62. package/package.json +1 -1
  63. package/static/echartsDefaultData.js +27 -107
  64. package/static/element.js +14 -0
  65. package/static/form.js +11 -0
  66. package/static/index.js +2 -1
  67. package/store/actions.js +17 -0
  68. package/store/clear.js +72 -0
  69. package/store/index.js +2 -0
  70. package/style/common.css +18 -0
  71. package/style/editor.css +13 -0
  72. package/style/index.css +3 -12
  73. package/style/select.css +143 -0
  74. package/core/src/utils/dom.d.ts +0 -9
  75. package/core/src/utils/dom.js +0 -103
  76. package/core/src/utils/dom.js.map +0 -1
  77. package/static/echartsStore.js +0 -14
@@ -0,0 +1 @@
1
+ export declare function setElementSwitchTabState(node: any): void;
@@ -0,0 +1,22 @@
1
+ import {
2
+ echartsDataPool,
3
+ elementInteractivePoor,
4
+ selectDataPool
5
+ } from '../../../store';
6
+ import {jsonLength} from '../utils';
7
+ // 设置tab切换显示隐藏时的 Dom元件状态
8
+ export function setElementSwitchTabState(node) {
9
+ if(typeof elementInteractivePoor.elementDataLength !== 'number') {
10
+ elementInteractivePoor.elementDataLength = jsonLength(echartsDataPool) || jsonLength(selectDataPool);
11
+ }
12
+ if(!elementInteractivePoor.elementDataLength) return;
13
+ const ele = echartsDataPool[node.id] && echartsDataPool[node.id].div ||
14
+ selectDataPool[node.id] && selectDataPool[node.id].dom.selectEle;
15
+ if(ele) ele.style.display = !node.visible ? 'none': 'block';
16
+ if(node.children && node.children.length) {
17
+ node.children.map((ch) => {
18
+ ch.visible = node.visible;
19
+ setElementSwitchTabState(ch);
20
+ })
21
+ }
22
+ }
@@ -4,5 +4,4 @@ export declare function setConfItemNode(item: any[], syncData: Node): Node;
4
4
  export declare function setNodeEvents(item: any[], pen: Pen): void;
5
5
  export declare function setControlData(pen: Pen, syncData: Node): void;
6
6
  export declare function getControlNode(item: any, data: any): Node;
7
- export declare function getDetailData(data: Node): void;
8
- export declare function setStatisticalData(pen: Pen, dataType: any, staticForType: string, chartData: any): Node;
7
+ export declare function getDetailData(data: Node): void;
@@ -1,13 +1,13 @@
1
1
  //let DETAILDATA = null;
2
- import { echartsDefaultDataMap } from '../../../static';
3
- import { commonStore } from '../store'
2
+ import {commonStore} from '../store';
3
+ import {echartsRealDataPool} from '../../../store';
4
+ import { getEchartsRealData } from '../utils/conversion';
4
5
  export function setConfItemNode(pen, syn_synata) {
5
- if (!pen.data) return
6
- commonStore[pen.TID].data.dataResize = 1;
6
+ if (!pen.data) return;
7
+ if(commonStore[pen.TID]) commonStore[pen.TID].data.dataResize = 1;
7
8
  if(pen.data instanceof Array) {
8
- let _syn = ''
9
- let isResetVal = false
10
- let isResetFontColor = false
9
+ let _syn = null;
10
+ let isResetVal = false;
11
11
  const {areaData, assetData, kpiData, tagData, asset} = syn_synata
12
12
  pen.data.map((d) => {
13
13
  const key = d.key;
@@ -15,7 +15,7 @@ export function setConfItemNode(pen, syn_synata) {
15
15
  const assetItem = assetData[value];
16
16
  const areaItem = areaData[value];
17
17
  const kpiItem = kpiData[value];
18
- if(key === 'tagId') value = d.tagId ? d.tagId : d.value
18
+ if(key === 'tagId') value = d.tagId ? d.tagId : d.value;
19
19
  const tagItem = tagData[value];
20
20
  //console.log('key===========', d)
21
21
  if (key === 'assetKey' && d.value === 'assetName' && asset) {
@@ -28,7 +28,7 @@ export function setConfItemNode(pen, syn_synata) {
28
28
  }else if (key === 'tagId' && tagItem) {
29
29
  _syn = tagItem;
30
30
  if(_syn.kpiName !== '通讯状态' || pen.name !== 'circle'){
31
- isResetVal = true
31
+ isResetVal = true;
32
32
  }
33
33
  const isControl = parseInt(tagItem.isControlDis); // 是否可控,0可控,1不可控
34
34
  //d.isControlDis = isControlDis
@@ -50,6 +50,7 @@ export function setConfItemNode(pen, syn_synata) {
50
50
  }
51
51
  }
52
52
  })
53
+ if(!_syn) return;
53
54
  // const type = parseInt(_syn.type) // 是否是开关量
54
55
  // 显示的值
55
56
  if (isResetVal) pen.text = `${_syn.value}${_syn.unit}`;
@@ -96,124 +97,17 @@ export function setConfItemNode(pen, syn_synata) {
96
97
  if(pen.data.echarts) {
97
98
  const { echartDataValue } = syn_synata;
98
99
  const seriesData = echartDataValue;
99
- const chartData = pen.data.params && seriesData && Object.keys(seriesData).length && seriesData[pen.data.params.id];
100
- const staticForType = pen.data.params && pen.data.params.staticForType || '';//统计类型:日,周,月,年
101
- pen.data.echarts.option = setStatisticalData(pen, null, staticForType, chartData);
100
+ const realData = pen.data.params && seriesData && Object.keys(seriesData).length && seriesData[pen.data.params.id];
101
+ if (Array.isArray(realData)) {
102
+ getEchartsRealData(pen, realData);
103
+ }else {
104
+ echartsRealDataPool[pen.id] = realData;
105
+ }
102
106
  }
103
107
  }
104
108
  return pen
105
109
  }
106
110
 
107
- /**
108
- * 设置图表数据
109
- * @param pen 拓扑节点
110
- * @param dataType 数据类型:‘def’-默认,不传默认为-实时
111
- * @param staticForType 统计类型:日,周,月,年
112
- * @param chartData // 图表实时数据
113
- * @returns {*}
114
- */
115
- export function setStatisticalData(pen, dataType, staticForType, chartData) {
116
- const node = JSON.parse(JSON.stringify(pen));
117
- const echartsOption = node.data.echarts.option;
118
- const optionDisplayMode = echartsOption.displayMode;
119
- let displayMode = 0;
120
- if(typeof optionDisplayMode === 'string') {
121
-
122
- const displayType = optionDisplayMode.split('_')[0];
123
-
124
- displayMode = parseInt(displayType);
125
-
126
- }else {
127
- displayMode = parseInt(optionDisplayMode);
128
- }
129
- const defaultData = echartsDefaultDataMap[`displayMode_${optionDisplayMode}`];
130
- const staticTypeData = chartData && chartData[`${staticForType}_Data`];
131
- const chartRealData = staticForType ? staticTypeData || defaultData : chartData || defaultData;
132
- if (displayMode === 1 || displayMode === 2){ // 折线图,柱状图
133
- //const xData = [], seriesData = [];
134
- dataType = staticForType && staticTypeData || chartData && chartData.seriesData.length ? '' : 'def';
135
- const seriesNodes = echartsOption.series;
136
- const isBaseLineBar = ['line', 'bar'].includes(node.appearance.type);
137
- // 双轴曲线
138
- if(seriesNodes.length > 1 || node.data.params && node.data.params.curveNum > 1){
139
- const legendData = [];
140
- let legendChange = false;
141
- echartsOption.xAxis[0].data = chartRealData.XData;
142
- let order = 0;
143
- //循环给每条统计数据赋值
144
- seriesNodes.map((item, index) => {
145
- let seriesItem = null;
146
- // 执行类型为恢复默认
147
- if(dataType === 'def') {
148
- let defaultSeriesItem = defaultData.seriesData[order];
149
- if(!defaultSeriesItem) defaultSeriesItem = defaultData.seriesData[0]; // 默认数据只有一个时,只取第一个
150
- seriesItem = JSON.parse(JSON.stringify(defaultSeriesItem));
151
- if(['line', 'bar'].includes(item.type)) order++; // 此判断为过滤series中的图表柱子或折线节点样式
152
- if(!isBaseLineBar) return item.data = seriesItem.data; // 曲线或柱状图模板一般会走这个逻辑
153
- if(!index) {
154
- seriesItem.name = '标注1';
155
- item.data = seriesItem.data;
156
- }else {
157
- // 自动生成series数据计算
158
- for(let i = 0, sdl = seriesItem.data.length; i < sdl; i++){
159
- displayMode === 1 ? seriesItem.data[i] -= 400 : seriesItem.data[i] += 100;
160
- }
161
- seriesItem.name = `标注${index + 1}`;
162
- item.data = seriesItem.data;
163
- }
164
- }else {
165
- // 执行类型为实时数据
166
- seriesItem = chartRealData.seriesData[index];
167
- if(!seriesItem) return item.data = [];
168
- item.data = seriesItem.data;
169
- }
170
- // 获取角标数据
171
- if(seriesItem.name) {
172
- item.name = seriesItem.name;
173
- legendData.push(seriesItem.name);
174
- legendChange = true;
175
- }
176
- });
177
- if(echartsOption.legend && legendChange) echartsOption.legend.data = legendData; // 为角标数据赋值
178
- }else {
179
- // 单曲线或柱状的执行逻辑
180
- echartsOption.xAxis[0].data = chartRealData.XData;
181
- const { name, data } = chartRealData.seriesData[0];
182
- if(name) seriesNodes[0].name = name;
183
- seriesNodes[0].data = data;
184
- }
185
- }
186
- if(displayMode === 4) { // top排行榜
187
- echartsOption.yAxis[0].data = chartRealData.XData;
188
- const { data } = chartRealData.seriesData[0];
189
- echartsOption.yAxis[1].data = data;
190
- for (let i = 0; i < echartsOption.series.length; i++) {
191
- const node = echartsOption.series[i];
192
- node.symbolBoundingData = chartRealData.total;
193
- node.data = data;
194
- }
195
- }
196
- if (displayMode === 5 || displayMode === 3){ // 饼图/环形图
197
- const colors = echartsOption.color;
198
- const pieData = staticForType ? chartData || defaultData : chartData && chartData.data || defaultData.seriesData;
199
- const seriesData = [];
200
- pieData.map((chd, index) => {
201
- seriesData.push({
202
- itemStyle: { color: colors[index] },
203
- name: chd.name,
204
- value: chd.value
205
- })
206
- })
207
- echartsOption.series[0].data = seriesData;
208
- }
209
- if(displayMode === 6){ // 仪表盘
210
- // 仪表盘分两种,分别有不同的取值方式,下面两行先注释掉
211
- // node.appearance.title.text = chartData.name;
212
- // node.data.echarts.option.title.text = chartData.name;
213
- echartsOption.series[0].data[0].value = chartData && chartData.value || defaultData.value;
214
- }
215
- return echartsOption;
216
- }
217
111
  export function setNodeEvents(item, pen) {
218
112
 
219
113
  }
@@ -5,7 +5,7 @@ import {
5
5
  twowayArrow, twowayArrowIconRect, twowayArrowTextRect,
6
6
  rectangle, rectangleIconRect, rectangleTextRect,
7
7
  diamond, diamondIconRect, diamondTextRect,
8
- text, file, formtable, tablePagination, iframePrimeval,
8
+ text, file, formtable, tablePagination, iframePrimeval,formSelect,
9
9
  line as nodeLine, lineAnchors, lineIconRect, lineTextRect,
10
10
  circle, circleIconRect, circleTextRect, circleAnchors,
11
11
  triangle, triangleIconRect, triangleTextRect, triangleAnchors,
@@ -62,6 +62,8 @@ export var drawArrowFns = {};
62
62
  function init() {
63
63
  console.log('Init middles.');
64
64
  // ********Default nodes.*******
65
+ // select
66
+ drawNodeFns.select = formSelect;
65
67
  // iframe
66
68
  drawNodeFns.iframe = iframePrimeval;
67
69
  // tablePagination
@@ -1,17 +1,19 @@
1
1
  export function arbitraryGraph(ctx, node) {
2
2
 
3
- ctx.beginPath();
3
+ ctx.beginPath();
4
4
 
5
- ctx.lineWidth = 1;
5
+ ctx.lineWidth = 1;
6
6
 
7
- for(let i=0,len=node.rect.circles.length; i<len; i++) {
7
+ ctx.moveTo(node.rect.circles[0].x, node.rect.circles[0].y);
8
8
 
9
- ctx.lineTo(node.rect.circles[i].x, node.rect.circles[i].y)
10
- }
9
+ for(let i=1,len=node.rect.circles.length; i<len; i++) {
11
10
 
12
- ctx.closePath();
11
+ ctx.lineTo(node.rect.circles[i].x, node.rect.circles[i].y);
12
+ }
13
13
 
14
- (node.fillStyle || node.bkType) && ctx.fill();
15
-
16
- ctx.stroke();
14
+ ctx.closePath();
15
+
16
+ (node.fillStyle || node.bkType) && ctx.fill();
17
+
18
+ ctx.stroke();
17
19
  }
@@ -0,0 +1,2 @@
1
+ import { Node } from '../../models';
2
+ export declare function formSelect(ctx: CanvasRenderingContext2D, node: Node): void;
@@ -0,0 +1,73 @@
1
+ import {rectangle} from './rectangle';
2
+ import {
3
+ createSelectElement,
4
+ createSelectDropdown} from '../../element';
5
+ import {
6
+ setEventListener,
7
+ s8} from '../../utils';
8
+ import {echartsDataPool, selectDataPool, selectRealDataPool} from '../../../../store';
9
+ import {selectDefaultData} from '../../../../static';
10
+
11
+ export function formSelect(ctx, node) {
12
+ // 绘制一个底图,类似于占位符。
13
+ rectangle(ctx, node);
14
+ if (!selectDataPool[node.id]) {
15
+ node.elementId = s8();
16
+ node.dash = 4;
17
+ selectDataPool[node.id] = {
18
+ slideState: node.selectDropdown,
19
+ node: {
20
+ id: node.id,
21
+ color: node.font.color,
22
+ fontSize: node.font.fontSize,
23
+ selected: null
24
+ },
25
+ dom: {}
26
+ };
27
+ const bindBlockId = node.formData && node.formData.bindBlockId;
28
+ let selectRealData = bindBlockId && selectRealDataPool[bindBlockId];
29
+ if(bindBlockId && selectRealData) {
30
+ // select与echarts互相关联
31
+ selectDataPool[node.id].data = selectRealData;
32
+ const echartsData = echartsDataPool[bindBlockId];
33
+ if(echartsData){
34
+ echartsData.bindId = node.id;
35
+ }else {
36
+ echartsDataPool[bindBlockId] = {
37
+ bindId: node.id
38
+ }
39
+ }
40
+ }else {
41
+ selectDataPool[node.id].data = JSON.parse(JSON.stringify(selectDefaultData));
42
+ }
43
+ const select = createSelectElement(node);
44
+ selectDataPool[node.id].dom.selectEle = select;
45
+ document.body.appendChild(select);
46
+ let selectDropdownEle = document.querySelector('.topology-select-dropdown');
47
+ if(!selectDropdownEle) {
48
+ selectDropdownEle = createSelectDropdown(node);
49
+ const parentEle = window.location.pathname.includes('workspace') ? document.getElementById('topology-canvas') : document.body;
50
+ parentEle.appendChild(selectDropdownEle);
51
+ // 鼠标按下
52
+ selectDropdownEle.addEventListener('mousedown', (e) => {
53
+ setEventListener(e);
54
+ });
55
+ }
56
+ // 添加当前节点到div层
57
+ node.addToDiv();
58
+ }else {
59
+ const selectNode = selectDataPool[node.id];
60
+ if(selectNode.node.color === node.font.color && selectNode.node.fontSize === node.font.fontSize) return;
61
+ const selectDom = selectNode.dom;
62
+ if(!selectDom.selectInput) selectDom.selectInput = selectDom.selectEle.querySelector('.topology-select-input');
63
+ selectDom.selectInput.style.color = node.font.color;
64
+ selectDom.selectInput.style.fontSize = `${node.font.fontSize}px`;
65
+ if(node.selectDropdown) {
66
+ const liEle = selectDom.selectDropdownUl.querySelectorAll('.topology-select-dropdown-item');
67
+ liEle.forEach(function(element) {
68
+ element.style.color = node.font.color;
69
+ element.style.fontSize = `${node.font.fontSize}px`;
70
+ });
71
+ }
72
+ }
73
+ }
@@ -1,12 +1,29 @@
1
- import {rectangle} from 'dcim-topology2d/core'
1
+ import {rectangle} from './rectangle';
2
+ import {iframeDataPool} from '../../../../store';
3
+ import {s8} from "../../utils";
4
+ import {createIframeElement} from "../../element";
2
5
 
3
6
  export function iframePrimeval(ctx, node) {
4
7
  //console.log('iframePrimeval############', node)
5
8
  // 绘制一个底图,类似于占位符。
6
9
  rectangle(ctx, node);
7
- if (!node.elementLoaded) {
10
+ if (!iframeDataPool[node.id]) {
11
+ node.elementId = s8();
12
+ iframeDataPool[node.id] = {
13
+ node: {
14
+ id: node.id,
15
+ src: node.iframe
16
+ }
17
+ };
18
+ const iframe = createIframeElement(node);
19
+ iframeDataPool[node.id].iframe = iframe;
20
+ const parentEle = window.location.pathname.includes('workspace') ? document.getElementById('topology-canvas') : document.body;
21
+ parentEle.appendChild(iframe);
8
22
  // 添加当前节点到div层
9
- node.addToDiv('init')
10
- node.elementRendered = false
23
+ node.addToDiv();
24
+ }else {
25
+ const iframeNode = iframeDataPool[node.id];
26
+ if(iframeNode.node.src === node.iframe) return;
27
+ iframeNode.iframe.src = node.iframe;
11
28
  }
12
29
  }
@@ -17,6 +17,7 @@ export * from './diamond';
17
17
  export * from './diamond.rect';
18
18
  export * from './file';
19
19
  export * from './formtable';
20
+ export * from './formselect';
20
21
  export * from './hexagon';
21
22
  export * from './hexagon.anchor';
22
23
  export * from './hexagon.rect';
@@ -17,6 +17,7 @@ export * from './diamond';
17
17
  export * from './diamond.rect';
18
18
  export * from './file';
19
19
  export * from './formtable';
20
+ export * from './formselect';
20
21
  export * from './hexagon';
21
22
  export * from './hexagon.anchor';
22
23
  export * from './hexagon.rect';
@@ -58,6 +58,10 @@ export declare class Node extends Pen {
58
58
  linear: boolean;
59
59
  state: Node;
60
60
  }[];
61
+ formData: {
62
+ bindBlockId: string;
63
+ theme: number;
64
+ };
61
65
  animateAlone: boolean;
62
66
  gif: boolean;
63
67
  video: string;
@@ -20,7 +20,7 @@ import { defaultAnchors } from '../middles/default.anchor';
20
20
  import { defaultIconRect, defaultTextRect } from '../middles/default.rect';
21
21
  import { text, tableText, defaultText, iconfont } from '../middles/nodes/text';
22
22
  import { Store } from 'le5le-store';
23
- import { abs, s8, animateType, createChildrenDivByElementId } from '../utils';
23
+ import { abs, s8, animateType } from '../utils';
24
24
  export const images = {};
25
25
  export const defaultImages = {};
26
26
  var Node = /** @class */ (function (_super) {
@@ -37,8 +37,10 @@ var Node = /** @class */ (function (_super) {
37
37
  _this.animateFrames = [];
38
38
  _this.type = PenType.Node;
39
39
  _this.TID = json.TID;
40
+ _this.selectDropdown = json.selectDropdown || false;
40
41
  _this.is3D = json.is3D;
41
42
  _this.z = json.z;
43
+ _this.order = json.order;
42
44
  _this.zRotate = json.zRotate || 0;
43
45
  _this.borderRadius = +json.borderRadius || 0;
44
46
  _this.icon = json.icon;
@@ -81,7 +83,7 @@ var Node = /** @class */ (function (_super) {
81
83
  _this.leakageEnd = json.leakageEnd || 0;
82
84
  _this.leakageFillStyle = json.leakageFillStyle || '#ff0000';
83
85
  _this.bindStaticId = json.bindStaticId || '';
84
- _this.buttonCheckSlide = json.buttonCheckSlide || '';
86
+ //_this.buttonCheckSlide = json.buttonCheckSlide || '';
85
87
  _this.visitStrokeStyle = json.visitStrokeStyle || '';
86
88
  _this.thBottomStrokeStyle = json.thBottomStrokeStyle || '#fff';
87
89
  _this.thBottomLineWidth = json.thBottomLineWidth || 1;
@@ -235,16 +237,11 @@ var Node = /** @class */ (function (_super) {
235
237
  data: tableData
236
238
  })
237
239
  };
238
- Node.prototype.addToDiv = function (type) {
240
+ Node.prototype.addToDiv = function () {
239
241
  if (this.iframe ||
240
242
  this.elementId ||
241
243
  this.hasGif()) {
242
- if(type || this.iframe) {
243
- // 复合Echarts初始化
244
- createChildrenDivByElementId(this);
245
- }else {
246
- Store.set(this.generateStoreKey('LT:addDiv'), this);
247
- }
244
+ Store.set(this.generateStoreKey('LT:addDiv'), this);
248
245
  }
249
246
  };
250
247
  Node.prototype.hasGif = function () {
@@ -274,6 +271,7 @@ var Node = /** @class */ (function (_super) {
274
271
  this.children = [];
275
272
  for (var _i = 0, children_1 = children; _i < children_1.length; _i++) {
276
273
  var item = children_1[_i];
274
+ item.visible = this.visible;
277
275
  var child = void 0;
278
276
  switch (item.type) {
279
277
  case PenType.Line:
@@ -619,8 +617,8 @@ var Node = /** @class */ (function (_super) {
619
617
  this.dash = item.state.dash;
620
618
  this.strokeStyle = item.state.strokeStyle;
621
619
  this.fillStyle = item.state.fillStyle;
622
- this.text = item.state.text;
623
- this.font = item.state.font;
620
+ //this.text = item.state.text;
621
+ //this.font = item.state.font;
624
622
  this.lineWidth = item.state.lineWidth;
625
623
  this.rotate = item.state.rotate;
626
624
  this.globalAlpha = item.state.globalAlpha;
@@ -646,8 +644,8 @@ var Node = /** @class */ (function (_super) {
646
644
  this.dash = item.state.dash;
647
645
  this.strokeStyle = item.state.strokeStyle;
648
646
  this.fillStyle = item.state.fillStyle;
649
- this.text = item.state.text;
650
- this.font = item.state.font;
647
+ //this.text = item.state.text;
648
+ //this.font = item.state.font;
651
649
  var rate = (timeline - item.start) / item.duration;
652
650
  if (item.linear) {
653
651
  // 线条左右流动动画
@@ -744,21 +742,20 @@ var Node = /** @class */ (function (_super) {
744
742
  this['oldRect'] = this.rect.clone();
745
743
  if(this.rect.circles) {
746
744
  for(let c=0, circles= this.rect.circles; c<circles.length; c++) {
747
- circles[c].x = (center.x - (center.x - circles[c].x)) * w;
748
- circles[c].y = (center.y - (center.y - circles[c].y)) * h + 15;
749
- }
750
- }else {
751
- this.rect.x = center.x - (center.x - this.rect.x) * w;
752
- if(this.rotate % 180) {
753
- this.rect.x = this.rect.x + (this.rect.width * w - this.rect.width * h) / 2;
745
+ circles[c].x = center.x - (center.x - circles[c].x) * w;
746
+ circles[c].y = center.y - (center.y - circles[c].y) * h;
754
747
  }
755
- this.rect.y = center.y - (center.y - this.rect.y) * h;
756
748
  }
757
- this.z *= scale;
749
+ this.rect.x = center.x - (center.x - this.rect.x) * w;
750
+ if(this.rotate % 180) {
751
+ this.rect.x = this.rect.x + (this.rect.width * w - this.rect.width * h) / 2;
752
+ }
753
+ this.rect.y = center.y - (center.y - this.rect.y) * h;
758
754
  this.rect.width *= this.rotate % 180 ? h : w;
759
755
  this.rect.height *= h;
760
756
  this.rect.ex = this.rect.x + this.rect.width;
761
757
  this.rect.ey = this.rect.y + this.rect.height;
758
+ this.z *= scale;
762
759
  if(!(center.type && center.type === 'bottLogo')) {
763
760
  if (this.imageWidth) {
764
761
  this.imageWidth *= w;
@@ -863,6 +860,12 @@ var Node = /** @class */ (function (_super) {
863
860
  }
864
861
  };
865
862
  Node.prototype.translate = function (x, y) {
863
+ if(this.rect.circles) {
864
+ for(let c=0, circles= this.rect.circles; c<circles.length; c++) {
865
+ circles[c].x += x;
866
+ circles[c].y += y;
867
+ }
868
+ }
866
869
  this.rect.x += x;
867
870
  this.rect.y += y;
868
871
  this.rect.ex = this.rect.x + this.rect.width;
@@ -21,13 +21,10 @@ 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',
30
- fontSize: 12,
27
+ fontSize: json.name === 'select' ? 14 : 12,
31
28
  lineHeight: 1.5,
32
29
  fontStyle: 'normal',
33
30
  fontWeight: 'normal',
@@ -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
  }
@@ -261,7 +261,6 @@ var Pen = /** @class */ (function () {
261
261
  }catch (error) { }
262
262
  }
263
263
  console.log('doSocketMqtt-------------', jsonNode)
264
- Store.set('mqtt:responseData', jsonNode)
265
264
  //const { areaData, assetData, data } = jsonNode
266
265
  if (!this.data && this.data.length <= 0 && typeof this.data !== 'object') return
267
266
  // const subscribeObj = {
@@ -8,10 +8,10 @@ var Rect = /** @class */ (function () {
8
8
  this.height = height;
9
9
  this.center = new Point(0, 0);
10
10
  if (width < 0) {
11
- width = 0;
11
+ this.width = 0;
12
12
  }
13
13
  if (height < 0) {
14
- height = 0;
14
+ this.height = 0;
15
15
  }
16
16
  this.init();
17
17
  }
@@ -11,6 +11,7 @@ export declare enum KeydownType {
11
11
  Canvas = 1
12
12
  }
13
13
  export interface Options {
14
+ type?: string;
14
15
  cacheLen?: number;
15
16
  extDpiRatio?: number;
16
17
  width?: string | number;