@burh/nuxt-core 1.0.219 → 1.0.221

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,188 +1,190 @@
1
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 }">
16
- {{ userData.name }} {{ userData.last_name }}
17
- </h5>
18
-
19
- <p class="user-info" v-if="userData.user_experience.length > 0">
20
- {{ userData.user_experience[0].job_title }} em
21
- {{ userData.user_experience[0].company }}
22
- </p>
23
-
24
- <span v-if="userData.user_address">
25
- <i class="fas fa-map-marker-alt"></i>
26
- {{ userData.user_address.city_name }} -
27
- {{ userData.user_address.region_code }}
28
- </span>
29
- </div>
30
-
31
- <div
32
- v-show="userData.user_skill.length > 0"
33
- class="skills title-block ml-4"
34
- >
35
- <h6 class="mb-0">Habilidades</h6>
36
- <div class="line"></div>
37
-
38
- <p
39
- v-for="(skill, index) in userData.user_skill"
40
- :key="`skill-${index}`"
41
- class="ml-1 mt-1 mb-0 text-capitalize"
42
- >
43
- {{ skill.skill_word }}
44
- </p>
45
- </div>
46
-
47
- <div
48
- v-show="userData.user_language.length > 0"
49
- class="languages title-block mt-3 ml-4"
50
- >
51
- <h6 class="mb-0">Idiomas</h6>
52
- <div class="line"></div>
53
-
54
- <p
55
- class="mb-1 text-capitalize"
56
- v-for="(lan, index) in userData.user_language"
57
- :key="index"
58
- >
59
- {{ lan.language[0].name }} {{ languageLevel(lan.level) }}
60
- </p>
61
- </div>
62
-
63
- <div
64
- v-show="userData.user_desired_job.length > 0"
65
- class="desidered title-block mt-3 ml-4"
66
- >
67
- <h6 class="mb-0">Cargos desejados</h6>
68
- <div class="line"></div>
69
-
70
- <p
71
- v-for="(des, index) in userData.user_desired_job"
72
- :key="`skill-${index}`"
73
- class="ml-1 mt-1 mb-0 text-capitalize"
74
- >
75
- {{ des.occupation }}
76
- </p>
77
- </div>
78
-
79
- <div
80
- class="deficiency title-block mt-3 ml-4"
81
- v-if="userData.user_deficiency"
82
- >
83
- <div class="d-flex align-items-center">
84
- <i class="fas fa-wheelchair"></i>
85
- <h6 class="mb-0 ml-2">Deficiência</h6>
86
- </div>
87
- <div class="line"></div>
88
- <p>
89
- {{ userData.user_deficiency.deficiency_id | allDeficiencies }} -
90
- {{ userData.user_deficiency.cid }}
91
- </p>
92
-
93
- <p v-show="userData.user_deficiency.appliance">
94
- Acessório: {{ userData.user_deficiency.appliance }}
95
- </p>
96
-
97
- <p v-show="userData.user_deficiency.apparatus">
98
- Necessidade: {{ userData.user_deficiency.apparatus }}
99
- </p>
100
-
101
- <p v-show="userData.user_deficiency.course">
102
- Curso: {{ userData.user_deficiency.course }}
103
- </p>
104
-
105
- <p v-show="userData.user_deficiency.note">
106
- Anotações: {{ userData.user_deficiency.note }}
107
- </p>
108
-
109
- <p v-show="userData.user_deficiency.transport === 1">
110
- Utiliza transporte coletivo
111
- </p>
112
-
113
- <p v-show="userData.user_deficiency.vehicle === 1">
114
- Possuí veículo adaptado
115
- </p>
116
-
117
- <p v-show="userData.user_deficiency.escort === 1">
118
- Precisa de acompanhante
119
- </p>
120
- </div>
121
-
122
- <div class="socials text-center mt-5">
123
- <a
124
- :href="baseUrl + '/' + userData.slug.slug"
125
- class="text-center"
126
- target="_blank"
127
- rel="noopener noreferrer"
128
- >
129
- <img
130
- class="no-social"
131
- src="../../../../assets/images/burhCv.svg"
132
- alt="Burh"
133
- />
134
- </a>
135
- <a
136
- v-show="userData.user_complementary_information.facebook_url"
137
- :href="userData.user_complementary_information.facebook_url"
138
- target="_blank"
139
- class="ml-2"
140
- rel="noopener noreferrer"
141
- >
142
- <img
143
- class="no-social"
144
- src="../../../../assets/images/facebookCv.svg"
145
- alt="Facebook"
146
- />
147
- </a>
148
- <a
149
- v-show="userData.user_complementary_information.linkedin_url"
150
- :href="userData.user_complementary_information.linkedin_url"
151
- target="_blank"
152
- class="ml-2"
153
- rel="noopener noreferrer"
154
- >
155
- <img
156
- class="no-social"
157
- src="../../../../assets/images/linkedinCv.svg"
158
- alt="Linkdin"
159
- />
160
- </a>
161
- <a
162
- v-show="userData.user_complementary_information.website"
163
- :href="userData.user_complementary_information.website"
164
- class="text-center ml-2"
165
- target="_blank"
166
- rel="noopener noreferrer"
167
- >
168
- <img
169
- class="no-social"
170
- src="../../../../assets/images/webCv.svg"
171
- alt="Web"
172
- />
173
- </a>
174
- </div>
175
-
176
- <div class="burh-code text-center mt-4">
177
- <vue-qrcode
178
- :value="baseUrl + '/' + userData.slug.slug"
179
- :options="{ width: 98, height: 98 }"
180
- class="border qr-code"
181
- ></vue-qrcode>
182
- <p class="mb-0">Código BURH</p>
183
- <span class="qr-id">{{ userData.id }}</span>
184
- </div>
185
- </div>
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 }">
16
+ {{ userData.name }} {{ userData.last_name }}
17
+ </h5>
18
+
19
+ <p class="user-info" v-if="userData.user_experience.length > 0">
20
+ {{ userData.user_experience[0].job_title }} em
21
+ {{ userData.user_experience[0].company }}
22
+ </p>
23
+
24
+ <span v-if="userData.user_address">
25
+ <i class="fas fa-map-marker-alt"></i>
26
+ {{ userData.user_address.city_name }} -
27
+ {{ userData.user_address.region_code }}
28
+ </span>
29
+ <br>
30
+ <span>Data de atualização: {{ $moment(userData.updated_at).format('DD/MM/YYYY H:mm')}}</span>
31
+ </div>
32
+
33
+ <div
34
+ v-show="userData.user_skill.length > 0"
35
+ class="skills title-block ml-4"
36
+ >
37
+ <h6 class="mb-0">Habilidades</h6>
38
+ <div class="line"></div>
39
+
40
+ <p
41
+ v-for="(skill, index) in userData.user_skill"
42
+ :key="`skill-${index}`"
43
+ class="ml-1 mt-1 mb-0 text-capitalize"
44
+ >
45
+ {{ skill.skill_word }}
46
+ </p>
47
+ </div>
48
+
49
+ <div
50
+ v-show="userData.user_language.length > 0"
51
+ class="languages title-block mt-3 ml-4"
52
+ >
53
+ <h6 class="mb-0">Idiomas</h6>
54
+ <div class="line"></div>
55
+
56
+ <p
57
+ class="mb-1 text-capitalize"
58
+ v-for="(lan, index) in userData.user_language"
59
+ :key="index"
60
+ >
61
+ {{ lan.language[0].name }} {{ languageLevel(lan.level) }}
62
+ </p>
63
+ </div>
64
+
65
+ <div
66
+ v-show="userData.user_desired_job.length > 0"
67
+ class="desidered title-block mt-3 ml-4"
68
+ >
69
+ <h6 class="mb-0">Cargos desejados</h6>
70
+ <div class="line"></div>
71
+
72
+ <p
73
+ v-for="(des, index) in userData.user_desired_job"
74
+ :key="`skill-${index}`"
75
+ class="ml-1 mt-1 mb-0 text-capitalize"
76
+ >
77
+ {{ des.occupation }}
78
+ </p>
79
+ </div>
80
+
81
+ <div
82
+ class="deficiency title-block mt-3 ml-4"
83
+ v-if="userData.user_deficiency"
84
+ >
85
+ <div class="d-flex align-items-center">
86
+ <i class="fas fa-wheelchair"></i>
87
+ <h6 class="mb-0 ml-2">Deficiência</h6>
88
+ </div>
89
+ <div class="line"></div>
90
+ <p>
91
+ {{ userData.user_deficiency.deficiency_id | allDeficiencies }} -
92
+ {{ userData.user_deficiency.cid }}
93
+ </p>
94
+
95
+ <p v-show="userData.user_deficiency.appliance">
96
+ Acessório: {{ userData.user_deficiency.appliance }}
97
+ </p>
98
+
99
+ <p v-show="userData.user_deficiency.apparatus">
100
+ Necessidade: {{ userData.user_deficiency.apparatus }}
101
+ </p>
102
+
103
+ <p v-show="userData.user_deficiency.course">
104
+ Curso: {{ userData.user_deficiency.course }}
105
+ </p>
106
+
107
+ <p v-show="userData.user_deficiency.note">
108
+ Anotações: {{ userData.user_deficiency.note }}
109
+ </p>
110
+
111
+ <p v-show="userData.user_deficiency.transport === 1">
112
+ Utiliza transporte coletivo
113
+ </p>
114
+
115
+ <p v-show="userData.user_deficiency.vehicle === 1">
116
+ Possuí veículo adaptado
117
+ </p>
118
+
119
+ <p v-show="userData.user_deficiency.escort === 1">
120
+ Precisa de acompanhante
121
+ </p>
122
+ </div>
123
+
124
+ <div class="socials text-center mt-5">
125
+ <a
126
+ :href="baseUrl + '/' + userData.slug.slug"
127
+ class="text-center"
128
+ target="_blank"
129
+ rel="noopener noreferrer"
130
+ >
131
+ <img
132
+ class="no-social"
133
+ src="../../../../assets/images/burhCv.svg"
134
+ alt="Burh"
135
+ />
136
+ </a>
137
+ <a
138
+ v-show="userData.user_complementary_information.facebook_url"
139
+ :href="userData.user_complementary_information.facebook_url"
140
+ target="_blank"
141
+ class="ml-2"
142
+ rel="noopener noreferrer"
143
+ >
144
+ <img
145
+ class="no-social"
146
+ src="../../../../assets/images/facebookCv.svg"
147
+ alt="Facebook"
148
+ />
149
+ </a>
150
+ <a
151
+ v-show="userData.user_complementary_information.linkedin_url"
152
+ :href="userData.user_complementary_information.linkedin_url"
153
+ target="_blank"
154
+ class="ml-2"
155
+ rel="noopener noreferrer"
156
+ >
157
+ <img
158
+ class="no-social"
159
+ src="../../../../assets/images/linkedinCv.svg"
160
+ alt="Linkdin"
161
+ />
162
+ </a>
163
+ <a
164
+ v-show="userData.user_complementary_information.website"
165
+ :href="userData.user_complementary_information.website"
166
+ class="text-center ml-2"
167
+ target="_blank"
168
+ rel="noopener noreferrer"
169
+ >
170
+ <img
171
+ class="no-social"
172
+ src="../../../../assets/images/webCv.svg"
173
+ alt="Web"
174
+ />
175
+ </a>
176
+ </div>
177
+
178
+ <div class="burh-code text-center mt-4">
179
+ <vue-qrcode
180
+ :value="baseUrl + '/' + userData.slug.slug"
181
+ :options="{ width: 98, height: 98 }"
182
+ class="border qr-code"
183
+ ></vue-qrcode>
184
+ <p class="mb-0">Código BURH</p>
185
+ <span class="qr-id">{{ userData.id }}</span>
186
+ </div>
187
+ </div>
186
188
  </template>
