fix: переименования полей в заявках на подбор и прием,
Tests / frontend-test (push) Successful in 1m18s
Tests / frontend-test (push) Successful in 1m18s
This commit is contained in:
@@ -18,7 +18,7 @@ function parseJsonArray<T>(raw: unknown): T[] {
|
|||||||
const SCALAR_FIELDS: (keyof IFormData)[] = [
|
const SCALAR_FIELDS: (keyof IFormData)[] = [
|
||||||
'Phone', 'HireType', 'HireReplacedEmployee', 'Project', 'ProjectId', 'ProjectCode',
|
'Phone', 'HireType', 'HireReplacedEmployee', 'Project', 'ProjectId', 'ProjectCode',
|
||||||
'HireCandidateName', 'HireHireDate', 'Position', 'WorkKind',
|
'HireCandidateName', 'HireHireDate', 'Position', 'WorkKind',
|
||||||
'Department', 'DepartmentId', 'SiteLocation', 'PpeHeight', 'PpeClothingSize', 'PpeShoeSize', 'ProbationPeriod',
|
'Department', 'SiteLocation', 'PpeHeight', 'PpeClothingSize', 'PpeShoeSize', 'ProbationPeriod',
|
||||||
'SalaryProbation', 'SalaryAfterProbation', 'WorkSchedule', 'WorkScheduleOther',
|
'SalaryProbation', 'SalaryAfterProbation', 'WorkSchedule', 'WorkScheduleOther',
|
||||||
'AgencyName', 'AgencyTerms',
|
'AgencyName', 'AgencyTerms',
|
||||||
'SelectionRequestId', 'SelectionRequestListId', 'SelectionRequestCode'
|
'SelectionRequestId', 'SelectionRequestListId', 'SelectionRequestCode'
|
||||||
|
|||||||
@@ -43,16 +43,8 @@ export interface IFormData {
|
|||||||
HireHireDate: string;
|
HireHireDate: string;
|
||||||
Position: string;
|
Position: string;
|
||||||
WorkKind: string;
|
WorkKind: string;
|
||||||
/**
|
/** Отдел/Участок — свободный текст, чисто информационное, на маршрут согласования не влияет. */
|
||||||
* Подразделение по справочнику (Dictionary/Departments, см.
|
|
||||||
* shared/dictionary/DepartmentPicker) — как в WorkplaceSetup/RecruitingSelection:
|
|
||||||
* ручной выбор, чисто информационное, на маршрут согласования НЕ влияет.
|
|
||||||
* Заменило прежнее свободнотекстовое поле «Отдел / участок» (колонка SiteName
|
|
||||||
* в SP осталась в схеме нетронутой — просто больше не используется формой).
|
|
||||||
*/
|
|
||||||
Department: string;
|
Department: string;
|
||||||
/** Id отдела из справочника; '' — если введён вручную без выбора из списка. */
|
|
||||||
DepartmentId: string;
|
|
||||||
SiteLocation: string;
|
SiteLocation: string;
|
||||||
// СИЗ
|
// СИЗ
|
||||||
PpeHeight: string;
|
PpeHeight: string;
|
||||||
@@ -96,7 +88,6 @@ export const EMPTY_DATA: IFormData = {
|
|||||||
Position: '',
|
Position: '',
|
||||||
WorkKind: '',
|
WorkKind: '',
|
||||||
Department: '',
|
Department: '',
|
||||||
DepartmentId: '',
|
|
||||||
SiteLocation: '',
|
SiteLocation: '',
|
||||||
PpeHeight: '',
|
PpeHeight: '',
|
||||||
PpeClothingSize: '',
|
PpeClothingSize: '',
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import { CollapseSection, FormField, TextInput } from '../../../shared/ui';
|
import { CollapseSection, FormField, TextInput } from '../../../shared/ui';
|
||||||
import { DepartmentPicker } from '../../../shared/dictionary';
|
|
||||||
import { ISectionProps } from '../model';
|
import { ISectionProps } from '../model';
|
||||||
|
|
||||||
export const CandidateSection: React.FC<ISectionProps> = ({ data, set, context }) => (
|
export const CandidateSection: React.FC<ISectionProps> = ({ data, set }) => (
|
||||||
<CollapseSection title="Кандидат" icon="people">
|
<CollapseSection title="Кандидат" icon="people">
|
||||||
<FormField label="Ф.И.О. кандидата" htmlFor="HireCandidateName" required full>
|
<FormField label="Ф.И.О. кандидата" htmlFor="HireCandidateName" required full>
|
||||||
<TextInput id="HireCandidateName" value={data.HireCandidateName} onChange={(v) => set('HireCandidateName', v)} />
|
<TextInput id="HireCandidateName" value={data.HireCandidateName} onChange={(v) => set('HireCandidateName', v)} />
|
||||||
@@ -17,16 +16,8 @@ export const CandidateSection: React.FC<ISectionProps> = ({ data, set, context }
|
|||||||
<FormField label="Вид работ" htmlFor="WorkKind">
|
<FormField label="Вид работ" htmlFor="WorkKind">
|
||||||
<TextInput id="WorkKind" value={data.WorkKind} onChange={(v) => set('WorkKind', v)} />
|
<TextInput id="WorkKind" value={data.WorkKind} onChange={(v) => set('WorkKind', v)} />
|
||||||
</FormField>
|
</FormField>
|
||||||
<FormField label="Подразделение" htmlFor="Department">
|
<FormField label="Отдел/Участок" htmlFor="Department">
|
||||||
<DepartmentPicker
|
<TextInput id="Department" value={data.Department} onChange={(v) => set('Department', v)} />
|
||||||
id="Department"
|
|
||||||
context={context}
|
|
||||||
value={data.Department}
|
|
||||||
onChange={(name, id) => {
|
|
||||||
set('Department', name);
|
|
||||||
set('DepartmentId', id);
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</FormField>
|
</FormField>
|
||||||
<FormField label="Местоположение" htmlFor="SiteLocation">
|
<FormField label="Местоположение" htmlFor="SiteLocation">
|
||||||
<TextInput id="SiteLocation" value={data.SiteLocation} onChange={(v) => set('SiteLocation', v)} />
|
<TextInput id="SiteLocation" value={data.SiteLocation} onChange={(v) => set('SiteLocation', v)} />
|
||||||
|
|||||||
+72
-26
@@ -1,46 +1,84 @@
|
|||||||
import * as React from 'react';
|
import * as React from "react";
|
||||||
import { CollapseSection, FormField, TextInput, TextArea, MoneyInput, Toggle, Select, PeopleField, PeopleFieldMulti } from '../../../shared/ui';
|
import {
|
||||||
import { MultiChoiceField } from './MultiChoiceField';
|
CollapseSection,
|
||||||
|
FormField,
|
||||||
|
TextInput,
|
||||||
|
TextArea,
|
||||||
|
MoneyInput,
|
||||||
|
Toggle,
|
||||||
|
Select,
|
||||||
|
PeopleField,
|
||||||
|
PeopleFieldMulti,
|
||||||
|
} from "../../../shared/ui";
|
||||||
|
import { MultiChoiceField } from "./MultiChoiceField";
|
||||||
import {
|
import {
|
||||||
ISectionProps,
|
ISectionProps,
|
||||||
PERSON_PLACEHOLDER,
|
PERSON_PLACEHOLDER,
|
||||||
OTHER_VALUE,
|
OTHER_VALUE,
|
||||||
WORK_SCHEDULE_OPTIONS,
|
WORK_SCHEDULE_OPTIONS,
|
||||||
WORK_HOURS_OPTIONS,
|
WORK_HOURS_OPTIONS,
|
||||||
WORKPLACE_PROVISION_OPTIONS
|
WORKPLACE_PROVISION_OPTIONS,
|
||||||
} from '../model';
|
} from "../model";
|
||||||
|
|
||||||
export const ConditionsSection: React.FC<ISectionProps> = ({ data, set, context }) => (
|
export const ConditionsSection: React.FC<ISectionProps> = ({
|
||||||
|
data,
|
||||||
|
set,
|
||||||
|
context,
|
||||||
|
}) => (
|
||||||
<CollapseSection title="5. Условия работы" icon="chart">
|
<CollapseSection title="5. Условия работы" icon="chart">
|
||||||
<FormField label="5.1 Ставка на ИС" htmlFor="RateProbation">
|
<FormField label="5.1 Ставка на ИС" htmlFor="RateProbation">
|
||||||
<MoneyInput id="RateProbation" value={data.RateProbation} onChange={(v) => set('RateProbation', v)} />
|
<MoneyInput
|
||||||
|
id="RateProbation"
|
||||||
|
value={data.RateProbation}
|
||||||
|
onChange={(v) => set("RateProbation", v)}
|
||||||
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
<FormField label="5.2 Ставка после ИС" htmlFor="RateAfterProbation">
|
<FormField label="5.2 Ставка после ИС" htmlFor="RateAfterProbation">
|
||||||
<MoneyInput
|
<MoneyInput
|
||||||
id="RateAfterProbation"
|
id="RateAfterProbation"
|
||||||
value={data.RateAfterProbation}
|
value={data.RateAfterProbation}
|
||||||
onChange={(v) => set('RateAfterProbation', v)}
|
onChange={(v) => set("RateAfterProbation", v)}
|
||||||
/>
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
<FormField label="5.3 Премии" htmlFor="Awards" full>
|
<FormField label="5.3 Премии" htmlFor="Awards" full>
|
||||||
<TextArea id="Awards" value={data.Awards} onChange={(v) => set('Awards', v)} />
|
<TextArea
|
||||||
|
id="Awards"
|
||||||
|
value={data.Awards}
|
||||||
|
onChange={(v) => set("Awards", v)}
|
||||||
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
<FormField label="5.4 Бонусы" htmlFor="Bonuses" full>
|
<FormField label="5.4 Бонусы" htmlFor="Bonuses" full>
|
||||||
<TextArea id="Bonuses" value={data.Bonuses} onChange={(v) => set('Bonuses', v)} />
|
<TextArea
|
||||||
|
id="Bonuses"
|
||||||
|
value={data.Bonuses}
|
||||||
|
onChange={(v) => set("Bonuses", v)}
|
||||||
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
<FormField label="5.5 Компенсационный пакет" htmlFor="CompensationPackage" full>
|
<FormField
|
||||||
<TextArea id="CompensationPackage" value={data.CompensationPackage} onChange={(v) => set('CompensationPackage', v)} />
|
label="5.5 Компенсационный пакет"
|
||||||
|
htmlFor="CompensationPackage"
|
||||||
|
full
|
||||||
|
>
|
||||||
|
<TextArea
|
||||||
|
id="CompensationPackage"
|
||||||
|
value={data.CompensationPackage}
|
||||||
|
onChange={(v) => set("CompensationPackage", v)}
|
||||||
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
<FormField label="5.6 Сдельная оплата труда">
|
<FormField label="5.6 Сдельная оплата труда">
|
||||||
<Toggle checked={data.PieceworkPay} onChange={(v) => set('PieceworkPay', v)} onLabel="Да" />
|
<Toggle
|
||||||
|
checked={data.PieceworkPay}
|
||||||
|
onChange={(v) => set("PieceworkPay", v)}
|
||||||
|
onLabel="Да"
|
||||||
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
<FormField label="5.7 Режим работы" htmlFor="WorkSchedule">
|
<FormField label="5.7 График работы" htmlFor="WorkSchedule">
|
||||||
<Select
|
<Select
|
||||||
id="WorkSchedule"
|
id="WorkSchedule"
|
||||||
value={data.WorkSchedule}
|
value={data.WorkSchedule}
|
||||||
onChange={(v) => {
|
onChange={(v) => {
|
||||||
set('WorkSchedule', v);
|
set("WorkSchedule", v);
|
||||||
if (v !== OTHER_VALUE) set('WorkScheduleOther', '');
|
if (v !== OTHER_VALUE) set("WorkScheduleOther", "");
|
||||||
}}
|
}}
|
||||||
options={WORK_SCHEDULE_OPTIONS}
|
options={WORK_SCHEDULE_OPTIONS}
|
||||||
placeholder="— выберите —"
|
placeholder="— выберите —"
|
||||||
@@ -51,7 +89,7 @@ export const ConditionsSection: React.FC<ISectionProps> = ({ data, set, context
|
|||||||
<TextInput
|
<TextInput
|
||||||
id="WorkScheduleOther"
|
id="WorkScheduleOther"
|
||||||
value={data.WorkScheduleOther}
|
value={data.WorkScheduleOther}
|
||||||
onChange={(v) => set('WorkScheduleOther', v)}
|
onChange={(v) => set("WorkScheduleOther", v)}
|
||||||
/>
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
)}
|
)}
|
||||||
@@ -60,8 +98,8 @@ export const ConditionsSection: React.FC<ISectionProps> = ({ data, set, context
|
|||||||
id="WorkHours"
|
id="WorkHours"
|
||||||
value={data.WorkHours}
|
value={data.WorkHours}
|
||||||
onChange={(v) => {
|
onChange={(v) => {
|
||||||
set('WorkHours', v);
|
set("WorkHours", v);
|
||||||
if (v !== OTHER_VALUE) set('WorkHoursOther', '');
|
if (v !== OTHER_VALUE) set("WorkHoursOther", "");
|
||||||
}}
|
}}
|
||||||
options={WORK_HOURS_OPTIONS}
|
options={WORK_HOURS_OPTIONS}
|
||||||
placeholder="— выберите —"
|
placeholder="— выберите —"
|
||||||
@@ -69,33 +107,41 @@ export const ConditionsSection: React.FC<ISectionProps> = ({ data, set, context
|
|||||||
</FormField>
|
</FormField>
|
||||||
{data.WorkHours === OTHER_VALUE && (
|
{data.WorkHours === OTHER_VALUE && (
|
||||||
<FormField label="Время работы (другое)" htmlFor="WorkHoursOther">
|
<FormField label="Время работы (другое)" htmlFor="WorkHoursOther">
|
||||||
<TextInput id="WorkHoursOther" value={data.WorkHoursOther} onChange={(v) => set('WorkHoursOther', v)} />
|
<TextInput
|
||||||
|
id="WorkHoursOther"
|
||||||
|
value={data.WorkHoursOther}
|
||||||
|
onChange={(v) => set("WorkHoursOther", v)}
|
||||||
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
)}
|
)}
|
||||||
<FormField label="5.9 Материальная ответственность">
|
<FormField label="5.9 Материальная ответственность">
|
||||||
<Toggle
|
<Toggle
|
||||||
checked={data.MaterialResponsibility}
|
checked={data.MaterialResponsibility}
|
||||||
onChange={(v) => set('MaterialResponsibility', v)}
|
onChange={(v) => set("MaterialResponsibility", v)}
|
||||||
onLabel="Да"
|
onLabel="Да"
|
||||||
/>
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
<FormField label="5.10 Обеспечение рабочего места" full>
|
<FormField label="5.10 Обеспечение рабочего места" full>
|
||||||
<MultiChoiceField
|
<MultiChoiceField
|
||||||
value={data.WorkplaceProvision}
|
value={data.WorkplaceProvision}
|
||||||
onChange={(v) => set('WorkplaceProvision', v)}
|
onChange={(v) => set("WorkplaceProvision", v)}
|
||||||
options={WORKPLACE_PROVISION_OPTIONS}
|
options={WORKPLACE_PROVISION_OPTIONS}
|
||||||
allowOther
|
allowOther
|
||||||
placeholder="Выберите категорию"
|
placeholder="Выберите категорию"
|
||||||
/>
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
<FormField label="5.11 Реферальная программа">
|
<FormField label="5.11 Реферальная программа">
|
||||||
<Toggle checked={data.ReferralProgram} onChange={(v) => set('ReferralProgram', v)} onLabel="Да" />
|
<Toggle
|
||||||
|
checked={data.ReferralProgram}
|
||||||
|
onChange={(v) => set("ReferralProgram", v)}
|
||||||
|
onLabel="Да"
|
||||||
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
<FormField label="5.12 Предполагаемый наставник">
|
<FormField label="5.12 Предполагаемый наставник">
|
||||||
<PeopleField
|
<PeopleField
|
||||||
context={context}
|
context={context}
|
||||||
value={data.ProposedMentor}
|
value={data.ProposedMentor}
|
||||||
onChange={(v) => set('ProposedMentor', v)}
|
onChange={(v) => set("ProposedMentor", v)}
|
||||||
placeholder={PERSON_PLACEHOLDER}
|
placeholder={PERSON_PLACEHOLDER}
|
||||||
/>
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
@@ -103,7 +149,7 @@ export const ConditionsSection: React.FC<ISectionProps> = ({ data, set, context
|
|||||||
<PeopleField
|
<PeopleField
|
||||||
context={context}
|
context={context}
|
||||||
value={data.DirectManager}
|
value={data.DirectManager}
|
||||||
onChange={(v) => set('DirectManager', v)}
|
onChange={(v) => set("DirectManager", v)}
|
||||||
placeholder={PERSON_PLACEHOLDER}
|
placeholder={PERSON_PLACEHOLDER}
|
||||||
/>
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
@@ -111,7 +157,7 @@ export const ConditionsSection: React.FC<ISectionProps> = ({ data, set, context
|
|||||||
<PeopleFieldMulti
|
<PeopleFieldMulti
|
||||||
context={context}
|
context={context}
|
||||||
value={data.HiringDecisionMaker}
|
value={data.HiringDecisionMaker}
|
||||||
onChange={(v) => set('HiringDecisionMaker', v)}
|
onChange={(v) => set("HiringDecisionMaker", v)}
|
||||||
placeholder={PERSON_PLACEHOLDER}
|
placeholder={PERSON_PLACEHOLDER}
|
||||||
/>
|
/>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|||||||
Reference in New Issue
Block a user