import { Button, Input, Tooltip } from 'antd'; import type { DocumentType, IssueOut, StatementHeaderOut } from '../../types/api'; import { SeverityIcon } from './IssuesPanel'; import { type HeaderFieldKey, headerFields } from './headerFields'; import { worstSeverity } from './issuePlaces'; 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; /** предупреждения по полям шапки (IssuePlaces.byField) */ byField?: Map; /** «Подтвердить дату»; черновик подтверждения подключает T6 */ onConfirmDate?: () => void; }; const ATTENTION_BG = '#fff7e6'; const MODIFIED_BG = '#e6f4ff'; const PLACEHOLDER: Record = { organization_name: 'Наименование организации', 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, byField, onConfirmDate }: Props) { const reportDate = formatReportDate(header.report_date.value); return (
{headerFields(header, byField).map((r) => ( ))}
{r.label} {r.issues.length > 0 && ( i.message).join('; ')}> )} {editing ? ( <> onDraftChange(r.field, e.target.value)} /> {r.canConfirm && onConfirmDate && ( )} ) : ( {r.text} )}
{formTitle(documentType)}
{reportDate &&
на {reportDate}
}
); }