feat(文档库): 编辑器内渲染占位符与勾选框胶囊

This commit is contained in:
yelan
2026-09-18 13:03:11 +08:00
parent 8b1cbee16f
commit 9062d0b3c5
8 changed files with 841 additions and 11 deletions
+20
View File
@@ -20,6 +20,26 @@ import type { SigningAnswers, SigningFieldDef, SigningFieldKind } from '@/api/wo
export const FIELD_TOKEN_OPEN = '{'
export const FIELD_TOKEN_CLOSE = '}'
/**
* 科室手打的复选框符号:几何图形方框,以及 Wingdings 私有区码位。
* Word「插入 → 符号」里的方框多为私有区字符(U+F0A8 等),粘贴后字体信息丢失、
* 只剩下码位,所以这些也要一并识别。
*
* 放在这里而不是各端各写一份:签署端(utils/signing-document)靠它把方框转成
* 可勾选控件,编辑器(utils/signing-editor-marks)靠它把方框标成勾选胶囊,
* 两边识别的字符集必须完全一致,否则会出现"编辑器标了、签署时没转"的静默失配。
*/
export const SIGNING_OPTION_MARKERS = '□☐▢◻❑❒\uF0A8\uF0FE'
/** 填写项控件类型的中文名,编辑器、占位符检查面板、签署端提示共用一份口径。 */
export const SIGNING_FIELD_KIND_LABELS: Record<SigningFieldKind, string> = {
text: '文本',
date: '日期',
choice: '单选',
checkbox: '勾选',
signature: '签名',
}
const FIELD_TOKEN_SOURCE = `${FIELD_TOKEN_OPEN}([^${FIELD_TOKEN_OPEN}${FIELD_TOKEN_CLOSE}]{1,40})${FIELD_TOKEN_CLOSE}`
/** /g 正则有 lastIndex 副作用,每次解析都新建一个,避免跨调用互相干扰。 */