generated from kgod/ai-review-template
35 lines
1.1 KiB
Python
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,
|
|
)
|