@burh/nuxt-core 1.0.460 → 1.0.462

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.
@@ -2,7 +2,11 @@
2
2
  <span @click="handleClick">
3
3
  <div class="media align-items-center">
4
4
  <span class="avatar avatar-sm rounded-circle">
5
- <img :src="logo">
5
+ <image-with-fallback
6
+ :src="logo"
7
+ :alt="`Logo da empresa ${name}`"
8
+ :fallbackText="name"
9
+ />
6
10
  </span>
7
11
  <div class="media-body ml-2 d-none d-lg-block" v-if="!isCompany">
8
12
  <span class="mb-0 text-sm font-weight-bold">
@@ -3,15 +3,11 @@
3
3
  <div class="profile w-100 text-center">
4
4
  <div class="avatar">
5
5
  <image-with-fallback
6
- v-if="userData.urlAvatar"
7
6
  :src="userData.urlAvatar"
8
7
  :alt="userData.name"
9
8
  :fallbackText="userData.name"
10
9
  fallbackSize="1024"
11
10
  />
12
- <div v-else class=".">
13
- {{ userData.name }}
14
- </div>
15
11
  </div>
16
12
 
17
13
  <h5
@@ -97,24 +97,66 @@
97
97
  v-for="(buttons, index) in buttons"
98
98
  :key="index"
99
99
  >
100
- <button
101
- role="button"
102
- class="tag tag-outline-primary d-block w-100 buttons"
103
- :id="'button-' + buttons.id"
104
- :value="buttons.value"
105
- :class="
100
+ <div v-if="haveCustomTime">
101
+ <button
102
+ v-if="buttons.id != 8"
103
+ role="button"
104
+ class="tag tag-outline-primary d-block w-100 buttons"
105
+ :value="buttons.value"
106
+ :class="
107
+ buttons.id == currentSelectedButton
108
+ ? 'active'
109
+ : ''
110
+ "
111
+ @click="timeSelection(buttons.id)"
112
+ >
113
+ <i
114
+ v-if="buttons.id == currentSelectedButton"
115
+ class="fas fa-check mr-1"
116
+ ></i>
117
+ <small>{{ buttons.time }}</small>
118
+ </button>
119
+ <div :class="
106
120
  buttons.id == currentSelectedButton
107
- ? 'active'
108
- : ''
109
- "
110
- @click="timeSelection(buttons.id)"
111
- >
112
- <i
113
- v-if="buttons.id == currentSelectedButton"
114
- class="fas fa-check mr-1"
115
- ></i>
116
- <small>{{ buttons.time }}</small>
117
- </button>
121
+ ? 'active-time'
122
+ : ''" class="custom-time-div">
123
+ <i
124
+ v-if="buttons.id == currentSelectedButton && buttons.value"
125
+ class="fas fa-check mr-1"
126
+ :class="[currentSelectedButton == 8 ? 'custom-icon': 'custom-time-icon']"
127
+ ></i>
128
+ <!-- <div v-if="buttons.id == 8" @click="setInitValue(buttons.id)">
129
+ <el-time-picker
130
+ format="HH:mm:ss"
131
+ value-format="HH:mm:ss"
132
+ v-model="buttons.value"
133
+ @change="setValueChange()"
134
+ :class="currentSelectedButton == buttons.id ? 'active-custom': 'not-active-custom' "
135
+ class="w-100"
136
+ placeholder="Outro">
137
+ </el-time-picker>
138
+ </div> -->
139
+ </div>
140
+ </div>
141
+ <div v-else-if="!haveCustomTime">
142
+ <button
143
+ role="button"
144
+ class="tag tag-outline-primary d-block w-100 buttons"
145
+ :value="buttons.value"
146
+ :class="
147
+ buttons.id == currentSelectedButton
148
+ ? 'active'
149
+ : ''
150
+ "
151
+ @click="timeSelection(buttons.id)"
152
+ >
153
+ <i
154
+ v-if="buttons.id == currentSelectedButton"
155
+ class="fas fa-check mr-1"
156
+ ></i>
157
+ <small>{{ buttons.time }}</small>
158
+ </button>
159
+ </div>
118
160
  </div>
119
161
  </div>
120
162
  </div>
@@ -142,11 +184,13 @@
142
184
  </template>
143
185
  <script>
144
186
  import { mask } from 'vue-the-mask';
