@burh/nuxt-core 1.0.114 → 1.0.116

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.
@@ -0,0 +1,3 @@
1
+ <svg width="16" height="10" viewBox="0 0 16 10" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9.06482 6.22306C8.48159 6.52696 7.89836 6.52696 7.28443 6.22306C7.22304 6.31423 7.22304 6.43579 7.19234 6.52696C6.82399 7.89449 5.68822 8.89735 4.27619 9.07969C2.25023 9.32281 0.654021 7.89449 0.40845 6.22306C0.224272 4.97709 0.561932 3.88306 1.54422 3.03215C2.00466 2.63709 2.46511 2.27241 2.92555 1.90773C3.386 1.54306 3.93853 1.33033 4.55246 1.29994C4.64455 1.29994 4.70594 1.26955 4.76733 1.20877C4.98221 0.996045 5.19708 0.783318 5.41196 0.60098C6.05658 0.0235765 7.00817 0.145135 7.46861 0.874486C7.49931 0.904876 7.49931 0.935266 7.53 0.965655C7.53 1.02643 7.5914 1.02643 7.65279 0.965655C7.89836 0.844097 8.14393 0.813707 8.4202 0.874486C8.51229 0.904876 8.57368 0.935266 8.66577 0.965655C8.75786 1.02643 8.78856 1.02643 8.81925 0.935266C8.94204 0.661759 9.15691 0.479421 9.40248 0.357863C9.86293 0.145135 10.2927 0.145135 10.7224 0.418642C10.9066 0.5402 11.0601 0.692149 11.2443 0.874486C11.275 0.904876 11.3057 0.935266 11.3364 0.965655C11.4284 1.05682 11.5205 1.17838 11.6433 1.26955C11.7661 1.33033 11.9196 1.29994 12.0731 1.33033C12.5335 1.39111 12.9326 1.54306 13.3009 1.81657C13.8535 2.24202 14.3753 2.66748 14.8971 3.12332C15.4804 3.60955 15.7873 4.27813 15.9408 5.00748C16.2171 6.46618 15.5111 7.98566 14.1297 8.71501C12.0731 9.77865 9.52527 8.59346 9.06482 6.34462C9.09552 6.28384 9.09552 6.25345 9.06482 6.22306ZM12.5028 8.10722C13.7614 8.10722 14.805 7.04358 14.805 5.76722C14.805 4.46046 13.7921 3.39683 12.5028 3.39683C11.367 3.39683 10.2006 4.30852 10.2006 5.76722C10.2313 7.19553 11.3977 8.10722 12.5028 8.10722ZM1.54422 5.76722C1.54422 7.07397 2.58789 8.10722 3.84644 8.10722C5.10499 8.10722 6.14867 7.04358 6.14867 5.73683C6.14867 4.43007 5.10499 3.39683 3.81575 3.39683C2.55719 3.39683 1.54422 4.46046 1.54422 5.76722ZM7.16165 4.67319C7.16165 5.15943 7.5914 5.58488 8.08254 5.58488C8.60438 5.58488 9.03413 5.15943 9.03413 4.67319C9.03413 4.18696 8.60438 3.7615 8.11323 3.7615C7.5914 3.73111 7.16165 4.12618 7.16165 4.67319Z" fill="#F8FAFB"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M20.1222 10.0611C20.1222 4.50451 15.6177 0 10.0611 0C4.50451 0 0 4.50451 0 10.0611C0 15.0829 3.67922 19.2452 8.48906 20V12.9694H5.93448V10.0611H8.48906V7.84452C8.48906 5.32296 9.99112 3.93012 12.2893 3.93012C13.3901 3.93012 14.5415 4.12663 14.5415 4.12663V6.60261H13.2728C12.023 6.60261 11.6332 7.37814 11.6332 8.17379V10.0611H14.4235L13.9775 12.9694H11.6332V20C16.443 19.2452 20.1222 15.0829 20.1222 10.0611Z" fill="#1D364B"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M10.1222 0C15.6413 0 20.1222 4.48086 20.1222 10C20.1222 15.5191 15.6413 20 10.1222 20C4.60305 20 0.122192 15.5191 0.122192 10C0.122192 4.48086 4.60305 0 10.1222 0ZM6.99575 15.62V7.81055H4.3995V15.62H6.99575ZM16.3559 15.62V11.1416C16.3559 8.74281 15.0752 7.62691 13.3673 7.62691C11.9901 7.62691 11.3732 8.3843 11.0279 8.91625V7.81055H8.43227C8.46669 8.54324 8.43227 15.62 8.43227 15.62H11.0278V11.2586C11.0278 11.0252 11.0446 10.7918 11.1134 10.625C11.3007 10.1588 11.7281 9.67582 12.4452 9.67582C13.3841 9.67582 13.7602 10.3922 13.7602 11.4416V15.62H16.3559ZM5.71516 4.04492C4.82688 4.04492 4.24653 4.62891 4.24653 5.39434C4.24653 6.14363 4.80922 6.74371 5.68079 6.74371H5.69754C6.60282 6.74371 7.16629 6.14363 7.16629 5.39434C7.1495 4.62891 6.60286 4.04492 5.71516 4.04492Z" fill="#1D364B"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="13" height="12" viewBox="0 0 13 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6.11619 0C2.80419 0 0.122192 2.688 0.122192 6C0.122192 9.312 2.80419 12 6.11619 12C9.43419 12 12.1222 9.312 12.1222 6C12.1222 2.688 9.43419 0 6.11619 0ZM10.2742 3.6H8.50419C8.31219 2.85 8.03619 2.13 7.67619 1.464C8.78019 1.842 9.69819 2.61 10.2742 3.6ZM6.12219 1.224C6.62019 1.944 7.01019 2.742 7.26819 3.6H4.97619C5.23419 2.742 5.62419 1.944 6.12219 1.224ZM1.47819 7.2C1.38219 6.816 1.32219 6.414 1.32219 6C1.32219 5.586 1.38219 5.184 1.47819 4.8H3.50619C3.45819 5.196 3.42219 5.592 3.42219 6C3.42219 6.408 3.45819 6.804 3.50619 7.2H1.47819ZM1.97019 8.4H3.74019C3.93219 9.15 4.20819 9.87 4.56819 10.536C3.46419 10.158 2.54619 9.396 1.97019 8.4ZM3.74019 3.6H1.97019C2.54619 2.604 3.46419 1.842 4.56819 1.464C4.20819 2.13 3.93219 2.85 3.74019 3.6ZM6.12219 10.776C5.62419 10.056 5.23419 9.258 4.97619 8.4H7.26819C7.01019 9.258 6.62019 10.056 6.12219 10.776ZM7.52619 7.2H4.71819C4.66419 6.804 4.62219 6.408 4.62219 6C4.62219 5.592 4.66419 5.19 4.71819 4.8H7.52619C7.58019 5.19 7.62219 5.592 7.62219 6C7.62219 6.408 7.58019 6.804 7.52619 7.2ZM7.67619 10.536C8.03619 9.87 8.31219 9.15 8.50419 8.4H10.2742C9.69819 9.39 8.78019 10.158 7.67619 10.536ZM8.73819 7.2C8.78619 6.804 8.82219 6.408 8.82219 6C8.82219 5.592 8.78619 5.196 8.73819 4.8H10.7662C10.8622 5.184 10.9222 5.586 10.9222 6C10.9222 6.414 10.8622 6.816 10.7662 7.2H8.73819Z" fill="white"/>
3
+ </svg>
@@ -1,132 +1,159 @@
1
1
  <template>
