@@ -4,14 +4,14 @@ import {
4
4
Col ,
5
5
Card ,
6
6
CardHeader ,
7
- CardBody ,
7
+ CardBody , Button ,
8
8
CardText ,
9
9
Label ,
10
10
11
11
} from 'reactstrap' ;
12
- //import DeleteIcon from '@mui/icons-material/Delete';
13
- // import IconButton from '@mui/material/IconButton ';
14
- //import Tooltip from '@mui/material/Tooltip';
12
+
13
+ import { Link } from 'react-router-dom ' ;
14
+
15
15
import { verify } from '../../api/merkletree.api'
16
16
import cadVerde from '../../assets/images/cad-verde.png' ;
17
17
import cadVermelho from '../../assets/images/cad-vermelho.png' ;
@@ -32,6 +32,7 @@ class MostrarBU extends Component {
32
32
root : [ ] ,
33
33
fullproof : [ ] ,
34
34
mostrarProva : false ,
35
+ id :[ ]
35
36
}
36
37
37
38
this . mostraProva = this . mostraProva . bind ( this ) ;
@@ -42,48 +43,55 @@ class MostrarBU extends Component {
42
43
const { id } = this . props . match . params ;
43
44
// console.log("id=" + id)
44
45
this . axios . get ( `${ this . bu_api_url } /bu/${ id } ` )
45
- . then ( response => this . setState ( { bu : response . data , votos : response . data . votos } ) )
46
-
46
+ . then ( response => this . setState ( { bu : response . data , votos : response . data . votos , id :response . data . id } ) )
47
47
var retVerify = verify ( id )
48
48
retVerify . then ( value => {
49
49
this . setState ( { prova : value } )
50
50
this . setState ( { root : this . state . prova . root } )
51
51
this . setState ( { fullproof : this . state . prova . fullproof } )
52
52
} )
53
+
53
54
}
54
55
55
56
mostraProva ( ) {
56
57
this . setState ( { mostrarProva : ! this . state . mostrarProva } )
57
58
// (this.state.mostrarProva)
58
59
}
60
+ handleConsultar ( e ) {
61
+ e . preventDefault ( )
62
+ var url = "/elements/mostrarbuprova/" + this . state . id
63
+ console . log ( url )
64
+ window . location . href = url
65
+ }
59
66
60
67
render ( ) {
61
- var bu = this . state . bu
68
+ var bu = this . state . bu
62
69
var prova = this . state . prova
63
- // console.log(this.state.prova)
64
- // console.log("fullProof")
65
- // console.log(prova.fullproof)
66
- // console.log("root")
67
- // console.log(prova.root)
68
70
69
71
70
- console . log ( JSON . stringify ( this . state . prova ) )
72
+ console . log ( this . state . votos )
73
+
71
74
var mostrar = this . state . mostrarProva
72
- // var raizArr = (this.state.root===undefined)? [] : Array.from(this.state.root)
73
- // var fullproofArr = (this.state.fullproof===undefined)? [] : Array.from(this.state.fullproof)
74
75
75
76
var votosArr = ( this . state . votos === undefined ) ? [ ] : Array . from ( this . state . votos )
76
77
77
-
78
-
79
- // var votos = Array.from(bu.votos)
80
- // console.log(bu.votos)
81
-
78
+ const groupByCargo = votosArr . reduce ( ( acc , curr ) => {
79
+ if ( ! acc [ curr . cargo ] ) {
80
+ acc [ curr . cargo ] = [ ] ;
81
+ }
82
+ acc [ curr . cargo ] . push ( curr ) ;
83
+ return acc ;
84
+ } , { } ) ;
82
85
return (
83
86
< Col >
84
- < Col md = { 5 } >
87
+ < Col md = { 6 } >
85
88
< Card >
86
- < CardHeader > Consultar Boletins de Urna - Turno< button className = "btn float-right" onClick = { ( ) => this . mostraProva ( ) } > < img src = { ( prova . isTrue === true ) ? cadVerde : cadVermelho } alt = "estado" /> </ button > </ CardHeader >
89
+ < CardHeader > Consultar Boletins de Urna - Turno< button className = "btn float-right" onClick = { ( ) => this . handleConsultar . bind ( this ) } >
90
+ < Link to = { `/elements/mostrarbuprova/${ this . state . id } ` } target = '_blank' >
91
+ < img src = { ( prova . isTrue === true ) ? cadVerde : cadVermelho } alt = "estado" />
92
+ </ Link >
93
+ </ button >
94
+ </ CardHeader >
87
95
< CardBody >
88
96
< Label > Detalhes</ Label >
89
97
< CardBody >
@@ -108,10 +116,23 @@ class MostrarBU extends Component {
108
116
</ CardBody >
109
117
< CardBody >
110
118
< Label > Votos</ Label >
111
- < CardText > < ul >
112
- { votosArr . map ( item => {
113
- return < li > { "Partido: " + item . partido + " ; Código: " + item . codigo + " ; Votos: " + item . votos } </ li >
114
- } ) } </ ul >
119
+ < CardText >
120
+ < div style = { { display : "flex" } } >
121
+ { Object . entries ( groupByCargo ) . map ( ( [ cargo , items ] ) => (
122
+ < div style = { { columnCount : 1 , marginRight : "30px" } } >
123
+ < div style = { { fontWeight : "bold" , fontSize : "1.2rem" } } >
124
+ { cargo }
125
+ </ div >
126
+ { items . map ( ( item ) => (
127
+ < div >
128
+ < div > Partido: { item . partido } </ div >
129
+ < div > Código: { item . codigo } </ div >
130
+ < div > Votos: { item . votos } </ div >
131
+ </ div >
132
+ ) ) }
133
+ </ div >
134
+ ) ) }
135
+ </ div >
115
136
</ CardText >
116
137
</ CardBody >
117
138
</ CardBody >
0 commit comments