@burh/nuxt-core 1.0.246 → 1.0.248

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.
@@ -25,6 +25,49 @@
25
25
  <span>Data de atualização: {{ $moment(userData.updated_at).format('DD/MM/YYYY H:mm')}}</span>
26
26
  </div>
27
27
 
28
+ <div
29
+ class="deficiency title-block mt-3 ml-4"
30
+ v-if="userData.user_deficiency"
31
+ >
32
+ <div class="d-flex align-items-center">
33
+ <i class="fas fa-wheelchair"></i>
34
+ <h6 class="mb-0 ml-2">Deficiência</h6>
35
+ </div>
36
+ <div class="line"></div>
37
+ <p>
38
+ {{ userData.user_deficiency.deficiency_id | allDeficiencies }} -
39
+ {{ userData.user_deficiency.cid }}
40
+ </p>
41
+
42
+ <p v-show="userData.user_deficiency.appliance">
43
+ Acessório: {{ userData.user_deficiency.appliance }}
44
+ </p>
45
+
46
+ <p v-show="userData.user_deficiency.apparatus">
47
+ Necessidade: {{ userData.user_deficiency.apparatus }}
48
+ </p>
49
+
50
+ <p v-show="userData.user_deficiency.course">
51
+ Curso: {{ userData.user_deficiency.course }}
52
+ </p>
53
+
54
+ <p v-show="userData.user_deficiency.note">
55
+ Anotações: {{ userData.user_deficiency.note }}
56
+ </p>
57
+
58
+ <p v-show="userData.user_deficiency.transport === 1">
59
+ Utiliza transporte coletivo
60
+ </p>
61
+
62
+ <p v-show="userData.user_deficiency.vehicle === 1">
63
+ Possuí veículo adaptado
64
+ </p>
65
+
66
+ <p v-show="userData.user_deficiency.escort === 1">
67
+ Precisa de acompanhante
68
+ </p>
69
+ </div>
70
+
28
71
  <div
29
72
  v-show="userData.user_desired_job.length > 0"
30
73
  class="desidered title-block mt-3 ml-4"
@@ -70,49 +113,6 @@
70
113
  ></p>
71
114
  </div>
72
115
 
73
- <div
74
- class="deficiency title-block mt-3 ml-4"
75
- v-if="userData.user_deficiency"
76
- >
77
- <div class="d-flex align-items-center">
78
- <i class="fas fa-wheelchair"></i>
79
- <h6 class="mb-0 ml-2">Deficiência</h6>
80
- </div>
81
- <div class="line"></div>
82
- <p>
83
- {{ userData.user_deficiency.deficiency_id | allDeficiencies }} -
84
- {{ userData.user_deficiency.cid }}
85
- </p>
86
-
87
- <p v-show="userData.user_deficiency.appliance">
88
- Acessório: {{ userData.user_deficiency.appliance }}
89
- </p>
90
-
91
- <p v-show="userData.user_deficiency.apparatus">
92
- Necessidade: {{ userData.user_deficiency.apparatus }}
93
- </p>
94
-
95
- <p v-show="userData.user_deficiency.course">
96
- Curso: {{ userData.user_deficiency.course }}
97
- </p>
98
-
99
- <p v-show="userData.user_deficiency.note">
100
- Anotações: {{ userData.user_deficiency.note }}
101
- </p>
102
-
103
- <p v-show="userData.user_deficiency.transport === 1">
104
- Utiliza transporte coletivo
105
- </p>
106
-
107
- <p v-show="userData.user_deficiency.vehicle === 1">
108
- Possuí veículo adaptado
109
- </p>
110
-
111
- <p v-show="userData.user_deficiency.escort === 1">
112
- Precisa de acompanhante
113
- </p>
114
- </div>
115
-
116
116
  <div class="socials text-center mt-5">
117
117
  <a
118
118
  :href="baseUrl + '/' + userData.slug.slug"