2
- <div class="cv-left col-5 bg-light--darken py-5 px-5" :class=" !currentUser ? 'disable-none' : '' ">
3
- <div class="d-flex justify-content-center">
4
- <a href="#!" class="avatar avatar-pdf">
5
- <img alt="Image placeholder" :src="avatar" v-show="avatar" />
6
- <p class="h5 font-weight-bold text-muted" v-show="!avatar">
7
- {{ handleGetPrefixes(name) }}
8
- </p>
9
- </a>
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
+ <h5 class="mb-0 text-wrap" :class="{ 'mt-5': !userData.urlAvatar }">
15
+ {{ userData.name }} {{ userData.last_name }}
16
+ </h5>
17
+ <p v-if="userData.user_experience.length > 0">
18
+ {{ userData.user_experience[0].job_title }} em
19
+ {{ userData.user_experience[0].company }}
20
+ </p>
21
+
22
+ <span v-if="userData.user_address">
23
+ <i class="fas fa-map-marker-alt"></i>
24
+ {{ userData.user_address.city_name }}
25
+ </span>
10
26
  </div>
11
- <p class="text-center text-muted font-weight-bold mb-4">
12
- {{ yearsOld ? `${yearsOld} anos` : "idade não informada" }}
13
- </p>
14
-
15
- <h2 class="display-4">Contato e Endereço</h2>
16
- <p>
17
- {{ street }}, {{ number }}<br v-show="number" />
18
- {{ neighborhood }}<br v-show="neighborhood" />
19
- {{ city }} - {{ regionCode }}
20
- </p>
21
- <p>
22
- <strong>Telefone:</strong> {{ treatPhone(phone) }}<br />
23
- <strong>Celular:</strong> {{ treatCellphone(cellphone) }}<br />
24
- </p>
25
-
26
- <h2 class="display-4 mt-4" v-show="education.length">Educação</h2>
27
+
27
28
  <div
