feat(signing): 将签署占位符改为原子节点并支持多选选项组
This commit is contained in:
@@ -140,6 +140,9 @@ export function buildSignatureFieldsPayload(contentHtml: string): unknown[] {
|
||||
kind: field.kind,
|
||||
required: field.required,
|
||||
options: field.options,
|
||||
// 单/多选必须一起上报:后端靠它渲染签署控件与做取值校验,
|
||||
// 缺了这个字段就只能按 kind 猜,多选组会被当成单个勾选框
|
||||
...(field.multi === undefined ? {} : { multi: field.multi }),
|
||||
...(field.risk ? { risk: field.risk } : {}),
|
||||
}))
|
||||
}
|
||||
|
||||
@@ -189,11 +189,29 @@ export interface SigningFieldDef {
|
||||
required: boolean
|
||||
/** choice / checkbox 的可选项 */
|
||||
options: string[]
|
||||
/**
|
||||
* 有选项时是否允许多选(渲染成一组 checkbox 而不是互斥单选)。
|
||||
*
|
||||
* 必须显式声明,不能靠"这一块里有几个方框"去猜:
|
||||
* 「□高血压 □糖尿病 □冠心病」是三项可同时成立的多选,
|
||||
* 猜成互斥单选会让科室只能勾一个,且当场看不出错。
|
||||
*
|
||||
* 缺省口径:choice 默认单选;checkbox 带选项时默认多选(勾选本来就是"可勾多个"),
|
||||
* 不带选项时是单个布尔勾选(options 为空,multi 无意义)。
|
||||
*/
|
||||
multi?: boolean
|
||||
/** 取值等于该字符串时视为异常项(如风险筛查选了"是") */
|
||||
risk?: string
|
||||
}
|
||||
|
||||
export type SigningFieldValue = string | boolean
|
||||
/**
|
||||
* 填写项取值。
|
||||
* - text / date:字符串
|
||||
* - choice:字符串(选中的那一项)
|
||||
* - checkbox:布尔(单个勾选);带选项且多选时是字符串数组
|
||||
* - signature:签名图的 dataURL
|
||||
*/
|
||||
export type SigningFieldValue = string | boolean | string[]
|
||||
|
||||
/** 填写项取值,key 为 SigningFieldDef.id。 */
|
||||
export type SigningAnswers = Record<string, SigningFieldValue>
|
||||
|
||||
Reference in New Issue
Block a user