fix(signing-editor-marks): 统一占位符样式并修复删除后 DOM 残留

自定义渲染器渲染钩子改走 data.attrs 挂类名与 title:data.class 会被
wangEditor 的规范化函数搬进 props 且到不了 class 模块(胶囊不渲染),
data.props.className 则因 props 模块只单向写入而摘不掉旧值,导致勾选框
退格删除后 DOM 仍残留 ms-sign-box 空壳。

同时移除必填标记相关的红角标、签名位专属橙色、插入按钮与「占位符检查」
面板里的 `*` / 「必填」文案,所有占位符共用一个样式。

verify-editor-marks.cjs 增加断言台账(PASS/FAIL 并反映退出码)、叶子结构
探针与退格删除回归,README 补充「踩过的坑 · 5」说明渲染通道的选择。
This commit is contained in:
yelan
2026-09-18 16:40:08 +08:00
parent 6034f4f8e2
commit b967077873
6 changed files with 348 additions and 311 deletions
@@ -295,10 +295,10 @@ function save() {
type="button"
class="placeholder-chip"
:class="{ 'is-signature': field.kind === 'signature' }"
:title="`${kindLabels[field.kind]}字段;签署时按患者与就诊信息自动填充${field.required ? ',必填' : ''}`"
:title="`${kindLabels[field.kind]}字段;签署时按患者与就诊信息自动填充`"
@click="insertField(field)"
>
{{ field.label }}{{ field.required ? ' *' : '' }}
{{ field.label }}
</button>
<button
type="button"
@@ -336,7 +336,6 @@ function save() {
<span v-for="field in detectedFields" :key="field.id" class="placeholder-check__item">
{{ field.label }}
<em>{{ kindLabels[field.kind] }}</em>
<i v-if="field.required">必填</i>
</span>
</div>
<p v-else class="placeholder-check__empty">
@@ -590,12 +589,6 @@ function save() {
font-style: normal;
}
.placeholder-check__item i {
color: var(--err);
font-size: 10.5px;
font-style: normal;
}
.placeholder-check__empty {
margin: 0;
color: var(--mut);
@@ -238,7 +238,8 @@ onBeforeUnmount(() => {
border-radius: 4px;
}
/* 类型角标:签名/日期/文本……让科室不点开也知道这一项要填什么 */
/* 类型角标:签名/日期/文本……让科室不点开也知道这一项要填什么。
所有占位符共用一个样式,靠这个角标区分类型,不再按必填/签名位分色 */
.pane-content :deep(.ms-sign-chip)::after {
padding-left: 5px;
margin-left: 5px;
@@ -250,25 +251,6 @@ onBeforeUnmount(() => {
opacity: 0.7;
}
/* 必填项:角标转红并补一个星号,和下方「占位符检查」面板的口径一致 */
.pane-content :deep(.ms-sign-chip[data-sign-required='true'])::after {
color: var(--err);
content: attr(data-sign-tag) ' *';
opacity: 1;
}
/* 签名位是最不能漏的一项:与「插入签署占位符」按钮里的橙色区分保持一致 */
.pane-content :deep(.ms-sign-chip[data-sign-kind='signature']) {
color: #a96900;
background: #fff4e2;
border-color: #f0d5a8;
}
.pane-content :deep(.ms-sign-brace[data-sign-kind='signature']) {
color: #c08a3e;
opacity: 0.7;
}
/* 勾选框:签署时会转成可勾选控件,这里给它一个"框"的观感。
只上底色不加边框——□ 本身就是个方框,外面再套一圈边框会变成"框中框" */
.pane-content :deep(.ms-sign-box) {