ice-entity-designer 0.0.39 → 0.0.40

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
@@ -4,20 +4,34 @@
4
4
 
5
5
  <h1 align="center">IED · ice entity designer</h1>
6
6
 
7
- <p align="center">基于 ice-render 的可视化 ER 建模工具:拖拽建图,一键导出 TypeORM Schema。</p>
7
+ <p align="center">基于 ice-render 的可视化建模工具集:一套引擎承载 8 个域包 —— ER、流程图、BPMN 2.0、UML 类图、状态机、甘特、电力一次、电力二次。</p>
8
8
 
9
9
  <p align="center">
10
10
  <a href="./LICENSE"><img alt="license" src="https://img.shields.io/badge/license-MIT-047857.svg" /></a>
11
11
  <img alt="engine bundled" src="https://img.shields.io/badge/engine-bundled-047857.svg" />
12
- <img alt="tests" src="https://img.shields.io/badge/jest-168%20passed-047857.svg" />
12
+ <img alt="domain packs" src="https://img.shields.io/badge/domain%20packs-8-047857.svg" />
13
+ <img alt="tests" src="https://img.shields.io/badge/jest-295%20passed-047857.svg" />
13
14
  <img alt="typescript" src="https://img.shields.io/badge/TypeScript-4.6-3178c6.svg" />
14
15
  </p>
15
16
 
16
17
  ## 1. 项目定位
17
18
 
