@burh/nuxt-core 1.0.305 → 1.0.307
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,78 +1,118 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<modal :show="isModalOpen" v-on:close="closeModal" size="xl" class="modal">
|
|
3
3
|
<template slot="header">
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
<h2 class="display-4 px-2">
|
|
6
|
+
Insira os e-mail que deseja enviar o treinamento <br>
|
|
7
|
+
<div style="display: inline-block;">
|
|
8
|
+
<el-switch
|
|
9
|
+
v-model="switchSingle"
|
|
10
|
+
active-color="#5865F2"
|
|
11
|
+
inactive-text="Usuario em específico"
|
|
12
|
+
active-text="Enviar em massa">
|
|
13
|
+
</el-switch>
|
|
14
|
+
</div>
|
|
6
15
|
</h2>
|
|
7
16
|
</template>
|
|
8
|
-
<div
|
|
9
|
-
<div class="
|
|
10
|
-
<
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
<
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
<
|
|
17
|
+
<div v-if="switchSingle === false" style="min-height:100px">
|
|
18
|
+
<div class="row px-4">
|
|
19
|
+
<div class="col-4">
|
|
20
|
+
<label for="name">Nome Completo</label>
|
|
21
|
+
</div>
|
|
22
|
+
<div class="col-4">
|
|
23
|
+
<label for="email">E-mail</label>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="col-4">
|
|
26
|
+
<label for="email">Cargo</label>
|
|
27
|
+
</div>
|
|
17
28
|
</div>
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
<validation-observer ref="sendCourse">
|
|
30
|
+
<div class="row px-4" v-for="(slot, idx) in payload.users" :key="idx">
|
|
31
|
+
<validation-provider
|
|
32
|
+
tag="div"
|
|
33
|
+
class="col-4"
|
|
34
|
+
style="height: 50px"
|
|
35
|
+
:vid="`send-name-${idx}`"
|
|
36
|
+
name="Nome"
|
|
37
|
+
rules="required|regex:\w+\s+\w+"
|
|
38
|
+
v-slot="{ errors }"
|
|
39
|
+
>
|
|
40
|
+
<base-input
|
|
41
|
+
v-model="slot.name"
|
|
42
|
+
:error="errors[0]"
|
|
43
|
+
:valid="errors.length ? true : false"
|
|
44
|
+
/>
|
|
45
|
+
</validation-provider>
|
|
35
46
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
<base-input
|
|
45
|
-
v-model="slot.email"
|
|
46
|
-
:error="errors[0]"
|
|
47
|
-
:valid="errors.length ? true : false"
|
|
48
|
-
/>
|
|
49
|
-
</validation-provider>
|
|
50
|
-
<div tag="div" class="col-3" name="role">
|
|
51
|
-
<el-select
|
|
52
|
-
class="select-danger"
|
|
53
|
-
v-model="slot.role"
|
|
54
|
-
:placeholder="''"
|
|
47
|
+
<validation-provider
|
|
48
|
+
tag="div"
|
|
49
|
+
class="col-4"
|
|
50
|
+
style="height: 50px"
|
|
51
|
+
:vid="`send-email-${idx}`"
|
|
52
|
+
name="Email"
|
|
53
|
+
rules="required|email"
|
|
54
|
+
v-slot="{ errors }"
|
|
55
55
|
>
|
|
56
|
-
<
|
|
57
|
-
v-
|
|
58
|
-
:
|
|
59
|
-
:
|
|
60
|
-
|
|
56
|
+
<base-input
|
|
57
|
+
v-model="slot.email"
|
|
58
|
+
:error="errors[0]"
|
|
59
|
+
:valid="errors.length ? true : false"
|
|
60
|
+
/>
|
|
61
|
+
</validation-provider>
|
|
62
|
+
<div tag="div" class="col-3" name="role">
|
|
63
|
+
<el-select
|
|
64
|
+
class="select-danger"
|
|
65
|
+
v-model="selectedRole"
|
|
66
|
+
style="height: 50px"
|
|
67
|
+
:placeholder="''"
|
|
61
68
|
>
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
<
|
|
69
|
+
<el-option
|
|
70
|
+
v-for="role in corporativeRole"
|
|
71
|
+
:key="role.id"
|
|
72
|
+
:label="role.name"
|
|
73
|
+
:value="role.id"
|
|
74
|
+
>
|
|
75
|
+
</el-option>
|
|
76
|
+
</el-select>
|
|
77
|
+
</div>
|
|
78
|
+
<div class="col-1">
|
|
79
|
+
<i
|
|
80
|
+
v-if="idx !== payload.users.length - 1"
|
|
81
|
+
class="fa fa-trash pointer"
|
|
82
|
+
@click="removeSlot(idx)"
|
|
83
|
+
></i>
|
|
84
|
+
<i v-else class="fa fa-plus pointer" @click="addSlot"></i>
|
|
85
|
+
</div>
|
|
72
86
|
</div>
|
|
87
|
+
</validation-observer>
|
|
88
|
+
</div>
|
|
89
|
+
<!-- envio em massa -->
|
|
90
|
+
<div v-else style="height:100px">
|
|
91
|
+
<div class="px-4">
|
|
92
|
+
<label for="email">Cargo</label>
|
|
73
93
|
</div>
|
|
74
|
-
|
|
75
|
-
|
|
94
|
+
<validation-observer ref="sendCourse">
|
|
95
|
+
<div class="row px-4" v-for="(slot, idx) in payload.users" :key="idx">
|
|
96
|
+
<div tag="div" class="col-12" name="role">
|
|
97
|
+
<el-select
|
|
98
|
+
class="select-danger"
|
|
99
|
+
multiple
|
|
100
|
+
style="width: 100%;"
|
|
101
|
+
v-model="selectedRole"
|
|
102
|
+
:placeholder="''"
|
|
103
|
+
>
|
|
104
|
+
<el-option
|
|
105
|
+
v-for="role in corporativeRole"
|
|
106
|
+
:key="role.id"
|
|
107
|
+
:label="role.name"
|
|
108
|
+
:value="role.id"
|
|
109
|
+
>
|
|
110
|
+
</el-option>
|
|
111
|
+
</el-select>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
</validation-observer>
|
|
115
|
+
</div>
|
|
76
116
|
<hr />
|
|
77
117
|
|
|
78
118
|
<div class="row px-4">
|
|
@@ -109,13 +149,14 @@
|
|
|
109
149
|
</template>
|
|
110
150
|
|
|
111
151
|
<script>
|
|
112
|
-
import { Select, Option } from 'element-ui';
|
|
152
|
+
import { Select, Option, Switch } from 'element-ui';
|
|
113
153
|
|
|
114
154
|
export default {
|
|
115
155
|
name: 'send-course',
|
|
116
156
|
components: {
|
|
117
157
|
[Select.name]: Select,
|
|
118
|
-
[Option.name]: Option
|
|
158
|
+
[Option.name]: Option,
|
|
159
|
+
[Switch.name]: Switch
|
|
119
160
|
},
|
|
120
161
|
props: {
|
|
121
162
|
isModalOpen: {
|
|
@@ -132,7 +173,7 @@ export default {
|
|
|
132
173
|
},
|
|
133
174
|
|
|
134
175
|
removeSlot(idx) {
|
|
135
|
-
this.
|
|
176
|
+
this.payload.users.splice(idx, 1);
|
|
136
177
|
},
|
|
137
178
|
|
|
138
179
|
addSlot() {
|
|
@@ -140,10 +181,10 @@ export default {
|
|
|
140
181
|
idx: '',
|
|
141
182
|
name: '',
|
|
142
183
|
email: '',
|
|
143
|
-
|
|
184
|
+
access_level_id: ''
|
|
144
185
|
};
|
|
145
186
|
|
|
146
|
-
this.
|
|
187
|
+
this.payload.users = [...this.payload.users, newSlot];
|
|
147
188
|
},
|
|
148
189
|
|
|
149
190
|
async sendTest() {
|
|
@@ -153,43 +194,56 @@ export default {
|
|
|
153
194
|
return;
|
|
154
195
|
}
|
|
155
196
|
|
|
156
|
-
const
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
197
|
+
const filterUsers = user => user.email !== '';
|
|
198
|
+
let formattedCourses = this.coursesToSend.map(id => ({
|
|
199
|
+
id
|
|
200
|
+
}));
|
|
201
|
+
if( this.switchSingle === false) {
|
|
202
|
+
const formatRequest = () => {
|
|
203
|
+
let formattedSlots = this.payload.users
|
|
204
|
+
.filter(filterUsers)
|
|
205
|
+
.map(user => ({
|
|
206
|
+
name: user.name.substring(user.name.indexOf(' '), 0),
|
|
207
|
+
last_name: user.name.substring(
|
|
208
|
+
user.name.indexOf(' ') + 1
|
|
209
|
+
),
|
|
210
|
+
email: user.email,
|
|
211
|
+
access_level_id: this.selectedRole
|
|
212
|
+
}));
|
|
213
|
+
|
|
214
|
+
return {
|
|
215
|
+
...formattedSlots
|
|
216
|
+
|
|
217
|
+
};
|
|
177
218
|
};
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
219
|
+
|
|
220
|
+
let params = {
|
|
221
|
+
users: formatRequest(),
|
|
222
|
+
courses: formattedCourses,
|
|
223
|
+
|
|
224
|
+
};
|
|
225
|
+
this.resetSlots();
|
|
226
|
+
this.$emit('send-course', params);
|
|
227
|
+
} else {
|
|
228
|
+
|
|
229
|
+
let params = {
|
|
230
|
+
courses: formattedCourses,
|
|
231
|
+
access_levels: this.selectedRole.map(id => {
|
|
232
|
+
return { id };
|
|
233
|
+
})
|
|
234
|
+
|
|
235
|
+
};
|
|
236
|
+
this.resetSlots();
|
|
237
|
+
this.$emit('send-course', params);
|
|
238
|
+
}
|
|
185
239
|
},
|
|
186
240
|
resetSlots() {
|
|
187
|
-
this.
|
|
241
|
+
this.payload.users = [
|
|
188
242
|
{
|
|
189
243
|
idx: '',
|
|
190
244
|
name: '',
|
|
191
245
|
email: '',
|
|
192
|
-
|
|
246
|
+
access_level_id: ''
|
|
193
247
|
}
|
|
194
248
|
];
|
|
195
249
|
}
|
|
@@ -197,19 +251,26 @@ export default {
|
|
|
197
251
|
watch: {
|
|
198
252
|
selectedCourse(newValue) {
|
|
199
253
|
this.coursesToSend = newValue ? [newValue] : [];
|
|
200
|
-
}
|
|
254
|
+
},
|
|
255
|
+
switchSingle(){this.selectedRole = '';}
|
|
201
256
|
},
|
|
202
257
|
data() {
|
|
203
258
|
return {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
259
|
+
payload: {
|
|
260
|
+
users: [
|
|
261
|
+
{
|
|
262
|
+
idx: '',
|
|
263
|
+
name: '',
|
|
264
|
+
email: '',
|
|
265
|
+
access_level_id: null
|
|
266
|
+
}
|
|
267
|
+
],
|
|
268
|
+
courses: [{ id: '' }],
|
|
269
|
+
access_levels:[{ id: '' }]
|
|
270
|
+
},
|
|
271
|
+
selectedRole: '',
|
|
272
|
+
switchSingle: false,
|
|
273
|
+
coursesToSend: [],
|
|
213
274
|
};
|
|
214
275
|
}
|
|
215
276
|
};
|
|
@@ -231,4 +292,10 @@ export default {
|
|
|
231
292
|
.pointer {
|
|
232
293
|
cursor: pointer;
|
|
233
294
|
}
|
|
295
|
+
/deep/ .el-switch__label{
|
|
296
|
+
height: 13.5px !important;
|
|
297
|
+
&.is-active{
|
|
298
|
+
color: #5865F2 !important;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
234
301
|
</style>
|
|
@@ -74,7 +74,7 @@ export default {
|
|
|
74
74
|
return {
|
|
75
75
|
firstFieldValue: this.propFirstFieldValue,
|
|
76
76
|
userTrainingsSelecteds: [],
|
|
77
|
-
showModal: this.openModal
|
|
77
|
+
showModal: this.openModal
|
|
78
78
|
};
|
|
79
79
|
},
|
|
80
80
|
props: {
|
|
@@ -112,11 +112,11 @@ export default {
|
|
|
112
112
|
|
|
113
113
|
},
|
|
114
114
|
|
|
115
|
-
userTrainingsSelecteds(newValue) {
|
|
116
|
-
if (
|
|
115
|
+
userTrainingsSelecteds(newValue, oldVal) {
|
|
116
|
+
if (oldVal != newValue) {
|
|
117
117
|
console.log('change on if');
|
|
118
118
|
this.$emit('change-selecteds', {
|
|
119
|
-
oldSelecteds:
|
|
119
|
+
oldSelecteds: oldVal,
|
|
120
120
|
newSelecteds: newValue,
|
|
121
121
|
});
|
|
122
122
|
}
|