@burh/nuxt-core 1.0.313 → 1.0.314

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
- <h2 class="display-4 px-4">
5
- Insira os e-mail que deseja enviar o treinamento
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 class="row px-4">
9
- <div class="col-6">
10
- <label for="name">Nome Completo</label>
11
- </div>
12
- <div class="col-6">
13
- <label for="email">E-mail</label>
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>
14
28
  </div>
15
- <!-- <div class="col-4">
16
- <label for="email">Cargo</label>
17
- </div> -->
18
- </div>
19
- <validation-observer ref="sendCourse">
20
- <div class="row px-4" v-for="(slot, idx) in slots" :key="idx">
21
- <validation-provider
22
- tag="div"
23
- class="col-6"
24
- :vid="`send-name-${idx}`"
25
- name="Nome"
26
- rules="required|regex:\w+\s+\w+"
27
- v-slot="{ errors }"
28
- >
29
- <base-input
30
- v-model="slot.name"
31
- :error="errors[0]"
32
- :valid="errors.length ? true : false"
33
- />
34
- </validation-provider>
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
- <validation-provider
37
- tag="div"
38
- class="col-5"
39
- :vid="`send-email-${idx}`"
40
- name="Email"
41
- rules="required|email"
42
- v-slot="{ errors }"
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
- <el-option
57
- v-for="role in corporativeRole"
58
- :key="role.id"
59
- :label="role.name"
60
- :value="role.id"
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
- </el-option>
63
- </el-select>
64
- </div> -->
65
- <div class="col-1">
66
- <i
67
- v-if="idx !== slots.length - 1"
68
- class="fa fa-trash pointer"
69
- @click="removeSlot(idx)"
70
- ></i>
71
- <i v-else class="fa fa-plus pointer" @click="addSlot"></i>
69
+ <el-option
70
+ v-for="role in corporativeRole"
71
+ :key="role.id"
72
+ :label="role.level"
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
- </validation-observer>
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.level"
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.slots.splice(idx, 1);
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
- role: ''
184
+ access_level_id: ''
144
185
  };
145
186
 
146
- this.slots = [...this.slots, newSlot];
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 filterSlots = slot => slot.email !== '';
157
-
158
- const formatRequest = () => {
159
- let formattedCourses = this.coursesToSend.map(course => ({
160
- course_id: course
161
- }));
162
-
163
- let formattedSlots = this.slots
164
- .filter(filterSlots)
165
- .map(slot => ({
166
- name: slot.name.substring(slot.name.indexOf(' '), 0),
167
- last_name: slot.name.substring(
168
- slot.name.indexOf(' ') + 1
169
- ),
170
- email: slot.email,
171
- courses: formattedCourses,
172
- role_id: slot.role
173
- }));
174
-
175
- return {
176
- ...formattedSlots
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
- let params = {
181
- users: formatRequest()
182
- };
183
- this.resetSlots();
184
- this.$emit('send-course', params);
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.slots = [
241
+ this.payload.users = [
188
242
  {
189
243
  idx: '',
190
244
  name: '',
191
245
  email: '',
192
- role: ''
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
- slots: [
205
- {
206
- idx: '',
207
- name: '',
208
- email: '',
209
- role: ''
210
- }
211
- ],
212
- coursesToSend: []
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>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burh/nuxt-core",
3
- "version": "1.0.313",
3
+ "version": "1.0.314",
4
4
  "description": "Design System and Components.",
5
5
  "author": "Burh",
6
6
  "scripts": {