[AURORA-1970]: Справочники: состав ГСК/ГСЗ и реестр «ЮЛ вне ГК» #221
@ -45,6 +45,7 @@ export function CatalogueJur() {
|
||||
{createFormOpen && (
|
||||
<CatalogueJurForm
|
||||
open={createFormOpen}
|
||||
outsideGroup={outside_group}
|
||||
onCancel={() => {
|
||||
setCreateFormOpen(false);
|
||||
}}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -16,6 +16,7 @@ type Props = {
|
||||
onCancel: () => void;
|
||||
onOk: (values: CatalogueJurFormProps) => void | Promise<void>;
|
||||
jurId?: string;
|
||||
outsideGroup?: boolean;
|
||||
};
|
||||
|
||||
// Ошибки сервера, относящиеся к одному полю, показываем у этого поля
|
||||
@ -26,7 +27,7 @@ const FIELD_BY_ERROR_CODE: Record<string, keyof CatalogueJurFormProps> = {
|
||||
CRM_ID_EXISTS: 'crm_id',
|
||||
};
|
||||
|
||||
export const CatalogueJurForm: React.FC<Props> = ({ open, onCancel, onOk, jurId }) => {
|
||||
export const CatalogueJurForm: React.FC<Props> = ({ open, onCancel, onOk, jurId, outsideGroup = false }) => {
|
||||
const [form] = Form.useForm<CatalogueJurFormProps>();
|
||||
const notification = useNotificationApi();
|
||||
const [initialDataLoading, setInitialDataLoading] = useState(false);
|
||||
@ -67,7 +68,9 @@ export const CatalogueJurForm: React.FC<Props> = ({ 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<Props> = ({ open, onCancel, onOk, jurId
|
||||
<Col span={12}>
|
||||
<Form.Item name='company_group_id' label='ГК'>
|
||||
<Select
|
||||
disabled={!!jurId}
|
||||
disabled={!!jurId || outsideGroup}
|
||||
allowClear
|
||||
placeholder='— не указан —'
|
||||
options={companyGroupOptions}
|
||||
|
||||
@ -14,7 +14,7 @@ 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';
|
||||
import { resetRows, setIsGettingArchive, setRelatedGroupFilter } from '../../../store/slices/catalogueJurSlice/catalogueJurSlice';
|
||||
import { getCatalogueJurThunk } from '../../../store/slices/catalogueJurSlice/thunks';
|
||||
import { getCompanyGroupsThunk } from '../../../store/slices/companyGroupsSlice/thunks';
|
||||
import { useAppDispatch, useAppSelector } from '../../../store/store';
|
||||
@ -136,6 +136,12 @@ export function CatalogueJurTable({ outside_group, tabsComponent }: CatalogueJur
|
||||
}
|
||||
}, [isGettingArchive, activeCompanyGroup, outside_group]);
|
||||
|
||||
useEffect(() => {
|
||||
return () => {
|
||||
dispatch(resetRows());
|
||||
};
|
||||
}, [dispatch]);
|
||||
|
||||
const extraColumns: ColumnsType<ICatalogueJur> = useMemo(
|
||||
() => [
|
||||
{
|
||||
@ -213,7 +219,7 @@ export function CatalogueJurTable({ outside_group, tabsComponent }: CatalogueJur
|
||||
<Input
|
||||
allowClear
|
||||
prefix={<SearchOutlined />}
|
||||
placeholder='Поиск по ГК, CRM ID или РФ'
|
||||
placeholder='Поиск по ЮЛ или ИНН'
|
||||
value={rawQuery}
|
||||
onChange={(e) => setRawQuery(e.target.value)}
|
||||
style={{ maxWidth: 320 }}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user