187
189
 
188
190
  <script>
@@ -190,111 +192,111 @@ import getPrefixes from '~/util/getPrefixes.js';
190
192
  import VueQrcode from '@chenfengyuan/vue-qrcode';
191
193
 
192
194
  export default {
193
- name: 'user-cv-left-side',
194
- components: {
195
- VueQrcode
196
- },
197
- props: {
198
- userData: Object,
199
- baseUrl: String
200
- },
201
- methods: {
202
- getTime(
203
- { start_year = null, end_year = null, start_month, end_month },
204
- textHappening = 'Cursando'
205
- ) {
206
- const isHappening = !end_month && !end_year;
207
-
208
- if (isHappening) {
209
- return textHappening;
210
- }
211
-
212
- const dateInitial = this.$moment(
213
- ['1', start_month.toString(), start_year.toString()],
214
- 'DD/MM/YYYY'
215
- );
216
- const dateDone = this.$moment(
217
- ['1', end_month.toString(), end_year.toString()],
218
- 'DD/MM/YYYY'
219
- );
220
- const diffDuration = this.$moment.duration(
221
- dateDone.diff(dateInitial)
222
- );
223
- const years = diffDuration.years();
224
- const months = diffDuration.months();
225
-
226
- if (years) {
227
- return years > 1 ? `(${years} anos)` : `(${years} ano)`;
228
- }
229
-
230
- return months > 1
231
- ? `(${months} meses)`
232
- : months == 1
233
- ? `(${months} mês)`
234
- : '';
235
- },
236
- languageLevel(level) {
237
- switch (parseInt(level)) {
238
- case 1:
239
- return 'Iniciante';
240
- case 2:
241
- return 'Elementar';
242
- case 3:
243
- return 'Pré-intermediário';
244
- case 4:
245
- return 'Intermediário';
246
- case 5:
247
- return 'Intermediário Superior';
248
- case 6:
249
- return 'Avançado';
250
- case 7:
251
- return 'Fluente';
252
- default:
253
- return '';
254
- }
255
- },
256
- treatPhone(phone) {
257
- if (phone) {
258
- if (phone == '0' || phone.length < 9 || !phone) {
259
- return 'não cadastrado';
260
- }
261
- }
262
-
263
- return phone;
264
- },
265
- treatCellphone(cellphone) {
266
- if (cellphone) {
267
- if (cellphone == '0' || cellphone.length < 11 || !cellphone) {
268
- return 'não cadastrado';
269
- }
270
- }
271
-
272
- return cellphone;
273
- },
274
- handleGetPrefixes(name = '') {
275
- return getPrefixes(name);
276
- },
277
- treatEndDate(end_month, end_year) {
278
- if (end_month && end_year) {
279
- return `${end_month}/${end_year}`;
280
- }
281
- return '';
282
- }
283
- },
284
- filters: {
285
- allDeficiencies(id) {
286
- const typeDeficiency = {
287
- 1: 'Deficiência Física',
288
- 2: 'Deficiência Visual',
289
- 3: 'Deficiência Mental',
290
- 4: 'Deficiência Auditiva',
291
- 5: 'Deficiência Fonológica',
292
- 6: 'Deficiência Múltipla'
293
- };
294
-
295
- return typeDeficiency[id] || '-';
296
- }
297
- }
195
+ name: 'user-cv-left-side',
196
+ components: {
197
+ VueQrcode
198
+ },
199
+ props: {
200
+ userData: Object,
201
+ baseUrl: String
202
+ },
203
+ methods: {
204
+ getTime(
205
+ { start_year = null, end_year = null, start_month, end_month },
206
+ textHappening = 'Cursando'
207
+ ) {
208
+ const isHappening = !end_month && !end_year;
209
+
210
+ if (isHappening) {
211
+ return textHappening;
212
+ }
213
+
214
+ const dateInitial = this.$moment(
215
+ ['1', start_month.toString(), start_year.toString()],
216
+ 'DD/MM/YYYY'
217
+ );
218
+ const dateDone = this.$moment(
219
+ ['1', end_month.toString(), end_year.toString()],
220
+ 'DD/MM/YYYY'
221
+ );
222
+ const diffDuration = this.$moment.duration(
223
+ dateDone.diff(dateInitial)
224
+ );
225
+ const years = diffDuration.years();
226
+ const months = diffDuration.months();
227
+
228
+ if (years) {
229
+ return years > 1 ? `(${years} anos)` : `(${years} ano)`;
230
+ }
231
+
232
+ return months > 1
233
+ ? `(${months} meses)`
234
+ : months == 1
235
+ ? `(${months} mês)`
236
+ : '';
237
+ },
238
+ languageLevel(level) {
239
+ switch (parseInt(level)) {
240
+ case 1:
241
+ return 'Iniciante';
242
+ case 2:
243
+ return 'Elementar';
244
+ case 3:
245
+ return 'Pré-intermediário';
246
+ case 4:
247
+ return 'Intermediário';
248
+ case 5:
249
+ return 'Intermediário Superior';
250
+ case 6:
251
+ return 'Avançado';
252
+ case 7:
253
+ return 'Fluente';
254
+ default:
255
+ return '';
256
+ }
257
+ },
258
+ treatPhone(phone) {
259
+ if (phone) {
260
+ if (phone == '0' || phone.length < 9 || !phone) {
261
+ return 'não cadastrado';
262
+ }
263
+ }
264
+
265
+ return phone;
266
+ },
267
+ treatCellphone(cellphone) {
268
+ if (cellphone) {
269
+ if (cellphone == '0' || cellphone.length < 11 || !cellphone) {
270
+ return 'não cadastrado';
271
+ }
272
+ }
273
+
274
+ return cellphone;
275
+ },
276
+ handleGetPrefixes(name = '') {
277
+ return getPrefixes(name);
278
+ },
279
+ treatEndDate(end_month, end_year) {
280
+ if (end_month && end_year) {
281
+ return `${end_month}/${end_year}`;
282
+ }
283
+ return '';
284
+ }
285
+ },
286
+ filters: {
287
+ allDeficiencies(id) {
288
+ const typeDeficiency = {
289
+ 1: 'Deficiência Física',
290
+ 2: 'Deficiência Visual',
291
+ 3: 'Deficiência Mental',
292
+ 4: 'Deficiência Auditiva',
293
+ 5: 'Deficiência Fonológica',
294
+ 6: 'Deficiência Múltipla'
295
+ };
296
+
297
+ return typeDeficiency[id] || '-';
298
+ }
299
+ }
298
300
  };