28
- class="mb-4"
29
- v-for="(edu, index) in education"
30
- :key="`education-${index}`"
29
+ v-show="userData.user_skill.length > 0"
30
+ class="skills title-block mt-3 ml-4"
31
31
  >
32
- <h3 class="h6">{{ edu.institution }}</h3>
33
- <h4 class="h6 text-muted">{{ edu.formation }}</h4>
34
- <p>
35
- {{ edu.start_month }}/{{ edu.start_year }} -
36
- {{ treatEndDate(edu.end_month, edu.end_year) }}
37
- {{ getTime(edu) }}
38
- {{
39
- edu.user_education_period
40
- ? "-" + edu.user_education_period.name
41
- : ""
42
- }}
32
+ <h5 class="font-weight-bold mb-0">Habilidades</h5>
33
+ <div class="line"></div>
34
+
35
+ <p
36
+ v-for="(skill, index) in userData.user_skill"
37
+ :key="`skill-${index}`"
38
+ class="ml-1 mt-1 mb-0"
39
+ >
40
+ {{ skill.skill_word }}
43
41
  </p>
44
42
  </div>
45
43
 
46
- <h2 class="display-4 mt-4" v-show="courses.length">
47
- Cursos Profissionalizantes
48
- </h2>
49
44
  <div
50
- class="mb-4"
51
- v-for="(course, index) in courses"
52
- :key="`course-${index}`"
45
+ v-show="userData.user_language.length > 0"
46
+ class="languages title-block mt-3 ml-4"
53
47
  >
54
- <h4 class="h6">{{ course.name }}</h4>
55
- <p>{{ course.institution }} {{ getTime(course) }}</p>
48
+ <h5 class="font-weight-bold mb-0">Idiomas</h5>
49
+ <div class="line"></div>
50
+
51
+ <p v-for="(lan, index) in userData.user_language" :key="index">
52
+ {{ lan.language[0].name }} {{ languageLevel(lan.level) }}
53
+ </p>
56
54
  </div>
57
55
 
58
- <h2 class="display-4 mt-4" v-show="languages.length">Idiomas</h2>
59
56
  <div
60
- class="mb-4"
61
- v-for="(lang, index) in languages"
62
- :key="`lang-${index}`"
57
+ v-show="userData.user_desired_job.length > 0"
58
+ class="desidered title-block mt-3 ml-4"
63
59
  >
64
- <h4 class="h6 d-inline-block mr-3">{{ lang.language[0].name }}</h4>
65
- <el-tooltip placement="top" :content="languageLevel(lang.level)">
66
- <div class="d-inline-block">
67
- <font-awesome-icon
68
- :icon="['fas', 'star']"
69
- class="mr-2"
70
- v-for="(j, posStar) in Array(7)"
71
- :key="`level-${lang.language[0].name}-${posStar}`"
72
- :class="posStar < lang.level && 'text-warning'"
73
- />
74
- </div>
75
- </el-tooltip>
60
+ <h5 class="font-weight-bold mb-0">Cargos desejados</h5>
61
+ <div class="line"></div>
62
+
63
+ <p
64
+ v-for="(des, index) in userData.user_desired_job"
65
+ :key="`skill-${index}`"
66
+ class="ml-1 mt-1 mb-0"
67
+ >
68
+ {{ des.occupation }}
69
+ </p>
76
70
  </div>
77
71
 
