From 1a3fed537fa9710e6e1e0e372ac288cec514fad8 Mon Sep 17 00:00:00 2001 From: Veronika Tsygankova Date: Thu, 5 Nov 2026 14:35:58 +0300 Subject: [PATCH 1/2] =?UTF-8?q?[AURORA-1970]:=20=D0=A1=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BE=D1=87=D0=BD=D0=B8=D0=BA=D0=B8:=20=D1=81=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=B2=20=D0=93=D0=A1=D0=9A/=D0=93=D0=A1?= =?UTF-8?q?=D0=97=20=D0=B8=20=D1=80=D0=B5=D0=B5=D1=81=D1=82=D1=80=20=C2=AB?= =?UTF-8?q?=D0=AE=D0=9B=20=D0=B2=D0=BD=D0=B5=20=D0=93=D0=9A=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/layouts/CatalogueJur.tsx | 1 + .../slices/catalogueJurSlice/catalogueJurSlice.ts | 6 +++++- .../CatalogueJur/CatalogueJurForm/CatalogueJurForm.tsx | 9 ++++++--- .../CatalogueJurTable/CatalogueJurTable.tsx | 10 ++++++++-- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/web/src/layouts/CatalogueJur.tsx b/web/src/layouts/CatalogueJur.tsx index 537dd33..6c01029 100644 --- a/web/src/layouts/CatalogueJur.tsx +++ b/web/src/layouts/CatalogueJur.tsx @@ -45,6 +45,7 @@ export function CatalogueJur() { {createFormOpen && ( { setCreateFormOpen(false); }} diff --git a/web/src/store/slices/catalogueJurSlice/catalogueJurSlice.ts b/web/src/store/slices/catalogueJurSlice/catalogueJurSlice.ts index 7abf90b..2f8cb32 100644 --- a/web/src/store/slices/catalogueJurSlice/catalogueJurSlice.ts +++ b/web/src/store/slices/catalogueJurSlice/catalogueJurSlice.ts @@ -29,6 +29,10 @@ const catalogueJurSlice = createSlice({ state.activeCompanyGroup = action.payload; state.relatedGroupFilter = null; }, + resetRows(state) { + state.raw_rows = []; + state.total_groups = 0; + }, }, extraReducers: (builder) => { builder @@ -54,5 +58,5 @@ const catalogueJurSlice = createSlice({ }, }); -export const { setIsGettingArchive, setRelatedGroupFilter, setActiveCompanyGroup } = catalogueJurSlice.actions; +export const { setIsGettingArchive, setRelatedGroupFilter, setActiveCompanyGroup, resetRows } = catalogueJurSlice.actions; export default catalogueJurSlice.reducer; diff --git a/web/src/widgets/CatalogueJur/CatalogueJurForm/CatalogueJurForm.tsx b/web/src/widgets/CatalogueJur/CatalogueJurForm/CatalogueJurForm.tsx index afce0b8..9c338b6 100644 --- a/web/src/widgets/CatalogueJur/CatalogueJurForm/CatalogueJurForm.tsx +++ b/web/src/widgets/CatalogueJur/CatalogueJurForm/CatalogueJurForm.tsx @@ -16,6 +16,7 @@ type Props = { onCancel: () => void; onOk: (values: CatalogueJurFormProps) => void | Promise; jurId?: string; + outsideGroup?: boolean; }; // Ошибки сервера, относящиеся к одному полю, показываем у этого поля @@ -26,7 +27,7 @@ const FIELD_BY_ERROR_CODE: Record = { CRM_ID_EXISTS: 'crm_id', }; -export const CatalogueJurForm: React.FC = ({ open, onCancel, onOk, jurId }) => { +export const CatalogueJurForm: React.FC = ({ open, onCancel, onOk, jurId, outsideGroup = false }) => { const [form] = Form.useForm(); const notification = useNotificationApi(); const [initialDataLoading, setInitialDataLoading] = useState(false); @@ -67,7 +68,9 @@ export const CatalogueJurForm: React.FC = ({ open, onCancel, onOk, jurId } finally { setInitialDataLoading(false); } - } else { + } else if (!outsideGroup) { + // Создание из карточки ГК: подставляем выбранную ГК. В «ЮЛ вне ГК» не подставляем — + // выбранная ГК остаётся в сторе после ухода со страницы «ГК и организации». form.setFieldsValue({ company_group_id: activeCompanyGroup?.id ?? undefined, }); @@ -253,7 +256,7 @@ export const CatalogueJurForm: React.FC = ({ open, onCancel, onOk, jurId } - placeholder='Поиск по ГК, CRM ID или РФ' + placeholder='Поиск по ЮЛ или ИНН' value={rawQuery} onChange={(e) => setRawQuery(e.target.value)} style={{ maxWidth: 320 }} -- 2.47.2 From 2f8f4138af4d4ddcf83d8fe16c9f85235cead2e0 Mon Sep 17 00:00:00 2001 From: Veronika Tsygankova Date: Tue, 10 Nov 2026 17:51:53 +0300 Subject: [PATCH 2/2] =?UTF-8?q?[AURORA-1970]=20-=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=B0=D1=87=D0=B0=20requestId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../slices/catalogueJurSlice/catalogueJurSlice.ts | 11 ++++++++++- web/src/store/slices/catalogueJurSlice/types.ts | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/web/src/store/slices/catalogueJurSlice/catalogueJurSlice.ts b/web/src/store/slices/catalogueJurSlice/catalogueJurSlice.ts index 2f8cb32..e863b79 100644 --- a/web/src/store/slices/catalogueJurSlice/catalogueJurSlice.ts +++ b/web/src/store/slices/catalogueJurSlice/catalogueJurSlice.ts @@ -10,6 +10,7 @@ const initialState: CatalogueJurSliceType = { total_groups: 0, loading: false, error: null, + currentRequestId: null, isGettingArchive: false, relatedGroupFilter: null, activeCompanyGroup: null, @@ -32,22 +33,30 @@ const catalogueJurSlice = createSlice({ resetRows(state) { state.raw_rows = []; state.total_groups = 0; + // Запрос, начатый до сброса, больше не нужен: его ответ отбросится в fulfilled/rejected + state.currentRequestId = null; + state.loading = false; }, }, extraReducers: (builder) => { builder - .addCase(getCatalogueJurThunk.pending, (state, _) => { + .addCase(getCatalogueJurThunk.pending, (state, action) => { + state.currentRequestId = action.meta.requestId; state.loading = true; state.error = null; }) .addCase(getCatalogueJurThunk.fulfilled, (state, action) => { + if (action.meta.requestId !== state.currentRequestId) return; state.raw_rows = action.payload.items; state.total_groups = action.payload.total; state.loading = false; + state.currentRequestId = null; }) .addCase(getCatalogueJurThunk.rejected, (state, action) => { + if (action.meta.requestId !== state.currentRequestId) return; state.error = action.payload ?? 'Неизвестная ошибка'; state.loading = false; + state.currentRequestId = null; }) // Выбранная ГК — копия строки списка ГК: после перезагрузки списка берём свежую (счётчик ЮЛ в шапке и вкладке) .addCase(getCompanyGroupsThunk.fulfilled, (state, action) => { diff --git a/web/src/store/slices/catalogueJurSlice/types.ts b/web/src/store/slices/catalogueJurSlice/types.ts index 7227c33..9048d8a 100644 --- a/web/src/store/slices/catalogueJurSlice/types.ts +++ b/web/src/store/slices/catalogueJurSlice/types.ts @@ -7,6 +7,7 @@ export interface CatalogueJurSliceType { raw_rows: ICatalogueJur[]; loading: boolean; error: string | null; + currentRequestId: string | null; isGettingArchive: boolean; relatedGroupFilter?: RelatedGroupOut | null; activeCompanyGroup?: ICompanyGroup | null; -- 2.47.2