diff --git a/static/admin/editor.js b/static/admin/editor.js index 6fb9938..6567fbb 100644 --- a/static/admin/editor.js +++ b/static/admin/editor.js @@ -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); }