78
- <h2 class="display-4 mt-4" v-show="skills.length">Habilidades</h2>
79
- <badge
80
- rounded
81
- type="primary"
82
- v-for="(skill, index) in skills"
83
- :key="`skill-${index}`"
84
- >{{ skill.skill_word }}</badge
85
- >
72
+ <div class="socials text-center mt-5">
73
+ <a
74
+ :href="baseUrl + '/' + userData.id"
75
+ class="text-center"
76
+ target="_blank"
77
+ rel="noopener noreferrer"
78
+ >
79
+ <img
80
+ class="no-social"
81
+ src="../../../../assets/images/burh.svg"
82
+ alt="Burh"
83
+ />
84
+ </a>
85
+ <a
86
+ v-show="userData.user_complementary_information.facebook_url"
87
+ :href="userData.user_complementary_information.facebook_url"
88
+ target="_blank"
89
+ class="ml-2"
90
+ rel="noopener noreferrer"
91
+ >
92
+ <img
93
+ src="../../../../assets/images/facebook.svg"
94
+ alt="Facebook"
95
+ />
96
+ </a>
97
+ <a
98
+ v-show="userData.user_complementary_information.linkedin_url"
99
+ :href="userData.user_complementary_information.linkedin_url"
100
+ target="_blank"
101
+ class="ml-2"
102
+ rel="noopener noreferrer"
103
+ >
104
+ <img
105
+ src="../../../../assets/images/linkedin.svg"
106
+ alt="Linkdin"
107
+ />
108
+ </a>
109
+ <a
110
+ v-show="userData.user_complementary_information.website"
111
+ :href="userData.user_complementary_information.website"
112
+ class="text-center ml-2"
113
+ target="_blank"
114
+ rel="noopener noreferrer"
115
+ >
116
+ <img
117
+ class="no-social"
118
+ src="../../../../assets/images/web.svg"
119
+ alt="Web"
120
+ />
121
+ </a>
122
+ </div>
123
+
124
+ <div class="burh-code text-center mt-4">
125
+ <vue-qrcode
126
+ :value="baseUrl + '/' + userData.id"
127
+ :options="{ width: 98, height: 98 }"
128
+ class="border qr-code"
129
+ ></vue-qrcode>
130
+ <p class="mb-0">Código BURH</p>
131
+ <span>{{ userData.id }}</span>
132
+ </div>
86
133
  </div>
87
134
  </template>
88
135
 
89
136
  <script>
90
- import getPrefixes from "~/util/getPrefixes.js";
137
+ import getPrefixes from '~/util/getPrefixes.js';
138
+ import VueQrcode from '@chenfengyuan/vue-qrcode';
91
139
 
