fix(def-editor): 空出口分支(直接通过)往返支持——解析不再造无审批人占位卡(曾致打开即报"未选择科室映射"且保存凭空加节点改语义);序列化空分支=起点→汇合点命名+条件直连边(Tail 携带出口属性);校验空分支降为 warn(并行分支保持 error:后端禁 SPLIT 直连 JOIN);ConditionBox 空分支渲染"直达汇合点"提示。convert 往返 64/64(新增空分支/空泳道 6 例+修正 1 处过期负例文案)
build / build (push) Successful in 1m53s

This commit is contained in:
chenxing
2026-10-12 11:29:07 +08:00
parent 2a1ec48b25
commit ecd082bb99
3 changed files with 57 additions and 15 deletions
+4 -2
View File
@@ -69,7 +69,8 @@ export function validateModel(model: EditorModel, depts: DeptOption[], routers:
(item.branches || []).forEach((branch, i) => {
const p = `${path}·出口「${item.outlets![i] || i + 1}」`;
if (!branch.length) {
push(item.uid, "error", p, "出口泳道为空,请添加节点");
// 空出口泳道(2026-10-12):合法语义=该出口直达汇合点(直接通过),仅提示不阻断
push(item.uid, "warn", p, "出口泳道为空:该出口直达汇合点(直接通过)");
return;
}
rec(branch, p);
@@ -136,7 +137,8 @@ export function validateModel(model: EditorModel, depts: DeptOption[], routers:
item.branches.forEach((branch, i) => {
const branchPath = `${path}·出口「${item.outlets[i] || BRANCH_LABELS[i] || i + 1}」`;
if (!branch.length) {
push(item.uid, "error", branchPath, "分支为空,请添加节点");
// 空出口分支(2026-10-12):合法语义=该出口直达汇合点(直接通过),仅提示不阻断
push(item.uid, "warn", branchPath, "分支为空:该出口直达汇合点(直接通过)");
return;
}
rec(branch, branchPath);