299
301
  </script>
300
302
 
@@ -1,142 +1,142 @@
1
1
  <template>
2
- <div class="bg-white content-middle">
3
- <!-- FERRAMENTAS -->
4
- <div class="tools mt-3">
5
- <button
6
- @click="$emit(tool.event)"
7
- class="ml-3 burh-color"
8
- v-for="(tool, index) in tools"
9
- :key="index"
10
- >
11
- {{ tool.name }}
12
- </button>
13
- </div>
14
-
15
- <!-- SOBRE -->
16
- <div class="about content-block mt-5 ml-3 mr-3">
17
- <h5 class="font-weight-bold">Sobre</h5>
18
- <p
19
- id="USER_ABOUT"
20
- class="mb-0"
21
- :class="
22
- !wordIsLesserThan(
23
- userData.user_complementary_information.about
24
- ) && 'readmore'
25
- "
26
- >
27
- {{ userData.user_complementary_information.about }}
28
- </p>
29
- <a
30
- href="#"
31
- aria-label="expandir conteudo"
32
- v-show="
33
- userData.user_complementary_information.about &&
34
- !wordIsLesserThan(
35
- userData.user_complementary_information.about
36
- )
37
- "
38
- @click.prevent.stop="toggleReadMore($event, 'USER_ABOUT')"
39
- >Ler mais</a
40
- >
41
-
42
- <p v-show="!userData.user_complementary_information.about" class="">
43
- Nenhuma informação adicionada
44
- </p>
45
- </div>
46
-
47
- <!-- EDUCAÇÃO -->
48
- <h5 class="font-weight-bold mt-4 ml-3">Educação</h5>
49
- <div class="no-info ml-3" v-show="userData.user_education.length === 0">
50
- <p>
51
- Nenhuma informação adicionada
52
- </p>
53
- </div>
54
- <div
55
- class="education ml-3"
56
- v-show="userData.user_education.length > 0"
57
- v-for="(edu, index) in userData.user_education"
58
- :key="index"
59
- >
60
- <p class="sub-title">{{ edu.formation }}</p>
61
- <p class="info-text">{{ edu.institution }}</p>
62
- <span class="info-text">
63
- {{ edu.start_month }}/{{ edu.start_year }} -
64
- {{ treatEndDate(edu.end_month, edu.end_year) }}
65
- {{ getTime(false, edu) }}
66
- {{
67
- edu.user_education_period
68
- ? '-' + edu.user_education_period.name
69
- : ''
70
- }} </span
71
- ><br />
72
- <span class="info-text">{{
73
- edu.formation_level_id | formationLevel
74
- }}</span>
75
- </div>
76
-
77
- <!-- EXPERIÊNCIAS -->
78
- <h5 class="font-weight-bold mt-4 ml-3">Experiência</h5>
79
- <div
80
- class="no-info ml-3"
81
- v-show="userData.user_experience.length === 0"
82
- >
83
- <p>
84
- Nenhuma informação adicionada
85
- </p>
86
- </div>
87
- <div
88
- v-show="userData.user_experience.length > 0"
89
- class="experience ml-3 mr-3"
90
- v-for="(exp, index) in userData.user_experience"
91
- :key="`experience-${index}`"
92
- >
93
- <p class="sub-title">{{ exp.job_title }}</p>
94
- <p class="info-text">{{ exp.company }}, {{ exp.location }}</p>
95
- <span class="info-text">
96
- {{ exp.start_month }}/{{ exp.start_year }} -
97
- {{ treatEndDate(exp.end_month, exp.end_year) }}
98
- {{ getTime(true, exp) }}
99
- </span>
100
-
101
- <p
102
- :id="`USER_EXPERIENCE-${index}`"
103
- class="description mt-4 mb-0"
104
- :class="!wordIsLesserThan(exp.description) && 'readmore'"
105
- >
106
- {{ exp.description }}
107
- </p>
108
-
109
- <a
110
- href="#"
111
- aria-label="expandir conteudo"
112
- v-show="!wordIsLesserThan(exp.description)"
113
- @click.prevent.stop="
114
- toggleReadMore($event, `USER_EXPERIENCE-${index}`)
115
- "
116
- >Ler mais</a
117
- ><br /><br />
118
- </div>
119
-
120
- <!-- CURSOS -->
121
- <h5 class="font-weight-bold mt-1 ml-3">Cursos Complementares</h5>
122
- <div class="no-info ml-3" v-show="userData.user_course.length === 0">
123
- <p>
124
- Nenhuma informação adicionada
125
- </p>
126
- </div>
127
- <div
128
- v-show="userData.user_course.length > 0"
129
- class="courses ml-3"
130
- v-for="(cou, index) in userData.user_course"
131
- :key="`course-${index}`"
132
- >
133
- <p class="sub-title">{{ cou.institution }}</p>
134
- <p class="info-text mb-3">
135
- {{ cou.name }} - {{ cou.end_year }}
136
- {{ getTime(false, cou) }}
137
- </p>
138
- </div>
139
- </div>
2
+ <div class="bg-white content-middle">
3
+ <!-- FERRAMENTAS -->
4
+ <div class="tools mt-3">
5
+ <button
6
+ @click="$emit(tool.event)"
7
+ class="ml-3 burh-color"
8
+ v-for="(tool, index) in tools"
9
+ :key="index"
10
+ >
11
+ {{ tool.name }}
12
+ </button>
13
+ </div>
14
+
15
+ <!-- SOBRE -->
16
+ <div class="about content-block mt-5 ml-3 mr-3">
17
+ <h5 class="font-weight-bold">Sobre</h5>
18
+ <p
19
+ id="USER_ABOUT"
20
+ class="mb-0"
21
+ :class="
22
+ !wordIsLesserThan(
23
+ userData.user_complementary_information.about
24
+ ) && 'readmore'
25
+ "
26
+ >
27
+ {{ userData.user_complementary_information.about }}
28
+ </p>
29
+ <a
30
+ href="#"
31
+ aria-label="expandir conteudo"
32
+ v-show="
33
+ userData.user_complementary_information.about &&
34
+ !wordIsLesserThan(
35
+ userData.user_complementary_information.about
36
+ )
37
+ "
38
+ @click.prevent.stop="toggleReadMore($event, 'USER_ABOUT')"
39
+ >Ler mais</a
40
+ >
41
+
42
+ <p v-show="!userData.user_complementary_information.about" class="">
43
+ Nenhuma informação adicionada
44
+ </p>
45
+ </div>
46
+
47
+ <!-- EDUCAÇÃO -->
48
+ <h5 class="font-weight-bold mt-4 ml-3">Educação</h5>
49
+ <div class="no-info ml-3" v-show="userData.user_education.length === 0">
50
+ <p>
51
+ Nenhuma informação adicionada
52
+ </p>
53
+ </div>
54
+ <div
55
+ class="education ml-3"
56
+ v-show="userData.user_education.length > 0"
57
+ v-for="(edu, index) in userData.user_education"
58
+ :key="index"
59
+ >
60
+ <p class="sub-title">{{ edu.formation }}</p>
61
+ <p class="info-text">{{ edu.institution }}</p>
62
+ <span class="info-text">
63
+ {{ edu.start_month }}/{{ edu.start_year }} -
64
+ {{ treatEndDate(edu.end_month, edu.end_year) }}
65
+ {{ getTime(false, edu) }}
66
+ {{
67
+ edu.user_education_period
68
+ ? '-' + edu.user_education_period.name
69
+ : ''
70
+ }} </span
71
+ ><br />
72
+ <span class="info-text">{{
73
+ edu.formation_level_id | formationLevel
74
+ }}</span>
75
+ </div>
76
+
77
+ <!-- EXPERIÊNCIAS -->
78
+ <h5 class="font-weight-bold mt-4 ml-3">Experiência</h5>
79
+ <div
80
+ class="no-info ml-3"
81
+ v-show="userData.user_experience.length === 0"
82
+ >
83
+ <p>
84
+ Nenhuma informação adicionada
85
+ </p>
86
+ </div>
87
+ <div
88
+ v-show="userData.user_experience.length > 0"
89
+ class="experience ml-3 mr-3"
90
+ v-for="(exp, index) in userData.user_experience"
91
+ :key="`experience-${index}`"
92
+ >
93
+ <p class="sub-title">{{ exp.job_title }}</p>
94
+ <p class="info-text">{{ exp.company }}, {{ exp.location }}</p>
95
+ <span class="info-text">
96
+ {{ exp.start_month }}/{{ exp.start_year }} -
97
+ {{ treatEndDate(exp.end_month, exp.end_year) }}
98
+ {{ getTime(true, exp) }}
99
+ </span>
100
+
101
+ <p
102
+ :id="`USER_EXPERIENCE-${index}`"
103
+ class="description mt-4 mb-0"
104
+ :class="!wordIsLesserThan(exp.description) && 'readmore'"
105
+ >
106
+ {{ exp.description }}
107
+ </p>
108
+
109
+ <a
110
+ href="#"
111
+ aria-label="expandir conteudo"
112
+ v-show="!wordIsLesserThan(exp.description)"
113
+ @click.prevent.stop="
114
+ toggleReadMore($event, `USER_EXPERIENCE-${index}`)
115
+ "
116
+ >Ler mais</a
117
+ ><br /><br />
118
+ </div>
119
+
120
+ <!-- CURSOS -->
121
+ <h5 class="font-weight-bold mt-1 ml-3">Cursos Complementares</h5>
122
+ <div class="no-info ml-3" v-show="userData.user_course.length === 0">
123
+ <p>
124
+ Nenhuma informação adicionada
125
+ </p>
126
+ </div>
127
+ <div
128
+ v-show="userData.user_course.length > 0"
129
+ class="courses ml-3"
130
+ v-for="(cou, index) in userData.user_course"
131
+ :key="`course-${index}`"
132
+ >
133
+ <p class="sub-title">{{ cou.institution }}</p>
134
+ <p class="info-text mb-3">
135
+ {{ cou.name }} - {{ cou.end_year }}
136
+ {{ getTime(false, cou) }}
137
+ </p>
138
+ </div>
139
+ </div>
140
140
  </template>