145
- import { Select, Option } from 'element-ui';
187
+ import swal from 'sweetalert2';
188
+ import { Select, Option, TimePicker } from 'element-ui';
146
189
  export default {
147
190
  components: {
148
191
  [Select.name]: Select,
149
- [Option.name]: Option
192
+ [Option.name]: Option,
193
+ [TimePicker.name]: TimePicker,
150
194
  },
151
195
  directives: { mask },
152
196
  data() {
@@ -178,6 +222,14 @@ export default {
178
222
  thirdInput: 'Insira a carga horária do curso'
179
223
  })
180
224
  },
225
+ haveCustomTime:{
226
+ type:Boolean,
227
+ default:false
228
+ },
229
+ deadLineTime:{
230
+ type:Number,
231
+ default:0
232
+ },
181
233
  show: {
182
234
  type: Boolean,
183
235
  default: false
@@ -197,14 +249,14 @@ export default {
197
249
  buttons: {
198
250
  type: Array,
199
251
  default: () => [
200
- { id: '1', time: '5 minutos', value: '00:05:00' },
201
- { id: '2', time: '10 minutos', value: '00:10:00' },
202
- { id: '3', time: '15 minutos', value: '00:15:00' },
203
- { id: '4', time: '30 minutos', value: '00:30:00' },
204
- { id: '5', time: '45 minutos', value: '00:45:00' },
205
- { id: '6', time: '60 minutos', value: '01:00:00' },
206
- { id: '7', time: '2 horas', value: '02:00:00' },
207
- { id: '8', time: '8 horas', value: '08:00:00' }
252
+ { id: '1', time: '5 minutos', value: '00:05:00', custom: false },
253
+ { id: '2', time: '10 minutos', value: '00:10:00', custom: false },
254
+ { id: '3', time: '15 minutos', value: '00:15:00', custom: false },
255
+ { id: '4', time: '30 minutos', value: '00:30:00', custom: false },
256
+ { id: '5', time: '45 minutos', value: '00:45:00', custom: false },
257
+ { id: '6', time: '60 minutos', value: '01:00:00', custom: false },
258
+ { id: '7', time: '2 horas', value: '02:00:00', custom: false },
259
+ { id: '8', time: 'Outro', value: null, custom: true }
208
260
  ],
209
261
  description: 'Botoes de tempo'
210
262
  },
@@ -269,6 +321,9 @@ export default {
269
321
  workloadValue(newValue) {
270
322
  this.configInfo.workload = newValue;
271
323
  },
324
+ deadLineTime(){
325
+ this.loadTime();
326
+ },
272
327
  time(newValue) {
273
328
  this.configInfo.selectedTime = newValue;
274
329
  },
@@ -295,11 +350,40 @@ export default {
295
350
  set(show) {
296
351
  this.$emit('input', show);
297
352
  }
298
- }
353
+ },
299
354
  },
300
355
  methods: {
356
+ setInitValue(id){
357
+ this.currentSelectedButton = id;
358
+ let getIndex = this.buttons.findIndex((e)=>e.custom == true);
359
+ if(!this.buttons[getIndex].value){
360
+ this.buttons[getIndex].value = null;
361
+ }
362
+ },
363
+ setValueChange(){
364
+ this.configInfo.selectedTime = this.buttons.find((e)=>e.custom == true).value;
365
+ },
301
366
  loadTime() {
302
- let time = this.buttons.find(e => e.value === this.time);
367
+ let time = null;
368
+ let deadLineTime = null;
369
+ if(this.deadLineTime == 0){
370
+ deadLineTime = this.buttons.find(e => e.value == 'null');
371
+ }
372
+ if(this.deadLineTime){
373
+ deadLineTime = this.buttons.find(e => e.value == this.deadLineTime);
374
+ }
375
+ if(deadLineTime != null){
376
+ this.currentSelectedButton = deadLineTime.id;
377
+ this.configInfo.selectedTime = this.deadLineTime;
378
+ return;
379
+ }
380
+ if(this.time && this.time != 'null'){
381
+ time = this.buttons.find(e => e.value === this.time);
382
+ if(!time){
383
+ time = this.buttons.find(e => e.custom === true);
384
+ time.value = this.time;
385
+ }
386
+ }
303
387
  if (time != null) {
304
388
  this.currentSelectedButton = time.id;
305
389
  this.configInfo.selectedTime = this.time;
@@ -312,16 +396,35 @@ export default {
312
396
  }
313
397
  },
314
398
  timeSelection(buttonId) {
315
- let btn = document.getElementById('button-' + buttonId);
399
+ let btn = this.buttons.find((e)=>e.id == buttonId);
400
+ if(this.haveCustomTime && buttonId){
401
+ if(buttonId != 8 ){
402
+ this.buttons[7].value = null;
403
+ }
404
+ }
316
405
  this.configInfo.selectedTime = btn.value;
317
406
  this.currentSelectedButton = buttonId;
318
407
  },
319
408
  async sendConfig() {
409
+ let customButton = this.buttons.find((e) => e.custom == true);
320
410
  const pass = await this.$refs.appConfigModal.validate();
321
411
  if (!pass) {
322
412
  return;
323
413
  }
324
414
  let config;
415
+ if(this.haveCustomTime && this.currentSelectedButton == customButton.id){
416
+ if(!customButton.value){
417
+ return this.showMessage('É necessário selecionar um tempo');
418
+ }
419
+ let timeReplaced = customButton.value.replaceAll(':', '');
420
+
421
+ if(timeReplaced == '000000' || timeReplaced.length < 6){
422
+ return this.showMessage('Tempo inválido');
423
+ }
424
+ if(timeReplaced > 240000){
425
+ return this.showMessage('O tempo não pode ser maior que 24 horas');
426
+ }
427
+ }
325
428
  if (!this.isCourse) {
326
429
  config = {
327
430
  title: this.configInfo.title,
@@ -339,6 +442,19 @@ export default {
339
442
  }
340
443
  this.$emit('send-config-info', config);
341
444
  this.openModal = false;
445
+ },
446
+ showMessage(title, type = 'error'){
447
+ const Toast = swal.mixin({
448
+ toast: true,
449
+ position: 'top-end',
450
+ showConfirmButton: false,
451
+ timer: 3100,
452
+ });
453
+
454
+ return Toast.fire({
455
+ type: type,
456
+ title: title
457
+ });
342
458
  }
343
459
  }
344
460
  };
@@ -388,3 +504,88 @@ export default {
388
504
  }
389
505
  }
390
506
  </style>
507
+ <style lang="scss" scoped>
508
+ .custom-time::placeholder{
509
+ font-size: 80%;
510
+ color:#00b388;
511
+ }
512
+ /deep/
513
+ .custom-time:hover::placeholder{
514
+ color: #fff;
515
+ }
516
+ .active-time{
517
+ background-color:#00B388;
518
+ }
519
+ .custom-time-div{
520
+ position: relative;
521
+ .custom-time-icon{
522
+ position:absolute;
523
+ top:1rem;
524
+ left:1.5rem;
525
+ color:#fff;
526
+ }
527
+ .custom-icon{
528
+ position:absolute;
529
+ top:1rem;
530
+ z-index: 3;
531
+ left:2rem;
532
+ color:#fff;
533
+ }
534
+ }
535
+ /deep/ .active-custom{
536
+ .el-time-panel{
537
+ width: 15.5%;
538
+ }
539
+ .el-input__inner{
540
+ background-color: #00b388;
541
+ border: 2px solid #00b388;
542
+ display: block;
543
+ height: 51.39px;
544
+ color:#fff;
545
+ text-align: center;
546
+ &::placeholder{
547
+ color:#fff;
548
+ }
549
+ }
550
+ .el-input__prefix{
551
+ .el-icon-time:before{
552
+ color:#fff;
553
+ }
554
+ }
555
+ .el-input__suffix{
556
+ .el-input__suffix-inner{
557
+ .el-icon-circle-close{
558
+ color:#fff;
559
+ }
560
+ }
561
+ }
562
+ }
563
+ /deep/ .not-active-custom{
564
+ .el-time-panel{
565
+ width: 15.5%;
566
+ }
567
+ .el-input__inner{
568
+ border: 2px solid #00b388;
569
+ display: block;
570
+ height: 51.39px;
571
+ color:#00b388;
572
+ text-align: center;
573
+ &::placeholder{
574
+ color:#00b388;
575
+ }
576
+ }
577
+ .el-input__prefix{
578
+ .el-icon-time:before{
579
+ position: relative;
580
+ color:#00b388;
581
+ }
582
+ }
583
+ .el-input__suffix{
584
+ .el-input__suffix-inner{
585
+ .el-icon-circle-close{
586
+ color:#00b388;
587
+ }
588
+ }
589
+ }
590
+ }
591
+ </style>
@@ -46,14 +46,20 @@
46
46
  </validation-provider>
47
47
 
48
48
  <div class="select__container px-3">
49
- <div name="role">
49
+ <validation-provider
50
+ tag="div"
51
+ name="Setor"
52
+ rules="required"
53
+ v-slot="{ errors }"
54
+ >
50
55
  <label for="select" class="form-control-label">Setor</label>
51
56
 
52
57
  <el-select
53
- class="select-danger"
58
+ class="w-100"
54
59
  id="select"
55
60
  placeholder="Setor"
56
61
  v-model="slot.role"
62
+ :class="{'is-invalid': errors[0]}"
57
63
  clearable
58
64
  >
59
65
  <div class="text-center" slot="empty">
@@ -67,10 +73,14 @@
67
73
  :key="role.id"
68
74
  :label="role.level"
69
75
  :value="role.level"
70
- >
71
- </el-option>
76
+ />
72
77
  </el-select>
73
- </div>
78
+ <div
79
+ class="invalid-feedback"
80
+ style="display: block;">
81
+ {{ errors[0] }}
82
+ </div>
83
+ </validation-provider>
74
84
 
75
85
  <div name="role">
76
86
  <label for="buffer" class="form-control-label">Vincular ao buffer</label>
@@ -219,7 +229,7 @@ export default {
219
229
  };
220
230
  },
221
231
  resetSlots() {
222
- this.$refs.inviteUser.reset();
232
+ this.$refs && this.$refs.inviteUser && this.$refs.inviteUser.reset();
223
233
  this.slots = [];
224
234
  this.slots.push(this.getSlot());
225
235
  }
@@ -236,6 +246,11 @@ export default {
236
246
  };
237
247
  </script>
238
248
  <style lang="scss" scoped>
249
+ .is-invalid {
250
+ /deep/ input {
251
+ border-color: #de214b!important;
252
+ }
253
+ }
239
254
  .send-test-modal {
240
255
  position: fixed;
241
256
  overflow-y: scroll;
@@ -29,12 +29,12 @@
29
29
  <ul class="product__content--list">
30
30
  <li><a :href="`${baseAppUrl}/busca`">Busca Avançada</a></li>
31
31
  <li>
32
- <a :href="`${oldBusinessUrl}/burh/vagas`"
32
+ <a :href="`${baseAppUrl}/recrutamento`"
33
33
  >Recrutamento</a
34
34
  >
35
35
  </li>
36
36
  <li>
37
- <a :href="`${oldBusinessUrl}/app/university`"
37
+ <a :href="`${baseAppUrl}/universidades`"
38
38
  >Busca por Universidades</a
39
39
  >
40
40
  </li>
@@ -170,15 +170,15 @@ export default {
170
170
  data() {
171
171
  return {
172
172
  year: new Date().getFullYear(),
173
- url: '',
174
- baseAppUrl: '',
175
- oldBusinessUrl: ''
176
173
  };
177
174
  },
178
- mounted() {
179
- this.url = process.env.baseUserUrl;
180
- this.baseAppUrl = process.env.baseAppUrl;
181
- this.oldBusinessUrl = process.env.oldBusinessUrl;
175
+ computed: {
176
+ url() {
177
+ return process.env.baseUserUrl;
178
+ },
179
+ baseAppUrl() {
180
+ return process.env.baseAppUrl;
181
+ }
182
182
  }
183
183
  };
184
184
  </script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burh/nuxt-core",
3
- "version": "1.0.460",
3
+ "version": "1.0.462",
4
4
  "description": "Design System and Components.",
5
5
  "author": "Burh",
6
6
  "scripts": {
@@ -16,7 +16,14 @@ import RouteBreadcrumb from '~/components/argon-core/Breadcrumb/RouteBreadcrumb'
16
16
  import StatsCard from '~/components/argon-core/Cards/StatsCard.vue';
17
17
  import ImageWithFallback from '@/components/burh-ds/Img/ImageWithFallback.vue';
18
18
  import { Input, Tooltip, Popover } from 'element-ui';
19
+
20
+ import lang from 'element-ui/lib/locale/lang/pt-br';
21
+ import locale from 'element-ui/lib/locale';
22
+
19
23
  import Vue from 'vue';
24
+
25
+ locale.use(lang);
26
+
20
27
  /**
21
28
  * You can register global components here and use them as a plugin in your main Vue instance
22
29
  */