fix: changed script to crete cells from list to site

This commit is contained in:
Тимур Городецкий
2026-08-06 15:00:06 +05:00
parent 571614c031
commit 05f294d732
11 changed files with 435 additions and 99 deletions
@@ -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);