From cf039f4d082a30615dfc3eceb38010e33d52d6e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=B8=D0=BC=D1=83=D1=80=20=D0=93=D0=BE=D1=80=D0=BE?= =?UTF-8?q?=D0=B4=D0=B5=D1=86=D0=BA=D0=B8=D0=B9?= Date: Fri, 30 Oct 2026 09:58:31 +0500 Subject: [PATCH] =?UTF-8?q?refactor:=20=D0=BE=D0=B1=D1=89=D0=B8=D0=B9=20?= =?UTF-8?q?=D1=81=D0=BF=D0=B8=D1=81=D0=BE=D0=BA=20=D0=9F=D0=9E=20=D0=B2=20?= =?UTF-8?q?shared/dictionary?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Список программ жил в модели «Заявки на подбор»; теперь он нужен и «Организации рабочего места». Вынесен в shared/dictionary/software.ts, чтобы обе формы брали его из одного места. Co-Authored-By: Claude Opus 5.5 (1M context) --- .../forms/RecruitingSelection/model.ts | 22 --------------- .../sections/VacancySection.tsx | 3 +-- .../requestPortal/shared/dictionary/index.ts | 1 + .../shared/dictionary/software.ts | 27 +++++++++++++++++++ 4 files changed, 29 insertions(+), 24 deletions(-) create mode 100644 src/webparts/requestPortal/shared/dictionary/software.ts diff --git a/src/webparts/requestPortal/forms/RecruitingSelection/model.ts b/src/webparts/requestPortal/forms/RecruitingSelection/model.ts index 1095074..ddb0a35 100644 --- a/src/webparts/requestPortal/forms/RecruitingSelection/model.ts +++ b/src/webparts/requestPortal/forms/RecruitingSelection/model.ts @@ -207,28 +207,6 @@ export const LANGUAGE_LEVEL_OPTIONS: ISelectOption[] = [ { value: 'Свободный', label: 'Свободный' } ]; -/** - * Программы (ПО) — ВРЕМЕННЫЙ список, пока нет справочника в API. Используется в - * мультивыборе «Необходимые знания в программах». Меняется здесь одним местом. - */ -export const SOFTWARE_OPTIONS: ISelectOption[] = [ - { value: '1С:Предприятие', label: '1С:Предприятие' }, - { value: 'MS Word', label: 'MS Word' }, - { value: 'MS Excel', label: 'MS Excel' }, - { value: 'MS PowerPoint', label: 'MS PowerPoint' }, - { value: 'MS Outlook', label: 'MS Outlook' }, - { value: 'MS Project', label: 'MS Project' }, - { value: 'AutoCAD', label: 'AutoCAD' }, - { value: 'Autodesk Forma', label: 'Autodesk Forma' }, - { value: 'BIM', label: 'BIM' }, - { value: 'Revit', label: 'Revit' }, - { value: 'ArchiCAD', label: 'ArchiCAD' }, - { value: 'Компас-3D', label: 'Компас-3D' }, - { value: 'Primavera', label: 'Primavera' }, - { value: 'SAP', label: 'SAP' }, - { value: 'Adobe Photoshop', label: 'Adobe Photoshop' } -]; - /** Категории «Обеспечение рабочего места» (+ «Другое» через allowOther). */ export const WORKPLACE_PROVISION_OPTIONS: ISelectOption[] = [ { value: 'Оргтехника', label: 'Оргтехника' }, diff --git a/src/webparts/requestPortal/forms/RecruitingSelection/sections/VacancySection.tsx b/src/webparts/requestPortal/forms/RecruitingSelection/sections/VacancySection.tsx index 08caac9..28e10bf 100644 --- a/src/webparts/requestPortal/forms/RecruitingSelection/sections/VacancySection.tsx +++ b/src/webparts/requestPortal/forms/RecruitingSelection/sections/VacancySection.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import { CollapseSection, FormField, TextInput, TextArea, Select, MultiChoiceField } from '../../../shared/ui'; -import { PositionPicker } from '../../../shared/dictionary'; +import { PositionPicker, SOFTWARE_OPTIONS } from '../../../shared/dictionary'; import { LanguagesField } from './LanguagesField'; import { ISectionProps, @@ -8,7 +8,6 @@ import { EDUCATION_OPTIONS, WORK_EXPERIENCE_OPTIONS, RESIDENCE_OPTIONS, - SOFTWARE_OPTIONS, OTHER_VALUE } from '../model'; diff --git a/src/webparts/requestPortal/shared/dictionary/index.ts b/src/webparts/requestPortal/shared/dictionary/index.ts index 0bc1683..10c64e9 100644 --- a/src/webparts/requestPortal/shared/dictionary/index.ts +++ b/src/webparts/requestPortal/shared/dictionary/index.ts @@ -50,3 +50,4 @@ export { parseOrganizationLine } from './organizationLines'; export type { IOrganizationLine } from './organizationLines'; +export { SOFTWARE_OPTIONS } from './software'; diff --git a/src/webparts/requestPortal/shared/dictionary/software.ts b/src/webparts/requestPortal/shared/dictionary/software.ts new file mode 100644 index 0000000..18e097e --- /dev/null +++ b/src/webparts/requestPortal/shared/dictionary/software.ts @@ -0,0 +1,27 @@ +import { ISelectOption } from '@tnsu/ui-kit'; + +/** + * Программы (ПО) — ВРЕМЕННЫЙ список, пока нет справочника в API. Общий для форм: + * «Заявка на подбор» (3.8 Необходимые знания в программах) и «Организация + * рабочего места» (Необходимое ПО). Пункт добавляется здесь — появляется в обеих. + * + * Значения уходят в условия маршрута как текст («Software содержит AutoCAD»), + * поэтому существующие значения не переименовывать без правки условий в админке. + */ +export const SOFTWARE_OPTIONS: ISelectOption[] = [ + { value: '1С:Предприятие', label: '1С:Предприятие' }, + { value: 'MS Word', label: 'MS Word' }, + { value: 'MS Excel', label: 'MS Excel' }, + { value: 'MS PowerPoint', label: 'MS PowerPoint' }, + { value: 'MS Outlook', label: 'MS Outlook' }, + { value: 'MS Project', label: 'MS Project' }, + { value: 'AutoCAD', label: 'AutoCAD' }, + { value: 'Autodesk Forma', label: 'Autodesk Forma' }, + { value: 'BIM', label: 'BIM' }, + { value: 'Revit', label: 'Revit' }, + { value: 'ArchiCAD', label: 'ArchiCAD' }, + { value: 'Компас-3D', label: 'Компас-3D' }, + { value: 'Primavera', label: 'Primavera' }, + { value: 'SAP', label: 'SAP' }, + { value: 'Adobe Photoshop', label: 'Adobe Photoshop' } +];