17
17
18
18
import * as socketioClient from 'socket.io-client' ;
19
19
import Vue from 'vue' ;
20
-
21
20
import { AccuracyPerClass } from '../types' ;
22
21
23
22
const SOCKET = 'http://localhost:8001/' ;
24
23
25
24
// tslint:disable-next-line:no-default-export
26
25
export default Vue . extend ( {
27
- // tslint:disable-next-line:object-literal-shorthand
28
- mounted : function ( ) {
26
+ mounted : ( ) => {
29
27
const socket = socketioClient (
30
28
SOCKET , { reconnectionDelay : 300 , reconnectionDelayMax : 300 } ) ;
31
29
socket . connect ( ) ;
@@ -42,13 +40,14 @@ export default Vue.extend({
42
40
}
43
41
} ) ;
44
42
43
+ const BAR_WIDTH_PX = 300 ;
44
+
45
45
function plotAccuracyPerClass ( accPerClass : AccuracyPerClass ) {
46
- const table = document . getElementById ( 'table' ) ;
46
+ const table = document . getElementById ( 'table-rows ' ) ;
47
47
table . innerHTML = '' ;
48
48
49
- const BAR_WIDTH_PX = 300 ;
50
-
51
49
for ( const label in accPerClass ) {
50
+ const scores = accPerClass [ label ] ;
52
51
// Row.
53
52
const rowDiv = document . createElement ( 'div' ) ;
54
53
rowDiv . className = 'row' ;
@@ -64,14 +63,20 @@ function plotAccuracyPerClass(accPerClass: AccuracyPerClass) {
64
63
const scoreContainer = document . createElement ( 'div' ) ;
65
64
scoreContainer . className = 'score-container' ;
66
65
scoreContainer . style . width = BAR_WIDTH_PX + 'px' ;
67
-
68
- const scoreDiv = document . createElement ( 'div' ) ;
69
- scoreDiv . className = 'score' ;
70
- const score = accPerClass [ label ] . training ;
71
- scoreDiv . style . width = ( score * BAR_WIDTH_PX ) + 'px' ;
72
- scoreDiv . innerHTML = ( score * 100 ) . toFixed ( 1 ) + '%' ;
73
-
74
- scoreContainer . appendChild ( scoreDiv ) ;
75
66
rowDiv . appendChild ( scoreContainer ) ;
67
+
68
+ plotScoreBar ( scores . training , scoreContainer ) ;
69
+ if ( scores . validation ) {
70
+ plotScoreBar ( scores . validation , scoreContainer , 'validation' ) ;
71
+ }
76
72
}
77
73
}
74
+
75
+ function plotScoreBar (
76
+ score : number , container : HTMLDivElement , className = '' ) {
77
+ const scoreDiv = document . createElement ( 'div' ) ;
78
+ scoreDiv . className = 'score ' + className ;
79
+ scoreDiv . style . width = ( score * BAR_WIDTH_PX ) + 'px' ;
80
+ scoreDiv . innerHTML = ( score * 100 ) . toFixed ( 1 ) ;
81
+ container . appendChild ( scoreDiv ) ;
82
+ }
0 commit comments