feat: working version

This commit is contained in:
Тимур Городецкий
2026-07-27 17:50:31 +05:00
commit 8a79c259b4
86 changed files with 29298 additions and 0 deletions
@@ -0,0 +1,45 @@
import * as React from 'react';
import { Checkbox } from '@fluentui/react';
import styles from './Step1SelectPositions.module.scss';
import { PurchaseRequestDetail } from '../types/domain';
import { UseStep1SelectionResult } from './useStep1Selection';
interface RequestLinesProps {
detail: PurchaseRequestDetail;
selection: UseStep1SelectionResult;
disabled?: boolean; // форма только для чтения
}
// Позиции (строки) заявки: таблица с чекбоксами. То, что попадёт в СТ.
// Цены на Шаге 1 не показываем — они появятся на Шагах 2–3 (КП/сравнение).
export function RequestLines({ detail, selection, disabled }: RequestLinesProps): JSX.Element {
return (
<div className={styles.lines}>
<div className={`${styles.lineRow} ${styles.lineHead}`}>
<span />
<span>№</span>
<span>Код</span>
<span>Наименование</span>
<span>Кат. №</span>
<span>Кол-во</span>
<span>Ед. изм.</span>
</div>
{detail.lines.map((line) => (
<div key={line.id} className={styles.lineRow}>
<Checkbox
checked={selection.selectedIds.has(line.id)}
onChange={() => selection.toggleLine(detail, line)}
disabled={disabled}
/>
<span>{line.lineNo}</span>
<span>{line.code || '—'}</span>
<span className={styles.lineName}>{line.name}</span>
<span>{line.catalogNumber || '—'}</span>
<span>{line.quantity}</span>
<span>{line.unit}</span>
</div>
))}
</div>
);
}