141
141
 
142
142
  <script>
@@ -165,10 +165,25 @@ export default {
165
165
  return typeFormation[id] || '-';
166
166
  }
167
167
  },
168
+ mounted() {
169
+ this.userData.user_experience = this.filterByDate(
170
+ this.userData.user_experience,
171
+ 'old'
172
+ );
173
+ this.userData.user_education = this.filterByDate(
174
+ this.userData.user_education,
175
+ 'old'
176
+ );
177
+ this.userData.user_course = this.filterByDate(
178
+ this.userData.user_course,
179
+ 'old'
180
+ );
181
+ },
168
182
  watch: {
169
183
  userData() {
170
184
  this.userData.user_experience = this.filterByDate(
171
- this.userData.user_experience
185
+ this.userData.user_experience,
186
+ 'old'
172
187
  );
173
188
  this.userData.user_course = this.filterByDate(
174
189
  this.userData.user_course,
@@ -186,15 +201,15 @@ export default {
186
201
  a = [
187
202
  a.start_month,
188
203
  a.start_year,
189
- a.end_month | 12,
190
- a.end_year | 9999
204
+ a.end_month || 12,
205
+ a.end_year || 9999
191
206
  ];
192
207
 
193
208
  b = [
194
209
  b.start_month,
195
210
  b.start_year,
196
- b.end_month | 12,
197
- b.end_year | 9999
211
+ b.end_month || 12,
212
+ b.end_year || 9999
198
213
  ];
199
214
 
200
215
  // Primeiro filtro -> chaves: 0 e 1 -> Filtro por data de inicio
@@ -208,119 +223,119 @@ export default {
208
223
  byStart =
209
224
  new Date(a[1], a[0], 1).getTime() -
210
225
  new Date(b[1], b[0], 1).getTime();
211
- byEnd =
226
+ byEnd =
212
227
  new Date(b[3], b[2], 1).getTime() -
213
228
  new Date(a[3], a[2], 1).getTime();
214
- break;
229
+ break;
215
230
 
216
- default:
217
- byStart =
231
+ default:
232
+ byStart =
218
233
  new Date(b[1], b[0], 1).getTime() -
219
234
  new Date(a[1], a[0], 1).getTime();
220
- byEnd =
235
+ byEnd =
221
236
  new Date(b[3], b[2], 1).getTime() -
222
237
  new Date(a[3], a[2], 1).getTime();
223
- break;
224
- }
225
-
226
- return byStart - byEnd;
227
- });
228
-
229
- return sortedArray;
230
- },
231
- toggleReadMore(event, id) {
232
- const element = document.getElementById(id);
233
- element.classList.toggle('readmore');
234
- event.target.innerText == 'Ler mais'
235
- ? (event.target.innerText = 'Esconder')
236
- : (event.target.innerText = 'Ler mais');
237
- },
238
- getTime(
239
- isExperience,
240
- { start_year = null, end_year = null, start_month, end_month },
241
- textHappening = 'Cursando'
242
- ) {
243
- const isHappening = !end_month && !end_year;
244
-
245
- if (isHappening) {
246
- return isExperience === true ? 'Atualmente' : textHappening;
247
- }
248
-
249
- const dateInitial = this.$moment(
250
- ['1', start_month.toString(), start_year.toString()],
251
- 'DD/MM/YYYY'
252
- );
253
- const dateDone = this.$moment(
254
- ['1', end_month.toString(), end_year.toString()],
255
- 'DD/MM/YYYY'
256
- );
257
- const diffDuration = this.$moment.duration(
258
- dateDone.diff(dateInitial)
259
- );
260
- const years = diffDuration.years();
261
- const months = diffDuration.months();
262
-
263
- if (years) {
264
- return years > 1 ? `(${years} anos)` : `(${years} ano)`;
265
- }
266
-
267
- return months > 1
268
- ? `(${months} meses)`
269
- : months == 1
270
- ? `(${months} mês)`
271
- : '';
272
- },
273
- languageLevel(level) {
274
- switch (parseInt(level)) {
275
- case 1:
276
- return 'Iniciante';
277
- case 2:
278
- return 'Elementar';
279
- case 3:
280
- return 'Pré-intermediário';
281
- case 4:
282
- return 'Intermediário';
283
- case 5:
284
- return 'Intermediário Superior';
285
- case 6:
286
- return 'Avançado';
287
- case 7:
288
- return 'Fluente';
289
- default:
290
- return '';
291
- }
292
- },
293
- treatPhone(phone) {
294
- if (phone) {
295
- if (phone == '0' || phone.length < 9 || !phone) {
296
- return 'não cadastrado';
297
- }
298
- }
299
-
300
- return phone;
301
- },
302
- treatCellphone(cellphone) {
303
- if (cellphone) {
304
- if (cellphone == '0' || cellphone.length < 11 || !cellphone) {
305
- return 'não cadastrado';
306
- }
307
- }
308
-
309
- return cellphone;
310
- },
311
- handleGetPrefixes(name = '') {
312
- return getPrefixes(name);
313
- },
314
- treatEndDate(end_month, end_year) {
315
- if (end_month && end_year) {
316
- return `${end_month}/${end_year}`;
317
- }
318
- return '';
319
- },
320
- wordIsLesserThan(word, value = 300) {
321
- return word && word.length < value;
322
- }
323
- }
238
+ break;
239
+ }
240
+
241
+ return byStart - byEnd;
242
+ });
243
+
244
+ return sortedArray;
245
+ },
246
+ toggleReadMore(event, id) {
247
+ const element = document.getElementById(id);
248
+ element.classList.toggle('readmore');
249
+ event.target.innerText == 'Ler mais'
250
+ ? (event.target.innerText = 'Esconder')
251
+ : (event.target.innerText = 'Ler mais');
252
+ },
253
+ getTime(
254
+ isExperience,
255
+ { start_year = null, end_year = null, start_month, end_month },
256
+ textHappening = 'Cursando'
257
+ ) {
258
+ const isHappening = !end_month && !end_year;
259
+
260
+ if (isHappening) {
261
+ return isExperience === true ? 'Atualmente' : textHappening;
262
+ }
263
+
264
+ const dateInitial = this.$moment(
265
+ ['1', start_month.toString(), start_year.toString()],
266
+ 'DD/MM/YYYY'
267
+ );
268
+ const dateDone = this.$moment(
269
+ ['1', end_month.toString(), end_year.toString()],
270
+ 'DD/MM/YYYY'
271
+ );
272
+ const diffDuration = this.$moment.duration(
273
+ dateDone.diff(dateInitial)
274
+ );
275
+ const years = diffDuration.years();
276
+ const months = diffDuration.months();
277
+
278
+ if (years) {
279
+ return years > 1 ? `(${years} anos)` : `(${years} ano)`;
280
+ }
281
+
282
+ return months > 1
283
+ ? `(${months} meses)`
284
+ : months == 1
285
+ ? `(${months} mês)`
286
+ : '';
287
+ },
288
+ languageLevel(level) {
289
+ switch (parseInt(level)) {
290
+ case 1:
291
+ return 'Iniciante';
292
+ case 2:
293
+ return 'Elementar';
294
+ case 3:
295
+ return 'Pré-intermediário';
296
+ case 4:
297
+ return 'Intermediário';
298
+ case 5:
299
+ return 'Intermediário Superior';
300
+ case 6:
301
+ return 'Avançado';
302
+ case 7:
303
+ return 'Fluente';
304
+ default:
305
+ return '';
306
+ }
307
+ },
308
+ treatPhone(phone) {
309
+ if (phone) {
310
+ if (phone == '0' || phone.length < 9 || !phone) {
311
+ return 'não cadastrado';
312
+ }
313
+ }
314
+
315
+ return phone;
316
+ },
317
+ treatCellphone(cellphone) {
318
+ if (cellphone) {
319
+ if (cellphone == '0' || cellphone.length < 11 || !cellphone) {
320
+ return 'não cadastrado';
321
+ }
322
+ }
323
+
324
+ return cellphone;
325
+ },
326
+ handleGetPrefixes(name = '') {
327
+ return getPrefixes(name);
328
+ },
329
+ treatEndDate(end_month, end_year) {
330
+ if (end_month && end_year) {
331
+ return `${end_month}/${end_year}`;
332
+ }
333
+ return '';
334
+ },
335
+ wordIsLesserThan(word, value = 300) {
336
+ return word && word.length < value;
337
+ }
338
+ }
324
339
  };
325
340
  </script>
326
341
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burh/nuxt-core",
3
- "version": "1.0.219",
3
+ "version": "1.0.221",
4
4
  "description": "Design System and Components.",
5
5
  "author": "Burh",
6
6
  "scripts": {