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
255213c5
Commit
255213c5
authored
Jul 26, 2024
by
Merekeyev Dias
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wrote basic table layout for requestPage
parent
953a04f6
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
323 additions
and
90 deletions
+323
-90
src/pages/RequestPage/Columns.tsx
src/pages/RequestPage/Columns.tsx
+251
-0
src/pages/RequestPage/RequestPage.css
src/pages/RequestPage/RequestPage.css
+1
-1
src/pages/RequestPage/RequestPage.tsx
src/pages/RequestPage/RequestPage.tsx
+52
-89
src/pages/RequestPage/utils.ts
src/pages/RequestPage/utils.ts
+19
-0
No files found.
src/pages/RequestPage/Columns.tsx
0 → 100644
View file @
255213c5
import
React
,
{
useState
}
from
'
react
'
;
import
{
useNavigate
}
from
'
react-router
'
;
import
{
Button
,
Space
,
Tag
,
Modal
,
message
}
from
'
antd
'
;
import
type
{
TableProps
}
from
'
antd
'
;
import
{
getStatusText
,
getStatusColor
}
from
'
./utils
'
;
import
dayjs
from
'
dayjs
'
;
export
interface
DataType
{
id
:
number
;
sendDate
:
string
;
errorMessage
:
string
;
resendDate
:
null
;
resentCount
:
number
;
status
:
number
;
esutdOrganizationCode
:
string
;
requestType
:
string
;
documentID
:
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
'
]
=
[
{
title
:
"
ID
"
,
dataIndex
:
"
id
"
,
key
:
"
id
"
,
},
{
title
:
"
XML
"
,
dataIndex
:
"
xml
"
,
key
:
"
xml
"
,
},
{
title
:
"
Дата отправки
"
,
dataIndex
:
"
sendDate
"
,
key
:
"
sendDate
"
,
width
:
'
11%
'
,
render
:
(
_
,
record
)
=>
(
<
span
>
{
dayjs
(
record
.
sendDate
).
format
(
'
YYYY-MM-DD HH:mm:ss
'
)
}
</
span
>
)
},
{
title
:
"
Код организации
"
,
dataIndex
:
"
orgCode
"
,
key
:
"
esutdOrganizationCode
"
},
{
title
:
"
Метод
"
,
dataIndex
:
"
requestType
"
,
key
:
"
requestType
"
},
{
title
:
"
Статус
"
,
dataIndex
:
"
status
"
,
key
:
"
status
"
,
render
:
(
_
,
record
)
=>
(
<
Tag
color=
{
getStatusColor
(
record
.
status
)
}
style=
{
{
fontSize
:
'
12px
'
}
}
>
{
getStatusText
(
record
.
status
)
}
</
Tag
>
)
},
{
title
:
"
Сообщение об ошибке
"
,
dataIndex
:
"
errorMessage
"
,
key
:
"
errorMessage
"
},
{
title
:
"
Дата переотправки
"
,
dataIndex
:
"
resendDate
"
,
key
:
"
resendDate
"
},
{
title
:
"
Количество попыток
"
,
dataIndex
:
"
resentCount
"
,
key
:
"
resentCount
"
},
{
title
:
"
Действия
"
,
width
:
60
,
render
:
(
_
,
record
)
=>
{
return
(
<
ActionColumn
data=
{
record
}
/>
)
}
}
]
export
const
ActionColumn
:
React
.
FC
<
{
data
:
DataType
}
>
=
({
data
})
=>
{
const
[
open
,
setOpen
]
=
useState
<
boolean
>
(
false
);
const
navigate
=
useNavigate
();
// const [deleteOrganization] = useDeleteOrganizationMutation();
const
showDeleteModal
=
()
=>
{
setOpen
(
true
);
};
// const handleDeleteModalOk = async () => {
// try {
// await deleteOrganization(data.id).unwrap();
// message.success('Организация успешно удалена!');
// setOpen(false);
// } catch (err) {
// message.error('Произошла ошибка при удалении организации!');
// }
// };
const
handleDeleteModalCancel
=
()
=>
{
setOpen
(
false
);
};
const
handleEditClick
=
()
=>
{
navigate
(
`/edit/
${
data
.
id
}
`
);
}
return
(
<
Space
>
<
Button
onClick=
{
handleEditClick
}
>
Изменить
</
Button
>
<
Button
onClick=
{
showDeleteModal
}
type=
"primary"
danger
>
Удалить
</
Button
>
<
Modal
open=
{
open
}
title=
{
`Вы уверены, что хотите удалить?`
}
// onOk={handleDeleteModalOk}
onCancel=
{
handleDeleteModalCancel
}
>
<
p
>
Подтвердите удаление организации.
</
p
>
</
Modal
>
</
Space
>
)
}
\ No newline at end of file
src/pages/RequestPage/RequestPage.css
View file @
255213c5
.filter
{
margin
:
1rem
1rem
.5
rem
;
margin
:
1rem
1rem
2
rem
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
...
...
src/pages/RequestPage/RequestPage.tsx
View file @
255213c5
import
React
from
'
react
'
;
import
{
DatePicker
,
Select
,
Button
,
Pagination
}
from
'
antd
'
;
import
{
MaterialSymbol
}
from
'
react-material-symbols
'
;
import
React
,
{
useEffect
}
from
'
react
'
;
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
dayjs
from
'
dayjs
'
;
import
'
./RequestPage.css
'
;
import
{
columns
,
DataType
,
rows
}
from
'
./Columns
'
;
const
dateFormat
=
'
YYYY/MM/DD
'
;
const
RequestPage
:
React
.
FC
=
()
=>
{
const
handlePaginationChange
=
(
page
:
number
|
string
|
null
)
=>
{
console
.
log
(
"
Current page:
"
,
page
);
const
navigate
=
useNavigate
();
const
dispatch
=
useDispatch
();
const
totalOrgNumber
=
useSelector
((
state
:
any
)
=>
state
.
mainPagination
.
totalOrgNumber
);
const
currentPage
=
useSelector
((
state
:
any
)
=>
state
.
mainPagination
.
currentPage
);
const
ORG_NUMBER_PER_PAGE
=
useSelector
((
state
:
any
)
=>
state
.
mainPagination
.
ORG_NUMBER_PER_PAGE
);
const
handleAddClick
=
()
=>
{
};
const
handlePaginationChange
=
(
page
:
number
)
=>
{
};
const
paginatedData
=
(
dataSource
:
DataType
[])
=>
{
const
startIndex
=
(
currentPage
-
1
)
*
ORG_NUMBER_PER_PAGE
;
const
endIndex
=
Math
.
min
(
startIndex
+
ORG_NUMBER_PER_PAGE
,
totalOrgNumber
);
return
dataSource
.
slice
(
startIndex
,
endIndex
);
}
// const {
// data: orgs = [],
// isLoading,
// isSuccess,
// isError,
// error
// } = useGetOrganizationsQuery();
// let table;
// if (isLoading) {
// 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 (isSuccess) {
// }
// }, [isSuccess, orgs]);
return
(
<
div
className=
"container"
>
...
...
@@ -26,90 +70,9 @@ const RequestPage: React.FC = () => {
<
Button
type=
'primary'
>
Применить
</
Button
>
</
div
>
{
/* home.css */
}
<
section
className=
'section'
>
<
div
className=
"data"
>
<
table
className=
"data-table"
>
<
thead
>
<
tr
>
<
th
>
ID
</
th
>
<
th
>
JSON
</
th
>
<
th
>
XML
</
th
>
<
th
>
Дата отправки
</
th
>
<
th
>
Код организации
</
th
>
<
th
>
Метод
</
th
>
<
th
>
Статус
</
th
>
<
th
>
Сообщение об ошибке
</
th
>
<
th
>
Дата переотправки
</
th
>
<
th
>
Количество попыток
</
th
>
<
th
style=
{
{
textAlign
:
'
center
'
}
}
>
Действие
</
th
>
</
tr
>
</
thead
>
<
tbody
>
<
tr
>
<
td
>
1
</
td
>
<
td
>
тут данные JSON
</
td
>
<
td
>
тут данные XML
</
td
>
<
td
>
2023-09-26 11:54:34
</
td
>
<
td
>
nce
</
td
>
<
td
>
terminationContractData
</
td
>
<
td
>
не успешно
</
td
>
<
td
>
тут сообщения об ошибке
</
td
>
<
td
>
2023-09-26 11:54:34
</
td
>
<
td
>
1
</
td
>
<
td
style=
{
{
textAlign
:
'
center
'
}
}
>
<
MaterialSymbol
icon=
'mail'
size=
{
20
}
color=
"#0E2B52"
/>
</
td
>
</
tr
>
<
tr
>
<
td
>
2
</
td
>
<
td
>
тут данные JSON
</
td
>
<
td
>
тут данные XML
</
td
>
<
td
>
2023-09-26 11:54:34
</
td
>
<
td
>
arta
</
td
>
<
td
>
terminationContractData
</
td
>
<
td
>
переотправлено
</
td
>
<
td
>
тут сообщения об ошибке
</
td
>
<
td
>
2023-09-26 11:54:34
</
td
>
<
td
>
0
</
td
>
<
td
style=
{
{
textAlign
:
'
center
'
}
}
>
<
MaterialSymbol
icon=
'mail'
size=
{
20
}
color=
"#0E2B52"
/>
</
td
>
</
tr
>
<
tr
>
<
td
>
2
</
td
>
<
td
>
тут данные JSON
</
td
>
<
td
>
тут данные XML
</
td
>
<
td
>
2023-09-26 11:54:34
</
td
>
<
td
>
arta
</
td
>
<
td
>
terminationContractData
</
td
>
<
td
>
доставлено успешно
</
td
>
<
td
></
td
>
<
td
>
2023-09-26 11:54:34
</
td
>
<
td
>
5
</
td
>
<
td
style=
{
{
textAlign
:
'
center
'
}
}
>
<
MaterialSymbol
icon=
'mail'
size=
{
20
}
color=
"#0E2B52"
/>
</
td
>
</
tr
>
<
tr
>
<
td
>
2
</
td
>
<
td
>
тут данные JSON
</
td
>
<
td
>
тут данные XML
</
td
>
<
td
>
2023-09-26 11:54:34
</
td
>
<
td
>
arta
</
td
>
<
td
>
terminationContractData
</
td
>
<
td
>
отправлен
</
td
>
<
td
></
td
>
<
td
>
2023-09-26 11:54:34
</
td
>
<
td
>
5
</
td
>
<
td
style=
{
{
textAlign
:
'
center
'
}
}
>
<
MaterialSymbol
icon=
'mail'
size=
{
20
}
color=
"#0E2B52"
/>
</
td
>
</
tr
>
</
tbody
>
</
table
>
</
div
>
</
section
>
<
div
className=
"data"
>
<
Table
dataSource=
{
rows
}
columns=
{
columns
}
pagination=
{
false
}
/>
</
div
>
<
div
className=
"pagination_container"
>
<
Pagination
current=
{
1
}
defaultCurrent=
{
1
}
pageSize=
{
1
}
total=
{
10
}
onChange=
{
handlePaginationChange
}
/>
</
div
>
...
...
src/pages/RequestPage/utils.ts
0 → 100644
View file @
255213c5
export
const
getStatusText
=
(
status
:
number
)
=>
{
switch
(
status
)
{
case
1
:
return
"
отправлен
"
;
case
2
:
return
"
не успешно
"
;
case
3
:
return
"
переотправлено
"
;
case
4
:
return
"
доставлено успешно
"
;
default
:
return
"
неизвестно
"
;
}
}
export
const
getStatusColor
=
(
status
:
number
)
=>
{
switch
(
status
)
{
case
1
:
return
'
cyan
'
;
case
2
:
return
'
red
'
;
case
3
:
return
'
geekblue
'
;
case
4
:
return
'
green
'
default
:
return
'
grey
'
;
}
}
\ No newline at end of file
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