fix: черновик без маршрута планирует маршрут заново при открытии
У части черновиков не оказалось строк маршрута, и форма показывала пустую матрицу: отправить такую заявку было некому. Теперь при открытии черновика без строк маршрут планируется заново (loadRoutePhase), во всех формах; поданные заявки по-прежнему читают записанные строки. Почему строки пропали у первоначального случая — пока не выяснено. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -23,6 +23,8 @@ import {
|
||||
useMatrixEditor,
|
||||
canEditExecutors,
|
||||
getPlannedMatrix,
|
||||
loadRoutePhase,
|
||||
isOpenedRouteReady,
|
||||
notifyActiveStep,
|
||||
useRequestTypeId,
|
||||
REQUEST_STATUS,
|
||||
@@ -30,7 +32,6 @@ import {
|
||||
IApproverToWrite,
|
||||
unassignedStepMessage,
|
||||
resolveWriteListId,
|
||||
APPROVAL_PHASE,
|
||||
initialSubmitStatus,
|
||||
resolveApproverOrgInfo,
|
||||
canEditRoute
|
||||
@@ -210,18 +211,18 @@ const ReferralForm: React.FC<IRequestFormProps> = ({
|
||||
// правки инициатора.
|
||||
const loadMatrix = useCallback(
|
||||
() =>
|
||||
editId
|
||||
? approval
|
||||
.getMatrixForRequest(editId)
|
||||
.then((rows) => rows.filter((r) => r.phase !== APPROVAL_PHASE.execution))
|
||||
: getPlannedMatrix(context, requestTypeId as number, data.Referrer, approval, 'Approval'),
|
||||
[context, approval, editId, data.Referrer, requestTypeId]
|
||||
loadRoutePhase(approval, editId, requestStatus, 'Approval', () =>
|
||||
getPlannedMatrix(context, requestTypeId as number, data.Referrer, approval, 'Approval')
|
||||
),
|
||||
[context, approval, editId, requestStatus, data.Referrer, requestTypeId]
|
||||
);
|
||||
const matrixReady =
|
||||
isOpenedRouteReady(editId, requestStatus, requestTypeId) && (!!editId || (!!data.Referrer && !!requestTypeId));
|
||||
const matrix = useMatrixEditor(
|
||||
loadMatrix,
|
||||
`${data.Referrer}-${editId ?? 'new'}`,
|
||||
!readOnly,
|
||||
!!editId || (!!data.Referrer && !!requestTypeId),
|
||||
matrixReady,
|
||||
(login) => approval.getJobTitle(login),
|
||||
resolveApproverOrgInfo(context)
|
||||
);
|
||||
@@ -232,18 +233,16 @@ const ReferralForm: React.FC<IRequestFormProps> = ({
|
||||
// 'Execution' getPlannedMatrix её просто не резолвит.
|
||||
const loadExecutors = useCallback(
|
||||
() =>
|
||||
editId
|
||||
? approval
|
||||
.getMatrixForRequest(editId)
|
||||
.then((rows) => rows.filter((r) => r.phase === APPROVAL_PHASE.execution))
|
||||
: getPlannedMatrix(context, requestTypeId as number, data.Referrer, approval, 'Execution'),
|
||||
[context, approval, editId, data.Referrer, requestTypeId]
|
||||
loadRoutePhase(approval, editId, requestStatus, 'Execution', () =>
|
||||
getPlannedMatrix(context, requestTypeId as number, data.Referrer, approval, 'Execution')
|
||||
),
|
||||
[context, approval, editId, requestStatus, data.Referrer, requestTypeId]
|
||||
);
|
||||
const executors = useMatrixEditor(
|
||||
loadExecutors,
|
||||
`${data.Referrer}-${editId ?? 'new'}`,
|
||||
canEditExecutors(context, readOnly),
|
||||
!!editId || (!!data.Referrer && !!requestTypeId),
|
||||
matrixReady,
|
||||
(login) => approval.getJobTitle(login),
|
||||
resolveApproverOrgInfo(context)
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user