Commit c49b494d authored by Merekeyev Dias's avatar Merekeyev Dias

manageOrganition fixed

parent b2c55c72
import React, { useEffect } from 'react'; import React, { useEffect, useState } from 'react';
import { useNavigate, useParams } from 'react-router'; import { useNavigate, useParams } from 'react-router';
import { useSelector, useDispatch } from 'react-redux'; import { useSelector, useDispatch } from 'react-redux';
import { Form, Input, Button, Select, message } from 'antd'; import { Form, Input, Button, Select, message } from 'antd';
...@@ -22,16 +22,17 @@ const { Item } = Form; ...@@ -22,16 +22,17 @@ const { Item } = Form;
const { Option } = Select; const { Option } = Select;
const ManageOrganization: React.FC = () => { const ManageOrganization: React.FC = () => {
const [form] = Form.useForm();
const navigate = useNavigate(); const navigate = useNavigate();
const dispatch = useDispatch(); const dispatch = useDispatch();
const { id } = useParams<{ id: string }>(); const { id } = useParams<{ id: string }>();
const isEdit = Boolean(id); const isEdit = Boolean(id);
const { data, isLoading, isError } = useGetOrganizationQuery(id!, { skip: !isEdit });
const { data: organizations } = useGetOrganizationsQuery();
const [editOrganization] = useEditOrganizationMutation();
const [form] = Form.useForm();
const totalOrgNumber = useSelector((state: any) => state.mainPagination.totalOrgNumber); const totalOrgNumber = useSelector((state: any) => state.mainPagination.totalOrgNumber);
const ORG_NUMBER_PER_PAGE = useSelector((state: any) => state.mainPagination.ORG_NUMBER_PER_PAGE); const ORG_NUMBER_PER_PAGE = useSelector((state: any) => state.mainPagination.ORG_NUMBER_PER_PAGE);
const [isBtnLoading, setIsBtnLoading] = useState(false);
const { data, isLoading: isGetLoading, isError: isGetError } = useGetOrganizationQuery(id!, { skip: !isEdit });
const { data: organizations } = useGetOrganizationsQuery();
const [ editOrganization ] = useEditOrganizationMutation();
useEffect(() => { useEffect(() => {
if (data) { if (data) {
...@@ -59,25 +60,23 @@ const ManageOrganization: React.FC = () => { ...@@ -59,25 +60,23 @@ const ManageOrganization: React.FC = () => {
return; return;
} }
try { setIsBtnLoading(true);
if (isEdit) {
await editOrganization({ ...normalizedValues }).unwrap(); await editOrganization({ ...normalizedValues }).unwrap();
setIsBtnLoading(false);
if (isEdit) {
message.success('Организация успешно обновлена!'); message.success('Организация успешно обновлена!');
} else { } else {
await editOrganization({ ...normalizedValues }).unwrap();
message.success('Организация успешно добавлена!'); message.success('Организация успешно добавлена!');
dispatch(setTotalOrgNumber(totalOrgNumber + 1)); dispatch(setTotalOrgNumber(totalOrgNumber + 1));
const newCurrentPage = Math.ceil((totalOrgNumber + 1) / ORG_NUMBER_PER_PAGE); const newCurrentPage = Math.ceil((totalOrgNumber + 1) / ORG_NUMBER_PER_PAGE);
dispatch(setCurrentPage(newCurrentPage)); dispatch(setCurrentPage(newCurrentPage));
} }
navigate('/'); navigate('/');
} catch (err) {
message.error('Произошла ошибка при сохранении организации!');
}
}; };
if (isEdit && isLoading) return <div>Loading...</div>; if (isEdit && isGetLoading) return <div>Loading...</div>;
if (isEdit && isError) return <div>Error loading organization data</div>; if (isEdit && isGetError) return <div>Error loading organization data</div>;
return ( return (
<div className='container'> <div className='container'>
...@@ -168,7 +167,11 @@ const ManageOrganization: React.FC = () => { ...@@ -168,7 +167,11 @@ const ManageOrganization: React.FC = () => {
> >
Отмена Отмена
</Button> </Button>
<Button type="primary" htmlType="submit"> <Button
type="primary"
htmlType="submit"
loading={isBtnLoading}
>
Сохранить Сохранить
</Button> </Button>
</Item> </Item>
......
...@@ -88,10 +88,9 @@ const RequestPage: React.FC = () => { ...@@ -88,10 +88,9 @@ const RequestPage: React.FC = () => {
let max: number = -Infinity; let max: number = -Infinity;
if (isSuccess) { if (isSuccess) {
console.log(window.innerHeight)
reqs.list.forEach((req) => { reqs.list.forEach((req) => {
const dateValue = new Date(req.sendDate).valueOf(); const dateValue = new Date(req.sendDate).valueOf();
if (min > dateValue && dateValue!=0) { if (min > dateValue && dateValue != 0) {
min = dateValue; min = dateValue;
} }
if (max < dateValue) { if (max < dateValue) {
...@@ -127,13 +126,14 @@ const RequestPage: React.FC = () => { ...@@ -127,13 +126,14 @@ const RequestPage: React.FC = () => {
if (isLoading) { if (isLoading) {
setIsTableLoading(true); setIsTableLoading(true);
} else if (isSuccess) { } else if (isSuccess) {
setIsTableLoading(false);
setData(reqs.list); setData(reqs.list);
dispatch(setTotalReqNumber(reqs.list.length)); dispatch(setTotalReqNumber(reqs.list.length));
setDates([dayjs(min), dayjs(max)]); setDates([dayjs(min), dayjs(max)]);
} else if (isError) { } else if (isError) {
setIsTableLoading(false); setIsTableLoading(false);
} }
}, [isSuccess, reqs, dispatch]); }, [isLoading, isSuccess, isError, reqs, dispatch, min, max]);
return ( return (
<div className="container"> <div className="container">
......
...@@ -7,7 +7,7 @@ export const manualApiSlice = apiSlice.injectEndpoints({ ...@@ -7,7 +7,7 @@ export const manualApiSlice = apiSlice.injectEndpoints({
url: 'dictionary/update', url: 'dictionary/update',
method: 'POST', method: 'POST',
body: codes body: codes
}), invalidatesTags: ['manuals'] }), invalidatesTags: [{ type: "manuals", id: "MAN_LIST" }]
}) })
}) })
}) })
......
...@@ -18,7 +18,7 @@ export const organizationApiSlice = apiSlice.injectEndpoints({ ...@@ -18,7 +18,7 @@ export const organizationApiSlice = apiSlice.injectEndpoints({
endpoints: (builder) => ({ endpoints: (builder) => ({
getOrganizations: builder.query<Organization[], void>({ getOrganizations: builder.query<Organization[], void>({
query: () => 'organizations/list', query: () => 'organizations/list',
providesTags: [{ type: "organizations", id: "LIST" }], providesTags: [{ type: "organizations", id: "ORG_LIST" }],
}), }),
getOrganization: builder.query<Organization, string>({ getOrganization: builder.query<Organization, string>({
query: (orgId) => `organizations/info?id=${orgId}`, query: (orgId) => `organizations/info?id=${orgId}`,
...@@ -30,14 +30,14 @@ export const organizationApiSlice = apiSlice.injectEndpoints({ ...@@ -30,14 +30,14 @@ export const organizationApiSlice = apiSlice.injectEndpoints({
method: 'POST', method: 'POST',
body: initialOrg, body: initialOrg,
}), }),
invalidatesTags: (res) => [{ type: "organizations", id: res?.id }, { type: "organizations", id: "LIST" }], invalidatesTags: (res) => [{ type: "organizations", id: res?.id }, { type: "organizations", id: "ORG_LIST" }],
}), }),
deleteOrganization: builder.mutation<{ success: boolean; code: string }, string>({ deleteOrganization: builder.mutation<{ success: boolean; code: string }, string>({
query: (orgCode) => ({ query: (orgCode) => ({
url: `organizations/delete?code=${orgCode}`, url: `organizations/delete?code=${orgCode}`,
method: 'POST' method: 'POST'
}), }),
invalidatesTags: [{ type: "organizations", id: "LIST" }], invalidatesTags: [{ type: "organizations", id: "ORG_LIST" }],
}), }),
}) })
}) })
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment