@burh/nuxt-core 1.0.243 → 1.0.244
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,436 +1,437 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="bg-white content-left">
|
|
3
|
-
<div class="profile w-100 text-center">
|
|
4
|
-
<div class="avatar">
|
|
5
|
-
<img
|
|
6
|
-
v-if="userData.urlAvatar"
|
|
7
|
-
:src="userData.urlAvatar"
|
|
8
|
-
:alt="userData.name"
|
|
9
|
-
/>
|
|
10
|
-
<div v-else class="no-image">
|
|
11
|
-
{{ userData.name }}
|
|
12
|
-
</div>
|
|
13
|
-
</div>
|
|
14
|
-
|
|
15
|
-
<h5 class="mb-0 text-wrap" :class="{ 'mt-5': !userData.urlAvatar }" v-html="highlightText(search, `${userData.name} ${userData.last_name}`)"></h5>
|
|
16
|
-
|
|
17
|
-
<p class="user-info" v-if="userData.user_experience.length > 0" v-html="highlightText(search, `${userData.user_experience[0].job_title} em ${userData.user_experience[0].company}`)"></p>
|
|
18
|
-
|
|
19
|
-
<span v-if="userData.user_address">
|
|
20
|
-
<i class="fas fa-map-marker-alt"></i>
|
|
21
|
-
{{ userData.user_address.city_name }} -
|
|
22
|
-
{{ userData.user_address.region_code }}
|
|
23
|
-
</span>
|
|
24
|
-
<br>
|
|
25
|
-
<span>Data de atualização: {{ $moment(userData.updated_at).format('DD/MM/YYYY H:mm')}}</span>
|
|
26
|
-
</div>
|
|
27
|
-
|
|
28
|
-
<div
|
|
29
|
-
v-show="userData.user_desired_job.length > 0"
|
|
30
|
-
class="desidered title-block mt-3 ml-4"
|
|
31
|
-
>
|
|
32
|
-
<h6 class="mb-0">Cargos desejados</h6>
|
|
33
|
-
<div class="line"></div>
|
|
34
|
-
|
|
35
|
-
<p
|
|
36
|
-
v-for="(des, index) in userData.user_desired_job"
|
|
37
|
-
:key="`skill-${index}`"
|
|
38
|
-
class="ml-1 mt-1 mb-0 text-capitalize"
|
|
39
|
-
v-html="highlightText(search, des.occupation)"
|
|
40
|
-
></p>
|
|
41
|
-
</div>
|
|
42
|
-
|
|
43
|
-
<div
|
|
44
|
-
v-show="userData.user_language.length > 0"
|
|
45
|
-
class="languages title-block mt-3 ml-4"
|
|
46
|
-
>
|
|
47
|
-
<h6 class="mb-0">Idiomas</h6>
|
|
48
|
-
<div class="line"></div>
|
|
49
|
-
|
|
50
|
-
<p
|
|
51
|
-
class="mb-1 text-capitalize"
|
|
52
|
-
v-for="(lan, index) in userData.user_language"
|
|
53
|
-
:key="index"
|
|
54
|
-
v-html="highlightText(search, `${lan.language[0].name} ${languageLevel(lan.level)}`)"
|
|
55
|
-
></p>
|
|
56
|
-
</div>
|
|
57
|
-
|
|
58
|
-
<div
|
|
59
|
-
v-show="userData.user_skill.length > 0"
|
|
60
|
-
class="skills title-block ml-4"
|
|
61
|
-
>
|
|
62
|
-
<h6 class="mb-0">Habilidades</h6>
|
|
63
|
-
<div class="line"></div>
|
|
64
|
-
|
|
65
|
-
<p
|
|
66
|
-
v-for="(skill, index) in userData.user_skill"
|
|
67
|
-
:key="`skill-${index}`"
|
|
68
|
-
class="ml-1 mt-1 mb-0 text-capitalize"
|
|
69
|
-
v-html="highlightText(search, skill.skill_word)"
|
|
70
|
-
></p>
|
|
71
|
-
</div>
|
|
72
|
-
|
|
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
|
-
<div class="socials text-center mt-5">
|
|
117
|
-
<a
|
|
118
|
-
:href="baseUrl + '/' + userData.slug.slug"
|
|
119
|
-
class="text-center"
|
|
120
|
-
target="_blank"
|
|
121
|
-
rel="noopener noreferrer"
|
|
122
|
-
>
|
|
123
|
-
<img
|
|
124
|
-
class="no-social"
|
|
125
|
-
src="../../../../assets/images/burhCv.svg"
|
|
126
|
-
alt="Burh"
|
|
127
|
-
/>
|
|
128
|
-
</a>
|
|
129
|
-
<a
|
|
130
|
-
v-show="userData.user_complementary_information.facebook_url"
|
|
131
|
-
:href="userData.user_complementary_information.facebook_url"
|
|
132
|
-
target="_blank"
|
|
133
|
-
class="ml-2"
|
|
134
|
-
rel="noopener noreferrer"
|
|
135
|
-
>
|
|
136
|
-
<img
|
|
137
|
-
class="no-social"
|
|
138
|
-
src="../../../../assets/images/facebookCv.svg"
|
|
139
|
-
alt="Facebook"
|
|
140
|
-
/>
|
|
141
|
-
</a>
|
|
142
|
-
<a
|
|
143
|
-
v-show="userData.user_complementary_information.linkedin_url"
|
|
144
|
-
:href="userData.user_complementary_information.linkedin_url"
|
|
145
|
-
target="_blank"
|
|
146
|
-
class="ml-2"
|
|
147
|
-
rel="noopener noreferrer"
|
|
148
|
-
>
|
|
149
|
-
<img
|
|
150
|
-
class="no-social"
|
|
151
|
-
src="../../../../assets/images/linkedinCv.svg"
|
|
152
|
-
alt="Linkdin"
|
|
153
|
-
/>
|
|
154
|
-
</a>
|
|
155
|
-
<a
|
|
156
|
-
v-show="userData.user_complementary_information.website"
|
|
157
|
-
:href="userData.user_complementary_information.website"
|
|
158
|
-
class="text-center ml-2"
|
|
159
|
-
target="_blank"
|
|
160
|
-
rel="noopener noreferrer"
|
|
161
|
-
>
|
|
162
|
-
<img
|
|
163
|
-
class="no-social"
|
|
164
|
-
src="../../../../assets/images/webCv.svg"
|
|
165
|
-
alt="Web"
|
|
166
|
-
/>
|
|
167
|
-
</a>
|
|
168
|
-
</div>
|
|
169
|
-
|
|
170
|
-
<div class="burh-code text-center mt-4">
|
|
171
|
-
<vue-qrcode
|
|
172
|
-
:value="baseUrl + '/' + userData.slug.slug"
|
|
173
|
-
:options="{ width: 98, height: 98 }"
|
|
174
|
-
class="border qr-code"
|
|
175
|
-
></vue-qrcode>
|
|
176
|
-
<p class="mb-0">Código BURH</p>
|
|
177
|
-
<span class="qr-id">{{ userData.id }}</span>
|
|
178
|
-
</div>
|
|
179
|
-
</div>
|
|
180
|
-
</template>
|
|
181
|
-
|
|
182
|
-
<script>
|
|
183
|
-
import getPrefixes from '~/util/getPrefixes.js';
|
|
184
|
-
import VueQrcode from '@chenfengyuan/vue-qrcode';
|
|
185
|
-
|
|
186
|
-
export default {
|
|
187
|
-
name: 'user-cv-left-side',
|
|
188
|
-
components: {
|
|
189
|
-
VueQrcode
|
|
190
|
-
},
|
|
191
|
-
props: {
|
|
192
|
-
userData: Object,
|
|
193
|
-
baseUrl: String,
|
|
194
|
-
search: {
|
|
195
|
-
type: String,
|
|
196
|
-
default: ''
|
|
197
|
-
}
|
|
198
|
-
},
|
|
199
|
-
methods: {
|
|
200
|
-
highlightText(search, text) {
|
|
201
|
-
if (search.length < 2) return text;
|
|
202
|
-
|
|
203
|
-
const regex = new RegExp(search.toLowerCase(), 'gmi');
|
|
204
|
-
return String(text || '').replace(regex, `<span class="search-highlight">${search}</span>`);
|
|
205
|
-
},
|
|
206
|
-
getTime(
|
|
207
|
-
{ start_year = null, end_year = null, start_month, end_month },
|
|
208
|
-
textHappening = 'Cursando'
|
|
209
|
-
) {
|
|
210
|
-
const isHappening = !end_month && !end_year;
|
|
211
|
-
|
|
212
|
-
if (isHappening) {
|
|
213
|
-
return textHappening;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
const dateInitial = this.$moment(
|
|
217
|
-
['1', start_month.toString(), start_year.toString()],
|
|
218
|
-
'DD/MM/YYYY'
|
|
219
|
-
);
|
|
220
|
-
const dateDone = this.$moment(
|
|
221
|
-
['1', end_month.toString(), end_year.toString()],
|
|
222
|
-
'DD/MM/YYYY'
|
|
223
|
-
);
|
|
224
|
-
const diffDuration = this.$moment.duration(
|
|
225
|
-
dateDone.diff(dateInitial)
|
|
226
|
-
);
|
|
227
|
-
const years = diffDuration.years();
|
|
228
|
-
const months = diffDuration.months();
|
|
229
|
-
|
|
230
|
-
if (years) {
|
|
231
|
-
return years > 1 ? `(${years} anos)` : `(${years} ano)`;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
return months > 1
|
|
235
|
-
? `(${months} meses)`
|
|
236
|
-
: months == 1
|
|
237
|
-
? `(${months} mês)`
|
|
238
|
-
: '';
|
|
239
|
-
},
|
|
240
|
-
languageLevel(level) {
|
|
241
|
-
switch (parseInt(level)) {
|
|
242
|
-
case 1:
|
|
243
|
-
return 'Iniciante';
|
|
244
|
-
case 2:
|
|
245
|
-
return 'Elementar';
|
|
246
|
-
case 3:
|
|
247
|
-
return 'Pré-intermediário';
|
|
248
|
-
case 4:
|
|
249
|
-
return 'Intermediário';
|
|
250
|
-
case 5:
|
|
251
|
-
return 'Intermediário Superior';
|
|
252
|
-
case 6:
|
|
253
|
-
return 'Avançado';
|
|
254
|
-
case 7:
|
|
255
|
-
return 'Fluente';
|
|
256
|
-
default:
|
|
257
|
-
return '';
|
|
258
|
-
}
|
|
259
|
-
},
|
|
260
|
-
treatPhone(phone) {
|
|
261
|
-
if (phone) {
|
|
262
|
-
if (phone == '0' || phone.length < 9 || !phone) {
|
|
263
|
-
return 'não cadastrado';
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
return phone;
|
|
268
|
-
},
|
|
269
|
-
treatCellphone(cellphone) {
|
|
270
|
-
if (cellphone) {
|
|
271
|
-
if (cellphone == '0' || cellphone.length < 11 || !cellphone) {
|
|
272
|
-
return 'não cadastrado';
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
return cellphone;
|
|
277
|
-
},
|
|
278
|
-
handleGetPrefixes(name = '') {
|
|
279
|
-
return getPrefixes(name);
|
|
280
|
-
},
|
|
281
|
-
treatEndDate(end_month, end_year) {
|
|
282
|
-
if (end_month && end_year) {
|
|
283
|
-
return `${end_month}/${end_year}`;
|
|
284
|
-
}
|
|
285
|
-
return '';
|
|
286
|
-
}
|
|
287
|
-
},
|
|
288
|
-
filters: {
|
|
289
|
-
allDeficiencies(id) {
|
|
290
|
-
const typeDeficiency = {
|
|
291
|
-
1: 'Deficiência Física',
|
|
292
|
-
2: 'Deficiência Visual',
|
|
293
|
-
3: 'Deficiência Mental',
|
|
294
|
-
4: 'Deficiência Auditiva',
|
|
295
|
-
5: 'Deficiência Fonológica',
|
|
296
|
-
6: 'Deficiência Múltipla'
|
|
297
|
-
};
|
|
298
|
-
|
|
299
|
-
return typeDeficiency[id] || '-';
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
};
|
|
303
|
-
</script>
|
|
304
|
-
|
|
305
|
-
<style lang="scss" scoped>
|
|
306
|
-
@import '@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss';
|
|
307
|
-
|
|
308
|
-
/deep/ .search-highlight {
|
|
309
|
-
background: rgb(255, 252, 61);
|
|
310
|
-
color: #000;
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
.qr-id {
|
|
314
|
-
color: #32325d !important;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
.bg-light--darken {
|
|
318
|
-
background-color: $gray-100 !important;
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
.profile {
|
|
322
|
-
.avatar {
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
font-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
margin-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
margin-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
font-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
font-
|
|
412
|
-
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
1
|
+
<template>
|
|
2
|
+
<div class="bg-white content-left">
|
|
3
|
+
<div class="profile w-100 text-center">
|
|
4
|
+
<div class="avatar">
|
|
5
|
+
<img
|
|
6
|
+
v-if="userData.urlAvatar"
|
|
7
|
+
:src="userData.urlAvatar"
|
|
8
|
+
:alt="userData.name"
|
|
9
|
+
/>
|
|
10
|
+
<div v-else class="no-image">
|
|
11
|
+
{{ userData.name }}
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<h5 class="mb-0 text-wrap" :class="{ 'mt-5': !userData.urlAvatar }" v-html="highlightText(search, `${userData.name} ${userData.last_name}`)"></h5>
|
|
16
|
+
|
|
17
|
+
<p class="user-info" v-if="userData.user_experience.length > 0" v-html="highlightText(search, `${userData.user_experience[0].job_title} em ${userData.user_experience[0].company}`)"></p>
|
|
18
|
+
|
|
19
|
+
<span v-if="userData.user_address">
|
|
20
|
+
<i class="fas fa-map-marker-alt"></i>
|
|
21
|
+
{{ userData.user_address.city_name }} -
|
|
22
|
+
{{ userData.user_address.region_code }}
|
|
23
|
+
</span>
|
|
24
|
+
<br>
|
|
25
|
+
<span>Data de atualização: {{ $moment(userData.updated_at).format('DD/MM/YYYY H:mm')}}</span>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<div
|
|
29
|
+
v-show="userData.user_desired_job.length > 0"
|
|
30
|
+
class="desidered title-block mt-3 ml-4"
|
|
31
|
+
>
|
|
32
|
+
<h6 class="mb-0">Cargos desejados</h6>
|
|
33
|
+
<div class="line"></div>
|
|
34
|
+
|
|
35
|
+
<p
|
|
36
|
+
v-for="(des, index) in userData.user_desired_job"
|
|
37
|
+
:key="`skill-${index}`"
|
|
38
|
+
class="ml-1 mt-1 mb-0 text-capitalize"
|
|
39
|
+
v-html="highlightText(search, des.occupation)"
|
|
40
|
+
></p>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<div
|
|
44
|
+
v-show="userData.user_language.length > 0"
|
|
45
|
+
class="languages title-block mt-3 ml-4"
|
|
46
|
+
>
|
|
47
|
+
<h6 class="mb-0">Idiomas</h6>
|
|
48
|
+
<div class="line"></div>
|
|
49
|
+
|
|
50
|
+
<p
|
|
51
|
+
class="mb-1 text-capitalize"
|
|
52
|
+
v-for="(lan, index) in userData.user_language"
|
|
53
|
+
:key="index"
|
|
54
|
+
v-html="highlightText(search, `${lan.language[0].name} ${languageLevel(lan.level)}`)"
|
|
55
|
+
></p>
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
<div
|
|
59
|
+
v-show="userData.user_skill.length > 0"
|
|
60
|
+
class="skills title-block ml-4"
|
|
61
|
+
>
|
|
62
|
+
<h6 class="mb-0">Habilidades</h6>
|
|
63
|
+
<div class="line"></div>
|
|
64
|
+
|
|
65
|
+
<p
|
|
66
|
+
v-for="(skill, index) in userData.user_skill"
|
|
67
|
+
:key="`skill-${index}`"
|
|
68
|
+
class="ml-1 mt-1 mb-0 text-capitalize"
|
|
69
|
+
v-html="highlightText(search, skill.skill_word)"
|
|
70
|
+
></p>
|
|
71
|
+
</div>
|
|
72
|
+
|
|
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
|
+
<div class="socials text-center mt-5">
|
|
117
|
+
<a
|
|
118
|
+
:href="baseUrl + '/' + userData.slug.slug"
|
|
119
|
+
class="text-center"
|
|
120
|
+
target="_blank"
|
|
121
|
+
rel="noopener noreferrer"
|
|
122
|
+
>
|
|
123
|
+
<img
|
|
124
|
+
class="no-social"
|
|
125
|
+
src="../../../../assets/images/burhCv.svg"
|
|
126
|
+
alt="Burh"
|
|
127
|
+
/>
|
|
128
|
+
</a>
|
|
129
|
+
<a
|
|
130
|
+
v-show="userData.user_complementary_information.facebook_url"
|
|
131
|
+
:href="userData.user_complementary_information.facebook_url"
|
|
132
|
+
target="_blank"
|
|
133
|
+
class="ml-2"
|
|
134
|
+
rel="noopener noreferrer"
|
|
135
|
+
>
|
|
136
|
+
<img
|
|
137
|
+
class="no-social"
|
|
138
|
+
src="../../../../assets/images/facebookCv.svg"
|
|
139
|
+
alt="Facebook"
|
|
140
|
+
/>
|
|
141
|
+
</a>
|
|
142
|
+
<a
|
|
143
|
+
v-show="userData.user_complementary_information.linkedin_url"
|
|
144
|
+
:href="userData.user_complementary_information.linkedin_url"
|
|
145
|
+
target="_blank"
|
|
146
|
+
class="ml-2"
|
|
147
|
+
rel="noopener noreferrer"
|
|
148
|
+
>
|
|
149
|
+
<img
|
|
150
|
+
class="no-social"
|
|
151
|
+
src="../../../../assets/images/linkedinCv.svg"
|
|
152
|
+
alt="Linkdin"
|
|
153
|
+
/>
|
|
154
|
+
</a>
|
|
155
|
+
<a
|
|
156
|
+
v-show="userData.user_complementary_information.website"
|
|
157
|
+
:href="userData.user_complementary_information.website"
|
|
158
|
+
class="text-center ml-2"
|
|
159
|
+
target="_blank"
|
|
160
|
+
rel="noopener noreferrer"
|
|
161
|
+
>
|
|
162
|
+
<img
|
|
163
|
+
class="no-social"
|
|
164
|
+
src="../../../../assets/images/webCv.svg"
|
|
165
|
+
alt="Web"
|
|
166
|
+
/>
|
|
167
|
+
</a>
|
|
168
|
+
</div>
|
|
169
|
+
|
|
170
|
+
<div class="burh-code text-center mt-4">
|
|
171
|
+
<vue-qrcode
|
|
172
|
+
:value="baseUrl + '/' + userData.slug.slug"
|
|
173
|
+
:options="{ width: 98, height: 98 }"
|
|
174
|
+
class="border qr-code"
|
|
175
|
+
></vue-qrcode>
|
|
176
|
+
<p class="mb-0">Código BURH</p>
|
|
177
|
+
<span class="qr-id">{{ userData.id }}</span>
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
</template>
|
|
181
|
+
|
|
182
|
+
<script>
|
|
183
|
+
import getPrefixes from '~/util/getPrefixes.js';
|
|
184
|
+
import VueQrcode from '@chenfengyuan/vue-qrcode';
|
|
185
|
+
|
|
186
|
+
export default {
|
|
187
|
+
name: 'user-cv-left-side',
|
|
188
|
+
components: {
|
|
189
|
+
VueQrcode
|
|
190
|
+
},
|
|
191
|
+
props: {
|
|
192
|
+
userData: Object,
|
|
193
|
+
baseUrl: String,
|
|
194
|
+
search: {
|
|
195
|
+
type: String,
|
|
196
|
+
default: ''
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
methods: {
|
|
200
|
+
highlightText(search, text) {
|
|
201
|
+
if (search.length < 2) return text;
|
|
202
|
+
|
|
203
|
+
const regex = new RegExp(search.toLowerCase(), 'gmi');
|
|
204
|
+
return String(text || '').replace(regex, `<span class="search-highlight">${search}</span>`);
|
|
205
|
+
},
|
|
206
|
+
getTime(
|
|
207
|
+
{ start_year = null, end_year = null, start_month, end_month },
|
|
208
|
+
textHappening = 'Cursando'
|
|
209
|
+
) {
|
|
210
|
+
const isHappening = !end_month && !end_year;
|
|
211
|
+
|
|
212
|
+
if (isHappening) {
|
|
213
|
+
return textHappening;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
const dateInitial = this.$moment(
|
|
217
|
+
['1', start_month.toString(), start_year.toString()],
|
|
218
|
+
'DD/MM/YYYY'
|
|
219
|
+
);
|
|
220
|
+
const dateDone = this.$moment(
|
|
221
|
+
['1', end_month.toString(), end_year.toString()],
|
|
222
|
+
'DD/MM/YYYY'
|
|
223
|
+
);
|
|
224
|
+
const diffDuration = this.$moment.duration(
|
|
225
|
+
dateDone.diff(dateInitial)
|
|
226
|
+
);
|
|
227
|
+
const years = diffDuration.years();
|
|
228
|
+
const months = diffDuration.months();
|
|
229
|
+
|
|
230
|
+
if (years) {
|
|
231
|
+
return years > 1 ? `(${years} anos)` : `(${years} ano)`;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
return months > 1
|
|
235
|
+
? `(${months} meses)`
|
|
236
|
+
: months == 1
|
|
237
|
+
? `(${months} mês)`
|
|
238
|
+
: '';
|
|
239
|
+
},
|
|
240
|
+
languageLevel(level) {
|
|
241
|
+
switch (parseInt(level)) {
|
|
242
|
+
case 1:
|
|
243
|
+
return 'Iniciante';
|
|
244
|
+
case 2:
|
|
245
|
+
return 'Elementar';
|
|
246
|
+
case 3:
|
|
247
|
+
return 'Pré-intermediário';
|
|
248
|
+
case 4:
|
|
249
|
+
return 'Intermediário';
|
|
250
|
+
case 5:
|
|
251
|
+
return 'Intermediário Superior';
|
|
252
|
+
case 6:
|
|
253
|
+
return 'Avançado';
|
|
254
|
+
case 7:
|
|
255
|
+
return 'Fluente';
|
|
256
|
+
default:
|
|
257
|
+
return '';
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
treatPhone(phone) {
|
|
261
|
+
if (phone) {
|
|
262
|
+
if (phone == '0' || phone.length < 9 || !phone) {
|
|
263
|
+
return 'não cadastrado';
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
return phone;
|
|
268
|
+
},
|
|
269
|
+
treatCellphone(cellphone) {
|
|
270
|
+
if (cellphone) {
|
|
271
|
+
if (cellphone == '0' || cellphone.length < 11 || !cellphone) {
|
|
272
|
+
return 'não cadastrado';
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
return cellphone;
|
|
277
|
+
},
|
|
278
|
+
handleGetPrefixes(name = '') {
|
|
279
|
+
return getPrefixes(name);
|
|
280
|
+
},
|
|
281
|
+
treatEndDate(end_month, end_year) {
|
|
282
|
+
if (end_month && end_year) {
|
|
283
|
+
return `${end_month}/${end_year}`;
|
|
284
|
+
}
|
|
285
|
+
return '';
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
filters: {
|
|
289
|
+
allDeficiencies(id) {
|
|
290
|
+
const typeDeficiency = {
|
|
291
|
+
1: 'Deficiência Física',
|
|
292
|
+
2: 'Deficiência Visual',
|
|
293
|
+
3: 'Deficiência Mental',
|
|
294
|
+
4: 'Deficiência Auditiva',
|
|
295
|
+
5: 'Deficiência Fonológica',
|
|
296
|
+
6: 'Deficiência Múltipla'
|
|
297
|
+
};
|
|
298
|
+
|
|
299
|
+
return typeDeficiency[id] || '-';
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
</script>
|
|
304
|
+
|
|
305
|
+
<style lang="scss" scoped>
|
|
306
|
+
@import '@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss';
|
|
307
|
+
|
|
308
|
+
/deep/ .search-highlight {
|
|
309
|
+
background: rgb(255, 252, 61);
|
|
310
|
+
color: #000;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
.qr-id {
|
|
314
|
+
color: #32325d !important;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
.bg-light--darken {
|
|
318
|
+
background-color: $gray-100 !important;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.profile {
|
|
322
|
+
.avatar {
|
|
323
|
+
background: transparent!important;
|
|
324
|
+
img {
|
|
325
|
+
width: 178.14px;
|
|
326
|
+
height: 163px;
|
|
327
|
+
border-radius: 50%;
|
|
328
|
+
top: 75%;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
.no-image {
|
|
332
|
+
display: flex;
|
|
333
|
+
justify-content: center;
|
|
334
|
+
align-items: center;
|
|
335
|
+
|
|
336
|
+
position: absolute;
|
|
337
|
+
background-color: #adb5bd;
|
|
338
|
+
width: 163px;
|
|
339
|
+
height: 163px;
|
|
340
|
+
top: 120;
|
|
341
|
+
border-radius: 50%;
|
|
342
|
+
margin-bottom: 20px;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
.user-info {
|
|
347
|
+
padding: 0 20px;
|
|
348
|
+
margin-top: 5px;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
p {
|
|
352
|
+
font-size: 13px;
|
|
353
|
+
font-weight: 400;
|
|
354
|
+
color: #62778c;
|
|
355
|
+
line-height: 0.85rem;
|
|
356
|
+
margin-bottom: 2rem;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
span {
|
|
360
|
+
font-size: 14px;
|
|
361
|
+
color: #8da2b5;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
.skills {
|
|
366
|
+
margin-top: 2.3rem;
|
|
367
|
+
margin-bottom: 2.3rem;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
.desidered {
|
|
371
|
+
margin-bottom: 2.3rem;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
.deficiency {
|
|
375
|
+
p {
|
|
376
|
+
margin-top: 0.25rem;
|
|
377
|
+
margin-bottom: 0;
|
|
378
|
+
text-transform: capitalize;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
.languages {
|
|
383
|
+
margin-bottom: 2.3rem;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
.title-block {
|
|
387
|
+
.line {
|
|
388
|
+
width: 235px;
|
|
389
|
+
height: 0px;
|
|
390
|
+
border: 1px solid #ececec5c;
|
|
391
|
+
margin-bottom: 0.75rem;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
p {
|
|
395
|
+
font-size: 13px;
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.burh-code {
|
|
400
|
+
.qr-code {
|
|
401
|
+
box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;
|
|
402
|
+
border-radius: 10px;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
p {
|
|
406
|
+
font-size: 8px;
|
|
407
|
+
font-weight: bold;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
span {
|
|
411
|
+
font-size: 12px;
|
|
412
|
+
font-weight: bold;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
.socials {
|
|
417
|
+
.no-social {
|
|
418
|
+
height: 1.39rem;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
.cv-left {
|
|
423
|
+
word-break: initial;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
.disable-none {
|
|
427
|
+
user-select: none;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
.content-left {
|
|
431
|
+
width: 25%;
|
|
432
|
+
height: auto;
|
|
433
|
+
padding: 0 20px;
|
|
434
|
+
word-break: break-word !important;
|
|
435
|
+
color: #62778c !important;
|
|
436
|
+
}
|
|
437
|
+
</style>
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
<el-dialog
|
|
3
3
|
:visible.sync="isActive"
|
|
4
4
|
width="80%"
|
|
5
|
-
custom-class="position-relative"
|
|
5
|
+
:custom-class="`position-relative user__preview__container ${isLoading ? 'loading' : ''}`"
|
|
6
6
|
@close="$emit('close')"
|
|
7
7
|
class="test-radius"
|
|
8
8
|
>
|
|
9
9
|
<template>
|
|
10
10
|
<div class="row d-flex justify-content-between mx-0 user-pdf">
|
|
11
|
-
<img v-show="coverPhoto" :src="coverPhoto" alt="" />
|
|
11
|
+
<img v-if="!isLoading" v-show="coverPhoto" :src="coverPhoto" alt="" />
|
|
12
12
|
<div v-show="!coverPhoto" class="no-cover-photo"></div>
|
|
13
13
|
<slot name="content"></slot>
|
|
14
14
|
</div>
|
|
@@ -72,7 +72,8 @@ export default {
|
|
|
72
72
|
showTools: false,
|
|
73
73
|
coverPhoto: this.cover,
|
|
74
74
|
hasPrevUser: false,
|
|
75
|
-
hasNextUser: false
|
|
75
|
+
hasNextUser: false,
|
|
76
|
+
isLoading: false,
|
|
76
77
|
};
|
|
77
78
|
},
|
|
78
79
|
watch: {
|
|
@@ -91,12 +92,12 @@ export default {
|
|
|
91
92
|
},
|
|
92
93
|
methods: {
|
|
93
94
|
preUser() {
|
|
94
|
-
if (this.currentUserIndex <= 0) return;
|
|
95
|
+
if (this.currentUserIndex <= 0 || this.isLoading) return;
|
|
95
96
|
|
|
96
97
|
this.$emit('prev-user');
|
|
97
98
|
},
|
|
98
99
|
nextUser() {
|
|
99
|
-
if (this.currentUserIndex >= (this.maxUsers - 1)) return;
|
|
100
|
+
if (this.currentUserIndex >= (this.maxUsers - 1) || this.isLoading) return;
|
|
100
101
|
|
|
101
102
|
this.$emit('next-user');
|
|
102
103
|
},
|
|
@@ -112,6 +113,8 @@ export default {
|
|
|
112
113
|
}
|
|
113
114
|
},
|
|
114
115
|
handleArrowsActive() {
|
|
116
|
+
this.isLoading = true;
|
|
117
|
+
|
|
115
118
|
if (this.currentUserIndex <= 0) {
|
|
116
119
|
this.hasPrevUser = false;
|
|
117
120
|
this.hasNextUser = true;
|
|
@@ -125,6 +128,8 @@ export default {
|
|
|
125
128
|
if (this.currentUserIndex === (this.maxUsers - 1)) {
|
|
126
129
|
this.hasNextUser = false;
|
|
127
130
|
}
|
|
131
|
+
|
|
132
|
+
setTimeout(() => this.isLoading = false, 1000);
|
|
128
133
|
}
|
|
129
134
|
},
|
|
130
135
|
beforeMount() {
|
|
@@ -170,6 +175,7 @@ export default {
|
|
|
170
175
|
width: 100%;
|
|
171
176
|
height: 100vh;
|
|
172
177
|
z-index: -1;
|
|
178
|
+
pointer-events: none;
|
|
173
179
|
> button {
|
|
174
180
|
width: 42px;
|
|
175
181
|
height: 42px;
|
|
@@ -180,6 +186,7 @@ export default {
|
|
|
180
186
|
background: transparent;
|
|
181
187
|
font-size: 2rem;
|
|
182
188
|
color: $primary;
|
|
189
|
+
pointer-events: all;
|
|
183
190
|
}
|
|
184
191
|
}
|
|
185
192
|
|
|
@@ -228,4 +235,11 @@ export default {
|
|
|
228
235
|
height: 150px;
|
|
229
236
|
}
|
|
230
237
|
}
|
|
238
|
+
|
|
239
|
+
/deep/ .user__preview__container {
|
|
240
|
+
transition: opacity 0.2s;
|
|
241
|
+
&.loading {
|
|
242
|
+
opacity: 0;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
231
245
|
</style>
|