92
140
  export default {
93
- name: "user-cv-left-side",
141
+ name: 'user-cv-left-side',
142
+ components: {
143
+ VueQrcode
144
+ },
94
145
  props: {
95
- name: String,
96
- avatar: String,
97
- yearsOld: String | Number,
98
- city: String,
99
- regionCode: String,
100
- neighborhood: String,
101
- street: String,
102
- number: String,
103
- cellphone: String,
104
- phone: String,
105
- currentUser: Object,
106
- education: {
107
- type: Array,
108
- default: () => []
109
- },
110
- courses: {
111
- type: Array,
112
- default: () => []
113
- },
114
- skills: {
115
- type: Array,
116
- default: () => []
117
- },
118
- languages: {
119
- type: Array,
120
- default: () => []
121
- }
146
+ userData: Object
122
147
  },
123
- mounted(){
124
- console.log(this.currentUser)
148
+ data() {
149
+ return {
150
+ baseUrl: process.env.baseAppUrl
151
+ };
125
152
  },
126
153
  methods: {
127
154
  getTime(
128
155
  { start_year = null, end_year = null, start_month, end_month },
129
- textHappening = "Cursando"
156
+ textHappening = 'Cursando'
130
157
  ) {
131
158
  const isHappening = !end_month && !end_year;
132
159
 
@@ -135,12 +162,12 @@ export default {
135
162
  }
136
163
 
137
164
  const dateInitial = this.$moment(
138
- ["1", start_month.toString(), start_year.toString()],
139
- "DD/MM/YYYY"
165
+ ['1', start_month.toString(), start_year.toString()],
166
+ 'DD/MM/YYYY'
140
167
  );
141
168
  const dateDone = this.$moment(
142
- ["1", end_month.toString(), end_year.toString()],
143
- "DD/MM/YYYY"
169
+ ['1', end_month.toString(), end_year.toString()],
170
+ 'DD/MM/YYYY'
144
171
  );
145
172
  const diffDuration = this.$moment.duration(
146
173
  dateDone.diff(dateInitial)
@@ -156,32 +183,32 @@ export default {
156
183
  ? `(${months} meses)`
157
184
  : months == 1
158
185
  ? `(${months} mês)`
159
- : "";
186
+ : '';
160
187
  },
161
188
  languageLevel(level) {
162
189
  switch (parseInt(level)) {
163
190
  case 1:
164
- return "Iniciante";
191
+ return 'Iniciante';
165
192
  case 2:
166
- return "Elementar";
193
+ return 'Elementar';
167
194
  case 3:
168
- return "Pré-intermediário";
195
+ return 'Pré-intermediário';
169
196
  case 4:
170
- return "Intermediário";
197
+ return 'Intermediário';
171
198
  case 5:
172
- return "Intermediário Superior";
199
+ return 'Intermediário Superior';
173
200
  case 6:
174
- return "Avançado";
201
+ return 'Avançado';
175
202
  case 7:
176
- return "Fluente";
203
+ return 'Fluente';
177
204
  default:
178
- return "";
205
+ return '';
179
206
  }
180
207
  },
181
208
  treatPhone(phone) {
182
209
  if (phone) {
183
- if (phone == "0" || phone.length < 9 || !phone) {
184
- return "não cadastrado";
210
+ if (phone == '0' || phone.length < 9 || !phone) {
211
+ return 'não cadastrado';
185
212
  }
186
213
  }
187
214
 
@@ -189,50 +216,110 @@ export default {
189
216
  },
190
217
  treatCellphone(cellphone) {
191
218
  if (cellphone) {
192
- if (cellphone == "0" || cellphone.length < 11 || !cellphone) {
193
- return "não cadastrado";
219
+ if (cellphone == '0' || cellphone.length < 11 || !cellphone) {
220
+ return 'não cadastrado';
194
221
  }
195
222
  }
196
223
 
197
224
  return cellphone;
198
225
  },
199
- handleGetPrefixes(name = "") {
226
+ handleGetPrefixes(name = '') {
200
227
  return getPrefixes(name);
201
228
  },
202
229
  treatEndDate(end_month, end_year) {
203
230
  if (end_month && end_year) {
204
231
  return `${end_month}/${end_year}`;
205
232
  }
206
- return "";
233
+ return '';
207
234
  }
208
235
  }
209
236
  };
210
237
  </script>
211
238
 
212
239
  <style lang="scss" scoped>
213
- @import "@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss";
240
+ @import '@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss';
214
241
 
215
242
  .bg-light--darken {
216
243
  background-color: $gray-100 !important;
217
244
  }
218
245
 
219
- .avatar {
220
- &.avatar-pdf {
221
- background-color: white;
222
- width: 104px;
223
- height: 104px;
224
- border-radius: 50%;
225
-
246
+ .profile {
247
+ .avatar {
226
248
  img {
227
- width: 90px;
228
- height: 90px;
229
- z-index: 2;
249
+ width: 178.14px;
250
+ height: 163px;
251
+ border-radius: 50%;
252
+ top: 75%;
253
+ }
254
+
255
+ .no-image {
256
+ display: flex;
257
+ justify-content: center;
258
+ align-items: center;
259
+
260
+ position: absolute;
261
+ background-color: #adb5bd;
262
+ width: 178.14px;
263
+ height: 163px;
264
+ top: 120;
230
265
  border-radius: 50%;
231
266
  }
232
267
  }
268
+
269
+ p {
270
+ font-size: 13px;
271
+ font-weight: 400;
272
+ color: #8da2b5;
273
+ }
274
+
275
+ span {
276
+ font-size: 14px;
277
+ font-weight: 500;
278
+ color: #8da2b5;
279
+ }
233
280
  }
234
281
 
235
- .cv-left{
282
+ .title-block {
283
+ .line {
284
+ width: 221px;
285
+ height: 0px;
286
+
287
+ border: 1px solid #ececec;
288
+ }
289
+
290
+ p {
291
+ font-size: 13px;
292
+ }
293
+ }
294
+
295
+ .burh-code {
296
+ .qr-code {
297
+ box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;
298
+ border-radius: 10px;
299
+ }
300
+
301
+ p {
302
+ font-size: 8px;
303
+ font-weight: bold;
304
+ }
305
+
306
+ span {
307
+ font-size: 12px;
308
+ font-weight: bold;
309
+ }
310
+ }
311
+
312
+ .socials {
313
+ .no-social {
314
+ width: 20px;
315
+ height: 20px;
316
+ background: #1d364b;
317
+ border-radius: 100%;
318
+ padding: 1px;
319
+ }
320
+ }
321
+
322
+ .cv-left {
236
323
  word-break: initial;
237
324
  }
238
325
 
@@ -240,4 +327,8 @@ export default {
240
327
  user-select: none;
241
328
  }
242
329
 
330
+ .content-left {
331
+ width: 25%;
332
+ height: auto;
333
+ }
243
334
  </style>