@@ -1,581 +1,583 @@
1
- <template>
2
- <div class="bg-white content-right tabs ">
3
- <el-tabs
4
- :class="active"
5
- class="mt-3 ml-4 handle-icon-color"
6
- v-model="active"
7
- >
8
- <el-tab-pane class="history" name="history">
9
- <span class="tab__icon-pane" slot="label">
10
- <img
11
- class="img__icon-pane img__icon--history"
12
- src="../../../../assets/images/icons/historicCv.svg"
13
- />
14
- </span>
15
- <p class="notes-title mb-0">Histórico com sua empresa</p>
16
- <div class="line mb-3"></div>
17
-
18
- <div
19
- class="mt-3"
20
- v-for="(item, index) in orderByDate(companyHistory())"
21
- :key="index"
22
- >
23
- <p class="history-text mb-0">
24
- {{ item.text }}
25
- </p>
26
- <span>{{ item.date | convertDate }}</span>
27
- </div>
28
- <p v-show="companyHistory().length === 0" class="history-text">
29
- Histórico vazio.
30
- </p>
31
- </el-tab-pane>
32
-
33
- <el-tab-pane name="notes" v-if="isNotesActived">
34
- <span class="tab__icon-pane" slot="label">
35
- <img
36
- class="img__icon-pane img__icon--notes"
37
- src="../../../../assets/images/icons/notesCv.svg"
38
- />
39
- </span>
40
- <p class="notes-title mb-0">Notas da equipe</p>
41
- <div class="line mb-3"></div>
42
- <div
43
- v-show="notes.length > 0"
44
- v-for="(note, index) in notes.slice(0, 5)"
45
- :key="index"
46
- >
47
- <div class="notes-baloon">
48
- <div class="notes-text ml-3 pt-1">
49
- <p class="mt-3">{{ note.text }}</p>
50
- </div>
51
- <div
52
- class="d-flex justify-content-end align-items-center mr-3"
53
- >
54
- <p class="notes-date">
55
- {{ note.created_at | convertDate }}
56
- </p>
57
- </div>
58
- </div>
59
- <div class="notes-owner d-flex mt-2">
60
- <img
61
- v-show="note.user.urlAvatar"
62
- :src="note.user.urlAvatar"
63
- :alt="note.user.name"
64
- />
65
- <div
66
- v-show="!note.user.urlAvatar"
67
- class="notes-avatar"
68
- ></div>
69
- <p class="ml-1">
70
- {{ note.user.name }}
71
- </p>
72
- </div>
73
- </div>
74
- <div class="notes-text" v-show="notes.length === 0">
75
- <p>Nenhuma nota criada.</p>
76
- </div>
77
-
78
- <div class="input-container">
79
- <input
80
- class="notes-new pl-4 mt-3 mb-3 form-rounded"
81
- type="text"
82
- placeholder="Escrever anotação"
83
- v-model="newNote"
84
- @change="$emit('new-note', newNote, userData.id)"
85
- v-on:change="cleatInput()"
86
- />
87
- <i
88
- @click="
89
- newNote.length > 0 &&
90
- $emit('new-note', newNote, userData.id)
91
- "
92
- class="fas fa-paper-plane input-icon"
93
- ></i>
94
- </div>
95
- </el-tab-pane>
96
-
97
- <el-tab-pane name="documents">
98
- <span class="tab__icon-pane" slot="label">
99
- <img
100
- class="img__icon-pane img__icon--documents"
101
- src="../../../../assets/images/icons/icon3.svg"
102
- />
103
- </span>
104
- <p class="notes-title mb-0">Documentos anexados</p>
105
- <div class="line mb-3"></div>
106
-
107
- <div class="archive-content">
108
- <div v-for="(item, index) in archives" :key="index">
109
- <div @click="openArchive(item)" class="archive-container">
110
- <div>
111
- <img class="archive-img" src="../../../../assets/images/icons/icon3.svg" >
112
- </div>
113
- <div class="archive-name">
114
- <p>
115
- <span>{{item.name}}</span>
116
- <div class="archive-icon">
117
- <i @click.stop.prevent="openRemoveSection(item, (index+1))" class="far fa-trash-alt"></i>
118
- </div>
119
- </p>
120
- </div>
121
- </div>
122
- <div v-if="hasRemove && hasRemove == (index+1)" class="archive-remove">
123
- <p>Você tem certeza que deseja apagar este arquivo?</p>
124
- <div class="d-flex">
125
- <base-button
126
- @click="removeArchive(currentRemoveItem, index)"
127
- size="sm"
128
- class="btn-outline-primary col-6 p-1"
129
- >
130
- Apagar
131
- </base-button>
132
- <base-button
133
- @click="hasRemove = false"
134
- size="sm"
135
- class="btn-outline-danger col-6 p-1"
136
- >
137
- Cancelar
138
- </base-button>
139
- </div>
140
- </div>
141
- </div>
142
-
143
- </div>
144
- <div class="notes-text" v-show="archives == null">
145
- <p>Nenhum arquvio anexado.</p>
146
- </div>
147
-
148
- <div class="input-container">
149
- <div class="mt-5">
150
-
151
- <dropzone-file-upload
152
- disabled
153
- @error="showMessageError"
154
- ref="Mydropzone"
155
- :options="dropzoneOptions"
156
- v-model="fileToUpload"
157
- />
158
- </div>
159
-
160
- <div class="archive-buttons">
161
- <base-button @click="saveImage" size="sm" class="btn-outline-primary btn-rounded col-12">Salvar</base-button>
162
- </div>
163
- </div>
164
- </el-tab-pane>
165
-
166
- <el-tab-pane :disabled="true">
167
- <span class="tab__icon-pane cursor-disabled" slot="label">
168
- <img
169
- class="img__icon-pane"
170
- src="../../../../assets/images/icons/icon4.svg"
171
- />
172
- </span>
173
- </el-tab-pane>
174
- </el-tabs>
175
- </div>
176
- </template>
177
-
178
- <script>
179
- import { Tabs, TabPane } from 'element-ui';
180
- import DropzoneFileUpload from '@burh/nuxt-core/components/argon-core/Inputs/DropzoneFileUpload.vue';
181
- import swal from 'sweetalert2';
182
-
183
- export default {
184
- name: 'user-cv-right-side',
185
- filters: {
186
- convertDate(data) {
187
- let d = new Date(data);
188
- let options = { hour: '2-digit', minute: '2-digit' };
189
- return d.toLocaleDateString('pt-BR', options);
190
- }
191
- },
192
- watch:{
193
- fileToUpload(value){
194
- if(value.length > 0 && value[0].accepted) {
195
- this.isError = false;
196
- }
197
- }
198
- },
199
- components: {
200
- [Tabs.name]: Tabs,
201
- [TabPane.name]: TabPane,
202
- DropzoneFileUpload,
203
- },
204
- data(){
205
- return {
206
- newNote: '',
207
- active: this.activeName,
208
- hasRemove: null,
209
- isError: true,
210
- currentRemoveItem: null,
211
- fileToUpload: [],
212
- dropzoneOptions: {
213
- maxFilesize: 0.2,
214
- dictFileTooBig:'Seu arquivo é poderoso demais (Máximo 200kb).',
215
- dictDefaultMessage: 'Clique ou arraste seu arquivo aqui.',
216
- dictInvalidFileType: 'Arquivo invalido.',
217
- dictMaxFilesExceeded: 'Não é permitido mais de um arquivo por vez.',
218
- acceptedFiles: 'image/*, application/pdf',
219
- }
220
- };
221
- },
222
- props: {
223
- archives: Array,
224
- userData: Object,
225
- notes: Array,
226
- activeName: String,
227
- isNotesActived: {
228
- type: Boolean,
229
- default: true
230
- },
231
- },
232
- mounted() {
233
- this.companyHistory();
234
- },
235
- methods: {
236
- openRemoveSection(item, index) {
237
- this.hasRemove = index;
238
- this.currentRemoveItem = item;
239
- },
240
-
241
- showToast(type, title){
242
- const Toast = swal.mixin({
243
- toast: true,
244
- position: 'top-end',
245
- showConfirmButton: false,
246
- timer: 3100,
247
- });
248
-
249
- return Toast.fire({
250
- type: type,
251
- title: title
252
- });
253
- },
254
-
255
- showMessageError(file, message) {
256
- this.isError = true;
257
- this.$refs.Mydropzone.removeAllFiles();
258
-
259
- if (file.status !== 'canceled'){
260
- this.showToast('error', message);
261
- }
262
- },
263
-
264
- openArchive(item) {
265
- window.open(item.annex_url, '_blank');
266
- },
267
-
268
- saveImage(){
269
- if (!this.isError) {
270
- this.$emit('save-archive', this.fileToUpload[0], this.userData.id);
271
- this.$refs.Mydropzone.removeAllFiles();
272
- this.showToast('success', 'Arquivo enviado com sucesso.');
273
-
274
- } else {
275
- if (this.fileToUpload.length > 0) {
276
- this.showToast('error', 'Arquivo invalido.');
277
- } else {
278
- this.showToast('warning', 'Selecione um arquivo.');
279
- }
280
- }
281
- },
282
-
283
- removeArchive(archive, index){
284
- this.$emit('remove-archive', archive, archive.id, index);
285
- this.hasRemove = null;
286
- },
287
-
288
- cleatInput() {
289
- this.newNote = '';
290
- },
291
- companyHistory() {
292
- let sms = this.userData.company_sms.map(x => ({
293
- date: x.created_at,
294
- text: 'Recebeu um SMS'
295
- }));
296
- let tests = this.userData.tests.map(x => ({
297
- date: x.finished_at,
298
- text: `Finalizou o teste ${x.test.name.toUpperCase()}`
299
- }));
300
- let discs = this.userData.solides.map(x => ({
301
- date: x.end,
302
- text: 'Realizou um teste DISC'
303
- }));
304
-
305
- return sms.concat(tests, discs);
306
- },
307
- orderByDate(data) {
308
- let sortedArray = data.sort((a, b) => {
309
- a = [a.date || '2020/01/01'];
310
-
311
- b = [b.date || '2020/01/01'];
312
-
313
- return new Date(b) - new Date(a);
314
- });
315
-
316
- return sortedArray;
317
- },
318
- },
319
- };
320
- </script>
321
- <style>
322
- .el-tabs__nav-wrap::after {
323
- background: #fff !important;
324
- }
325
-
326
- .el-tabs__active-bar {
327
- width: 34px !important;
328
- height: 4px !important;
329
- border-radius: 10px 10px 0px 0px;
330
- }
331
- </style>
332
-
333
- <style lang="scss">
334
- .swal2-title {
335
- font-size: 1rem !important;
336
- }
337
- .swal2-container {
338
- z-index: 5000 !important;
339
- }
340
- </style>
341
-
342
- <style lang="scss" scoped>
343
- @import '@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss';
344
-
345
- /deep/.dropzone {
346
- width: 95%;
347
-
348
- .dz-message {
349
- padding: 2rem 1rem !important;
350
- }
351
-
352
- button.dz-button {
353
- background-color: transparent;
354
- border: 0;
355
- }
356
- }
357
-
358
- /deep/ .el-tab-pane {
359
- max-height: 760px;
360
- overflow: hidden;
361
- overflow-y: auto;
362
- position: relative;
363
-
364
- > .notes-title {
365
- position: sticky;
366
- position: -webkit-sticky;
367
- top: 0;
368
- background: white;
369
- padding: 10px 0;
370
- }
371
-
372
- > .input-container {
373
- position: sticky;
374
- position: -webkit-sticky;
375
- bottom: 0;
376
- background: white;
377
- > .input-icon {
378
- cursor: pointer;
379
- position: absolute;
380
- top: 50%;
381
- right: 30px;
382
- transform: translateY(-50%);
383
- color: #c8c8c8;
384
- }
385
- }
386
-
387
- &::-webkit-scrollbar {
388
- width: 8px;
389
- }
390
-
391
- &::-webkit-scrollbar-track {
392
- background: #f5f5f5;
393
- }
394
-
395
- &::-webkit-scrollbar-thumb {
396
- background: #e9e8e8;
397
- border-radius: 10px;
398
- }
399
-
400
- .archive-content {
401
- width: 95%;
402
-
403
- p {
404
- margin-bottom: 0;
405
- font-size: 0.875rem;
406
- padding: .3rem .6rem 0 .6rem;
407
- }
408
-
409
- .archive-container {
410
- display: flex;
411
- align-items: center;
412
- padding: 0.5rem 0.5rem 0.438rem;
413
- cursor: pointer;
414
- user-select: none;
415
-
416
- &:hover{
417
- background-color: #f6f9fc;
418
- border-radius: 5px;
419
- }
420
-
421
- .archive-img {
422
- background-color: #f5f5f5;
423
- border-radius: 6px;
424
- padding: 7px;
425
- }
426
-
427
- .archive-name {
428
- display: flex;
429
- margin-left: .8rem;
430
- width: 145%;
431
- justify-content: space-between !important;
432
-
433
- .archive-icon {
434
- margin-left: 1.5rem;
435
- }
436
-
437
- p {
438
- margin: 0;
439
- padding: 0;
440
- width: 13rem;
441
- white-space: nowrap;
442
- overflow: hidden;
443
- text-overflow: ellipsis;
444
- }
445
- }
446
-
447
- .upload-container {
448
- position: sticky;
449
- position: -webkit-sticky;
450
- bottom: 0;
451
- background: white;
452
- width: 231px;
453
- }
454
- }
455
- }
456
-
457
- .archive-buttons {
458
- display: flex;
459
- margin-top: -1rem;
460
- width: 95%;
461
- }
462
-
463
- .archive-remove {
464
- width: 90%;
465
- word-break: break-word;
466
- }
467
- }
468
-
469
- .readmore {
470
- overflow: hidden;
471
- text-overflow: ellipsis;
472
- display: -webkit-box;
473
- -webkit-line-clamp: 3;
474
- -webkit-box-orient: vertical;
475
- }
476
-
477
- .tab__icon-pane {
478
- .img__icon-pane {
479
- background-color: #f5f5f5 !important;
480
- border-radius: 30%;
481
- padding: 7px;
482
- margin-bottom: 1rem;
483
- }
484
- }
485
-
486
- .content-right {
487
- width: 25%;
488
- }
489
-
490
- .notes-title {
491
- font-size: 14px;
492
- color: #1d364b;
493
- font-weight: bold;
494
- background-color: white;
495
- z-index: 500;
496
- }
497
-
498
- .notes-baloon {
499
- width: 231px;
500
- height: auto;
501
-
502
- background: #eff5fd;
503
- border-radius: 10px 10px 10px 0px;
504
- }
505
-
506
- .notes-text {
507
- p {
508
- font-size: 13px;
509
- color: #62778c;
510
- }
511
- }
512
-
513
- .notes-date {
514
- font-size: 11px;
515
- text-align: right;
516
-
517
- color: #8da2b5;
518
- top: calc(50% - 17px / 2 - 444.5px);
519
- }
520
-
521
- .notes-owner {
522
- img {
523
- width: 23px;
524
- height: 23px;
525
- border-radius: 50%;
526
- }
527
-
528
- .notes-avatar {
529
- width: 23px;
530
- height: 23px;
531
- border-radius: 50%;
532
- background-color: #adb5bd;
533
- }
534
-
535
- p {
536
- font-size: 13px;
537
- font-weight: 600;
538
- text-transform: uppercase;
539
-
540
- color: #62778c;
541
- }
542
- }
543
-
544
- .notes-new {
545
- width: 95%;
546
- height: 33px;
547
-
548
- background: #f5f5f5;
549
- border-radius: 16.5px;
550
- border: none;
551
-
552
- outline: 0;
553
- }
554
-
555
- .line {
556
- width: 221px;
557
- height: 0px;
558
-
559
- border: 1px solid #ececec5c;
560
- }
561
-
562
- .history {
563
- word-break: break-word;
564
-
565
- .history-text {
566
- font-size: 13px;
567
- color: #62778c;
568
- }
569
-
570
- span {
571
- font-size: 11px;
572
- line-height: 16px;
573
-
574
- color: #8da2b5;
575
- }
576
- }
577
-
578
- .cursor-disabled {
579
- cursor: no-drop;
580
- }
581
- </style>
1
+ <template>
2
+ <div class="bg-white content-right tabs ">
3
+ <el-tabs
4
+ :class="active"
5
+ class="mt-3 ml-4 handle-icon-color"
6
+ v-model="active"
7
+ >
8
+ <el-tab-pane class="history" name="history">
9
+ <span class="tab__icon-pane" slot="label">
10
+ <img
11
+ class="img__icon-pane img__icon--history"
12
+ src="../../../../assets/images/icons/historicCv.svg"
13
+ />
14
+ </span>
15
+ <p class="notes-title mb-0">Histórico com sua empresa</p>
16
+ <div class="line mb-3"></div>
17
+
18
+ <div
19
+ class="mt-3"
20
+ v-for="(item, index) in orderByDate(companyHistory())"
21
+ :key="index"
22
+ >
23
+ <p class="history-text mb-0">
24
+ {{ item.text }}
25
+ </p>
26
+ <span>{{ item.date | convertDate }}</span>
27
+ </div>
28
+ <p v-show="companyHistory().length === 0" class="history-text">
29
+ Histórico vazio.
30
+ </p>
31
+ </el-tab-pane>
32
+
33
+ <el-tab-pane name="notes" v-if="isNotesActived">
34
+ <span class="tab__icon-pane" slot="label">
35
+ <img
36
+ class="img__icon-pane img__icon--notes"
37
+ src="../../../../assets/images/icons/notesCv.svg"
38
+ />
39
+ </span>
40
+ <p class="notes-title mb-0">Notas da equipe</p>
41
+ <div class="line mb-3"></div>
42
+ <div
43
+ v-show="notes.length > 0"
44
+ v-for="(note, index) in notes.slice(0, 5)"
45
+ :key="index"
46
+ >
47
+ <div class="notes-baloon">
48
+ <div class="notes-text ml-3 pt-1">
49
+ <p class="mt-3">{{ note.text }}</p>
50
+ </div>
51
+ <div
52
+ class="d-flex justify-content-end align-items-center mr-3"
53
+ >
54
+ <p class="notes-date">
55
+ {{ note.created_at | convertDate }}
56
+ </p>
57
+ </div>
58
+ </div>
59
+ <div class="notes-owner d-flex mt-2">
60
+ <img
61
+ v-show="note.user.urlAvatar"
62
+ :src="note.user.urlAvatar"
63
+ :alt="note.user.name"
64
+ />
65
+ <div
66
+ v-show="!note.user.urlAvatar"
67
+ class="notes-avatar"
68
+ ></div>
69
+ <p class="ml-1">
70
+ {{ note.user.name }}
71
+ </p>
72
+ </div>
73
+ </div>
74
+ <div class="notes-text" v-show="notes.length === 0">
75
+ <p>Nenhuma nota criada.</p>
76
+ </div>
77
+
78
+ <div class="input-container">
79
+ <input
80
+ class="notes-new pl-4 mt-3 mb-3 form-rounded"
81
+ type="text"
82
+ placeholder="Escrever anotação"
83
+ v-model="newNote"
84
+ @change="$emit('new-note', newNote, userData.id)"
85
+ v-on:change="cleatInput()"
86
+ />
87
+ <i
88
+ @click="
89
+ newNote.length > 0 &&
90
+ $emit('new-note', newNote, userData.id)
91
+ "
92
+ class="fas fa-paper-plane input-icon"
93
+ ></i>
94
+ </div>
95
+ </el-tab-pane>
96
+
97
+ <el-tab-pane name="documents">
98
+ <span class="tab__icon-pane" slot="label">
99
+ <img
100
+ class="img__icon-pane img__icon--documents"
101
+ src="../../../../assets/images/icons/icon3.svg"
102
+ />
103
+ </span>
104
+ <p class="notes-title mb-0">Documentos anexados</p>
105
+ <div class="line mb-3"></div>
106
+
107
+ <div class="archive-content">
108
+ <div v-for="(item, index) in archives" :key="index">
109
+ <div @click="openArchive(item)" class="archive-container">
110
+ <div>
111
+ <img class="archive-img" src="../../../../assets/images/icons/icon3.svg" >
112
+ </div>
113
+ <div class="archive-name">
114
+ <p>
115
+ <span>{{item.name}}</span>
116
+ <div class="archive-icon">
117
+ <i @click.stop.prevent="openRemoveSection(item, (index+1))" class="far fa-trash-alt"></i>
118
+ </div>
119
+ </p>
120
+ </div>
121
+ </div>
122
+ <div v-if="hasRemove && hasRemove == (index+1)" class="archive-remove">
123
+ <p>Você tem certeza que deseja apagar este arquivo?</p>
124
+ <div class="d-flex">
125
+ <base-button
126
+ @click="removeArchive(currentRemoveItem, index)"
127
+ size="sm"
128
+ class="btn-outline-primary col-6 p-1"
129
+ >
130
+ Apagar
131
+ </base-button>
132
+ <base-button
133
+ @click="hasRemove = false"
134
+ size="sm"
135
+ class="btn-outline-danger col-6 p-1"
136
+ >
137
+ Cancelar
138
+ </base-button>
139
+ </div>
140
+ </div>
141
+ </div>
142
+
143
+ </div>
144
+ <div class="notes-text" v-show="archives == null">
145
+ <p>Nenhum arquvio anexado.</p>
146
+ </div>
147
+
148
+ <div class="input-container">
149
+ <div class="mt-5">
150
+
151
+ <dropzone-file-upload
152
+ disabled
153
+ @error="showMessageError"
154
+ ref="Mydropzone"
155
+ :options="dropzoneOptions"
156
+ v-model="fileToUpload"
157
+ />
158
+ </div>
159
+
160
+ <div class="archive-buttons">
161
+ <base-button @click="saveImage" size="sm" class="btn-outline-primary btn-rounded col-12">Salvar</base-button>
162
+ </div>
163
+ </div>
164
+ </el-tab-pane>
165
+
166
+ <el-tab-pane :disabled="true">
167
+ <span class="tab__icon-pane cursor-disabled" slot="label">
168
+ <img
169
+ class="img__icon-pane"
170
+ src="../../../../assets/images/icons/icon4.svg"
171
+ />
172
+ </span>
173
+ </el-tab-pane>
174
+ </el-tabs>
175
+ </div>
176
+ </template>
177
+
178
+ <script>
179
+ import { Tabs, TabPane } from 'element-ui';
180
+ import DropzoneFileUpload from '@burh/nuxt-core/components/argon-core/Inputs/DropzoneFileUpload.vue';
181
+ import swal from 'sweetalert2';
182
+
183
+ export default {
184
+ name: 'user-cv-right-side',
185
+ filters: {
186
+ convertDate(data) {
187
+ if (typeof data !== 'string') {
188
+ data = '2020-01-01 12:00:00';
189
+ }
190
+ let d = new Date(data);
191
+ let options = { hour: '2-digit', minute: '2-digit' };
192
+ return d.toLocaleDateString('pt-BR', options);
193
+ }
194
+ },
195
+ watch:{
196
+ fileToUpload(value){
197
+ if(value.length > 0 && value[0].accepted) {
198
+ this.isError = false;
199
+ }
200
+ }
201
+ },
202
+ components: {
203
+ [Tabs.name]: Tabs,
204
+ [TabPane.name]: TabPane,
205
+ DropzoneFileUpload,
206
+ },
207
+ data(){
208
+ return {
209
+ newNote: '',
210
+ active: this.activeName,
211
+ hasRemove: null,
212
+ isError: true,
213
+ currentRemoveItem: null,
214
+ fileToUpload: [],
215
+ dropzoneOptions: {
216
+ maxFilesize: 0.2,
217
+ dictFileTooBig:'Seu arquivo é poderoso demais (Máximo 200kb).',
218
+ dictDefaultMessage: 'Clique ou arraste seu arquivo aqui.',
219
+ dictInvalidFileType: 'Arquivo invalido.',
220
+ dictMaxFilesExceeded: 'Não é permitido mais de um arquivo por vez.',
221
+ acceptedFiles: 'image/*, application/pdf',
222
+ }
223
+ };
224
+ },
225
+ props: {
226
+ archives: Array,
227
+ userData: Object,
228
+ notes: Array,
229
+ activeName: String,
230
+ isNotesActived: {
231
+ type: Boolean,
232
+ default: true
233
+ },
234
+ },
235
+ mounted() {
236
+ this.companyHistory();
237
+ },
238
+ methods: {
239
+ openRemoveSection(item, index) {
240
+ this.hasRemove = index;
241
+ this.currentRemoveItem = item;
242
+ },
243
+
244
+ showToast(type, title){
245
+ const Toast = swal.mixin({
246
+ toast: true,
247
+ position: 'top-end',
248
+ showConfirmButton: false,
249
+ timer: 3100,
250
+ });
251
+
252
+ return Toast.fire({
253
+ type: type,
254
+ title: title
255
+ });
256
+ },
257
+
258
+ showMessageError(file, message) {
259
+ this.isError = true;
260
+ this.$refs.Mydropzone.removeAllFiles();
261
+
262
+ if (file.status !== 'canceled'){
263
+ this.showToast('error', message);
264
+ }
265
+ },
266
+
267
+ openArchive(item) {
268
+ window.open(item.annex_url, '_blank');
269
+ },
270
+
271
+ saveImage(){
272
+ if (!this.isError) {
273
+ this.$emit('save-archive', this.fileToUpload[0], this.userData.id);
274
+ this.$refs.Mydropzone.removeAllFiles();
275
+ this.showToast('success', 'Arquivo enviado com sucesso.');
276
+
277
+ } else {
278
+ if (this.fileToUpload.length > 0) {
279
+ this.showToast('error', 'Arquivo invalido.');
280
+ } else {
281
+ this.showToast('warning', 'Selecione um arquivo.');
282
+ }
283
+ }
284
+ },
285
+
286
+ removeArchive(archive, index){
287
+ this.$emit('remove-archive', archive, archive.id, index);
288
+ this.hasRemove = null;
289
+ },
290
+
291
+ cleatInput() {
292
+ this.newNote = '';
293
+ },
294
+ companyHistory() {
295
+ let sms = this.userData.company_sms.map(x => ({
296
+ date: x.created_at,
297
+ text: 'Recebeu um SMS'
298
+ }));
299
+ let tests = this.userData.tests.map(x => ({
300
+ date: x.finished_at,
301
+ text: `Finalizou o teste ${x.test.name.toUpperCase()}`
302
+ }));
303
+ let discs = this.userData.solides.map(x => ({
304
+ date: x.end,
305
+ text: 'Realizou um teste DISC'
306
+ }));
307
+
308
+ return sms.concat(tests, discs);
309
+ },
310
+ orderByDate(data) {
311
+ let sortedArray = data.sort((a, b) => {
312
+ a = a.date || '2020-01-01 12:00:00';
313
+ b = b.date || '2020-01-01 12:00:00';
314
+
315
+ return new Date(b).getTime() - new Date(a).getTime();
316
+ });
317
+
318
+ return sortedArray;
319
+ },
320
+ },
321
+ };
322
+ </script>
323
+ <style>
324
+ .el-tabs__nav-wrap::after {
325
+ background: #fff !important;
326
+ }
327
+
328
+ .el-tabs__active-bar {
329
+ width: 34px !important;
330
+ height: 4px !important;
331
+ border-radius: 10px 10px 0px 0px;
332
+ }
333
+ </style>
334
+
335
+ <style lang="scss">
336
+ .swal2-title {
337
+ font-size: 1rem !important;
338
+ }
339
+ .swal2-container {
340
+ z-index: 5000 !important;
341
+ }
342
+ </style>
343
+
344
+ <style lang="scss" scoped>
345
+ @import '@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss';
346
+
347
+ /deep/.dropzone {
348
+ width: 95%;
349
+
350
+ .dz-message {
351
+ padding: 2rem 1rem !important;
352
+ }
353
+
354
+ button.dz-button {
355
+ background-color: transparent;
356
+ border: 0;
357
+ }
358
+ }
359
+
360
+ /deep/ .el-tab-pane {
361
+ max-height: 760px;
362
+ overflow: hidden;
363
+ overflow-y: auto;
364
+ position: relative;
365
+
366
+ > .notes-title {
367
+ position: sticky;
368
+ position: -webkit-sticky;
369
+ top: 0;
370
+ background: white;
371
+ padding: 10px 0;
372
+ }
373
+
374
+ > .input-container {
375
+ position: sticky;
376
+ position: -webkit-sticky;
377
+ bottom: 0;
378
+ background: white;
379
+ > .input-icon {
380
+ cursor: pointer;
381
+ position: absolute;
382
+ top: 50%;
383
+ right: 30px;
384
+ transform: translateY(-50%);
385
+ color: #c8c8c8;
386
+ }
387
+ }
388
+
389
+ &::-webkit-scrollbar {
390
+ width: 8px;
391
+ }
392
+
393
+ &::-webkit-scrollbar-track {
394
+ background: #f5f5f5;
395
+ }
396
+
397
+ &::-webkit-scrollbar-thumb {
398
+ background: #e9e8e8;
399
+ border-radius: 10px;
400
+ }
401
+
402
+ .archive-content {
403
+ width: 95%;
404
+
405
+ p {
406
+ margin-bottom: 0;
407
+ font-size: 0.875rem;
408
+ padding: .3rem .6rem 0 .6rem;
409
+ }
410
+
411
+ .archive-container {
412
+ display: flex;
413
+ align-items: center;
414
+ padding: 0.5rem 0.5rem 0.438rem;
415
+ cursor: pointer;
416
+ user-select: none;
417
+
418
+ &:hover{
419
+ background-color: #f6f9fc;
420
+ border-radius: 5px;
421
+ }
422
+
423
+ .archive-img {
424
+ background-color: #f5f5f5;
425
+ border-radius: 6px;
426
+ padding: 7px;
427
+ }
428
+
429
+ .archive-name {
430
+ display: flex;
431
+ margin-left: .8rem;
432
+ width: 145%;
433
+ justify-content: space-between !important;
434
+
435
+ .archive-icon {
436
+ margin-left: 1.5rem;
437
+ }
438
+
439
+ p {
440
+ margin: 0;
441
+ padding: 0;
442
+ width: 13rem;
443
+ white-space: nowrap;
444
+ overflow: hidden;
445
+ text-overflow: ellipsis;
446
+ }
447
+ }
448
+
449
+ .upload-container {
450
+ position: sticky;
451
+ position: -webkit-sticky;
452
+ bottom: 0;
453
+ background: white;
454
+ width: 231px;
455
+ }
456
+ }
457
+ }
458
+
459
+ .archive-buttons {
460
+ display: flex;
461
+ margin-top: -1rem;
462
+ width: 95%;
463
+ }
464
+
465
+ .archive-remove {
466
+ width: 90%;
467
+ word-break: break-word;
468
+ }
469
+ }
470
+
471
+ .readmore {
472
+ overflow: hidden;
473
+ text-overflow: ellipsis;
474
+ display: -webkit-box;
475
+ -webkit-line-clamp: 3;
476
+ -webkit-box-orient: vertical;
477
+ }
478
+
479
+ .tab__icon-pane {
480
+ .img__icon-pane {
481
+ background-color: #f5f5f5 !important;
482
+ border-radius: 30%;
483
+ padding: 7px;
484
+ margin-bottom: 1rem;
485
+ }
486
+ }
487
+
488
+ .content-right {
489
+ width: 25%;
490
+ }
491
+
492
+ .notes-title {
493
+ font-size: 14px;
494
+ color: #1d364b;
495
+ font-weight: bold;
496
+ background-color: white;
497
+ z-index: 500;
498
+ }
499
+
500
+ .notes-baloon {
501
+ width: 231px;
502
+ height: auto;
503
+
504
+ background: #eff5fd;
505
+ border-radius: 10px 10px 10px 0px;
506
+ }
507
+
508
+ .notes-text {
509
+ p {
510
+ font-size: 13px;
511
+ color: #62778c;
512
+ }
513
+ }
514
+
515
+ .notes-date {
516
+ font-size: 11px;
517
+ text-align: right;
518
+
519
+ color: #8da2b5;
520
+ top: calc(50% - 17px / 2 - 444.5px);
521
+ }
522
+
523
+ .notes-owner {
524
+ img {
525
+ width: 23px;
526
+ height: 23px;
527
+ border-radius: 50%;
528
+ }
529
+
530
+ .notes-avatar {
531
+ width: 23px;
532
+ height: 23px;
533
+ border-radius: 50%;
534
+ background-color: #adb5bd;
535
+ }
536
+
537
+ p {
538
+ font-size: 13px;
539
+ font-weight: 600;
540
+ text-transform: uppercase;
541
+
542
+ color: #62778c;
543
+ }
544
+ }
545
+
546
+ .notes-new {
547
+ width: 95%;
548
+ height: 33px;
549
+
550
+ background: #f5f5f5;
551
+ border-radius: 16.5px;
552
+ border: none;
553
+
554
+ outline: 0;
555
+ }
556
+
557
+ .line {
558
+ width: 221px;
559
+ height: 0px;
560
+
561
+ border: 1px solid #ececec5c;
562
+ }
563
+
564
+ .history {
565
+ word-break: break-word;
566
+
567
+ .history-text {
568
+ font-size: 13px;
569
+ color: #62778c;
570
+ }
571
+
572
+ span {
573
+ font-size: 11px;
574
+ line-height: 16px;
575
+
576
+ color: #8da2b5;
577
+ }
578
+ }
579
+
580
+ .cursor-disabled {
581
+ cursor: no-drop;
582
+ }
583
+ </style>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burh/nuxt-core",
3
- "version": "1.0.246",
3
+ "version": "1.0.248",
4
4
  "description": "Design System and Components.",
5
5
  "author": "Burh",
6
6
  "scripts": {