18
- IED(ice entity designer)是基于 [ice-render](https://github.com/ice-render/ice-render) 构建的**可视化 Entity-Relation 建模工具**。它以「节点 = 实体,连线 = 关系」组织数据模型,把画布上的设计结果序列化为符合 TypeORM `EntitySchema` 规范的 Schema,从而将「结构设计」与「实体类 / CRUD 代码生成」直接衔接。
19
+ IED(ice entity designer)是基于 [ice-render](https://github.com/ice-render/ice-render) 构建的**可视化建模工具集**:同一套引擎、同一套应用层机制(选择 / 增删改 / 连线 / 撤销重做 / 快照 / 语义校验 / 矢量导出)之上承载多个「域包」,每个域包 = **一个领域的记法 + 应用层 + 语义校验**。
19
20
 
20
- 它不重复实现底层图元,而是在 ice-render 的通用图编辑内核之上,收敛出 ER 建模最常用的交互闭环:选择、创建、更新、删除、关系连接、校验与 Schema 输出。
21
+ 现已落地 8 个域包:
22
+
23
+ | 域包 | 图种 | 标准依据 / 互操作 |
24
+ |---|---|---|
25
+ | **ER**(默认) | 实体-关系模型 | 导出 TypeORM `EntitySchema` |
26
+ | 流程图 | 起止 / 处理 / 判定 / 输入输出 | — |
27
+ | BPMN 2.0 | 池 / 泳道 / 事件 / 网关 / 任务 | BPMN 2.0 XML 导入 + 导出(含 BPMNDI 布局) |
28
+ | UML 类图 | 三段式类框 + 六种关系 | PlantUML / Mermaid 类图文本互操作 |
29
+ | 状态机 | 伪状态 / 状态 / 复合状态容器 | PlantUML 状态图文本互操作 |
30
+ | 甘特图 | 任务条 / 依赖线 / 关键路径 | Mermaid gantt 文本互操作 |
31
+ | 电力一次系统图 | 单线图(23 种设备符号) | JB/T 5872-1991、GB/T 4728;电压一致 / 母线 T 接 / 五防校验 |
32
+ | 电力二次回路 | 保护电流回路 + 端子排 | GB/T 4728.7、C37.2;回路编号 / 三相成组 / 端子号 / 接地校验 |
33
+
34
+ 默认域包 ER 以「节点 = 实体,连线 = 关系」组织数据模型,把画布上的设计结果序列化为符合 TypeORM `EntitySchema` 规范的 Schema,从而将「结构设计」与「实体类 / CRUD 代码生成」直接衔接;其它域包复用同一套交互闭环(选择、创建、更新、删除、关系连接、校验与导出),只在**记法**与**语义校验**上做区分。
21
35
 
22
36
  > **引擎内核已打包进本包**:安装 `ice-entity-designer` 即可直接使用,无需再安装 `ice-render`——内核在构建时被打进产物并从本包一并导出(含完整类型声明),保证 `ICE` 实例与 `Entity` / `Relation` 组件来自同一份内核。
23
37
 
@@ -27,6 +41,8 @@ IED(ice entity designer)是基于 [ice-render](https://github.com/ice-render
27
41
 
28
42
  ## 2. 核心能力
29
43
 
44
+ 本节以默认域包 **ER** 为例展开;其余域包的能力见第 5 节「使用方式」与 `examples/` 下各自的示例页。
45
+
30
46
  ### 可视化建模
31
47
 
32
48
  - 拖拽编辑实体:实体名、字段类型、长度、默认值、注释。
@@ -109,6 +125,31 @@ IED(ice entity designer)是基于 [ice-render](https://github.com/ice-render
109
125
 
110
126
  <img src="./examples/assets/bpmn-editor.png" alt="BPMN 2.0 编辑器示例(信用卡申请审批)" />
111
127
 
128
+ 同一套引擎继续承载 **UML 类图**(`examples/uml-editor.html`)—— 三段式类框、六种关系、继承成环校验,
129
+ 以及 PlantUML / Mermaid 类图文本互操作:
130
+
131
+ <img src="./examples/assets/uml-editor.png" alt="UML 类图编辑器示例" />
132
+
133
+ **状态机**(`examples/statechart-editor.html`)—— 伪状态、普通状态、**复合状态容器**(拖动父容器时子状态跟随),
134
+ 转移标签写作 `事件 [守卫] / 动作`:
135
+
136
+ <img src="./examples/assets/statechart-editor.png" alt="状态机编辑器示例" />
137
+
138
+ **甘特图**(`examples/gantt-editor.html`)—— 时间轴与按天吸附、依赖线、自动排程与关键路径、
139
+ 资源冲突校验、Mermaid gantt 文本互操作:
140
+
141
+ <img src="./examples/assets/gantt-editor.png" alt="甘特编辑器示例" />
142
+
143
+ **电力一次系统图**(`examples/power-editor.html`)—— 110kV 双母线 + 10kV 单母线分段、69 台设备;
144
+ 开关分合、带电分析与电压色标、五防相关校验、SVG / JSON 导出:
145
+
146
+ <img src="./examples/assets/power-editor.png" alt="电力一次系统图(单线图)编辑器示例" />
147
+
148
+ **电力二次回路**(`examples/secondary-editor.html`)—— 保护电流回路:CT 二次绕组 → 三相电流回路 →
149
+ 端子排 → 保护装置,N 侧接地;端子排是真容器 —— 拖动跟随、快照往返不丢:
150
+
151
+ <img src="./examples/assets/secondary-editor.png" alt="电力二次回路编辑器示例" />
152
+
112
153
  ## 4. 快速开始
113
154
 
114
155
  ```bash
@@ -635,7 +676,8 @@ React 里可沿用 `createFlowSession` 的模式自建一层封装。
635
676
  ### 7.1 一个「域包(domain pack)」由什么组成
636
677
 
637
678
  域包 = **一个领域的记法 + 应用层 + 语义校验**,跑在同一套引擎与同一套应用层机制上。现已落地
638
- 6 类文档:ER、流程图、UML 类图、状态机、甘特、BPMN 2.0 —— 边际成本主要在「记法本身」,不在编辑器:
679
+ 8 个域包:ER、流程图、BPMN 2.0、UML 类图、状态机、甘特、电力一次系统图、电力二次回路 —— 边际成本
680
+ 主要在「记法本身」,不在编辑器:
639
681
 
640
682
  | 组成 | 复用什么 | 以 UML 为例 |
641
683
  |---|---|---|
@@ -675,6 +717,18 @@ src/
675
717
  │ ├── BpmnDesigner.ts # 应用层:容器真嵌套(池→泳道→节点)、条件与默认流标记、语义校验
676
718
  │ ├── bpmn_validate.ts # BPMN 语义校验(开始事件 / 跨池顺序流 / 网关分支 / 可达性)
677
719
  │ └── bpmn_xml.ts # BPMN 2.0 XML 导入导出(含 BPMNDI 布局)
720
+ ├── statechart/ # 状态机(domain pack:伪状态 / 状态 / 复合状态容器)
721
+ │ ├── StateNode.ts # 状态节点:伪状态 / 普通状态 / 复合状态(容器,子状态随父平移)
722
+ │ ├── StateTransition.ts # 转移:标签写作 `事件 [守卫] / 动作`
723
+ │ ├── statechart_text.ts # PlantUML 状态图文本互操作(导入 + 导出)
724
+ │ └── StatechartDesigner.ts # 应用层:建图元 + 复合状态自动尺寸 + 语义校验
725
+ ├── power/ # 电力一次系统图(单线图:符号库 + 拓扑 + 带电 + 校验)
726
+ │ ├── power_shapes.ts # 23 种一次设备符号(JB/T 5872-1991、GB/T 4728.1/3/4/6)
727
+ │ ├── power_voltage.ts # 电压等级色标(500kV / 220kV / 110kV / 35kV / 10kV / 6kV)
728
+ │ └── PowerDesigner.ts # 应用层:开关分合 / 拓扑求解 / 带电着色 / 母线 T 接 / 语义校验
729
+ ├── secondary/ # 电力二次回路(保护电流回路 + 端子排)
730
+ │ ├── secondary_shapes.ts # 10 种二次元件符号(GB/T 4728.7,文字符号用 C37.2 功能编号)
731
+ │ └── SecondaryDesigner.ts # 应用层:回路编号 / 端子排容器 / 二次语义校验
678
732
  ├── er-component/
679
733
  │ ├── Entity.ts # 实体:表头 + 字段列表 + 约束标记 + TypeORM 序列化
680
734
  │ └── Relation.ts # 关系:基数 / 箭头 / 标签语义 / 连接槽位
@@ -699,7 +753,7 @@ src/
699
753
  | `npm run build` | 清理并完整构建(类型声明 + JS 产物) |
700
754
  | `npm run types:check` | 仅做 TypeScript 类型检查 |
701
755
  | `npm test` | 运行单元测试(Jest) |
702
- | `npm run test:e2e` | 浏览器端到端回归(Playwright,覆盖 `examples/entity-editor.html` `examples/flowchart-editor.html`) |
756
+ | `npm run test:e2e` | 浏览器端到端回归(Playwright,先 `npm run build`;覆盖 9 个示例页:ER / 流程图 / BPMN / UML / 状态机 / 甘特 / 电力一次 / 电力符号表 / 电力二次,各自做交互断言与 console 零报错检查) |
703
757
  | `npm run pretty` | Prettier 格式化源码 |
704
758
 
705
759
  ## 9. 环境要求与依赖