topo-engine 0.1.9 → 0.1.10

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.
package/README.md CHANGED
@@ -268,6 +268,7 @@ const dataUrl = ref('/data/topology.json');
268
268
  > topo.locateNode(assetNo); // 定位到某户表位中心
269
269
  > topo.highlightNode(assetNo, { color: '#FF0000' }); // 该户表位高亮环
270
270
  > topo.setNodeGlow(assetNo, { color: '#FF6600' }); // 该户表位光晕
271
+ > topo.setNodeGlow(assetNo, { blink: true, color: '#FF6600' }); // 该户表位整体闪烁
271
272
  > topo.setNodePulse(assetNo); // 该户电表格脉动
272
273
  > topo.setText(assetNo, '异常'); // 表位上方标注
273
274
  > topo.showCard(assetNo); // 客户档案卡片(定位在表位旁)
@@ -337,7 +338,8 @@ topo.unhighlightAll();
337
338
 
338
339
  ```javascript
339
340
  topo.setNodePulse('2', { color: '#00C8FF', duration: 1500 }); // 节点脉动
340
- topo.setNodeGlow('2', { color: '#FF0000', spread: 18 }); // 节点光晕(发光环,颜色可设;ref 支持 psrId)
341
+ topo.setNodeGlow('2', { color: '#FF0000' }); // 节点光晕(多层光环 + shadowBlur 辉光 + blur 面光底衬;ref 支持 psrId)
342
+ topo.setNodeGlow('2', { color: '#FF0000', intensity: 2, spread: 30, blink: true, duration: 800 }); // 更夸张:加强 + 更大扩散 + 图元整体闪烁
341
343
  topo.removeNodeGlow('2');
342
344
  topo.setEdgeFlow('1', '2', { color: '#00C8FF', duration: 2000 }); // 边流动
343
345
  topo.removeAnimation('2');
package/dist/index.d.ts CHANGED
@@ -76,7 +76,24 @@ export class TopoApi {
76
76
  removeAllAnimations(): void;
77
77
 
78
78
  // 节点光晕动画(ref 支持节点 id / psrId / assetNo)
79
- setNodeGlow(ref: string, opts?: { color?: string; spread?: number; radius?: number; duration?: number; opacity?: number }): boolean;
79
+ // 渲染栈:blur 柔光底衬 + 实心光块 图元 外扩散环 ×2 霓虹主环(shadowBlur) 亮芯环
80
+ // intensity: 强度倍率(默认 1;1.5~2.5 更夸张,0.5~0.7 更收敛)
81
+ // spread: 光环外扩半径,默认按图元大小自适应(短边 ×0.7,16~46px)
82
+ // width: 主环初始线宽 (px),默认 5.6(户表位 3.6)
83
+ // blink: 图元「整体闪烁」——false 默认只画光环;true = 0.85;数字 0~1 为强度
84
+ setNodeGlow(ref: string, opts?: {
85
+ color?: string;
86
+ spread?: number;
87
+ radius?: number;
88
+ duration?: number;
89
+ opacity?: number;
90
+ width?: number;
91
+ intensity?: number;
92
+ level?: number;
93
+ strength?: number;
94
+ blink?: boolean | number;
95
+ flash?: boolean | number;
96
+ }): boolean;
80
97
  removeNodeGlow(ref: string): boolean;
81
98
  removeAllNodeGlows(): void;
82
99
 
package/dist/style.css CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  /* —— 主题变量:dark 为默认值,light 由 [data-theme='light'] 覆盖 —— */
3
- .topo-wrap[data-v-d3774ed5] {
3
+ .topo-wrap[data-v-a4a4c398] {
4
4
  --tp-bg: #050505;
5
5
  --tp-toolbar-bg: rgba(20, 20, 20, 0.88);
6
6
  --tp-toolbar-border: #333;
@@ -19,7 +19,7 @@
19
19
  overflow: hidden;
20
20
  background: var(--tp-bg);
21
21
  }
22
- .topo-wrap[data-theme='light'][data-v-d3774ed5] {
22
+ .topo-wrap[data-theme='light'][data-v-a4a4c398] {
23
23
  --tp-bg: #ffffff;
24
24
  --tp-toolbar-bg: rgba(255, 255, 255, 0.92);
25
25
  --tp-toolbar-border: #d9d9d9;
@@ -33,11 +33,11 @@
33
33
  --tp-text: #555;
34
34
  --tp-error: #d32f2f;
35
35
  }
36
- .topo-container[data-v-d3774ed5] {
36
+ .topo-container[data-v-a4a4c398] {
37
37
  width: 100%;
38
38
  height: 100%;
39
39
  }
40
- .topo-toolbar[data-v-d3774ed5] {
40
+ .topo-toolbar[data-v-a4a4c398] {
41
41
  position: absolute;
42
42
  top: 10px;
43
43
  left: 12px;
@@ -52,14 +52,14 @@
52
52
  color: var(--tp-text);
53
53
  z-index: 10;
54
54
  }
55
- .topo-title[data-v-d3774ed5] {
55
+ .topo-title[data-v-a4a4c398] {
56
56
  color: var(--tp-title);
57
57
  font-weight: 600;
58
58
  }
59
- .topo-meta[data-v-d3774ed5] {
59
+ .topo-meta[data-v-a4a4c398] {
60
60
  color: var(--tp-meta);
61
61
  }
62
- .btn[data-v-d3774ed5] {
62
+ .btn[data-v-a4a4c398] {
63
63
  margin-left: 4px;
64
64
  padding: 3px 10px;
65
65
  border: 1px solid var(--tp-btn-border);
@@ -69,12 +69,12 @@
69
69
  cursor: pointer;
70
70
  font-size: 12px;
71
71
  }
72
- .btn[data-v-d3774ed5]:hover {
72
+ .btn[data-v-a4a4c398]:hover {
73
73
  border-color: var(--tp-accent);
74
74
  color: var(--tp-accent);
75
75
  }
76
- .topo-loading[data-v-d3774ed5],
77
- .topo-error[data-v-d3774ed5] {
76
+ .topo-loading[data-v-a4a4c398],
77
+ .topo-error[data-v-a4a4c398] {
78
78
  position: absolute;
79
79
  inset: 0;
80
80
  display: flex;
@@ -85,7 +85,7 @@
85
85
  z-index: 5;
86
86
  background: var(--tp-overlay-bg);
87
87
  }
88
- .topo-error[data-v-d3774ed5] {
88
+ .topo-error[data-v-a4a4c398] {
89
89
  color: var(--tp-error);
90
90
  }
91
91