feat(文书编辑): 支持插入勾选框与占位符片段

This commit is contained in:
yelan
2026-09-14 11:07:04 +08:00
parent 5c5a8fc90b
commit f4e2671da6
@@ -97,7 +97,14 @@ function handleCampusChange() {
} }
} }
function insertPlaceholder(text: string) { // 勾选框与占位符走同一个 EditorPaneHandle.insertText:光标停在表格单元格里,
// 插入的内容就落在这个单元格,签署时由渲染管线转为可交互选项。
const choiceSnippets = [
{ label: '勾选框 □', text: '□', title: '在光标处插入一个勾选框' },
{ label: '二选一 □是 □否', text: '□是 □否', title: '插入一对互斥选项,可自行改文字' },
]
function insertContent(text: string) {
paneRef.value?.insertText(text) paneRef.value?.insertText(text)
} }
@@ -227,12 +234,27 @@ function save() {
:key="item" :key="item"
type="button" type="button"
class="placeholder-chip" class="placeholder-chip"
@click="insertPlaceholder(item)" @click="insertContent(item)"
> >
{{ item }} {{ item }}
</button> </button>
</div> </div>
</div> </div>
<div class="meta-field">
<span>插入勾选框</span>
<div class="placeholder-row">
<button
v-for="snippet in choiceSnippets"
:key="snippet.label"
type="button"
class="placeholder-chip"
:title="snippet.title"
@click="insertContent(snippet.text)"
>
{{ snippet.label }}
</button>
</div>
</div>
</div> </div>
<div class="editor-shell"> <div class="editor-shell">
@@ -255,7 +277,7 @@ function save() {
/> />
<span v-if="importMessage" class="docx-message">{{ importMessage }}</span> <span v-if="importMessage" class="docx-message">{{ importMessage }}</span>
<span v-else class="docx-hint"> <span v-else class="docx-hint">
建议从 Word/WPS 中全选复制文书后直接粘贴到下方编辑区;需要患者勾选的条目请做成表格——表头第一行写「勾选」,旁边一列写「项目」,签署时该列会自动转为勾选框。 建议从 Word/WPS 中全选复制文书后直接粘贴到下方编辑区;需要患者勾选的内容可点上方「插入勾选框」按钮插入(光标停在表格单元格里就插到该单元格),或用表头含「勾选」列的表格承载。
</span> </span>
</div> </div>
<div class="editor-area"> <div class="editor-area">