Merge branch 'fix/nested-if-branch-sync'——修复嵌套条件判断的分支同步写错容器(填了值保存就没了 / 步骤被改名)

This commit is contained in:
2026-09-24 11:45:46 +08:00
+7 -2
View File
@@ -996,11 +996,16 @@ var _stepEditor={
self._syncParams(childWrap,steps[i].params.children);
}
// if_el 双分支(then/else 在 .if-branch 内,不会与上面的直接子级选择器冲突)
var thenWrap=card.querySelector(':scope > .if-branch .step-children.if-then');
//
// ⚠ `.if-branch` 与 `.step-children` 之间**必须是 `>`(直接子级)**:
// 写成后代(空格)时,条件判断里再嵌套一个条件判断的话,本卡片会**匹配到内层
// 那个 if_el 的分支容器**(文档顺序上更靠前),于是把内层分支的子步骤当成自己的
// 去同步 —— 症状:自己的步骤"填了值保存就没了"、步骤名被内层的容器步骤覆盖。
var thenWrap=card.querySelector(':scope > .if-branch > .step-children.if-then');
if(thenWrap&&steps[i].params&&Array.isArray(steps[i].params.then)){
self._syncParams(thenWrap,steps[i].params.then);
}
var elseWrap=card.querySelector(':scope > .if-branch .step-children.if-else');
var elseWrap=card.querySelector(':scope > .if-branch > .step-children.if-else');
if(elseWrap&&steps[i].params&&Array.isArray(steps[i].params.else)){
self._syncParams(elseWrap,steps[i].params.else);
}