From 5b1a30fdf6201904f84b6175bdfd897227787c40 Mon Sep 17 00:00:00 2001 From: "gorbenko.pavel" Date: Tue, 18 Aug 2026 14:17:02 +0500 Subject: [PATCH] =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=81=D0=BB=D0=B5=20=D0=BC=D0=B5=D1=80=D0=B4=D0=B6=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../requestPortal/shared/approval/approvalList.service.ts | 1 + .../requestPortal/shared/approval/approvalRoute.service.ts | 2 ++ .../shared/approval/approvalSubmission.service.ts | 2 ++ .../requestPortal/shared/approval/models/IApprovalRouteApi.ts | 3 +++ 4 files changed, 8 insertions(+) diff --git a/src/webparts/requestPortal/shared/approval/approvalList.service.ts b/src/webparts/requestPortal/shared/approval/approvalList.service.ts index 6f038b8..bb26955 100644 --- a/src/webparts/requestPortal/shared/approval/approvalList.service.ts +++ b/src/webparts/requestPortal/shared/approval/approvalList.service.ts @@ -381,6 +381,7 @@ export class ApprovalListService { const batchedItems = batchedSP.web.lists.getByTitle(this.listTitle).items; rows.forEach((row) => { // void — по той же причине, что и в createSteps выше. + // eslint-disable-next-line no-void -- без void это «висячий» промис, а no-floating-promises здесь уровня error void batchedItems.getById(row.id).delete(); }); await execute(); diff --git a/src/webparts/requestPortal/shared/approval/approvalRoute.service.ts b/src/webparts/requestPortal/shared/approval/approvalRoute.service.ts index fbd4cf7..385e9f9 100644 --- a/src/webparts/requestPortal/shared/approval/approvalRoute.service.ts +++ b/src/webparts/requestPortal/shared/approval/approvalRoute.service.ts @@ -107,8 +107,10 @@ export async function resolveRoute( requestTypeId: number, userEmail: string, status: ApprovalStatus = 'Approval', + // eslint-disable-next-line @rushstack/no-new-null -- null отправляется в теле запроса как «не задано», undefined в JSON.stringify пропал бы вовсе departmentId: string | null = null, fieldValues: IResolveFieldValue[] = [], + // eslint-disable-next-line @rushstack/no-new-null -- см. departmentId projectId: string | null = null ): Promise { const c = await client(context); diff --git a/src/webparts/requestPortal/shared/approval/approvalSubmission.service.ts b/src/webparts/requestPortal/shared/approval/approvalSubmission.service.ts index 0bfa560..3850c63 100644 --- a/src/webparts/requestPortal/shared/approval/approvalSubmission.service.ts +++ b/src/webparts/requestPortal/shared/approval/approvalSubmission.service.ts @@ -15,8 +15,10 @@ export async function getPlannedMatrix( userEmail: string, approval: ApprovalListService, status: ApprovalStatus = 'Approval', + // eslint-disable-next-line @rushstack/no-new-null -- транзитом в resolveRoute(), см. её departmentId departmentId?: string | null, fieldValues?: IResolveFieldValue[], + // eslint-disable-next-line @rushstack/no-new-null -- см. departmentId projectId?: string | null ): Promise { if (!userEmail) return []; diff --git a/src/webparts/requestPortal/shared/approval/models/IApprovalRouteApi.ts b/src/webparts/requestPortal/shared/approval/models/IApprovalRouteApi.ts index 556a245..26b997d 100644 --- a/src/webparts/requestPortal/shared/approval/models/IApprovalRouteApi.ts +++ b/src/webparts/requestPortal/shared/approval/models/IApprovalRouteApi.ts @@ -71,11 +71,14 @@ export interface IResolvedRoute { export interface IResolvedRouteStep { id: number; orderNo: number; + // eslint-disable-next-line @rushstack/no-new-null -- зеркалит nullable-контракт бэкенда executorEmail: string | null; + // eslint-disable-next-line @rushstack/no-new-null -- см. executorEmail position: string | null; allowReassignToOtherApprovers: boolean; // Предупреждение маршрута по этому шагу (например, роль не разрешилась в // конкретного человека) — приходит от API, показываем автору при желании. + // eslint-disable-next-line @rushstack/no-new-null -- см. executorEmail warning: string | null; // SLA шага в часах и признак опроса причины просрочки. Наследование // «шаг перекрывает тип заявки» бэкенд уже применил — здесь итоговое значение,