1
1
import { useState } from 'react' ;
2
2
import { useNavigate } from 'react-router-dom' ;
3
+ import { useSelector } from 'react-redux' ;
3
4
import {
4
5
IconButton ,
5
6
Table , TableBody , TableCell , TableHead , TableRow ,
@@ -43,6 +44,8 @@ const StopReportPage = () => {
43
44
const { classes } = useReportStyles ( ) ;
44
45
const t = useTranslation ( ) ;
45
46
47
+ const devices = useSelector ( ( state ) => state . devices . items ) ;
48
+
46
49
const distanceUnit = useAttributePreference ( 'distanceUnit' ) ;
47
50
const volumeUnit = useAttributePreference ( 'volumeUnit' ) ;
48
51
@@ -51,8 +54,10 @@ const StopReportPage = () => {
51
54
const [ loading , setLoading ] = useState ( false ) ;
52
55
const [ selectedItem , setSelectedItem ] = useState ( null ) ;
53
56
54
- const handleSubmit = useCatch ( async ( { deviceId, from, to, type } ) => {
55
- const query = new URLSearchParams ( { deviceId, from, to } ) ;
57
+ const handleSubmit = useCatch ( async ( { deviceIds, groupIds, from, to, type } ) => {
58
+ const query = new URLSearchParams ( { from, to } ) ;
59
+ deviceIds . forEach ( ( deviceId ) => query . append ( 'deviceId' , deviceId ) ) ;
60
+ groupIds . forEach ( ( groupId ) => query . append ( 'groupId' , groupId ) ) ;
56
61
if ( type === 'export' ) {
57
62
window . location . assign ( `/api/reports/stops/xlsx?${ query . toString ( ) } ` ) ;
58
63
} else if ( type === 'mail' ) {
@@ -90,6 +95,8 @@ const StopReportPage = () => {
90
95
const formatValue = ( item , key ) => {
91
96
const value = item [ key ] ;
92
97
switch ( key ) {
98
+ case 'deviceId' :
99
+ return devices [ value ] . name ;
93
100
case 'startTime' :
94
101
case 'endTime' :
95
102
return formatTime ( value , 'minutes' ) ;
@@ -131,14 +138,15 @@ const StopReportPage = () => {
131
138
) }
132
139
< div className = { classes . containerMain } >
133
140
< div className = { classes . header } >
134
- < ReportFilter handleSubmit = { handleSubmit } handleSchedule = { handleSchedule } loading = { loading } >
141
+ < ReportFilter handleSubmit = { handleSubmit } handleSchedule = { handleSchedule } multiDevice includeGroups loading = { loading } >
135
142
< ColumnSelect columns = { columns } setColumns = { setColumns } columnsArray = { columnsArray } />
136
143
</ ReportFilter >
137
144
</ div >
138
145
< Table >
139
146
< TableHead >
140
147
< TableRow >
141
148
< TableCell className = { classes . columnAction } />
149
+ < TableCell > { t ( 'sharedDevice' ) } </ TableCell >
142
150
{ columns . map ( ( key ) => ( < TableCell key = { key } > { t ( columnsMap . get ( key ) ) } </ TableCell > ) ) }
143
151
</ TableRow >
144
152
</ TableHead >
@@ -156,13 +164,14 @@ const StopReportPage = () => {
156
164
</ IconButton >
157
165
) }
158
166
</ TableCell >
167
+ < TableCell > { devices [ item . deviceId ] . name } </ TableCell >
159
168
{ columns . map ( ( key ) => (
160
169
< TableCell key = { key } >
161
170
{ formatValue ( item , key ) }
162
171
</ TableCell >
163
172
) ) }
164
173
</ TableRow >
165
- ) ) : ( < TableShimmer columns = { columns . length + 1 } startAction /> ) }
174
+ ) ) : ( < TableShimmer columns = { columns . length + 2 } startAction /> ) }
166
175
</ TableBody >
167
176
</ Table >
168
177
</ div >
0 commit comments