правки по логике переключения
This commit is contained in:
@@ -27,11 +27,16 @@ export const APPROVAL_PHASE = {
|
||||
} as const;
|
||||
|
||||
// Строка маршрута в одном из этих статусов ЕЩЁ НЕ решена согласующим/исполнителем
|
||||
// ОКОНЧАТЕЛЬНО — её можно менять (переназначить человека, удалить, переставить,
|
||||
// добавить новую рядом). «Возвращена на доработку» сюда включена нарочно: это не
|
||||
// финальное решение (заявка вернётся на новый круг после доработки), поэтому
|
||||
// согласующего на этом шаге всё ещё можно переназначить. approved/executed/
|
||||
// rejected — финальные решения, трогать нельзя ни при каких условиях.
|
||||
// ОКОНЧАТЕЛЬНО — её можно менять (переназначить человека, удалить, добавить новую
|
||||
// рядом). «Возвращена на доработку» сюда включена нарочно: это не финальное
|
||||
// решение (заявка вернётся на новый круг после доработки), поэтому согласующего
|
||||
// на этом шаге всё ещё можно переназначить. approved/executed/rejected —
|
||||
// финальные решения, трогать нельзя ни при каких условиях.
|
||||
//
|
||||
// ВАЖНО: это НЕ то же самое, что «можно переставить» (см. isMovableRowStatus
|
||||
// ниже) — «Возвращена на доработку» уже означает, что своё слово по этому шагу
|
||||
// согласующий сказал (просто мы разрешаем потом переназначить человека), поэтому
|
||||
// двигать такой шаг/менять его параллельность нельзя, а переназначить — можно.
|
||||
const EDITABLE_ROW_STATUSES: string[] = [
|
||||
REQUEST_STATUS.draft,
|
||||
REQUEST_STATUS.queued,
|
||||
@@ -44,6 +49,22 @@ export function isEditableRowStatus(status: string): boolean {
|
||||
return EDITABLE_ROW_STATUSES.indexOf(status) !== -1;
|
||||
}
|
||||
|
||||
// Строка в одном из этих статусов можно двигать (стрелки вверх/вниз) и менять её
|
||||
// параллельность с соседней — строго подмножество EDITABLE_ROW_STATUSES, без
|
||||
// «Возвращена на доработку»: решение по шагу уже принято, менять его МЕСТО в
|
||||
// маршруте (а значит и то, когда он активируется повторно) не должно быть можно,
|
||||
// хотя переназначить исполнителя на нём — можно (см. isEditableRowStatus).
|
||||
const MOVABLE_ROW_STATUSES: string[] = [
|
||||
REQUEST_STATUS.draft,
|
||||
REQUEST_STATUS.queued,
|
||||
REQUEST_STATUS.onApproval,
|
||||
REQUEST_STATUS.onExecution
|
||||
];
|
||||
|
||||
export function isMovableRowStatus(status: string): boolean {
|
||||
return MOVABLE_ROW_STATUSES.indexOf(status) !== -1;
|
||||
}
|
||||
|
||||
// Заявка в этом статусе прошла полностью (все фазы завершены) — маршрут можно
|
||||
// только посмотреть, редактирование выключается целиком независимо от статусов
|
||||
// отдельных строк.
|
||||
|
||||
Reference in New Issue
Block a user