Files

35 lines
1.1 KiB
Python

"""记录类模块表单卡构造(RecordFields 组件的后端契约)。"""
from __future__ import annotations
from typing import Any
from .enrichment_modules import ModuleSpec
from .fsm import anchor_field_specs, component
def record_card(
profile: dict[str, Any], spec: ModuleSpec, value: dict[str, Any] | None = None
) -> dict[str, Any]:
"""anchor_note 仅描述;record_fields 按经历类型渲染核心字段。"""
draft = profile["enrichment"]["module_draft"]
entry = draft.get("entry") if isinstance(draft.get("entry"), dict) else {}
record_type = (
draft.get("record_type")
or entry.get("record_type")
or spec.record_type
or profile.get("anchor_type")
)
is_note = spec.kind == "anchor_note"
return component(
"RecordFields",
module=spec.name,
record_type=record_type,
title=spec.prompt,
fields=[] if is_note else anchor_field_specs(record_type),
show_description=True,
require_description=is_note,
skippable=spec.skippable,
value=value,
)