feat(签署文书): 通用文本项按出现位置独立成项并插入文本框占位符
This commit is contained in:
@@ -30,6 +30,7 @@ import type { IEditorConfig } from '@wangeditor/editor'
|
||||
|
||||
import {
|
||||
createFieldTokenPattern,
|
||||
isCustomFieldId,
|
||||
resolveFieldByLabel,
|
||||
SIGNING_FIELD_KIND_LABELS,
|
||||
SIGNING_OPTION_MARKERS,
|
||||
@@ -57,6 +58,8 @@ interface SigningLeafMark {
|
||||
/** 控件类型的中文名,渲染在胶囊右侧 */
|
||||
signTag?: string
|
||||
signRequired?: boolean
|
||||
/** 是否目录外的自定义文本项(现场手填),决定悬浮提示里说"自动填充"还是"现场填写" */
|
||||
signCustom?: boolean
|
||||
/** 原文,如 {患者姓名},用于悬浮提示 */
|
||||
signRaw?: string
|
||||
}
|
||||
@@ -97,6 +100,7 @@ export function decorateSigningMarkers([node, path]: DecoratedEntry): DecoratedR
|
||||
signKind: field.kind,
|
||||
signTag: SIGNING_FIELD_KIND_LABELS[field.kind] ?? '文本',
|
||||
signRequired: field.required,
|
||||
signCustom: isCustomFieldId(field.id),
|
||||
signRaw: text.slice(start, end),
|
||||
}
|
||||
|
||||
@@ -177,8 +181,11 @@ function renderSigningMarker(node: StyledNode, vnode: StyledVNode): StyledVNode
|
||||
|
||||
if (mark.signPart === 'label') {
|
||||
const kind = mark.signTag ?? '文本'
|
||||
// 提示必须分开说:目录里的字段签署时自动填充,自定义文本项是留给现场手填的空框。
|
||||
// 一律写成"自动填充",科室会以为写了占位符就有人替他填。
|
||||
const source = mark.signCustom ? '签署时由患者/家属现场填写' : '签署时按患者与就诊信息自动填充'
|
||||
props.className = 'ms-sign-chip'
|
||||
props.title = `待填写项:${mark.signRaw ?? ''}(${kind}${mark.signRequired ? ',必填' : ''}),签署时按患者与就诊信息自动填充`
|
||||
props.title = `待填写项:${mark.signRaw ?? ''}(${kind}${mark.signRequired ? ',必填' : ''}),${source}`
|
||||
|
||||
if (mark.signTag) {
|
||||
dataset.signTag = mark.signTag
|
||||
|
||||
Reference in New Issue
Block a user