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 +3 -1
- package/dist/index.d.ts +18 -1
- package/dist/style.css +11 -11
- package/dist/topo-engine.cjs +335 -57
- package/dist/topo-engine.cjs.map +1 -1
- package/dist/topo-engine.js +335 -57
- package/dist/topo-engine.js.map +1 -1
- package/dist/topo-engine.umd.cjs +335 -57
- package/dist/topo-engine.umd.cjs.map +1 -1
- package/docs/API.md +46 -11
- package/package.json +1 -1
package/docs/API.md
CHANGED
|
@@ -878,32 +878,67 @@ topo.setNodePulse('123', { color: '#FF0000', duration: 1500 });
|
|
|
878
878
|
|
|
879
879
|
### `setNodeGlow(ref, options?)`
|
|
880
880
|
|
|
881
|
-
**节点光晕动画** ——
|
|
882
|
-
用于告警 / 定位 /
|
|
881
|
+
**节点光晕动画** —— 节点周围的霓虹式发光(多层光环 + 辉光 + 面光底衬),
|
|
882
|
+
用于告警 / 定位 / 状态强调等场景;开启 `blink` 后图元本体还会「整体闪烁」。
|
|
883
883
|
|
|
884
884
|
```ts
|
|
885
885
|
setNodeGlow(ref: string, options?: {
|
|
886
|
-
color?: string;
|
|
887
|
-
spread?: number;
|
|
888
|
-
radius?: number;
|
|
889
|
-
duration?: number;
|
|
890
|
-
opacity?: number;
|
|
886
|
+
color?: string; // 光晕颜色,默认 '#00C8FF'(青)
|
|
887
|
+
spread?: number; // 光环外扩半径 (px),默认按图元大小自适应(短边 ×0.7,16~46px)
|
|
888
|
+
radius?: number; // spread 的别名(兼容早期文档)
|
|
889
|
+
duration?: number; // 一个周期时长 (ms),默认 1600
|
|
890
|
+
opacity?: number; // 光环最大透明度 (0-1),默认 0.95
|
|
891
|
+
width?: number; // 主环初始线宽 (px),默认 5.6(户表位 3.6),随相位收细
|
|
892
|
+
intensity?: number; // 强度倍率,默认 1(线宽 / 辉光 / 底光同时放大)
|
|
893
|
+
level?: number; // intensity 的别名
|
|
894
|
+
strength?: number; // intensity 的别名
|
|
895
|
+
blink?: boolean | number; // 图元「整体闪烁」:默认 false(只画光环)
|
|
896
|
+
flash?: boolean | number; // blink 的别名
|
|
891
897
|
}): boolean
|
|
892
898
|
```
|
|
893
899
|
|
|
900
|
+
**渲染栈(由下到上,为什么现在远看也醒目):**
|
|
901
|
+
1. **blur 柔光底衬**:用 canvas `filter: blur()` 画一块弥散的同色面光,范围随 `spread`;
|
|
902
|
+
2. **贴合图元轮廓的实心光块**:让节点“整块亮起来”,而不是只靠细线;
|
|
903
|
+
3. 图元本体;
|
|
904
|
+
4. **外扩散环 ×2**:扩散尾迹(最淡)+ 带辉光次环;
|
|
905
|
+
5. **霓虹主环**:粗线 + canvas `shadowBlur` 辉光 —— 真正的“发光”而不是一根线;
|
|
906
|
+
6. **亮芯环**:偏白的细高光,制造刺眼的发光中心。
|
|
907
|
+
|
|
908
|
+
**参数说明:**
|
|
909
|
+
- `intensity`:整体强度倍率,默认 `1`。想要更夸张给 `1.5`~`2.5`(辉光半径、线宽、面光同步放大),
|
|
910
|
+
觉得糊/太抢眼给 `0.5`~`0.7`;
|
|
911
|
+
- `spread`:扩散范围。不传时按图元短边自适应(小图元至少 16px,大图元最多 46px);
|
|
912
|
+
- `blink`:`false`(默认)只有光环;`true` = 0.85;`0.3`~`1` 为自定义强度,
|
|
913
|
+
数值 = 图元最暗时被压掉的透明度幅度(`1` → 图元完全隐去)。开启后每个周期做一次
|
|
914
|
+
「图元变暗 ↔ 恢复」的明暗交替,图元最暗的瞬间正是底衬光块最亮之时(与光环相位互补,
|
|
915
|
+
任何时刻都有强视觉元素,不会出现“整段动画都看不清”的空档);
|
|
916
|
+
- `duration`:既控制光环扩散快慢,也控制闪烁频率(想要更“急”的告警感给 700~900)。
|
|
917
|
+
|
|
894
918
|
**说明:**
|
|
895
919
|
- `ref` 支持 **节点内部 id / psrId(设备编码)** → 图元光环;
|
|
896
920
|
**客户 assetNo(资产编号,兼容 consNo/consId)→ 该户表位光环**(多户箱只亮那一格,单户箱即整箱那只表);
|
|
897
921
|
- 多个目标可同时发光;`removeAllAnimations()` 会一并停止光晕与脉动;
|
|
898
|
-
- 与「染色 /
|
|
922
|
+
- 与「染色 / 高亮」互不冲突:光环画在图元之上、选中金框之下,随节点/表位对齐;
|
|
923
|
+
`blink` 只压图元本体透明度,光环、高亮框、标注文字始终清晰。
|
|
899
924
|
|
|
900
925
|
**示例:**
|
|
901
926
|
```js
|
|
902
|
-
//
|
|
927
|
+
// 默认青色光晕(已经带辉光 + 底衬面光)
|
|
903
928
|
topo.setNodeGlow('8ff4786d548a7073a2517297e801518ff456732f4d');
|
|
904
929
|
|
|
905
|
-
//
|
|
906
|
-
topo.setNodeGlow('8ff4…', { color: '#
|
|
930
|
+
// 红色告警:更大扩散 + 更快周期 + 整体闪烁 + 加强
|
|
931
|
+
topo.setNodeGlow('8ff4…', { color: '#FF3B30', duration: 900, blink: true, intensity: 1.6 });
|
|
932
|
+
|
|
933
|
+
// 最夸张一档(远看/投影上都醒目)
|
|
934
|
+
topo.setNodeGlow('2', { color: '#FF2D2D', intensity: 2.4, spread: 34, width: 9, blink: 0.9, duration: 700 });
|
|
935
|
+
|
|
936
|
+
// 收敛一点(只要一个柔和光环)
|
|
937
|
+
topo.setNodeGlow('2', { intensity: 0.6, blink: false });
|
|
938
|
+
|
|
939
|
+
// 温和闪烁(最暗只降到 30%)/ 强烈闪烁(图元近乎全灭)
|
|
940
|
+
topo.setNodeGlow('2', { blink: 0.3 });
|
|
941
|
+
topo.setNodeGlow('2', { blink: 1 });
|
|
907
942
|
|
|
908
943
|
// 停止:removeNodeGlow(ref) / 停止全部 removeAllNodeGlows()
|
|
909
944
|
topo.removeNodeGlow('8ff4…');
|