fix: changed script to crete cells from list to site
This commit is contained in:
@@ -11,11 +11,19 @@ interface IDecisionPanelProps {
|
||||
requestId: number;
|
||||
/** Уведомление после сохранения решения (например, обновить статус на экране). */
|
||||
onDecided?: (status: string) => void;
|
||||
/** Выполнить ПЕРЕД применением решения (напр. сохранить поля, заполненные
|
||||
* согласующим). Если бросит — решение не применяется, показывается ошибка. */
|
||||
onBeforeDecide?: () => Promise<void>;
|
||||
}
|
||||
|
||||
// Панель решения согласующего: проверяет, его ли сейчас очередь, и если да —
|
||||
// показывает комментарий и кнопки Согласовать / Вернуть / Отклонить.
|
||||
export const DecisionPanel: React.FC<IDecisionPanelProps> = ({ service, requestId, onDecided }) => {
|
||||
export const DecisionPanel: React.FC<IDecisionPanelProps> = ({
|
||||
service,
|
||||
requestId,
|
||||
onDecided,
|
||||
onBeforeDecide,
|
||||
}) => {
|
||||
const [checking, setChecking] = useState<boolean>(true);
|
||||
const [rowId, setRowId] = useState<number | undefined>(undefined);
|
||||
const [phase, setPhase] = useState<string>(APPROVAL_PHASE.approval);
|
||||
@@ -60,6 +68,10 @@ export const DecisionPanel: React.FC<IDecisionPanelProps> = ({ service, requestI
|
||||
setError(null);
|
||||
setSubmitting(true);
|
||||
try {
|
||||
// Сохраняем правки согласующего (если есть) ДО применения решения.
|
||||
if (onBeforeDecide) {
|
||||
await onBeforeDecide();
|
||||
}
|
||||
const status = await service.decide(requestId, rowId, decision, comment.trim());
|
||||
setResultStatus(status);
|
||||
setSubmitting(false);
|
||||
|
||||
Reference in New Issue
Block a user