aurora-1544 добавление таблицы гудвил #220
@ -1,7 +1,6 @@
|
||||
import { PlusOutlined } from '@ant-design/icons';
|
||||
import { Button, Empty, Space } from 'antd';
|
||||
import { useEffect, useMemo, useState } from 'react';
|
||||
import { ApiError } from '../api/client';
|
||||
import PageTitle from '../components/PageTitle';
|
||||
import { createCatalogueJur } from '../services/api/directories/catalogue_jur';
|
||||
import {
|
||||
@ -108,11 +107,7 @@ export function CatalogueGroup() {
|
||||
|
||||
setCompanyGroupDeleteOpen(false);
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({
|
||||
description: e.message,
|
||||
});
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Не удалось обновить компанию' });
|
||||
} finally {
|
||||
setCompanyGroupDeleteLoading(false);
|
||||
}
|
||||
@ -128,9 +123,7 @@ export function CatalogueGroup() {
|
||||
setGskData(gsks);
|
||||
setGszData(gszs);
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({ description: e.message });
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при получении связанных групп' });
|
||||
} finally {
|
||||
setRelatedGroupLoading(false);
|
||||
}
|
||||
|
||||
@ -37,9 +37,7 @@ export const CompanyGroupForm: React.FC<Props> = ({ open, onCancel, onOk, compan
|
||||
base_regional_office_id: data.base_regional_office_id,
|
||||
});
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({ description: e.message });
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при получении данных' });
|
||||
} finally {
|
||||
setInitialDataLoading(false);
|
||||
}
|
||||
@ -53,9 +51,7 @@ export const CompanyGroupForm: React.FC<Props> = ({ open, onCancel, onOk, compan
|
||||
const options = res.map((elem) => elem && { value: elem.id, label: elem.name });
|
||||
setOfficesOptions(options);
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({ description: e.message });
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при получения региональных офисов' });
|
||||
} finally {
|
||||
setLoadingOptions(false);
|
||||
}
|
||||
|
||||
@ -18,7 +18,6 @@ type Props = {
|
||||
jurId?: string;
|
||||
};
|
||||
|
||||
// Ошибки сервера, относящиеся к одному полю, показываем у этого поля
|
||||
const FIELD_BY_ERROR_CODE: Record<string, keyof CatalogueJurFormProps> = {
|
||||
INN_EXISTS: 'inn',
|
||||
INVALID_INN: 'inn',
|
||||
@ -61,9 +60,7 @@ export const CatalogueJurForm: React.FC<Props> = ({ open, onCancel, onOk, jurId
|
||||
});
|
||||
getRelatedGroupsHandler(data.company_group_id as string);
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({ description: e.message });
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при получнии данных' });
|
||||
} finally {
|
||||
setInitialDataLoading(false);
|
||||
}
|
||||
@ -82,9 +79,7 @@ export const CatalogueJurForm: React.FC<Props> = ({ open, onCancel, onOk, jurId
|
||||
const options = res.map((elem) => elem && { value: elem.id, label: elem.name });
|
||||
setOfficesOptions(options);
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({ description: e.message });
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при получения офисов рф' });
|
||||
} finally {
|
||||
setLoadingOfficesOptions(false);
|
||||
}
|
||||
@ -101,9 +96,7 @@ export const CatalogueJurForm: React.FC<Props> = ({ open, onCancel, onOk, jurId
|
||||
setGskData(gsks);
|
||||
setGszData(gszs);
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({ description: e.message });
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при получении связанных компаний' });
|
||||
} finally {
|
||||
setLoadingRelatedGroupsOptions(false);
|
||||
}
|
||||
|
||||
@ -3,7 +3,6 @@ import FormItem from 'antd/es/form/FormItem';
|
||||
import dayjs from 'dayjs';
|
||||
import type React from 'react';
|
||||
import { useEffect, useState } from 'react';
|
||||
import { ApiError } from '../../../api/client';
|
||||
import { AppModal } from '../../../components/AppModal/AppModal';
|
||||
import { fetchOneCatalogueJur } from '../../../services/api/directories/catalogue_jur';
|
||||
import { getCompanyGroupsThunk } from '../../../store/slices/companyGroupsSlice/thunks';
|
||||
@ -47,9 +46,7 @@ export const MoveCatalogueJurForm: React.FC<Props> = ({ open, onCancel, onOk, ju
|
||||
effective_date: '',
|
||||
});
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({ description: e.message });
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при получении данных' });
|
||||
} finally {
|
||||
setInitialDataLoading(false);
|
||||
}
|
||||
@ -61,11 +58,7 @@ export const MoveCatalogueJurForm: React.FC<Props> = ({ open, onCancel, onOk, ju
|
||||
const { effective_date, company_group_id } = await form.validateFields();
|
||||
await onOk({ effective_date, company_group_id });
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({
|
||||
description: e.message,
|
||||
});
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при сохранении данных' });
|
||||
} finally {
|
||||
setConfirmLoading(false);
|
||||
}
|
||||
|
||||
@ -11,7 +11,6 @@ import { Alert, Button, Checkbox, Dropdown, Input, Space } from 'antd';
|
||||
import type { ColumnsType } from 'antd/es/table';
|
||||
import { type ReactNode, useEffect, useMemo, useState } from 'react';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { ApiError } from '../../../api/client';
|
||||
import { ColumnSettings, DataTable, useFilteredRows, useTableFilters, useVisibleColumns } from '../../../components/GenericTable';
|
||||
import { editCatalogueJur, moveCatalogueJur, withdrawCatalogueJur } from '../../../services/api/directories/catalogue_jur';
|
||||
import { setIsGettingArchive, setRelatedGroupFilter } from '../../../store/slices/catalogueJurSlice/catalogueJurSlice';
|
||||
@ -100,11 +99,7 @@ export function CatalogueJurTable({ outside_group, tabsComponent }: CatalogueJur
|
||||
dispatch(getCompanyGroupsThunk());
|
||||
closeMoveCatalogueJurHandler();
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({
|
||||
description: e.message,
|
||||
});
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при перемещении ЮЛ в другую ГК' });
|
||||
}
|
||||
}
|
||||
async function withdrawCatalogueJurHandler(values: WithdrawCatalogueJurProps) {
|
||||
@ -115,11 +110,7 @@ export function CatalogueJurTable({ outside_group, tabsComponent }: CatalogueJur
|
||||
|
||||
closeWithdrawCatalogueJurHandler();
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({
|
||||
description: e.message,
|
||||
});
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при выводе ЮЛ из ГК' });
|
||||
}
|
||||
}
|
||||
|
||||
@ -130,7 +121,6 @@ export function CatalogueJurTable({ outside_group, tabsComponent }: CatalogueJur
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
// «ЮЛ вне ГК» грузится без выбранной ГК; список ГК — только по выбранной (без неё запрос ушёл бы по всем ГК)
|
||||
if (outside_group || activeCompanyGroup?.id) {
|
||||
getCatalogueJur();
|
||||
}
|
||||
|
||||
@ -4,7 +4,6 @@ import TextArea from 'antd/es/input/TextArea';
|
||||
import dayjs from 'dayjs';
|
||||
import type React from 'react';
|
||||
import { useEffect, useState } from 'react';
|
||||
import { ApiError } from '../../../api/client';
|
||||
import { AppModal } from '../../../components/AppModal/AppModal';
|
||||
import { fetchOneCatalogueJur } from '../../../services/api/directories/catalogue_jur';
|
||||
import type { WithdrawCatalogueJurProps } from '../../../types/catalogueJur/catalogueJur';
|
||||
@ -44,9 +43,7 @@ export const WithdrawCatalogueJurForm: React.FC<Props> = ({ open, onCancel, onOk
|
||||
comment: '',
|
||||
});
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({ description: e.message });
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при получении данных' });
|
||||
} finally {
|
||||
setInitialDataLoading(false);
|
||||
}
|
||||
@ -58,11 +55,7 @@ export const WithdrawCatalogueJurForm: React.FC<Props> = ({ open, onCancel, onOk
|
||||
const { effective_date, event, comment = '' } = await form.validateFields();
|
||||
await onOk({ effective_date, event, comment });
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({
|
||||
description: e.message,
|
||||
});
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при сохранении данных' });
|
||||
} finally {
|
||||
setConfirmLoading(false);
|
||||
}
|
||||
|
||||
@ -108,9 +108,7 @@ export const ChessContent = ({ card }: { card: VersionCard | null }) => {
|
||||
const res = await fetchChessConsolidationsResult(vid);
|
||||
setChessResData(res);
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({ description: e.message });
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при получении данных' });
|
||||
} finally {
|
||||
setChessResLoading(false);
|
||||
}
|
||||
@ -134,9 +132,7 @@ export const ChessContent = ({ card }: { card: VersionCard | null }) => {
|
||||
saveBlob(blob, filename ?? xlsxFilename('Шахматка', versionInfo));
|
||||
}
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({ description: e.message });
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при экспорте данных' });
|
||||
} finally {
|
||||
setMatrixExportLoading(false);
|
||||
}
|
||||
@ -150,9 +146,7 @@ export const ChessContent = ({ card }: { card: VersionCard | null }) => {
|
||||
const { blob, filename } = await exportChessConsolidationsResult(version_id);
|
||||
saveBlob(blob, filename ?? xlsxFilename('Результирующая_таблица_ВГО', versionInfo));
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({ description: e.message });
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при экспорте данных' });
|
||||
} finally {
|
||||
setResExportLoading(false);
|
||||
}
|
||||
|
||||
@ -2,7 +2,6 @@ import { DownloadOutlined, EditOutlined, FullscreenExitOutlined, FullscreenOutli
|
||||
import { Alert, Button, ConfigProvider, Select, Space, Tooltip } from 'antd';
|
||||
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
||||
import { useParams } from 'react-router-dom';
|
||||
import { ApiError } from '../../../api/client';
|
||||
import { ConsolidationFormatTableFilter } from '../../../components/ConsolidationFormatTableFilter/ConsolidationFormatTableFilter';
|
||||
import { type ColumnDef, ColumnSettings, useVisibleColumns } from '../../../components/GenericTable';
|
||||
import { exportGoodwillTable, fetchGoodwillTable, saveGoodwillRow } from '../../../services/api/goodwill';
|
||||
@ -191,7 +190,7 @@ export const GoodwillContent = ({ card }: { card: VersionCard | null }) => {
|
||||
setFullscreen(false);
|
||||
}
|
||||
} catch (e) {
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка' });
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка раскрытия на весь экран' });
|
||||
}
|
||||
};
|
||||
|
||||
|
|
||||
@ -219,9 +218,7 @@ export const GoodwillContent = ({ card }: { card: VersionCard | null }) => {
|
||||
});
|
||||
setEditedRows(initialEdited);
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({ description: e.message });
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при загрузке данных' });
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
@ -253,9 +250,7 @@ export const GoodwillContent = ({ card }: { card: VersionCard | null }) => {
|
||||
setIsEditMode(false);
|
||||
loadData(version_id);
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({ description: e.message });
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при сохранении данных' });
|
||||
} finally {
|
||||
setSaving(false);
|
||||
}
|
||||
@ -270,9 +265,7 @@ export const GoodwillContent = ({ card }: { card: VersionCard | null }) => {
|
||||
const { blob, filename } = await exportGoodwillTable(version_id);
|
||||
saveBlob(blob, filename ?? xlsxFilename('Гудвил', versionInfo));
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({ description: e.message });
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при экспорте таблицы' });
|
||||
} finally {
|
||||
setExportLoading(false);
|
||||
}
|
||||
|
||||
@ -48,9 +48,7 @@ export const RelatedGroupForm: React.FC<Props> = ({ open, onCancel, onOk, relate
|
||||
company_group_id: data?.company_group_id,
|
||||
});
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({ description: e.message });
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при получении данных' });
|
||||
} finally {
|
||||
setInitialDataLoading(false);
|
||||
}
|
||||
|
||||
@ -2,7 +2,6 @@ import { DeleteOutlined, EditOutlined, EllipsisOutlined } from '@ant-design/icon
|
||||
import { Button, Dropdown, Space } from 'antd';
|
||||
import type { ColumnsType } from 'antd/es/table';
|
||||
import { type ReactNode, useMemo, useState } from 'react';
|
||||
import { ApiError } from '../../../api/client';
|
||||
import { ColumnSettings, DataTable, useFilteredRows, useVisibleColumns } from '../../../components/GenericTable';
|
||||
import { useTableFilters } from '../../../components/GenericTable/useTableFilters';
|
||||
import { deleteRelatedGroup, editRelatedGroup } from '../../../services/api/directories/related-groups';
|
||||
@ -51,11 +50,7 @@ export function RelatedGroupTable({ tabsComponent, data, loading, getData, activ
|
||||
setDeleteModalOpen(false);
|
||||
setGroupId('');
|
||||
} catch (e) {
|
||||
if (e instanceof ApiError) {
|
||||
notification.error({
|
||||
description: e.message,
|
||||
});
|
||||
}
|
||||
notification.error({ description: e instanceof Error ? e.message : 'Ошибка при удалении данных' });
|
||||
} finally {
|
||||
setDeletingLoading(false);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user
Сейчас ошибка будет отображаться, только в случае
e instanceof ApiError. Во всех остальных случаях пользователь не увидит никакого уведомления.Предлагаю заменить на:
notification.error({ description: e instanceof ApiError ? e.message : 'Не удалось загрузить данные Гудвилла' });Аналогично стоит обрабатывать остальные вызовы
notification.errorвhandleSaveиdownload