fix(ServiceRequest): убрать лишний FormGrid внутри CollapseSection
CollapseSection.body у @tnsu/ui-kit уже сам является 2-колоночным грид-
контейнером (._body{grid-template-columns:1fr 1fr}) — FormGrid внутри
неё создавал ВЛОЖЕННЫЙ грид, который занимал только ОДНУ из двух колонок
родителя (как единственный grid-item без явного grid-column), а его
собственные две колонки делили уже урезанную пополам ширину. Из-за этого
«Объём работ», «Итого объёмы работ» и «Общие замечания» рендерились на
половине ширины карточки, хотя место было.
FormField кладём прямо в CollapseSection, без обёртки FormGrid — так уже
сделано во всех остальных формах (см. Clearance/RequestSection.tsx).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,20 +1,18 @@
|
|||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import { CollapseSection, FormGrid, FormField, TextArea } from '../../../shared/ui';
|
import { CollapseSection, FormField, TextArea } from '../../../shared/ui';
|
||||||
import { ISectionProps } from '../model';
|
import { ISectionProps } from '../model';
|
||||||
|
|
||||||
/** Общие замечания — отдельный блок бумажной формы, не относится к объёму работ. */
|
/** Общие замечания — отдельный блок бумажной формы, не относится к объёму работ. */
|
||||||
export const RemarksSection: React.FC<ISectionProps> = ({ data, set }) => (
|
export const RemarksSection: React.FC<ISectionProps> = ({ data, set }) => (
|
||||||
<CollapseSection title="Общие замечания" icon="info">
|
<CollapseSection title="Общие замечания" icon="info">
|
||||||
<FormGrid>
|
<FormField label="Общие замечания" htmlFor="GeneralRemarks" full>
|
||||||
<FormField label="Общие замечания" htmlFor="GeneralRemarks" full>
|
<TextArea
|
||||||
<TextArea
|
id="GeneralRemarks"
|
||||||
id="GeneralRemarks"
|
value={data.GeneralRemarks}
|
||||||
value={data.GeneralRemarks}
|
onChange={(v) => set('GeneralRemarks', v)}
|
||||||
onChange={(v) => set('GeneralRemarks', v)}
|
rows={4}
|
||||||
rows={4}
|
placeholder="Особые условия, ссылки на нормативы, порядок приёмки скрытых работ…"
|
||||||
placeholder="Особые условия, ссылки на нормативы, порядок приёмки скрытых работ…"
|
/>
|
||||||
/>
|
</FormField>
|
||||||
</FormField>
|
|
||||||
</FormGrid>
|
|
||||||
</CollapseSection>
|
</CollapseSection>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import styles from './ScopeSection.module.scss';
|
import styles from './ScopeSection.module.scss';
|
||||||
import { CollapseSection, FormGrid, FormField, TextInput, TextArea } from '../../../shared/ui';
|
import { CollapseSection, FormField, TextInput, TextArea } from '../../../shared/ui';
|
||||||
import { CostGroupsEditor } from './CostGroupsEditor';
|
import { CostGroupsEditor } from './CostGroupsEditor';
|
||||||
import { ISectionProps } from '../model';
|
import { ISectionProps } from '../model';
|
||||||
|
|
||||||
@@ -24,57 +24,55 @@ export const ScopeSection: React.FC<ISectionProps> = ({ data, set }) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<CollapseSection title="Описание требований" icon="helmet">
|
<CollapseSection title="Описание требований" icon="helmet">
|
||||||
<FormGrid>
|
<FormField label="Объём работ" htmlFor="ScopeOfWork" required full>
|
||||||
<FormField label="Объём работ" htmlFor="ScopeOfWork" required full>
|
<TextArea
|
||||||
<TextArea
|
id="ScopeOfWork"
|
||||||
id="ScopeOfWork"
|
value={data.ScopeOfWork}
|
||||||
value={data.ScopeOfWork}
|
onChange={(v) => set('ScopeOfWork', v)}
|
||||||
onChange={(v) => set('ScopeOfWork', v)}
|
rows={12}
|
||||||
rows={12}
|
placeholder="Состав и объёмы работ, ссылки на рабочую документацию, требования к исполнительной документации…"
|
||||||
placeholder="Состав и объёмы работ, ссылки на рабочую документацию, требования к исполнительной документации…"
|
/>
|
||||||
/>
|
</FormField>
|
||||||
</FormField>
|
|
||||||
|
|
||||||
<div className={styles.volumesBlock}>
|
<div className={styles.volumesBlock}>
|
||||||
<span className={styles.volumesLabel}>Итого объёмы работ</span>
|
<span className={styles.volumesLabel}>Итого объёмы работ</span>
|
||||||
<CostGroupsEditor
|
<CostGroupsEditor
|
||||||
groups={data.WorkVolumes}
|
groups={data.WorkVolumes}
|
||||||
onChange={(groups) => set('WorkVolumes', groups)}
|
onChange={(groups) => set('WorkVolumes', groups)}
|
||||||
totalLabel="Итого"
|
totalLabel="Итого"
|
||||||
emptyReadOnlyText="Объёмы работ не заполнены"
|
emptyReadOnlyText="Объёмы работ не заполнены"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<FormField label="Предлагаемые поставщики" htmlFor="SuggestedSuppliers" full>
|
<FormField label="Предлагаемые поставщики" htmlFor="SuggestedSuppliers" full>
|
||||||
<TextArea
|
<TextArea
|
||||||
id="SuggestedSuppliers"
|
id="SuggestedSuppliers"
|
||||||
value={data.SuggestedSuppliers}
|
value={data.SuggestedSuppliers}
|
||||||
onChange={(v) => set('SuggestedSuppliers', v)}
|
onChange={(v) => set('SuggestedSuppliers', v)}
|
||||||
rows={3}
|
rows={3}
|
||||||
placeholder="Требования к подрядчику и/или конкретные организации из утверждённого перечня"
|
placeholder="Требования к подрядчику и/или конкретные организации из утверждённого перечня"
|
||||||
/>
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
||||||
<FormField label="Предполагаемая дата начала" htmlFor="EstimatedStartDate">
|
<FormField label="Предполагаемая дата начала" htmlFor="EstimatedStartDate">
|
||||||
<TextInput
|
<TextInput
|
||||||
id="EstimatedStartDate"
|
id="EstimatedStartDate"
|
||||||
type="date"
|
type="date"
|
||||||
value={data.EstimatedStartDate}
|
value={data.EstimatedStartDate}
|
||||||
onChange={(v) => set('EstimatedStartDate', v)}
|
onChange={(v) => set('EstimatedStartDate', v)}
|
||||||
/>
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
<FormField label="Предполагаемая дата окончания" htmlFor="EstimatedFinishDate">
|
<FormField label="Предполагаемая дата окончания" htmlFor="EstimatedFinishDate">
|
||||||
<TextInput
|
<TextInput
|
||||||
id="EstimatedFinishDate"
|
id="EstimatedFinishDate"
|
||||||
type="date"
|
type="date"
|
||||||
value={data.EstimatedFinishDate}
|
value={data.EstimatedFinishDate}
|
||||||
onChange={(v) => set('EstimatedFinishDate', v)}
|
onChange={(v) => set('EstimatedFinishDate', v)}
|
||||||
min={data.EstimatedStartDate || undefined}
|
min={data.EstimatedStartDate || undefined}
|
||||||
/>
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
||||||
{days !== undefined && <div className={styles.duration}>Продолжительность: {days} кал. дн.</div>}
|
{days !== undefined && <div className={styles.duration}>Продолжительность: {days} кал. дн.</div>}
|
||||||
</FormGrid>
|
|
||||||
</CollapseSection>
|
</CollapseSection>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user