feat: migrated 1c form

This commit is contained in:
Тимур Городецкий
2026-08-11 10:39:04 +05:00
parent dcf3f06121
commit a8e54f2b35
24 changed files with 1185 additions and 6 deletions
@@ -1,7 +1,7 @@
import { AadHttpClient, HttpClientResponse } from '@microsoft/sp-http';
import { WebPartContext } from '@microsoft/sp-webpart-base';
import { APPROVAL_API_CLIENT_ID, APPROVAL_API_BASE_URL } from '../config';
import { ApprovalStatus, IApiResponse, IRequestType, IResolvedRoute } from './models/IApprovalRouteApi';
import { ApprovalStatus, IApiResponse, IRequestType, IResolvedRoute, IResolveFieldValue } from './models/IApprovalRouteApi';
// Все обращения к внешнему approval-route API — только здесь.
// Клиент авторизуется через AadHttpClient (SSO по текущему пользователю).
@@ -30,12 +30,18 @@ export async function getRequestTypes(context: WebPartContext): Promise<IRequest
// 'Approval' — согласующие (кто одобряет),
// 'Execution' — исполнители (кто выполняет после согласования).
// Один и тот же маршрут, разные наборы шагов.
//
// fieldValues — условие видимости шагов (см. IResolveFieldValue): для форм с
// шагами, зависящими от значения колонки списка (напр. WorkType), передать
// текущее значение поля здесь. Формы без условных шагов его не передают —
// бэкенд получает пустой массив, как раньше.
export async function resolveRoute(
context: WebPartContext,
requestTypeId: number,
userEmail: string,
status: ApprovalStatus = 'Approval',
departmentId: string | null = null
departmentId: string | null = null,
fieldValues: IResolveFieldValue[] = []
): Promise<IResolvedRoute> {
const c = await client(context);
const url = `${APPROVAL_API_BASE_URL}/api/template-routes/resolve`;
@@ -51,7 +57,7 @@ export async function resolveRoute(
userEmail,
projectId: null,
status,
fieldValues: [],
fieldValues,
departmentId: departmentId || null
})
});