Files
tnsu-approval-route/frontend/src/webparts/approvalAdmin/models/enums.ts
T
gorbenko.pavel cbb3efc146 Условия шага: операторы «не равно», «содержит», «не содержит»
ComparisonOperator дополнен NotEqual, Contains, NotContains.
NotEqual — строгое отрицание Equal (текст без учёта регистра + сравнение
как чисел), Contains/NotContains — поиск подстроки без учёта регистра.

В форме шага набор операторов зависит от типа колонки: для числовой —
всё, кроме «содержит»/«не содержит», для текстовой — всё, кроме
«больше»/«меньше», для служебного IsManager — только «равно»/«не равно».
Недопустимый после смены поля оператор сбрасывается на «равно».

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-24 16:50:53 +05:00

43 lines
1.6 KiB
TypeScript

// Зеркало enum'ов backend (Tnsu.ApprovalRoute.Domain/Enums/*.cs).
// Значения должны 1:1 соответствовать C#-стороне: они ходят по сети как строки.
// Человекочитаемые подписи к этим значениям живут не здесь, а в texts.ts.
export enum RouteStepStatus {
None = 'None',
Approval = 'Approval',
Execution = 'Execution'
}
export enum ProjectRole {
None = 'None',
ProjectManager = 'ProjectManager',
Planner = 'Planner',
ManagerHSE = 'ManagerHSE',
Security = 'Security',
Keeper = 'Keeper'
}
export enum HeadType {
None = 'None',
Chief = 'Chief',
DirectionHead = 'DirectionHead',
DirectorTansu = 'DirectorTansu',
ManagingDirectorTansu = 'ManagingDirectorTansu',
// Резолвится по departmentId из запроса на resolve (см. ResolveTemplateRouteQuery),
// а не по цепочке подчинённости инициатора, как остальные типы, — поэтому на
// экране «Проверка маршрута» появляется отдельное поле выбора отдела.
DepartmentHead = 'DepartmentHead'
}
export enum ComparisonOperator {
None = 'None',
GreaterThan = 'GreaterThan',
LessThan = 'LessThan',
Equal = 'Equal',
NotEqual = 'NotEqual',
// «Содержит»/«Не содержит» имеют смысл только для текстовых колонок —
// см. ограничение операторов в RouteStepFormModal.
Contains = 'Contains',
NotContains = 'NotContains'
}