Панель со списками заявок (#1)

Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/1
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tnsu.kz>
Co-committed-by: gorbenko.pavel <gorbenko.pavel@tnsu.kz>
This commit was merged in pull request #1.
This commit is contained in:
2026-08-04 12:02:11 +00:00
committed by timur.gorodetskiy
parent ba4e3feee5
commit 0aa0a60e40
21 changed files with 1442 additions and 121 deletions
@@ -0,0 +1,18 @@
// Строка заявки пользователя для боковой панели «Мои заявки».
// Собирается из списка данных SharePoint конкретного типа заявки (см. myRequests.service.ts).
export interface IMyRequest {
id: number;
title: string;
status: string;
authorEmail: string;
authorName: string;
/** Дата создания (ISO-строка, колонка Created). */
created: string;
requestTypeId: number;
requestTypeName: string;
section: string;
/** Ключ формы (rptype в URL режима согласования) — поле pageUrl из approval-route API. */
formKey: string;
/** 'own' — заявка, созданная текущим пользователем; 'approval' — ждёт его решения. */
kind: 'own' | 'approval';
}
@@ -0,0 +1,24 @@
// Диагностика по одному типу заявки — для отладочного блока в панели «Мои заявки».
export interface IMyRequestsTypeDebug {
requestTypeId: number;
requestTypeName: string;
listId?: string;
siteUrl?: string;
/** Тип пропущен: у него нет listId/siteUrl в approval-route API. */
skipped: boolean;
/** Сколько строк текущего пользователя найдено (undefined, если не дошли до запроса). */
rowCount?: number;
/** Текст ошибки, если запрос к списку упал. */
error?: string;
/** Заголовок списка согласования, вычисленный из имени списка данных. */
approvalListTitle?: string;
/** Список данных не похож на «... — данные» — список согласования не искали. */
approvalSkippedReason?: string;
/** Сколько строк маршрута (фаза «Согласование») прочитано из списка согласования. */
approvalRowCount?: number;
/** Сколько заявок сейчас ждут решения текущего пользователя. */
approvalPendingTickets?: number;
/** Текст ошибки, если запрос к списку согласования упал. */
approvalError?: string;
}