import { Input, Tooltip } from 'antd'; import type { DocumentType, StatementHeaderOut } from '../../types/api'; import { type HeaderFieldKey, headerFields } from './headerFields'; import { formTitle, formatReportDate } from './reviewView'; export type HeaderDraft = Partial>; type Props = { header: StatementHeaderOut; documentType: DocumentType; editing: boolean; draft: HeaderDraft; onDraftChange: (field: HeaderFieldKey, text: string) => void; }; const ATTENTION_BG = '#fff7e6'; const MODIFIED_BG = '#e6f4ff'; const PLACEHOLDER: Record = { inn: 'ИНН', report_date: 'ГГГГ-ММ-ДД', units: 'тыс. руб.' }; const cell = { border: '1px solid #d0d5dd', padding: '4px 10px' }; function fieldBackground(modified: boolean, attention: boolean): string | undefined { if (modified) return MODIFIED_BG; return attention ? ATTENTION_BG : undefined; } /** * Шапка формы как в старом АРМ (PDFResultViewer): справа компактная таблица ИНН / Дата отчёта / Единица измерения — * ровно то, что распознавание извлекает надёжно; дальше заголовок формы. Реквизиты бумажной формы из макета [41] * (ОКПО, ОКОПФ, ОКФС, адрес) распознавание не отдаёт (arm-scan-gateway#15) — пустые рамки не рисуем. */ export function StatementHeaderBlock({ header, documentType, editing, draft, onDraftChange }: Props) { const reportDate = formatReportDate(header.report_date.value); return (
{headerFields(header).map((r) => ( ))}
{r.label} {editing ? ( onDraftChange(r.field, e.target.value)} /> ) : ( {r.text} )}
{formTitle(documentType)}
{reportDate &&
на {reportDate}
}
); }