Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
ESYTD
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Дияр Амангельды
ESYTD
Commits
e55bd6b3
Commit
e55bd6b3
authored
Jul 26, 2024
by
Дияр Амангельды
Browse files
Options
Browse Files
Download
Plain Diff
add and edit
parents
35b96bc1
e93810e4
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
183 additions
and
222 deletions
+183
-222
src/features/api/apiSlice.ts
src/features/api/apiSlice.ts
+24
-0
src/features/api/organizationApiSlice.ts
src/features/api/organizationApiSlice.ts
+18
-27
src/features/api/requestApiSlice.ts
src/features/api/requestApiSlice.ts
+44
-0
src/features/pagination/mainPagination.ts
src/features/pagination/mainPagination.ts
+1
-1
src/features/pagination/reqPagination.ts
src/features/pagination/reqPagination.ts
+23
-0
src/pages/(crudPages)/AddPage.tsx
src/pages/(crudPages)/AddPage.tsx
+1
-1
src/pages/(crudPages)/EditPage.tsx
src/pages/(crudPages)/EditPage.tsx
+1
-1
src/pages/HomePage/Columns.tsx
src/pages/HomePage/Columns.tsx
+1
-1
src/pages/HomePage/HomePage.tsx
src/pages/HomePage/HomePage.tsx
+1
-1
src/pages/RequestPage/Columns.tsx
src/pages/RequestPage/Columns.tsx
+17
-147
src/pages/RequestPage/RequestPage.tsx
src/pages/RequestPage/RequestPage.tsx
+50
-43
src/store/store.ts
src/store/store.ts
+2
-0
No files found.
src/features/api/apiSlice.ts
0 → 100644
View file @
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
src/features/api/
apiSlice.tsx
→
src/features/api/
organizationApiSlice.ts
View file @
e55bd6b3
import
{
createApi
,
fetchBaseQuery
}
from
'
@reduxjs/toolkit/query/react
'
;
import
{
apiSlice
}
from
"
./apiSlice
"
;
import
{
RootState
}
from
'
../../main
'
;
interface
Organization
{
interface
Organization
{
id
:
number
;
id
:
number
;
...
@@ -14,58 +13,50 @@ interface Organization {
...
@@ -14,58 +13,50 @@ interface Organization {
host
:
string
;
host
:
string
;
}
}
export
const
apiSlice
=
createApi
({
export
const
organizationApiSlice
=
apiSlice
.
injectEndpoints
({
reducerPath
:
'
api
'
,
baseQuery
:
fetchBaseQuery
({
baseUrl
:
"
http://77.243.80.217:8080/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
)
=>
({
endpoints
:
(
builder
)
=>
({
getOrganizations
:
builder
.
query
<
Organization
[],
void
>
({
getOrganizations
:
builder
.
query
<
Organization
[],
void
>
({
query
:
()
=>
'
/list
'
,
query
:
()
=>
'
organizations
/list
'
,
providesTags
:
[
"
organizations
"
],
providesTags
:
[
"
organizations
"
],
}),
}),
getOrganization
:
builder
.
query
<
Organization
,
string
>
({
getOrganization
:
builder
.
query
<
Organization
,
string
>
({
query
:
(
orgId
)
=>
`/info?id=
${
orgId
}
`
,
query
:
(
orgId
)
=>
`
organizations
/info?id=
${
orgId
}
`
,
}),
}),
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
:
'
/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
})
=>
({
query
:
({
...
rest
})
=>
({
url
:
`/save`
,
url
:
`/save`
,
method
:
'
POST
'
,
method
:
'
POST
'
,
=======
query
:
({
id
,
...
rest
})
=>
({
url
:
`organizations/edit?id=
${
id
}
`
,
method
:
'
PUT
'
,
>>>>>>>
e93810e4a59710e9f9329c2e9ad9fd0a34104287
:
src
/
features
/
api
/
organizationApiSlice
.
ts
body
:
rest
,
body
:
rest
,
}),
}),
invalidatesTags
:
[
"
organizations
"
],
invalidatesTags
:
[
"
organizations
"
],
}),
}),
deleteOrganization
:
builder
.
mutation
<
{
success
:
boolean
;
id
:
number
},
number
>
({
deleteOrganization
:
builder
.
mutation
<
{
success
:
boolean
;
id
:
number
},
number
>
({
query
:
(
orgId
)
=>
({
query
:
(
orgId
)
=>
({
url
:
`/delete?id=
${
orgId
}
`
,
url
:
`
organizations
/delete?id=
${
orgId
}
`
,
method
:
'
DELETE
'
,
method
:
'
DELETE
'
,
}),
}),
invalidatesTags
:
[
"
organizations
"
],
invalidatesTags
:
[
"
organizations
"
],
}),
}),
})
,
})
})
;
})
export
const
{
export
const
{
useGetOrganizationsQuery
,
useGetOrganizationsQuery
,
...
@@ -73,4 +64,4 @@ export const {
...
@@ -73,4 +64,4 @@ export const {
useAddNewOrganizationMutation
,
useAddNewOrganizationMutation
,
useEditOrganizationMutation
,
useEditOrganizationMutation
,
useDeleteOrganizationMutation
,
useDeleteOrganizationMutation
,
}
=
a
piSlice
;
}
=
organizationA
piSlice
;
src/features/api/requestApiSlice.ts
0 → 100644
View file @
e55bd6b3
import
{
apiSlice
}
from
"
./apiSlice
"
;
interface
Request
{
id
:
number
;
sendDate
:
string
;
errorMessage
:
string
;
resendDate
:
null
;
resentCount
:
number
;
status
:
number
;
esutdOrganizationCode
:
string
;
requestType
:
string
;
documentID
:
string
;
xml
:
string
;
}
interface
RequestsResponse
{
list
:
Request
[];
pageNumber
:
number
;
pageSize
:
number
;
totalPages
:
number
;
totalCount
:
number
;
}
export
const
requestApiSlice
=
apiSlice
.
injectEndpoints
({
endpoints
:
(
builder
)
=>
({
getRequests
:
builder
.
query
<
RequestsResponse
,
void
>
({
query
:
()
=>
'
requests/list?pageNumber=0&pageSize=30
'
,
providesTags
:
[
"
requests
"
],
}),
addNewRequest
:
builder
.
mutation
<
Request
,
Partial
<
Request
>>
({
query
:
(
initialReq
)
=>
({
url
:
'
requests/save
'
,
method
:
'
POST
'
,
body
:
initialReq
,
}),
invalidatesTags
:
[
"
requests
"
],
})
})
})
export
const
{
useAddNewRequestMutation
,
useGetRequestsQuery
,
}
=
requestApiSlice
;
\ No newline at end of file
src/features/pagination/mainPagination.ts
x
→
src/features/pagination/mainPagination.ts
View file @
e55bd6b3
...
@@ -13,7 +13,7 @@ const initialState: InitialState = {
...
@@ -13,7 +13,7 @@ const initialState: InitialState = {
}
}
const
mainPaginationSlice
=
createSlice
({
const
mainPaginationSlice
=
createSlice
({
name
:
'
p
agination
'
,
name
:
'
mainP
agination
'
,
initialState
,
initialState
,
reducers
:
{
reducers
:
{
setCurrentPage
:
(
state
,
action
)
=>
{
setCurrentPage
:
(
state
,
action
)
=>
{
...
...
src/features/pagination/reqPagination.ts
0 → 100644
View file @
e55bd6b3
import
{
createSlice
}
from
"
@reduxjs/toolkit
"
;
const
initialState
=
{
currentPage
:
1
,
totalReqNumber
:
0
,
REQ_NUMBER_PER_PAGE
:
10
}
const
reqPaginationSlice
=
createSlice
({
name
:
'
reqPagination
'
,
initialState
,
reducers
:
{
setCurrentPage
:
(
state
,
action
)
=>
{
state
.
currentPage
=
action
.
payload
;
},
setTotalReqNumber
:
(
state
,
action
)
=>
{
state
.
totalReqNumber
=
action
.
payload
;
}
}
})
export
const
{
setCurrentPage
,
setTotalReqNumber
}
=
reqPaginationSlice
.
actions
;
export
default
reqPaginationSlice
.
reducer
;
\ No newline at end of file
src/pages/(crudPages)/AddPage.tsx
View file @
e55bd6b3
import
React
from
'
react
'
;
import
React
from
'
react
'
;
import
{
useNavigate
}
from
'
react-router
'
;
import
{
useNavigate
}
from
'
react-router
'
;
import
{
Form
,
Input
,
Button
,
Select
,
message
}
from
'
antd
'
;
import
{
Form
,
Input
,
Button
,
Select
,
message
}
from
'
antd
'
;
import
{
useAddNewOrganizationMutation
}
from
'
../../features/api/
a
piSlice
'
;
import
{
useAddNewOrganizationMutation
}
from
'
../../features/api/
organizationA
piSlice
'
;
import
{
setTotalOrgNumber
,
setCurrentPage
}
from
'
../../features/pagination/mainPagination
'
;
import
{
setTotalOrgNumber
,
setCurrentPage
}
from
'
../../features/pagination/mainPagination
'
;
import
{
useSelector
,
useDispatch
}
from
'
react-redux
'
;
import
{
useSelector
,
useDispatch
}
from
'
react-redux
'
;
import
'
./style.css
'
;
import
'
./style.css
'
;
...
...
src/pages/(crudPages)/EditPage.tsx
View file @
e55bd6b3
import
React
,
{
useEffect
}
from
'
react
'
;
import
React
,
{
useEffect
}
from
'
react
'
;
import
{
useNavigate
,
useParams
}
from
'
react-router
'
;
import
{
useNavigate
,
useParams
}
from
'
react-router
'
;
import
{
Form
,
Input
,
Button
,
Select
,
message
}
from
'
antd
'
;
import
{
Form
,
Input
,
Button
,
Select
,
message
}
from
'
antd
'
;
import
{
useGetOrganizationQuery
,
useEditOrganizationMutation
}
from
'
../../features/api/
a
piSlice
'
;
import
{
useGetOrganizationQuery
,
useEditOrganizationMutation
}
from
'
../../features/api/
organizationA
piSlice
'
;
import
'
./style.css
'
;
import
'
./style.css
'
;
interface
EditValues
{
interface
EditValues
{
id
:
number
;
id
:
number
;
...
...
src/pages/HomePage/Columns.tsx
View file @
e55bd6b3
...
@@ -2,7 +2,7 @@ import React, { useState } from 'react';
...
@@ -2,7 +2,7 @@ import React, { useState } from 'react';
import
{
useNavigate
}
from
'
react-router
'
;
import
{
useNavigate
}
from
'
react-router
'
;
import
{
Button
,
Space
,
Tag
,
Modal
,
message
}
from
'
antd
'
;
import
{
Button
,
Space
,
Tag
,
Modal
,
message
}
from
'
antd
'
;
import
type
{
TableProps
}
from
'
antd
'
;
import
type
{
TableProps
}
from
'
antd
'
;
import
{
useDeleteOrganizationMutation
}
from
'
../../features/api/
a
piSlice
'
;
import
{
useDeleteOrganizationMutation
}
from
'
../../features/api/
organizationA
piSlice
'
;
import
{
getStatusText
,
getStatusColor
}
from
'
./utils
'
;
import
{
getStatusText
,
getStatusColor
}
from
'
./utils
'
;
export
interface
DataType
{
export
interface
DataType
{
...
...
src/pages/HomePage/HomePage.tsx
View file @
e55bd6b3
...
@@ -2,7 +2,7 @@ import React, { useEffect } from 'react';
...
@@ -2,7 +2,7 @@ import React, { useEffect } from 'react';
import
{
useNavigate
}
from
'
react-router
'
;
import
{
useNavigate
}
from
'
react-router
'
;
import
{
useSelector
,
useDispatch
}
from
'
react-redux
'
;
import
{
useSelector
,
useDispatch
}
from
'
react-redux
'
;
import
{
Button
,
Pagination
,
Spin
,
Table
}
from
'
antd
'
;
import
{
Button
,
Pagination
,
Spin
,
Table
}
from
'
antd
'
;
import
{
useGetOrganizationsQuery
}
from
'
../../features/api/
a
piSlice
'
;
import
{
useGetOrganizationsQuery
}
from
'
../../features/api/
organizationA
piSlice
'
;
import
{
setCurrentPage
,
setTotalOrgNumber
}
from
'
../../features/pagination/mainPagination
'
;
import
{
setCurrentPage
,
setTotalOrgNumber
}
from
'
../../features/pagination/mainPagination
'
;
import
{
DataType
,
columns
}
from
'
./Columns
'
;
import
{
DataType
,
columns
}
from
'
./Columns
'
;
import
'
./Homepage.css
'
;
import
'
./Homepage.css
'
;
...
...
src/pages/RequestPage/Columns.tsx
View file @
e55bd6b3
import
React
,
{
useState
}
from
'
react
'
;
import
React
,
{
useState
}
from
'
react
'
;
import
{
useNavigate
}
from
'
react-router
'
;
import
{
Button
,
Space
,
Tag
,
Modal
,
message
}
from
'
antd
'
;
import
{
Button
,
Space
,
Tag
,
Modal
,
message
}
from
'
antd
'
;
import
type
{
TableProps
}
from
'
antd
'
;
import
type
{
TableProps
}
from
'
antd
'
;
import
{
getStatusText
,
getStatusColor
}
from
'
./utils
'
;
import
{
getStatusText
,
getStatusColor
}
from
'
./utils
'
;
...
@@ -18,129 +17,6 @@ export interface DataType {
...
@@ -18,129 +17,6 @@ export interface DataType {
xml
:
string
;
xml
:
string
;
}
}
export
const
rows
=
[
{
"
id
"
:
2
,
"
sendDate
"
:
"
2024-07-11T19:05:00.000+00:00
"
,
"
errorMessage
"
:
"
<soap>err1</soap>
"
,
"
resendDate
"
:
null
,
"
resentCount
"
:
0
,
"
status
"
:
1
,
"
esutdOrganizationCode
"
:
"
arta
"
,
"
requestType
"
:
"
contract
"
,
"
documentID
"
:
"
22345678-1234-1234-1234-123456789012
"
,
"
xml
"
:
"
<soapenv>data1</soapenv>
"
},
{
"
id
"
:
3
,
"
sendDate
"
:
"
2024-07-11T19:10:00.000+00:00
"
,
"
errorMessage
"
:
"
<soap>err2</soap>
"
,
"
resendDate
"
:
null
,
"
resentCount
"
:
0
,
"
status
"
:
2
,
"
esutdOrganizationCode
"
:
"
arta
"
,
"
requestType
"
:
"
contract
"
,
"
documentID
"
:
"
32345678-1234-1234-1234-123456789012
"
,
"
xml
"
:
"
<soapenv>data2</soapenv>
"
},
{
"
id
"
:
4
,
"
sendDate
"
:
"
2024-07-11T19:15:00.000+00:00
"
,
"
errorMessage
"
:
"
<soap>err3</soap>
"
,
"
resendDate
"
:
null
,
"
resentCount
"
:
0
,
"
status
"
:
3
,
"
esutdOrganizationCode
"
:
"
arta
"
,
"
requestType
"
:
"
contract
"
,
"
documentID
"
:
"
42345678-1234-1234-1234-123456789012
"
,
"
xml
"
:
"
<soapenv>data3</soapenv>
"
},
{
"
id
"
:
5
,
"
sendDate
"
:
"
2024-07-11T19:20:00.000+00:00
"
,
"
errorMessage
"
:
"
<soap>err4</soap>
"
,
"
resendDate
"
:
null
,
"
resentCount
"
:
0
,
"
status
"
:
4
,
"
esutdOrganizationCode
"
:
"
arta
"
,
"
requestType
"
:
"
contract
"
,
"
documentID
"
:
"
52345678-1234-1234-1234-123456789012
"
,
"
xml
"
:
"
<soapenv>data4</soapenv>
"
},
{
"
id
"
:
6
,
"
sendDate
"
:
"
2024-07-11T19:25:00.000+00:00
"
,
"
errorMessage
"
:
"
<soap>err5</soap>
"
,
"
resendDate
"
:
null
,
"
resentCount
"
:
0
,
"
status
"
:
3
,
"
esutdOrganizationCode
"
:
"
arta
"
,
"
requestType
"
:
"
contract
"
,
"
documentID
"
:
"
62345678-1234-1234-1234-123456789012
"
,
"
xml
"
:
"
<soapenv>data5</soapenv>
"
},
{
"
id
"
:
7
,
"
sendDate
"
:
"
2024-07-11T19:30:00.000+00:00
"
,
"
errorMessage
"
:
"
<soap>err6</soap>
"
,
"
resendDate
"
:
null
,
"
resentCount
"
:
0
,
"
status
"
:
4
,
"
esutdOrganizationCode
"
:
"
arta
"
,
"
requestType
"
:
"
contract
"
,
"
documentID
"
:
"
72345678-1234-1234-1234-123456789012
"
,
"
xml
"
:
"
<soapenv>data6</soapenv>
"
},
{
"
id
"
:
8
,
"
sendDate
"
:
"
2024-07-11T19:35:00.000+00:00
"
,
"
errorMessage
"
:
"
<soap>err7</soap>
"
,
"
resendDate
"
:
null
,
"
resentCount
"
:
0
,
"
status
"
:
2
,
"
esutdOrganizationCode
"
:
"
arta
"
,
"
requestType
"
:
"
contract
"
,
"
documentID
"
:
"
82345678-1234-1234-1234-123456789012
"
,
"
xml
"
:
"
<soapenv>data7</soapenv>
"
},
{
"
id
"
:
9
,
"
sendDate
"
:
"
2024-07-11T19:40:00.000+00:00
"
,
"
errorMessage
"
:
"
<soap>err8</soap>
"
,
"
resendDate
"
:
null
,
"
resentCount
"
:
0
,
"
status
"
:
2
,
"
esutdOrganizationCode
"
:
"
arta
"
,
"
requestType
"
:
"
contract
"
,
"
documentID
"
:
"
92345678-1234-1234-1234-123456789012
"
,
"
xml
"
:
"
<soapenv>data8</soapenv>
"
},
{
"
id
"
:
10
,
"
sendDate
"
:
"
2024-07-11T19:45:00.000+00:00
"
,
"
errorMessage
"
:
"
<soap>err9</soap>
"
,
"
resendDate
"
:
null
,
"
resentCount
"
:
0
,
"
status
"
:
1
,
"
esutdOrganizationCode
"
:
"
arta
"
,
"
requestType
"
:
"
contract
"
,
"
documentID
"
:
"
102345678-1234-1234-1234-123456789012
"
,
"
xml
"
:
"
<soapenv>data9</soapenv>
"
},
{
"
id
"
:
11
,
"
sendDate
"
:
"
2024-07-11T19:50:00.000+00:00
"
,
"
errorMessage
"
:
"
<soap>err10</soap>
"
,
"
resendDate
"
:
null
,
"
resentCount
"
:
0
,
"
status
"
:
1
,
"
esutdOrganizationCode
"
:
"
arta
"
,
"
requestType
"
:
"
contract
"
,
"
documentID
"
:
"
112345678-1234-1234-1234-123456789012
"
,
"
xml
"
:
"
<soapenv>data10</soapenv>
"
}
]
export
const
columns
:
TableProps
<
DataType
>
[
'
columns
'
]
=
[
export
const
columns
:
TableProps
<
DataType
>
[
'
columns
'
]
=
[
{
{
title
:
"
ID
"
,
title
:
"
ID
"
,
...
@@ -207,44 +83,38 @@ export const columns: TableProps<DataType>['columns'] = [
...
@@ -207,44 +83,38 @@ export const columns: TableProps<DataType>['columns'] = [
}
}
]
]
export
const
ActionColumn
:
React
.
FC
<
{
data
:
DataType
}
>
=
(
{
data
}
)
=>
{
export
const
ActionColumn
:
React
.
FC
<
{
data
:
DataType
}
>
=
()
=>
{
const
[
open
,
setOpen
]
=
useState
<
boolean
>
(
false
);
const
[
open
,
setOpen
]
=
useState
<
boolean
>
(
false
);
const
navigate
=
useNavigate
();
// const [deleteOrganization] = useDeleteOrganizationMutation();
const
show
Delete
Modal
=
()
=>
{
const
show
Resend
Modal
=
()
=>
{
setOpen
(
true
);
setOpen
(
true
);
};
};
// const handleDeleteModalOk = async () => {
const
handleResendModalOk
=
async
()
=>
{
// try {
try
{
// await deleteOrganization(data.id).unwrap();
// await resendRequest().unwrap();
// message.success('Организация успешно удалена!');
message
.
success
(
'
Запрос успешно переотправлен!
'
);
// setOpen(false);
// } catch (err) {
// message.error('Произошла ошибка при удалении организации!');
// }
// };
const
handleDeleteModalCancel
=
()
=>
{
setOpen
(
false
);
setOpen
(
false
);
}
catch
(
err
)
{
message
.
error
(
'
Произошла ошибка при переотправке запроса!
'
);
}
};
};
const
handle
EditClick
=
()
=>
{
const
handle
ResendModalCancel
=
()
=>
{
navigate
(
`/edit/
${
data
.
id
}
`
);
setOpen
(
false
);
}
}
;
return
(
return
(
<
Space
>
<
Space
>
<
Button
onClick=
{
handleEditClick
}
>
Изменить
</
Button
>
<
Button
onClick=
{
showResendModal
}
>
П
</
Button
>
<
Button
onClick=
{
showDeleteModal
}
type=
"primary"
danger
>
Удалить
</
Button
>
<
Modal
<
Modal
open=
{
open
}
open=
{
open
}
title=
{
`Вы уверены, что хотите
удал
ить?`
}
title=
{
`Вы уверены, что хотите
переотправ
ить?`
}
// onOk={handleDeleteModalOk}
// onOk={handleDeleteModalOk}
onCancel=
{
handleDeleteModalCancel
}
onCancel=
{
handleResendModalCancel
}
onOk=
{
handleResendModalOk
}
>
>
<
p
>
Подтвердите
удаление организации
.
</
p
>
<
p
>
Подтвердите
переотправку запроса
.
</
p
>
</
Modal
>
</
Modal
>
</
Space
>
</
Space
>
)
)
...
...
src/pages/RequestPage/RequestPage.tsx
View file @
e55bd6b3
import
React
,
{
useEffect
}
from
'
react
'
;
import
React
,
{
useEffect
}
from
'
react
'
;
import
dayjs
from
'
dayjs
'
;
import
{
DatePicker
,
Select
,
Button
,
Pagination
,
Spin
,
Table
}
from
'
antd
'
;
import
{
DatePicker
,
Select
,
Button
,
Pagination
,
Spin
,
Table
}
from
'
antd
'
;
// import { MaterialSymbol } from 'react-material-symbols';
import
{
useNavigate
}
from
'
react-router
'
;
import
{
useDispatch
,
useSelector
}
from
'
react-redux
'
;
import
{
useDispatch
,
useSelector
}
from
'
react-redux
'
;
import
dayjs
from
'
dayjs
'
;
import
{
columns
,
DataType
}
from
'
./Columns
'
;
import
{
useGetRequestsQuery
}
from
'
../../features/api/requestApiSlice
'
;
import
{
setCurrentPage
,
setTotalReqNumber
}
from
'
../../features/pagination/reqPagination
'
;
import
'
./RequestPage.css
'
;
import
'
./RequestPage.css
'
;
import
{
columns
,
DataType
,
rows
}
from
'
./Columns
'
;
const
dateFormat
=
'
YYYY/MM/DD
'
;
const
dateFormat
=
'
YYYY/MM/DD
'
;
const
RequestPage
:
React
.
FC
=
()
=>
{
const
RequestPage
:
React
.
FC
=
()
=>
{
const
navigate
=
useNavigate
();
const
dispatch
=
useDispatch
();
const
dispatch
=
useDispatch
();
const
totalOrgNumber
=
useSelector
((
state
:
any
)
=>
state
.
mainPagination
.
totalOrgNumber
);
const
totalReqNumber
=
useSelector
((
state
:
any
)
=>
state
.
reqPagination
.
totalReqNumber
);
const
currentPage
=
useSelector
((
state
:
any
)
=>
state
.
mainPagination
.
currentPage
);
const
currentPage
=
useSelector
((
state
:
any
)
=>
state
.
reqPagination
.
currentPage
);
const
ORG_NUMBER_PER_PAGE
=
useSelector
((
state
:
any
)
=>
state
.
mainPagination
.
ORG_NUMBER_PER_PAGE
);
const
REQ_NUMBER_PER_PAGE
=
useSelector
((
state
:
any
)
=>
state
.
reqPagination
.
REQ_NUMBER_PER_PAGE
);
const
handleAddClick
=
()
=>
{
};
const
handlePaginationChange
=
(
page
:
number
)
=>
{
const
handlePaginationChange
=
(
page
:
number
)
=>
{
dispatch
(
setCurrentPage
(
page
));
};
};
const
paginatedData
=
(
dataSource
:
DataType
[])
=>
{
const
paginatedData
=
(
dataSource
:
DataType
[])
=>
{
const
startIndex
=
(
currentPage
-
1
)
*
ORG
_NUMBER_PER_PAGE
;
const
startIndex
=
(
currentPage
-
1
)
*
REQ
_NUMBER_PER_PAGE
;
const
endIndex
=
Math
.
min
(
startIndex
+
ORG_NUMBER_PER_PAGE
,
totalOrg
Number
);
const
endIndex
=
Math
.
min
(
startIndex
+
REQ_NUMBER_PER_PAGE
,
totalReq
Number
);
return
dataSource
.
slice
(
startIndex
,
endIndex
);
return
dataSource
.
slice
(
startIndex
,
endIndex
);
}
}
;
//
const {
const
{
// data: orgs = []
,
data
:
reqs
=
{
list
:
[]
}
,
//
isLoading,
isLoading
,
//
isSuccess,
isSuccess
,
//
isError,
isError
,
//
error
error
// } = useGetOrganization
sQuery();
}
=
useGetRequest
sQuery
();
// let table;
console
.
log
(
reqs
)
// if (isLoading) {
let
table
;
// table = <Spin />
// } else if (isSuccess) {
// table = <Table dataSource={paginatedData(orgs)} columns={columns} pagination={false} />
// } else if (isError) {
// console.log(error)
// table = <div>{error.toString()}</div>
// }
// useEffect(() => {
if
(
isLoading
)
{
// if (isSuccess) {
table
=
<
Spin
/>;
}
else
if
(
isSuccess
)
{
table
=
<
Table
dataSource=
{
paginatedData
(
reqs
.
list
)
}
columns=
{
columns
}
pagination=
{
false
}
/>;
}
else
if
(
isError
)
{
console
.
log
(
error
);
table
=
<
div
>
{
error
.
toString
()
}
</
div
>;
}
// }
useEffect
(()
=>
{
// }, [isSuccess, orgs]);
if
(
isSuccess
)
{
dispatch
(
setTotalReqNumber
(
reqs
.
list
.
length
));
}
},
[
isSuccess
,
reqs
,
dispatch
]);
return
(
return
(
<
div
className=
"container"
>
<
div
className=
"container"
>
<
div
className=
"filter"
>
<
div
className=
"filter"
>
<
div
className=
"fields"
>
<
div
className=
"fields"
>
<
div
className=
"dates"
>
<
div
className=
"dates"
>
<
DatePicker
defaultValue=
{
dayjs
(
'
2023/09/24
'
,
dateFormat
)
}
format=
{
dateFormat
}
style=
{
{
marginRight
:
14
}
}
/>
<
DatePicker
defaultValue=
{
dayjs
(
'
2023/09/24
'
,
dateFormat
)
}
format=
{
dateFormat
}
style=
{
{
marginRight
:
14
}
}
/>
<
DatePicker
defaultValue=
{
dayjs
(
'
2023/09/24
'
,
dateFormat
)
}
format=
{
dateFormat
}
/>
<
DatePicker
defaultValue=
{
dayjs
(
'
2023/09/24
'
,
dateFormat
)
}
format=
{
dateFormat
}
/>
</
div
>
</
div
>
<
div
className=
"category"
>
<
div
className=
"category"
>
<
Select
placeholder=
"Не выбрано"
style=
{
{
width
:
270
}
}
options=
{
[]
}
/>
<
Select
placeholder=
"Не выбрано"
style=
{
{
width
:
270
}
}
options=
{
[]
}
/>
</
div
>
</
div
>
</
div
>
</
div
>
<
Button
type=
'primary'
>
Применить
</
Button
>
<
Button
type=
'primary'
>
Применить
</
Button
>
</
div
>
</
div
>
<
div
className=
"data"
>
<
div
className=
"data"
>
<
Table
dataSource=
{
rows
}
columns=
{
columns
}
pagination=
{
false
}
/>
{
table
}
</
div
>
</
div
>
<
div
className=
"pagination_container"
>
<
div
className=
"pagination_container"
>
<
Pagination
current=
{
1
}
defaultCurrent=
{
1
}
pageSize=
{
1
}
total=
{
10
}
onChange=
{
handlePaginationChange
}
/>
<
Pagination
current=
{
currentPage
}
defaultCurrent=
{
1
}
pageSize=
{
REQ_NUMBER_PER_PAGE
}
total=
{
totalReqNumber
}
onChange=
{
handlePaginationChange
}
/>
</
div
>
</
div
>
</
div
>
</
div
>
);
);
};
};
export
default
RequestPage
export
default
RequestPage
;
\ No newline at end of file
\ No newline at end of file
src/store/store.ts
View file @
e55bd6b3
...
@@ -3,6 +3,7 @@ import { apiSlice } from '../features/api/apiSlice';
...
@@ -3,6 +3,7 @@ import { apiSlice } from '../features/api/apiSlice';
import
mainPaginationReducer
from
'
../features/pagination/mainPagination
'
;
import
mainPaginationReducer
from
'
../features/pagination/mainPagination
'
;
import
storage
from
'
redux-persist/lib/storage
'
;
import
storage
from
'
redux-persist/lib/storage
'
;
import
{
persistReducer
,
persistStore
}
from
'
redux-persist
'
;
import
{
persistReducer
,
persistStore
}
from
'
redux-persist
'
;
import
reqPaginationReducer
from
'
../features/pagination/reqPagination
'
;
interface
AuthState
{
interface
AuthState
{
token
:
string
|
null
;
token
:
string
|
null
;
}
}
...
@@ -37,6 +38,7 @@ const store: Store = configureStore({
...
@@ -37,6 +38,7 @@ const store: Store = configureStore({
reducer
:
{
reducer
:
{
auth
:
persistedReducer
,
auth
:
persistedReducer
,
mainPagination
:
mainPaginationReducer
,
mainPagination
:
mainPaginationReducer
,
reqPagination
:
reqPaginationReducer
,
[
apiSlice
.
reducerPath
]:
apiSlice
.
reducer
,
[
apiSlice
.
reducerPath
]:
apiSlice
.
reducer
,
},
},
middleware
:
(
getDefaultMiddleware
)
=>
middleware
:
(
getDefaultMiddleware
)
=>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment