fix: черновик без маршрута планирует маршрут заново при открытии
У части черновиков не оказалось строк маршрута, и форма показывала пустую матрицу: отправить такую заявку было некому. Теперь при открытии черновика без строк маршрут планируется заново (loadRoutePhase), во всех формах; поданные заявки по-прежнему читают записанные строки. Почему строки пропали у первоначального случая — пока не выяснено. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -19,13 +19,14 @@ import {
|
||||
StatusBadge,
|
||||
useMatrixEditor,
|
||||
getPlannedMatrix,
|
||||
loadRoutePhase,
|
||||
isOpenedRouteReady,
|
||||
resolveWriteListId,
|
||||
notifyActiveStep,
|
||||
useRequestTypeId,
|
||||
REQUEST_STATUS,
|
||||
isEditableStatus,
|
||||
IApproverToWrite,
|
||||
APPROVAL_PHASE,
|
||||
unassignedStepMessage
|
||||
} from '../../shared/approval';
|
||||
import { effectiveUserEmail } from '../../shared/impersonation';
|
||||
@@ -149,16 +150,15 @@ const ClearanceForm: React.FC<IRequestFormProps> = ({
|
||||
// передана» (см. TemplateRouteService.ResolveAsync в approval-route).
|
||||
const loadMatrix = useCallback(
|
||||
() =>
|
||||
editId
|
||||
? approval
|
||||
.getMatrixForRequest(editId)
|
||||
.then((rows) => rows.filter((r) => r.phase !== APPROVAL_PHASE.execution))
|
||||
: getPlannedMatrix(context, requestTypeId as number, data.Employee, approval, 'Approval', null, [
|
||||
{ fieldName: 'Position', value: data.Position }
|
||||
]),
|
||||
[context, approval, editId, data.Employee, data.Position, requestTypeId]
|
||||
loadRoutePhase(approval, editId, requestStatus, 'Approval', () =>
|
||||
getPlannedMatrix(context, requestTypeId as number, data.Employee, approval, 'Approval', null, [
|
||||
{ fieldName: 'Position', value: data.Position }
|
||||
])
|
||||
),
|
||||
[context, approval, editId, requestStatus, data.Employee, data.Position, requestTypeId]
|
||||
);
|
||||
const matrixReady = !!editId || (!!data.Employee && !!requestTypeId);
|
||||
const matrixReady =
|
||||
isOpenedRouteReady(editId, requestStatus, requestTypeId) && (!!editId || (!!data.Employee && !!requestTypeId));
|
||||
const matrix = useMatrixEditor(
|
||||
loadMatrix,
|
||||
`${data.Employee}-${editId ?? 'new'}-${data.Position}`,
|
||||
@@ -172,14 +172,12 @@ const ClearanceForm: React.FC<IRequestFormProps> = ({
|
||||
// открытой на редактирование заявки — строки уже записаны, читаем как есть.
|
||||
const loadExecutors = useCallback(
|
||||
() =>
|
||||
editId
|
||||
? approval
|
||||
.getMatrixForRequest(editId)
|
||||
.then((rows) => rows.filter((r) => r.phase === APPROVAL_PHASE.execution))
|
||||
: getPlannedMatrix(context, requestTypeId as number, data.Employee, approval, 'Execution', null, [
|
||||
{ fieldName: 'Position', value: data.Position }
|
||||
]),
|
||||
[context, approval, editId, data.Employee, data.Position, requestTypeId]
|
||||
loadRoutePhase(approval, editId, requestStatus, 'Execution', () =>
|
||||
getPlannedMatrix(context, requestTypeId as number, data.Employee, approval, 'Execution', null, [
|
||||
{ fieldName: 'Position', value: data.Position }
|
||||
])
|
||||
),
|
||||
[context, approval, editId, requestStatus, data.Employee, data.Position, requestTypeId]
|
||||
);
|
||||
const executors = useMatrixEditor(
|
||||
loadExecutors,
|
||||
|
||||
Reference in New Issue
Block a user