diff --git a/src/webparts/requestPortal/forms/ServiceRequest/ServiceRequestForm.tsx b/src/webparts/requestPortal/forms/ServiceRequest/ServiceRequestForm.tsx index a4e1e73..21ccd82 100644 --- a/src/webparts/requestPortal/forms/ServiceRequest/ServiceRequestForm.tsx +++ b/src/webparts/requestPortal/forms/ServiceRequest/ServiceRequestForm.tsx @@ -91,7 +91,10 @@ const ServiceRequestForm: React.FC = ({ RequesterName: user.displayName || '', RequestDate: prev.RequestDate || today })); - // Организации/должность заявителя (Employee/ByEmail) — как в TmcTransfer. + // Организации/должность/подразделение заявителя (Employee/ByEmail) — как в + // TmcTransfer. Подразделение — только ПРЕДЛАГАЕТСЯ (prev.Department || …), + // как и должность: справочник не всегда точен, дальше поле остаётся + // редактируемым через DepartmentPicker. let alive = true; getEmployeeOrganizations(context, requesterEmail) .then((records) => { @@ -99,7 +102,9 @@ const ServiceRequestForm: React.FC = ({ setData((prev) => ({ ...prev, Organization: formatEmployeeOrganizations(records), - RequesterJobTitle: prev.RequesterJobTitle || records[0]?.position || '' + RequesterJobTitle: prev.RequesterJobTitle || records[0]?.position || '', + Department: prev.Department || records[0]?.section || '', + DepartmentId: prev.DepartmentId || records[0]?.departmentId || '' })); } }) @@ -109,7 +114,7 @@ const ServiceRequestForm: React.FC = ({ }; }, [editId, context]); - // Выбор другого заявителя подтягивает его ФИО, должность и организации. + // Выбор другого заявителя подтягивает его ФИО, должность, подразделение и организации. const handleRequesterChange = (login: string): void => { setData((prev) => ({ ...prev, RequesterEmail: login })); if (!login) { @@ -122,6 +127,8 @@ const ServiceRequestForm: React.FC = ({ ...prev, RequesterName: records[0]?.fio || prev.RequesterName, RequesterJobTitle: records[0]?.position || prev.RequesterJobTitle, + Department: records[0]?.section || prev.Department, + DepartmentId: records[0]?.departmentId || prev.DepartmentId, Organization: formatEmployeeOrganizations(records) })) ) diff --git a/src/webparts/requestPortal/forms/ServiceRequest/load.ts b/src/webparts/requestPortal/forms/ServiceRequest/load.ts index 7d172ce..de097e2 100644 --- a/src/webparts/requestPortal/forms/ServiceRequest/load.ts +++ b/src/webparts/requestPortal/forms/ServiceRequest/load.ts @@ -20,7 +20,6 @@ const SELECT_FIELDS = [ 'Department', 'DepartmentId', 'RequestDate', - 'Revision', 'ProjectName', 'ProjectId', 'ProjectManager', @@ -81,7 +80,6 @@ export async function loadServiceRequest(itemId: number, listId?: string): Promi Department: (item.Department as string) || '', DepartmentId: (item.DepartmentId as string) || '', RequestDate: toDateInput(item.RequestDate), - Revision: (item.Revision as string) || '', ProjectName: (item.ProjectName as string) || '', ProjectId: (item.ProjectId as string) || '', ProjectManager: (item.ProjectManager as string) || '', diff --git a/src/webparts/requestPortal/forms/ServiceRequest/model.ts b/src/webparts/requestPortal/forms/ServiceRequest/model.ts index 76edf35..a2320df 100644 --- a/src/webparts/requestPortal/forms/ServiceRequest/model.ts +++ b/src/webparts/requestPortal/forms/ServiceRequest/model.ts @@ -95,14 +95,16 @@ export interface IFormData { RequesterJobTitle: string; /** Организации заявителя (`\n`-joined «Компания — должность»), read-only. */ Organization: string; - /** Отдел (справочник Dictionary/Departments) — на маршрут не влияет. */ + /** + * Подразделение заявителя. Подставляется из его карточки (Employee/ByEmail), + * дальше правится выбором из справочника Dictionary/Departments. На маршрут + * согласования не влияет — он резолвится по проекту. + */ Department: string; - /** Id отдела из справочника; '' — если введён вручную. */ + /** Id подразделения из справочника; '' — если введено вручную. */ DepartmentId: string; /** Дата заявки (YYYY-MM-DD). */ RequestDate: string; - /** Ревизия заявки: бумажная форма живёт ревизиями (00, U01, U02…). */ - Revision: string; // --- Проект и работы --- ProjectName: string; @@ -182,8 +184,6 @@ export interface ISectionProps { onRemoveAnnexFile?: (rowIndex: number) => void; } -/** Ревизия по умолчанию — как в бумажной форме («Рев:00»). */ -export const DEFAULT_REVISION = '00'; export const REQUESTER_PLACEHOLDER = 'Начните вводить Ф.И.О. заявителя…'; export const EMPTY_DATA: IFormData = { @@ -194,7 +194,6 @@ export const EMPTY_DATA: IFormData = { Department: '', DepartmentId: '', RequestDate: '', - Revision: DEFAULT_REVISION, ProjectName: '', ProjectId: '', ProjectManager: '', diff --git a/src/webparts/requestPortal/forms/ServiceRequest/provisioning.json b/src/webparts/requestPortal/forms/ServiceRequest/provisioning.json index 6d77ce3..634576c 100644 --- a/src/webparts/requestPortal/forms/ServiceRequest/provisioning.json +++ b/src/webparts/requestPortal/forms/ServiceRequest/provisioning.json @@ -8,10 +8,9 @@ { "internalName": "RequesterName", "title": "Заявитель (Ф.И.О.)", "type": "Text" }, { "internalName": "RequesterJobTitle", "title": "Должность заявителя", "type": "Text" }, { "internalName": "Organization", "title": "Организация", "type": "Note" }, - { "internalName": "Department", "title": "Отдел", "type": "Text" }, - { "internalName": "DepartmentId", "title": "Id отдела (справочник)", "type": "Text" }, + { "internalName": "Department", "title": "Подразделение", "type": "Text" }, + { "internalName": "DepartmentId", "title": "Id подразделения (справочник)", "type": "Text" }, { "internalName": "RequestDate", "title": "Дата заявки", "type": "DateTime", "dateOnly": true }, - { "internalName": "Revision", "title": "Ревизия", "type": "Text" }, { "internalName": "ProjectName", "title": "Проект", "type": "Text" }, { "internalName": "ProjectId", "title": "Id проекта", "type": "Text" }, diff --git a/src/webparts/requestPortal/forms/ServiceRequest/sections/HeaderSection.tsx b/src/webparts/requestPortal/forms/ServiceRequest/sections/HeaderSection.tsx index 22617ab..ab69234 100644 --- a/src/webparts/requestPortal/forms/ServiceRequest/sections/HeaderSection.tsx +++ b/src/webparts/requestPortal/forms/ServiceRequest/sections/HeaderSection.tsx @@ -47,7 +47,7 @@ export const HeaderSection: React.FC = ({ placeholder="Напр. вед. инженер ПТО" /> - + = ({ onChange={(v) => set('RequestDate', v)} /> - - set('Revision', v)} - placeholder="00" - /> -