11
11
</div >
12
12
13
13
<div >
14
- <label for =" turno" >Turno:</label >
15
- <select id =" turno" name =" turno" v-model =" curso.turno" required >
16
- <option value =" MANHA" >Manhã</option >
17
- <option value =" TARDE" >Tarde</option >
18
- <option value =" NOITE" >Noite</option >
19
- <option value =" INTEGRAL" >Integral</option >
20
- </select >
14
+ <Select :dataSelect =" dataSelectTurno" @input =" curso.turno = $event" />
21
15
</div >
22
16
23
17
<div >
24
18
<label >Duração:</label >
25
19
<div >
26
20
<input type =" number" v-model =" curso.duracao_quantidade" required >
27
- <select id =" duracao" name =" duracao" v-model =" curso.duracao_periodo" required >
28
- <option value =" anos" >Anos</option >
29
- <option value =" meses" >Meses</option >
30
- </select >
21
+ <Select :dataSelect =" dataSelectDuracao" @input =" curso.duracao_periodo = $event" />
31
22
</div >
32
23
</div >
33
24
34
- <label for =" coordenador" >Coordenador:</label >
35
- <select id =" coordenador" v-model =" curso.coordenador" required >
36
- <option value =" " disabled >Selecione um coordenador</option >
37
- <option v-for =" coordenador in coordenadores" :key =" coordenador.name" :value =" coordenador.name" >{{
38
- coordenador.name }}</option >
39
- </select >
25
+ <div >
26
+ <Select :dataSelect =" dataSelectCoordenador" @input =" curso.coordenador = $event" />
27
+ </div >
28
+
40
29
<br >
41
30
<button type =" submit" >Registrar</button >
42
31
50
39
<script >
51
40
import Header from ' ../../components/Header.vue' ;
52
41
import Footer from ' ../../components/Footer.vue' ;
42
+ import Select from ' ../../components/Select.vue' ;
53
43
54
44
import { mixinAdmin } from ' ../../util/authMixins.js' ;
55
45
import { getCoordenadores , registerCurso } from ' ../../services/api/admin' ;
@@ -58,7 +48,8 @@ export default {
58
48
name: ' RegisterCurso' ,
59
49
components: {
60
50
Header,
61
- Footer
51
+ Footer,
52
+ Select
62
53
},
63
54
data () {
64
55
return {
@@ -69,6 +60,29 @@ export default {
69
60
duracao_periodo: ' ' ,
70
61
coordenador: ' '
71
62
},
63
+ dataSelectTurno: {
64
+ title: " Selecione um turno" ,
65
+ description: " Turno" ,
66
+ options: [
67
+ { value: ' MANHA' , description: ' Manhã' },
68
+ { value: ' TARDE' , description: ' Tarde' },
69
+ { value: ' NOITE' , description: ' Noite' },
70
+ { value: ' INTEGRAL' , description: ' Integral' }
71
+ ],
72
+ },
73
+ dataSelectDuracao: {
74
+ title: " Selecione um período" ,
75
+ description: " Período" ,
76
+ options: [
77
+ { value: ' anos' , description: ' Anos' },
78
+ { value: ' meses' , description: ' Meses' },
79
+ ],
80
+ },
81
+ dataSelectCoordenador: {
82
+ title: " Selecione um coordenador" ,
83
+ description: " Coordenador" ,
84
+ options: [],
85
+ },
72
86
coordenadores: [],
73
87
}
74
88
},
@@ -87,6 +101,8 @@ export default {
87
101
88
102
if (response .status >= 200 && response .status < 300 ) {
89
103
alert (" Tudo certo! 😉" );
104
+ await this .GetCoordenadores ();
105
+
90
106
} else {
91
107
alert (" Ops.. Algo deu errado. 😕\n " + response .message );
92
108
}
@@ -98,6 +114,11 @@ export default {
98
114
try {
99
115
const response = await getCoordenadores (this .admin .token );
100
116
this .coordenadores = response .data ;
117
+
118
+ this .dataSelectCoordenador .options = this .coordenadores .map (coordenador => ({
119
+ value: coordenador .name ,
120
+ description: coordenador .name
121
+ }));
101
122
} catch (error) {
102
123
alert (" Ops.. Algo deu errado. 😕\n " + error .message );
103
124
}
0 commit comments