reset commit

parent e55bd6b3
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
import { RootState } from '../../main';
export const apiSlice = createApi({
reducerPath: 'api',
baseQuery: fetchBaseQuery({
baseUrl: "http://77.243.80.217:8080/esutd/api",
prepareHeaders: (headers, { getState }) => {
const state = getState() as RootState;
const accessToken = state.auth.token;
if (accessToken) {
headers.set("Authorization", `Bearer ${accessToken}`);
}
headers.set("Content-Type", "application/json");
headers.set("Accept", "application/json");
return headers;
},
}),
tagTypes: ["organizations", "requests"],
endpoints: () => ({}),
});
\ No newline at end of file
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
import { RootState } from '../../main';
interface Organization {
id: number;
bin: string;
code: string;
name: string;
status: number;
created: string;
deleted: null;
login: string;
password: string;
host: string;
}
export const apiSlice = createApi({
reducerPath: 'api',
baseQuery: fetchBaseQuery({
baseUrl: "/esutd/api/organizations",
prepareHeaders: (headers, { getState }) => {
const state = getState() as RootState;
const accessToken = state.auth.token;
if (accessToken) {
headers.set("Authorization", `Bearer ${accessToken}`);
}
headers.set("Content-Type", "application/json");
headers.set("Accept", "application/json");
return headers;
},
}),
tagTypes: ["organizations"],
endpoints: (builder) => ({
getOrganizations: builder.query<Organization[], void>({
query: () => '/list',
providesTags: ["organizations"],
}),
getOrganization: builder.query<Organization, string>({
query: (orgId) => `/info?id=${orgId}`,
}),
addNewOrganization: builder.mutation<Organization, Partial<Organization>>({
query: (initialOrg) => ({
url: '/save',
method: 'POST',
body: initialOrg,
}),
invalidatesTags: ["organizations"],
}),
editOrganization: builder.mutation<Organization, Partial<Organization>>({
query: ({ id, ...rest }) => ({
url: `/save?id=${id}`,
method: 'POST',
body: rest,
}),
async onQueryStarted(arg, { dispatch, queryFulfilled }) {
try {
const { data } = await queryFulfilled;
dispatch(apiSlice.util.updateQueryData('getOrganizations', undefined, (draft) => {
const index = draft.findIndex(org => org.id === data.id);
if (index !== -1) {
draft[index] = data;
}
}));
} catch {
// handle error
}
},
invalidatesTags: ["organizations"],
}),
deleteOrganization: builder.mutation<{ success: boolean; id: number }, number>({
query: (orgId) => ({
url: `/delete?id=${orgId}`,
method: 'DELETE',
}),
invalidatesTags: ["organizations"],
}),
}),
});
export const {
useGetOrganizationsQuery,
useGetOrganizationQuery,
useAddNewOrganizationMutation,
useEditOrganizationMutation,
useDeleteOrganizationMutation,
} = apiSlice;
...@@ -24,26 +24,16 @@ export const organizationApiSlice = apiSlice.injectEndpoints({ ...@@ -24,26 +24,16 @@ export const organizationApiSlice = apiSlice.injectEndpoints({
}), }),
addNewOrganization: builder.mutation<Organization, Partial<Organization>>({ addNewOrganization: builder.mutation<Organization, Partial<Organization>>({
query: (initialOrg) => ({ query: (initialOrg) => ({
<<<<<<< HEAD:src/features/api/apiSlice.tsx
url: '/save',
=======
url: 'organizations/save', url: 'organizations/save',
>>>>>>> e93810e4a59710e9f9329c2e9ad9fd0a34104287:src/features/api/organizationApiSlice.ts
method: 'POST', method: 'POST',
body: initialOrg, body: initialOrg,
}), }),
invalidatesTags: ["organizations"], invalidatesTags: ["organizations"],
}), }),
editOrganization: builder.mutation<Organization, Partial<Organization>>({ editOrganization: builder.mutation<Organization, Partial<Organization>>({
<<<<<<< HEAD:src/features/api/apiSlice.tsx
query: ({ ...rest }) => ({
url: `/save`,
method: 'POST',
=======
query: ({ id, ...rest }) => ({ query: ({ id, ...rest }) => ({
url: `organizations/edit?id=${id}`, url: `organizations/edit?id=${id}`,
method: 'PUT', method: 'PUT',
>>>>>>> e93810e4a59710e9f9329c2e9ad9fd0a34104287:src/features/api/organizationApiSlice.ts
body: rest, body: rest,
}), }),
invalidatesTags: ["organizations"], invalidatesTags: ["organizations"],
......
...@@ -21,10 +21,15 @@ interface RequestsResponse { ...@@ -21,10 +21,15 @@ interface RequestsResponse {
totalCount: number; totalCount: number;
} }
const getRequestsParams = {
pageNumber: 0,
pageSize: 30
}
export const requestApiSlice = apiSlice.injectEndpoints({ export const requestApiSlice = apiSlice.injectEndpoints({
endpoints: (builder) => ({ endpoints: (builder) => ({
getRequests: builder.query<RequestsResponse, void>({ getRequests: builder.query<RequestsResponse, void>({
query: () => 'requests/list?pageNumber=0&pageSize=30', query: () => `requests/list?pageNumber=${getRequestsParams.pageNumber}&pageSize=${getRequestsParams.pageSize}`,
providesTags: ["requests"], providesTags: ["requests"],
}), }),
addNewRequest: builder.mutation<Request, Partial<Request>>({ addNewRequest: builder.mutation<Request, Partial<Request>>({
......
...@@ -6,6 +6,7 @@ import dayjs from 'dayjs'; ...@@ -6,6 +6,7 @@ import dayjs from 'dayjs';
export interface DataType { export interface DataType {
id: number; id: number;
xml: string;
sendDate: string; sendDate: string;
errorMessage: string; errorMessage: string;
resendDate: null; resendDate: null;
...@@ -14,7 +15,6 @@ export interface DataType { ...@@ -14,7 +15,6 @@ export interface DataType {
esutdOrganizationCode: string; esutdOrganizationCode: string;
requestType: string; requestType: string;
documentID: string; documentID: string;
xml: string;
} }
export const columns: TableProps<DataType>['columns'] = [ export const columns: TableProps<DataType>['columns'] = [
...@@ -27,6 +27,9 @@ export const columns: TableProps<DataType>['columns'] = [ ...@@ -27,6 +27,9 @@ export const columns: TableProps<DataType>['columns'] = [
title: "XML", title: "XML",
dataIndex: "xml", dataIndex: "xml",
key: "xml", key: "xml",
render: (_, record) => (
<Button type='link' onClick={() => openXMLInNewPage(record.xml)} style={{padding: 0}}>Открыть XML</Button>
),
}, },
{ {
title: "Дата отправки", title: "Дата отправки",
...@@ -40,7 +43,7 @@ export const columns: TableProps<DataType>['columns'] = [ ...@@ -40,7 +43,7 @@ export const columns: TableProps<DataType>['columns'] = [
{ {
title: "Код организации", title: "Код организации",
dataIndex: "orgCode", dataIndex: "orgCode",
key: "esutdOrganizationCode" key: "esutdOrganizationCode",
}, },
{ {
title: "Метод", title: "Метод",
...@@ -60,7 +63,10 @@ export const columns: TableProps<DataType>['columns'] = [ ...@@ -60,7 +63,10 @@ export const columns: TableProps<DataType>['columns'] = [
{ {
title: "Сообщение об ошибке", title: "Сообщение об ошибке",
dataIndex: "errorMessage", dataIndex: "errorMessage",
key: "errorMessage" key: "errorMessage",
render: (_, record) => (
<Button type='link' onClick={() => openXMLInNewPage(record.xml)} style={{padding: 0}}>Открыть сообщение</Button>
)
}, },
{ {
title: "Дата переотправки", title: "Дата переотправки",
...@@ -77,13 +83,23 @@ export const columns: TableProps<DataType>['columns'] = [ ...@@ -77,13 +83,23 @@ export const columns: TableProps<DataType>['columns'] = [
width: 60, width: 60,
render: (_, record) => { render: (_, record) => {
return ( return (
<ActionColumn data={record} /> <ResendColumn data={record} />
) )
} }
} }
] ]
export const ActionColumn: React.FC<{ data: DataType }> = () => { const openXMLInNewPage = (xmlContent: string) => {
const blob = new Blob([xmlContent], { type: 'application/xml' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.target = '_blank';
a.click();
URL.revokeObjectURL(url);
}
export const ResendColumn: React.FC<{ data: DataType }> = () => {
const [open, setOpen] = useState<boolean>(false); const [open, setOpen] = useState<boolean>(false);
const showResendModal = () => { const showResendModal = () => {
...@@ -110,7 +126,6 @@ export const ActionColumn: React.FC<{ data: DataType }> = () => { ...@@ -110,7 +126,6 @@ export const ActionColumn: React.FC<{ data: DataType }> = () => {
<Modal <Modal
open={open} open={open}
title={`Вы уверены, что хотите переотправить?`} title={`Вы уверены, что хотите переотправить?`}
// onOk={handleDeleteModalOk}
onCancel={handleResendModalCancel} onCancel={handleResendModalCancel}
onOk={handleResendModalOk} onOk={handleResendModalOk}
> >
......
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