@burh/nuxt-core 1.0.500 → 1.0.502

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.
Files changed (492) hide show
  1. package/.ebignore +25 -25
  2. package/.elasticbeanstalk/config.yml +18 -18
  3. package/.eslintrc.json +39 -39
  4. package/.gitlab-ci.yml +16 -16
  5. package/.vscode/settings.json +10 -10
  6. package/CHANGELOG.md +2 -2
  7. package/README.md +22 -22
  8. package/app.html +8 -8
  9. package/assets/css/font-awesome/css/font-awesome.css +2337 -2337
  10. package/assets/css/font-awesome/css/font-awesome.min.css +4 -4
  11. package/assets/css/font-awesome/fonts/fontawesome-webfont.svg +2671 -2671
  12. package/assets/css/nucleo/css/nucleo-svg.css +134 -134
  13. package/assets/css/nucleo/css/nucleo.css +572 -572
  14. package/assets/css/nucleo/fonts/nucleo-icons.svg +312 -312
  15. package/assets/css/variables.css +2 -2
  16. package/assets/images/burhCv.svg +6 -6
  17. package/assets/images/facebookCv.svg +3 -3
  18. package/assets/images/icons/facebook.svg +14 -14
  19. package/assets/images/icons/historicCv.svg +3 -3
  20. package/assets/images/icons/icon3.svg +3 -3
  21. package/assets/images/icons/icon4.svg +3 -3
  22. package/assets/images/icons/icon5.svg +3 -3
  23. package/assets/images/icons/icon6.svg +3 -3
  24. package/assets/images/icons/icon7.svg +3 -3
  25. package/assets/images/icons/icon8.svg +7 -7
  26. package/assets/images/icons/linkedin.svg +14 -14
  27. package/assets/images/icons/notesCv.svg +3 -3
  28. package/assets/images/icons/twitter.svg +14 -14
  29. package/assets/images/icons/whatsapp.svg +14 -14
  30. package/assets/images/linkedinCv.svg +3 -3
  31. package/assets/images/webCv.svg +4 -4
  32. package/assets/sass/argon.scss +104 -104
  33. package/assets/sass/burh-ds/_components.scss +142 -142
  34. package/assets/sass/burh-ds/_functions.scss +29 -29
  35. package/assets/sass/burh-ds/_global.scss +327 -327
  36. package/assets/sass/burh-ds/_helpers.scss +18 -18
  37. package/assets/sass/burh-ds/_mixins.scss +17 -17
  38. package/assets/sass/burh-ds/_transitions.scss +12 -12
  39. package/assets/sass/burh-ds/_utilities.scss +31 -31
  40. package/assets/sass/burh-ds/_variables.scss +963 -963
  41. package/assets/sass/burh-ds/_vendors.scss +38 -38
  42. package/assets/sass/burh-ds/atoms/_badge.scss +5 -5
  43. package/assets/sass/burh-ds/atoms/_buttons.scss +222 -222
  44. package/assets/sass/burh-ds/atoms/_forms.scss +419 -419
  45. package/assets/sass/burh-ds/atoms/_tables.scss +31 -31
  46. package/assets/sass/burh-ds/atoms/_type.scss +147 -147
  47. package/assets/sass/burh-ds/content/_interface-spa.scss +306 -306
  48. package/assets/sass/burh-ds/content/_main-content.scss +25 -25
  49. package/assets/sass/burh-ds/mixins/_badge.scss +37 -37
  50. package/assets/sass/burh-ds/mixins/_breakpoints.scss +39 -39
  51. package/assets/sass/burh-ds/mixins/_grid-framework.scss +66 -66
  52. package/assets/sass/burh-ds/mixins/_grid.scss +51 -51
  53. package/assets/sass/burh-ds/molecules/_box.scss +282 -282
  54. package/assets/sass/burh-ds/molecules/_breadcrumb.scss +8 -8
  55. package/assets/sass/burh-ds/molecules/_modal.scss +176 -176
  56. package/assets/sass/burh-ds/molecules/_navbar.scss +262 -262
  57. package/assets/sass/burh-ds/molecules/_notifications.scss +1 -1
  58. package/assets/sass/burh-ds/molecules/_steps-profile.scss +67 -67
  59. package/assets/sass/burh-ds/molecules/_testimonial.scss +53 -53
  60. package/assets/sass/burh-ds/organisms/_banner.scss +51 -51
  61. package/assets/sass/burh-ds/organisms/_cards.scss +228 -228
  62. package/assets/sass/burh-ds/organisms/_carousel.scss +113 -113
  63. package/assets/sass/burh-ds/organisms/_footer.scss +115 -115
  64. package/assets/sass/burh-ds/organisms/_profile-bar.scss +130 -130
  65. package/assets/sass/burh-ds/organisms/_search.scss +17 -17
  66. package/assets/sass/burh-ds/organisms/_subheader.scss +773 -773
  67. package/assets/sass/burh-ds/organisms/_tabs-setting.scss +123 -123
  68. package/assets/sass/burh-ds/organisms/banners/_banner.scss +62 -62
  69. package/assets/sass/burh-ds/organisms/cards/_featured-company.scss +17 -17
  70. package/assets/sass/burh-ds/organisms/cards/_opportunity.scss +16 -16
  71. package/assets/sass/burh-ds/pages/_error.scss +124 -124
  72. package/assets/sass/burh-ds/pages/_jobs.scss +424 -424
  73. package/assets/sass/burh-ds/pages/_testes.scss +350 -350
  74. package/assets/sass/burh-ds/variables/_colors.scss +358 -356
  75. package/assets/sass/burh-ds/variables/_global_settings.scss +39 -39
  76. package/assets/sass/core/alerts/_alert-dismissible.scss +48 -48
  77. package/assets/sass/core/alerts/_alert-notify.scss +47 -47
  78. package/assets/sass/core/alerts/_alert.scss +49 -49
  79. package/assets/sass/core/avatars/_avatar-group.scss +22 -22
  80. package/assets/sass/core/avatars/_avatar.scss +59 -59
  81. package/assets/sass/core/badges/_badge-circle.scss +29 -29
  82. package/assets/sass/core/badges/_badge-dot.scss +42 -42
  83. package/assets/sass/core/badges/_badge-floating.scss +18 -18
  84. package/assets/sass/core/badges/_badge.scss +67 -67
  85. package/assets/sass/core/breadcrumbs/_breadcrumb.scss +42 -42
  86. package/assets/sass/core/buttons/_button-brand.scss +12 -12
  87. package/assets/sass/core/buttons/_button-group.scss +79 -79
  88. package/assets/sass/core/buttons/_button-icon.scss +92 -92
  89. package/assets/sass/core/buttons/_button.scss +90 -90
  90. package/assets/sass/core/cards/_card-animations.scss +10 -10
  91. package/assets/sass/core/cards/_card-blockquote.scss +17 -17
  92. package/assets/sass/core/cards/_card-money.scss +27 -27
  93. package/assets/sass/core/cards/_card-pricing.scss +26 -26
  94. package/assets/sass/core/cards/_card-profile.scss +49 -49
  95. package/assets/sass/core/cards/_card-stats.scss +16 -16
  96. package/assets/sass/core/cards/_card.scss +70 -70
  97. package/assets/sass/core/charts/_chart.scss +69 -69
  98. package/assets/sass/core/close/_close.scss +47 -47
  99. package/assets/sass/core/collapse/_accordion.scss +38 -38
  100. package/assets/sass/core/content/_main-content.scss +17 -17
  101. package/assets/sass/core/custom-forms/_custom-checkbox.scss +47 -47
  102. package/assets/sass/core/custom-forms/_custom-control.scss +58 -58
  103. package/assets/sass/core/custom-forms/_custom-form.scss +45 -45
  104. package/assets/sass/core/custom-forms/_custom-radio.scss +38 -38
  105. package/assets/sass/core/custom-forms/_custom-toggle.scss +122 -122
  106. package/assets/sass/core/dropdowns/_dropdown.scss +89 -89
  107. package/assets/sass/core/footers/_footer.scss +159 -159
  108. package/assets/sass/core/forms/_form-extend.scss +38 -38
  109. package/assets/sass/core/forms/_form-validation.scss +78 -78
  110. package/assets/sass/core/forms/_form.scss +125 -125
  111. package/assets/sass/core/forms/_input-group.scss +136 -136
  112. package/assets/sass/core/grid/_grid.scss +31 -31
  113. package/assets/sass/core/headers/_header.scss +7 -7
  114. package/assets/sass/core/icons/_icon-actions.scss +57 -57
  115. package/assets/sass/core/icons/_icon-shape.scss +48 -48
  116. package/assets/sass/core/icons/_icon.scss +88 -88
  117. package/assets/sass/core/list-groups/_list-check.scss +52 -52
  118. package/assets/sass/core/list-groups/_list-group.scss +46 -46
  119. package/assets/sass/core/maps/_map.scss +10 -10
  120. package/assets/sass/core/masks/_mask.scss +33 -33
  121. package/assets/sass/core/medias/_media-comment.scss +33 -33
  122. package/assets/sass/core/medias/_media.scss +3 -3
  123. package/assets/sass/core/mixins/_alert.scss +22 -22
  124. package/assets/sass/core/mixins/_background-variant.scss +30 -30
  125. package/assets/sass/core/mixins/_badge.scss +12 -12
  126. package/assets/sass/core/mixins/_buttons.scss +105 -105
  127. package/assets/sass/core/mixins/_custom-forms.scss +47 -47
  128. package/assets/sass/core/mixins/_forms.scss +127 -127
  129. package/assets/sass/core/mixins/_icon.scss +10 -10
  130. package/assets/sass/core/mixins/_modals.scss +25 -25
  131. package/assets/sass/core/mixins/_popover.scss +35 -35
  132. package/assets/sass/core/modals/_modal.scss +31 -31
  133. package/assets/sass/core/navbars/_navbar-collapse.scss +37 -37
  134. package/assets/sass/core/navbars/_navbar-dropdown.scss +121 -121
  135. package/assets/sass/core/navbars/_navbar-floating.scss +17 -17
  136. package/assets/sass/core/navbars/_navbar-search.scss +216 -216
  137. package/assets/sass/core/navbars/_navbar-top.scss +58 -58
  138. package/assets/sass/core/navbars/_navbar-vertical.scss +507 -507
  139. package/assets/sass/core/navbars/_navbar.scss +368 -368
  140. package/assets/sass/core/navs/_nav-pills.scss +66 -66
  141. package/assets/sass/core/navs/_nav.scss +33 -33
  142. package/assets/sass/core/paginations/_pagination.scss +49 -49
  143. package/assets/sass/core/popovers/_popover.scss +21 -21
  144. package/assets/sass/core/progresses/_progress.scss +89 -89
  145. package/assets/sass/core/reboot/_reboot.scss +13 -13
  146. package/assets/sass/core/sections/_nucleo-icons.scss +117 -117
  147. package/assets/sass/core/separators/_separator.scss +54 -54
  148. package/assets/sass/core/shortcuts/_shortcut.scss +30 -30
  149. package/assets/sass/core/tables/_table-actions.scss +25 -25
  150. package/assets/sass/core/tables/_table-sortable.scss +28 -28
  151. package/assets/sass/core/tables/_table.scss +153 -153
  152. package/assets/sass/core/timeline/_timeline.scss +182 -182
  153. package/assets/sass/core/type/_article.scss +22 -22
  154. package/assets/sass/core/type/_display.scss +14 -14
  155. package/assets/sass/core/type/_heading.scss +65 -65
  156. package/assets/sass/core/type/_type.scss +27 -27
  157. package/assets/sass/core/utilities/_backgrounds.scss +51 -51
  158. package/assets/sass/core/utilities/_blurable.scss +37 -37
  159. package/assets/sass/core/utilities/_floating.scss +64 -64
  160. package/assets/sass/core/utilities/_helper.scss +18 -18
  161. package/assets/sass/core/utilities/_image.scss +9 -9
  162. package/assets/sass/core/utilities/_opacity.scss +35 -35
  163. package/assets/sass/core/utilities/_overflow.scss +11 -11
  164. package/assets/sass/core/utilities/_position.scss +25 -25
  165. package/assets/sass/core/utilities/_shadows.scss +28 -28
  166. package/assets/sass/core/utilities/_sizing.scss +7 -7
  167. package/assets/sass/core/utilities/_spacing.scss +107 -107
  168. package/assets/sass/core/utilities/_text.scss +49 -49
  169. package/assets/sass/core/utilities/_transform.scss +13 -13
  170. package/assets/sass/core/vendors/_bootstrap-datepicker.scss +279 -279
  171. package/assets/sass/core/vendors/_bootstrap-tagsinput.scss +67 -67
  172. package/assets/sass/core/vendors/_chartjs.scss +22 -22
  173. package/assets/sass/core/vendors/_dropzone.scss +74 -74
  174. package/assets/sass/core/vendors/_element-checkbox.scss +26 -26
  175. package/assets/sass/core/vendors/_element-tables.scss +61 -61
  176. package/assets/sass/core/vendors/_flatpickr.scss +72 -72
  177. package/assets/sass/core/vendors/_fullcalendar.scss +256 -256
  178. package/assets/sass/core/vendors/_headroom.scss +25 -25
  179. package/assets/sass/core/vendors/_lavalamp.scss +157 -157
  180. package/assets/sass/core/vendors/_nouislider.scss +413 -413
  181. package/assets/sass/core/vendors/_quill.scss +280 -280
  182. package/assets/sass/core/vendors/_scrollbar.scss +949 -949
  183. package/assets/sass/core/vendors/_select.scss +70 -70
  184. package/assets/sass/core/vendors/_sweet-alert-2.scss +22 -22
  185. package/assets/sass/core/vendors/_tags.scss +32 -32
  186. package/assets/sass/core/vendors/_vectormap.scss +16 -16
  187. package/assets/sass/custom/_components.scss +142 -142
  188. package/assets/sass/custom/_functions.scss +29 -29
  189. package/assets/sass/custom/_mixins.scss +15 -15
  190. package/assets/sass/custom/_transitions.scss +12 -12
  191. package/assets/sass/custom/_utilities.scss +31 -31
  192. package/assets/sass/custom/_variables.scss +1077 -1077
  193. package/assets/sass/custom/_vendors.scss +38 -38
  194. package/components/argon-core/Badge.vue +56 -56
  195. package/components/argon-core/Banners/Banner.vue +28 -28
  196. package/components/argon-core/Banners/BannerItem.vue +13 -13
  197. package/components/argon-core/BaseAlert.vue +74 -74
  198. package/components/argon-core/BaseButton.vue +81 -81
  199. package/components/argon-core/BaseDropdown.vue +114 -114
  200. package/components/argon-core/BaseHeader.vue +21 -21
  201. package/components/argon-core/BasePagination.vue +172 -172
  202. package/components/argon-core/BaseProgress.vue +121 -121
  203. package/components/argon-core/BaseSlider.vue +96 -96
  204. package/components/argon-core/BaseSwitch.vue +46 -46
  205. package/components/argon-core/BaseTable.vue +70 -70
  206. package/components/argon-core/Breadcrumb/Breadcrumb.vue +26 -26
  207. package/components/argon-core/Breadcrumb/BreadcrumbItem.vue +16 -16
  208. package/components/argon-core/Breadcrumb/RouteBreadcrumb.vue +45 -45
  209. package/components/argon-core/ButtonCheckbox.vue +39 -39
  210. package/components/argon-core/ButtonRadioGroup.vue +47 -47
  211. package/components/argon-core/Cards/Card.vue +71 -71
  212. package/components/argon-core/Cards/OpportunityCard.vue +39 -39
  213. package/components/argon-core/Cards/StatsCard.vue +49 -49
  214. package/components/argon-core/Charts/BarChart.js +30 -30
  215. package/components/argon-core/Charts/DoughnutChart.js +30 -30
  216. package/components/argon-core/Charts/LineChart.js +30 -30
  217. package/components/argon-core/Charts/PieChart.js +30 -30
  218. package/components/argon-core/Charts/config.js +491 -491
  219. package/components/argon-core/Charts/globalOptionsMixin.js +7 -7
  220. package/components/argon-core/Charts/optionHelpers.js +10 -10
  221. package/components/argon-core/CloseButton.vue +35 -35
  222. package/components/argon-core/Collapse/Collapse.vue +84 -84
  223. package/components/argon-core/Collapse/CollapseItem.vue +91 -91
  224. package/components/argon-core/Feed/Comment.vue +50 -50
  225. package/components/argon-core/Inputs/BaseCheckbox.vue +79 -79
  226. package/components/argon-core/Inputs/BaseInput.vue +270 -270
  227. package/components/argon-core/Inputs/BaseRadio.vue +68 -68
  228. package/components/argon-core/Inputs/DropzoneFileUpload.vue +138 -138
  229. package/components/argon-core/Inputs/DropzoneVideoUpload.vue +138 -138
  230. package/components/argon-core/Inputs/FileInput.vue +54 -54
  231. package/components/argon-core/Inputs/HtmlEditor.vue +105 -105
  232. package/components/argon-core/Inputs/IconCheckbox.vue +45 -45
  233. package/components/argon-core/Inputs/TagsInput.vue +100 -100
  234. package/components/argon-core/LoadingPanel.vue +26 -26
  235. package/components/argon-core/Modal.vue +180 -180
  236. package/components/argon-core/Navbar/BaseNav.vue +122 -122
  237. package/components/argon-core/Navbar/NavbarProgress.vue +19 -19
  238. package/components/argon-core/Navbar/NavbarProgressItem.vue +17 -17
  239. package/components/argon-core/Navbar/NavbarToggleButton.vue +21 -21
  240. package/components/argon-core/NavbarToggleButton.vue +29 -29
  241. package/components/argon-core/NotificationPlugin/Notification.vue +207 -207
  242. package/components/argon-core/NotificationPlugin/Notifications.vue +55 -55
  243. package/components/argon-core/NotificationPlugin/index.js +66 -66
  244. package/components/argon-core/SidebarPlugin/SideBar.vue +119 -119
  245. package/components/argon-core/SidebarPlugin/SidebarItem.vue +184 -184
  246. package/components/argon-core/SidebarPlugin/index.js +79 -79
  247. package/components/argon-core/Tabs/Tab.vue +33 -33
  248. package/components/argon-core/Tabs/Tabs.vue +170 -170
  249. package/components/argon-core/Timeline/TimeLine.vue +17 -17
  250. package/components/argon-core/Timeline/TimeLineItem.vue +30 -30
  251. package/components/argon-core/WorldMap/AsyncWorldMap.vue +28 -28
  252. package/components/argon-core/WorldMap/WorldMap.vue +127 -127
  253. package/components/argon-core/index.js +82 -82
  254. package/components/burh-ds/Avatar/AvatarLink.vue +44 -44
  255. package/components/burh-ds/Avatar/BusinessAvatar.vue +38 -38
  256. package/components/burh-ds/Banners/BannerHero.vue +23 -23
  257. package/components/burh-ds/Banners/BannerItem.vue +14 -14
  258. package/components/burh-ds/Button/ExportButton.vue +20 -20
  259. package/components/burh-ds/Button/SwitchStateButton.vue +165 -165
  260. package/components/burh-ds/Capsules/SearchSlug.vue +860 -860
  261. package/components/burh-ds/Capsules/UserProfile.vue +1938 -1938
  262. package/components/burh-ds/Cards/BaseCard.vue +195 -195
  263. package/components/burh-ds/Cards/CampaignCard.vue +40 -40
  264. package/components/burh-ds/Cards/CompanyCard.vue +39 -39
  265. package/components/burh-ds/Cards/CourseInfoCard.vue +267 -267
  266. package/components/burh-ds/Cards/FeatureBusinessCard.vue +74 -74
  267. package/components/burh-ds/Cards/FunctionalityItem.vue +35 -35
  268. package/components/burh-ds/Cards/OpportunityCard.vue +115 -115
  269. package/components/burh-ds/Cards/PerformanceCard.vue +81 -81
  270. package/components/burh-ds/Cards/PerformanceItem.vue +65 -65
  271. package/components/burh-ds/Cards/PlanCard.vue +192 -192
  272. package/components/burh-ds/Cards/ProductCard.vue +142 -142
  273. package/components/burh-ds/Cards/PurchaseCard.vue +58 -58
  274. package/components/burh-ds/Cards/PurchaseCardSimple.vue +58 -58
  275. package/components/burh-ds/Cards/TestCard.vue +192 -192
  276. package/components/burh-ds/Cards/TrainingCard.vue +151 -151
  277. package/components/burh-ds/Cards/WelcomeCard.vue +106 -106
  278. package/components/burh-ds/Carousel/FeedCarousel.vue +47 -47
  279. package/components/burh-ds/Carousel/ImageCarousel.vue +111 -111
  280. package/components/burh-ds/Chart/DoughnutChart.vue +20 -20
  281. package/components/burh-ds/Collapse/DefaultCollapse.vue +70 -70
  282. package/components/burh-ds/Crop/Crop.vue +121 -121
  283. package/components/burh-ds/Curriculum/UserCurriculum/UpgradePlan.vue +71 -71
  284. package/components/burh-ds/Curriculum/UserCurriculum/UserCvLeftSide.vue +523 -523
  285. package/components/burh-ds/Curriculum/UserCurriculum/UserCvMiddle.vue +590 -590
  286. package/components/burh-ds/Curriculum/UserCurriculum/UserCvRightSide.vue +1266 -1211
  287. package/components/burh-ds/Curriculum/UserCurriculum/UserCvRightSideNotAuth.vue +496 -496
  288. package/components/burh-ds/Curriculum/UserCurriculum/index.vue +258 -258
  289. package/components/burh-ds/Dropdown/AppLinkArea.vue +132 -132
  290. package/components/burh-ds/Dropdown/DropdownItem.vue +26 -26
  291. package/components/burh-ds/Dropdown/DropdownSection.vue +38 -38
  292. package/components/burh-ds/Dropdown/FaqVideoArea.vue +88 -88
  293. package/components/burh-ds/Dropdown/SignOutItem.vue +11 -11
  294. package/components/burh-ds/Dropdown/UserMenuDropdown.vue +63 -63
  295. package/components/burh-ds/FeaturedCompanies/FeaturedCompanies.vue +11 -11
  296. package/components/burh-ds/FeaturedCompanies/FeaturedCompanyCard.vue +16 -16
  297. package/components/burh-ds/Filters/BaseFilterContainer.vue +138 -138
  298. package/components/burh-ds/Filters/FilterWithDropdown.vue +289 -289
  299. package/components/burh-ds/Groups/ProductItem.vue +62 -62
  300. package/components/burh-ds/Groups/SimpleProductItem.vue +164 -162
  301. package/components/burh-ds/Headings/AppHeader.vue +373 -373
  302. package/components/burh-ds/Headings/BaseHeader.vue +24 -24
  303. package/components/burh-ds/Headings/Profile.vue +66 -66
  304. package/components/burh-ds/Headings/ProfileHeader.vue +105 -105
  305. package/components/burh-ds/Headings/SettingsHeader.vue +48 -48
  306. package/components/burh-ds/Headings/StepHeader.vue +122 -122
  307. package/components/burh-ds/Img/ImageWithFallback.vue +67 -67
  308. package/components/burh-ds/Input/AutoComplete.vue +136 -136
  309. package/components/burh-ds/Inputs/BaseCheckbox.vue +73 -73
  310. package/components/burh-ds/Inputs/BaseSwitch.vue +43 -43
  311. package/components/burh-ds/Inputs/BaseSwitchSecondary.vue +84 -84
  312. package/components/burh-ds/Inputs/DoubleInputWithIcon.vue +100 -100
  313. package/components/burh-ds/Inputs/HtmlEditor.vue +60 -60
  314. package/components/burh-ds/Inputs/SearchInput.vue +88 -88
  315. package/components/burh-ds/InterfaceSpa/InterfaceSpa.vue +83 -83
  316. package/components/burh-ds/Jobs/JobDetail.vue +432 -432
  317. package/components/burh-ds/Jobs/JobDetailDesign.vue +151 -151
  318. package/components/burh-ds/Jobs/JobDetailEmpty.vue +27 -27
  319. package/components/burh-ds/Labels/LabelContextIcon.vue +58 -58
  320. package/components/burh-ds/Link/DefaultLink.vue +30 -30
  321. package/components/burh-ds/Lists/ListAvatarCheckbox.vue +157 -157
  322. package/components/burh-ds/Lists/ListNavLinks.vue +54 -54
  323. package/components/burh-ds/Lists/VagasSimple.vue +404 -404
  324. package/components/burh-ds/Loadings/Basics.vue +80 -80
  325. package/components/burh-ds/Loadings/InfiniteLoading.vue +21 -21
  326. package/components/burh-ds/Loadings/LoadingFullPage.vue +68 -68
  327. package/components/burh-ds/Loadings/NewLoading.vue +119 -119
  328. package/components/burh-ds/Loads/LoadingBar.vue +83 -83
  329. package/components/burh-ds/Modals/AddCustomerModal.vue +484 -484
  330. package/components/burh-ds/Modals/AddMember.vue +255 -255
  331. package/components/burh-ds/Modals/AddRoleModal.vue +139 -139
  332. package/components/burh-ds/Modals/AppConfigModal.vue +643 -643
  333. package/components/burh-ds/Modals/CourseMessageModal.vue +66 -66
  334. package/components/burh-ds/Modals/DocsModal.vue +111 -111
  335. package/components/burh-ds/Modals/DropzoneModal.vue +125 -125
  336. package/components/burh-ds/Modals/InviteToRole.vue +287 -287
  337. package/components/burh-ds/Modals/MobileModal.vue +65 -65
  338. package/components/burh-ds/Modals/ModalTests.vue +167 -167
  339. package/components/burh-ds/Modals/NewUserModal.vue +87 -87
  340. package/components/burh-ds/Modals/PlanModal.vue +327 -327
  341. package/components/burh-ds/Modals/RequestModal.vue +237 -237
  342. package/components/burh-ds/Modals/SendCourse.vue +448 -448
  343. package/components/burh-ds/Modals/SendDisc.vue +230 -230
  344. package/components/burh-ds/Modals/SendTest.vue +362 -362
  345. package/components/burh-ds/Modals/ShareModal.vue +228 -228
  346. package/components/burh-ds/Modals/SharedModal.vue +230 -230
  347. package/components/burh-ds/Modals/SmsModal.vue +329 -329
  348. package/components/burh-ds/Modals/SubModal.vue +41 -41
  349. package/components/burh-ds/Modals/UniversalShareModal.vue +216 -216
  350. package/components/burh-ds/Modals/UniversalWhatsappModal.vue +93 -93
  351. package/components/burh-ds/Modals/UniversityAccessModal.vue +135 -135
  352. package/components/burh-ds/Modals/VideoModal.vue +80 -80
  353. package/components/burh-ds/Modals/WhatsappModal.vue +92 -92
  354. package/components/burh-ds/Navbar/BaseNav.vue +119 -119
  355. package/components/burh-ds/Notifications/Notification.vue +215 -215
  356. package/components/burh-ds/Notifications/Notifications.vue +55 -55
  357. package/components/burh-ds/Notifications/index.js +66 -66
  358. package/components/burh-ds/Pagination/NamedPagination.vue +187 -187
  359. package/components/burh-ds/Questions/Question.vue +243 -243
  360. package/components/burh-ds/Questions/QuestionAttach.vue +13 -13
  361. package/components/burh-ds/Questions/QuestionRadio.vue +122 -122
  362. package/components/burh-ds/Questions/QuestionRadioItem.vue +83 -83
  363. package/components/burh-ds/Questions/QuestionText.vue +66 -66
  364. package/components/burh-ds/Questions/index.js +13 -13
  365. package/components/burh-ds/Skeleton/AppHeader.vue +173 -173
  366. package/components/burh-ds/Skeleton/BaseCardTest.vue +51 -51
  367. package/components/burh-ds/Skeleton/BaseCardUniversity.vue +79 -79
  368. package/components/burh-ds/Skeleton/BaseCardUser.vue +84 -84
  369. package/components/burh-ds/Skeleton/BaseCourseInfo.vue +116 -116
  370. package/components/burh-ds/Skeleton/BaseTraining.vue +29 -29
  371. package/components/burh-ds/Skeleton/BufferFolderSkeleton.vue +45 -45
  372. package/components/burh-ds/Skeleton/BufferUserSkeleton.vue +142 -142
  373. package/components/burh-ds/Skeleton/Cards.vue +86 -86
  374. package/components/burh-ds/Skeleton/ChartCard.vue +114 -114
  375. package/components/burh-ds/Skeleton/Home.vue +100 -100
  376. package/components/burh-ds/Skeleton/RecruitmentCard.vue +203 -203
  377. package/components/burh-ds/Skeleton/SkeletonAnimate.vue +146 -146
  378. package/components/burh-ds/Tabs/Tab.vue +56 -56
  379. package/components/burh-ds/Tabs/Tabs.vue +188 -188
  380. package/components/burh-ds/Tabs/TesteTab.vue +132 -132
  381. package/components/burh-ds/Video/MuxVideo.vue +39 -39
  382. package/components/burh-ds/index.js +20 -20
  383. package/components/layouts/argon/Content.vue +17 -17
  384. package/components/layouts/argon/navbar/BlankLayout.vue +61 -61
  385. package/components/layouts/argon/navbar/DashboardNavbar.vue +307 -307
  386. package/components/layouts/burh-ds/ContentFooter.vue +45 -45
  387. package/components/layouts/burh-ds/footer/FooterSimple.vue +20 -20
  388. package/components/layouts/burh-ds/footer/ProductsFooter.vue +330 -330
  389. package/components/layouts/burh-ds/footer/StatusFooter.vue +105 -105
  390. package/components/layouts/burh-ds/footer/StoreFooter.vue +54 -54
  391. package/components/layouts/burh-ds/navbar/AppNavbar.vue +97 -97
  392. package/components/layouts/burh-ds/navbar/BusinessGlobalNavbar.vue +435 -435
  393. package/components/layouts/burh-ds/navbar/CarreirasNavbar.vue +363 -363
  394. package/components/layouts/burh-ds/navbar/CompanyGlobalNavbar.vue +244 -244
  395. package/components/layouts/burh-ds/navbar/EmpresasNavbar.vue +374 -374
  396. package/components/layouts/burh-ds/navbar/EmpresasNavbarLogado.vue +388 -388
  397. package/components/layouts/burh-ds/navbar/GlobalNavbar.vue +535 -535
  398. package/components/layouts/burh-ds/navbar/MobileNavbar.vue +431 -431
  399. package/components/layouts/burh-ds/navbar/PublicNavbar.vue +168 -168
  400. package/components/layouts/burh-ds/navbar/SimpleNavbar.vue +129 -129
  401. package/components/layouts/burh-ds/navbar/UserNavbar.vue +346 -346
  402. package/components/layouts/burh-ds/navbar/UserNavbarLogin.vue +253 -253
  403. package/components/organismos/atomos/Deslike.vue +26 -26
  404. package/components/organismos/atomos/Like.vue +26 -26
  405. package/components/organismos/emptyChart/index.vue +39 -39
  406. package/components/pages/UserProfile/EditProfileForm.vue +142 -142
  407. package/components/pages/UserProfile/UserCard.vue +61 -61
  408. package/components/pages/dashboard/ActivityFeed.vue +102 -102
  409. package/components/pages/dashboard/LightTable.vue +194 -194
  410. package/components/pages/dashboard/PageVisitsTable.vue +107 -107
  411. package/components/pages/dashboard/ProgressTrackList.vue +82 -82
  412. package/components/pages/dashboard/SocialTrafficTable.vue +101 -101
  413. package/components/pages/dashboard/TaskList.vue +56 -56
  414. package/components/pages/dashboard/UserList.vue +72 -72
  415. package/components/pages/forms/BrowserDefaultsValidation.vue +106 -106
  416. package/components/pages/forms/CustomStylesValidation.vue +130 -130
  417. package/components/pages/forms/ServerSideValidation.vue +128 -128
  418. package/components/pages/register/FailedRegistration.vue +29 -29
  419. package/components/pages/register/SuccessfulRegistration.vue +29 -29
  420. package/components/tables/PaginatedTables/clientPaginationMixin.js +86 -86
  421. package/components/tables/RegularTables/CheckboxColoredTable.vue +112 -112
  422. package/components/tables/RegularTables/CheckboxTable.vue +101 -101
  423. package/components/tables/RegularTables/DarkTable.vue +114 -114
  424. package/components/tables/RegularTables/InlineActionsTable.vue +94 -94
  425. package/components/tables/RegularTables/LightTable.vue +117 -117
  426. package/components/tables/RegularTables/StripedTable.vue +94 -94
  427. package/components/tables/RegularTables/TranslucentTable.vue +114 -114
  428. package/components/tables/projects.js +75 -75
  429. package/components/tables/users.js +42 -42
  430. package/components/tables/users2.js +474 -474
  431. package/components/widgets/CalendarWidget.vue +119 -119
  432. package/components/widgets/CreditCard.vue +66 -66
  433. package/components/widgets/MembersCard.vue +99 -99
  434. package/components/widgets/PaypalCard.vue +45 -45
  435. package/components/widgets/ProgressTrackList.vue +76 -76
  436. package/components/widgets/StatsCards.vue +70 -70
  437. package/components/widgets/TaskList.vue +67 -67
  438. package/components/widgets/TimelineCard.vue +66 -66
  439. package/components/widgets/VectorMapCard.vue +139 -139
  440. package/components/widgets/VisaCard.vue +51 -51
  441. package/data/ListVideoLinksMock.json +21 -21
  442. package/dictionary.js +38 -38
  443. package/environment.env.md +34 -34
  444. package/environment.js +221 -221
  445. package/eslint.config.json +12 -12
  446. package/layouts/AuthLayout.vue +191 -191
  447. package/layouts/BurhCarreirasLayout.vue +63 -63
  448. package/layouts/BurhEmpresasLayout.vue +64 -64
  449. package/layouts/BurhNoHeader.vue +63 -63
  450. package/layouts/BurhPublicLayout.vue +67 -67
  451. package/layouts/BurhUserLayout.vue +231 -231
  452. package/layouts/DashboardLayout.vue +226 -226
  453. package/layouts/error.vue +119 -119
  454. package/metadata.json +30 -30
  455. package/middleware/README.md +8 -8
  456. package/middleware/decodeUrl.js +8 -8
  457. package/middleware/maintenance.js +9 -9
  458. package/middleware/new-account.js +6 -6
  459. package/middleware/redirect.js +13 -13
  460. package/middleware/user-agent-error.js +28 -28
  461. package/nuxt.config.js +207 -207
  462. package/package.json +119 -119
  463. package/plugins/README.md +7 -7
  464. package/plugins/analytics/ga.js +28 -28
  465. package/plugins/auth/auth.js +210 -210
  466. package/plugins/axios.js +32 -32
  467. package/plugins/carousel/owl-carousel.js +3 -3
  468. package/plugins/crop/crop.js +4 -4
  469. package/plugins/dashboard/dashboard-plugin.js +31 -31
  470. package/plugins/dashboard/directives/click-outside.js +15 -15
  471. package/plugins/dashboard/eventBus.js +1 -1
  472. package/plugins/dashboard/globalComponents.js +44 -44
  473. package/plugins/dashboard/globalDirectives.js +7 -7
  474. package/plugins/dom/loader.js +76 -76
  475. package/plugins/localstorage.js +20 -20
  476. package/plugins/location/location.js +41 -41
  477. package/plugins/pagination/pagination.js +3 -3
  478. package/plugins/qrcode/qrcode.js +4 -4
  479. package/plugins/router.js +8 -8
  480. package/plugins/social-media/fb-sdk.js +44 -44
  481. package/plugins/social-media/share-link-facebook.js +32 -32
  482. package/plugins/social-media/share-link-linkedin.js +30 -30
  483. package/plugins/social-media/share-link-twitter.js +30 -30
  484. package/plugins/social-media/share-link-whatsapp.js +31 -31
  485. package/plugins/vClickOutside.js +4 -4
  486. package/polyfills.js +96 -96
  487. package/util/common.js +189 -189
  488. package/util/cookie.js +28 -28
  489. package/util/dom.js +63 -63
  490. package/util/getPrefixes.js +12 -12
  491. package/util/request.js +46 -46
  492. package/util/throttle.js +15 -15
@@ -1,1211 +1,1266 @@
1
- <template>
2
- <div class="bg-white content-right tabs">
3
- <el-tabs
4
- :class="activeTab"
5
- class="mt-3 handle-icon-color"
6
- v-model="activeTab"
7
- >
8
- <el-tab-pane v-if="companyHasAutomation && hasAutomation" name="melissa" class="mx-2">
9
- <span class="tab__icon-pane" slot="label">
10
- <img
11
- class="img__icon-pane"
12
- src="/img/recruitment/melissa.svg"
13
- />
14
- </span>
15
- <p class="notes-title mb-0 notes-melissa-title">
16
- {{automation.aproved ?
17
- 'Candidato aprovado pela Melissa' :
18
- 'Candidato reprovado pela Melissa'}}
19
- </p>
20
- <div class="line mb-3"></div>
21
- <template>
22
- <template>
23
- <div v-if="automation && automation.vehicle_license && automation.vehicle_license.vehicle_license !== null">
24
- <div class="notes-baloon-melissa mt-2">
25
- <div class="question-melissa-title">
26
- <span>
27
- Você tem uma carteira de motorista válida?
28
- </span>
29
- </div>
30
- <div class="notes-text-melissa pt-2">
31
- <span class="mt-2">
32
- {{ Boolean(automation.vehicle_license.vehicle_license) ? "Sim" : "Não" }}
33
- <span v-if="automation.vehicle_license.vehicle_license_approved">
34
- &#x2705;
35
- </span>
36
- <span v-else>
37
- &#x274C;
38
- </span>
39
- </span>
40
- </div>
41
- </div>
42
- </div>
43
- <div v-if="automation && automation.city && automation.city.city !== null">
44
- <div class="notes-baloon-melissa mt-2">
45
- <div class="question-melissa-title">
46
- <span>
47
- Você pode se locomover até onde esta vaga está localizada?
48
- </span>
49
- </div>
50
- <div class="notes-text-melissa pt-2">
51
- <span class="mt-2">
52
- {{ Boolean(automation.city.city) ? "Sim" : "Não" }}
53
- <span v-if="automation.city.city_approved">
54
- &#x2705;
55
- </span>
56
- <span v-else>
57
- &#x274C;
58
- </span>
59
- </span>
60
- </div>
61
- </div>
62
- </div>
63
- <div v-if="automation && automation.urgent_hiring && automation.urgent_hiring.urgent_hiring !== null">
64
- <div class="notes-baloon-melissa mt-2">
65
- <div class="question-melissa-title">
66
- <span>
67
- Precisamos preencher esta posição com urgência. Você poderia começar imediatamente?
68
- </span>
69
- </div>
70
- <div class="notes-text-melissa pt-2">
71
- <span class="mt-2">
72
- {{ Boolean(automation.urgent_hiring.urgent_hiring) ? "Sim" : "Não" }}
73
- <span v-if="automation.urgent_hiring.urgent_hiring_approved">
74
- &#x2705;
75
- </span>
76
- <span v-else>
77
- &#x274C;
78
- </span>
79
- </span>
80
- </div>
81
- </div>
82
- </div>
83
- <div v-if="automation && automation.school_formation && automation.school_formation.school_formation !== null && automation.school_formation.option !== null">
84
- <div class="notes-baloon-melissa mt-2">
85
- <div class="question-melissa-title">
86
- <span>
87
- Você completou o curso: <b>{{automation.school_formation.option}}</b>?
88
- </span>
89
- </div>
90
- <div class="notes-text-melissa pt-2">
91
- <span class="mt-2">
92
- {{ Boolean(automation.school_formation.school_formation) ? "Sim" : "Não" }}
93
-
94
- <span v-if="automation.school_formation.school_formation_approved">
95
- &#x2705;
96
- </span>
97
- <span v-else>
98
- &#x274C;
99
- </span>
100
- </span>
101
- </div>
102
- </div>
103
- </div>
104
- <div v-if="automation && automation.tool_experience && automation.tool_experience.tool_experience !== null && automation.tool_experience.option !== null">
105
- <div class="notes-baloon-melissa mt-2">
106
- <div class="question-melissa-title">
107
- <span>
108
- Quantos anos de experiência você tem utilizando <b>{{automation.tool_experience.option}}</b>?
109
- </span>
110
- </div>
111
- <div class="notes-text-melissa pt-2">
112
- <span class="mt-2">
113
- {{ automation.tool_experience.tool_experience }}
114
- <span v-if="automation.tool_experience.tool_experience_approved">
115
- &#x2705;
116
- </span>
117
- <span v-else>
118
- &#x274C;
119
- </span>
120
- </span>
121
- </div>
122
- </div>
123
- </div>
124
- <div v-if="automation && automation.work_experience && automation.work_experience.work_experience !== null && automation.work_experience.option !== null">
125
- <div class="notes-baloon-melissa mt-2">
126
- <div class="question-melissa-title">
127
- <span>
128
- Quantos anos de experiência você tem na função de <b>{{automation.work_experience.option}}</b>?
129
- </span>
130
- </div>
131
- <div class="notes-text-melissa pt-2">
132
- <span class="mt-2">
133
- {{ automation.work_experience.work_experience }}
134
- <span v-if="automation.work_experience.work_experience_approved">
135
- &#x2705;
136
- </span>
137
- <span v-else>
138
- &#x274C;
139
- </span>
140
- </span>
141
- </div>
142
- </div>
143
- </div>
144
- <div v-if="automation && automation.sector_experience && automation.sector_experience.sector_experience !== null && automation.sector_experience.option !== null">
145
- <div class="notes-baloon-melissa mt-2">
146
- <div class="question-melissa-title">
147
- <span>
148
- Quantos anos de experiência você tem no setor de <b>{{automation.sector_experience.option}}</b>?
149
- </span>
150
- </div>
151
- <div class="notes-text-melissa pt-2">
152
- <span class="mt-2">
153
- {{ automation.sector_experience.sector_experience }}
154
- <span v-if="automation.sector_experience.sector_experience_approved">
155
- &#x2705;
156
- </span>
157
- <span v-else>
158
- &#x274C;
159
- </span>
160
- </span>
161
- </div>
162
- </div>
163
- </div>
164
- <div v-if="automation && automation.language && automation.language.language !== null && automation.language.option !== null">
165
- <div class="notes-baloon-melissa mt-2">
166
- <div class="question-melissa-title">
167
- <span>
168
- Qual seu nível de proficiência em <b>{{automation.language.option}}</b>?
169
- </span>
170
- </div>
171
- <div class="notes-text-melissa pt-2">
172
- <span class="mt-2">
173
- {{ automation.language.language }}
174
- <span v-if="automation.language.language_approved">
175
- &#x2705;
176
- </span>
177
- <span v-else>
178
- &#x274C;
179
- </span>
180
- </span>
181
- </div>
182
- </div>
183
- </div>
184
- <div
185
- v-for="(melissa,index) in automation.custom"
186
- :key="index"
187
- >
188
- <div class="notes-baloon-melissa mt-2">
189
- <div class="question-melissa-title">
190
- <span>{{ melissa.question }}</span>
191
- </div>
192
- <div class="notes-text-melissa pt-2">
193
- <span class="mt-2">
194
- {{ typeof melissa.response === "boolean" ? melissa.response ? "Sim" : "Não" : melissa.response }}
195
- <span v-if="melissa.approved_in_question">
196
- &#x2705;
197
- </span>
198
- <span v-else>
199
- &#x274C;
200
- </span>
201
- </span>
202
- </div>
203
- </div>
204
- </div>
205
- </template>
206
- </template>
207
- </el-tab-pane>
208
- <el-tab-pane class="history ml-2" name="history">
209
- <span class="tab__icon-pane" slot="label">
210
- <img
211
- class="img__icon-pane img__icon--history"
212
- src="../../../../assets/images/icons/historicCv.svg"
213
- />
214
- </span>
215
- <upgrade-plan @send-contact="sendContact" v-if="isLocked" />
216
-
217
- <p class="notes-title mb-0">Histórico com sua empresa</p>
218
- <div class="line mb-3"></div>
219
-
220
- <template v-if="!isLocked">
221
- <div
222
- class="mt-3"
223
- v-for="(item, index) in orderByDate(companyHistory())"
224
- :key="index"
225
- >
226
- <p class="history-text mb-0">
227
- {{ item.text }}
228
- </p>
229
- <span>{{ item.date | convertDate }}</span>
230
- </div>
231
- <p v-if="companyHistory().length === 0" class="history-text">
232
- Histórico vazio.
233
- </p>
234
- </template>
235
- </el-tab-pane>
236
-
237
- <el-tab-pane name="notes" class="ml-2" v-if="isNotesActived">
238
- <span class="tab__icon-pane" slot="label">
239
- <img
240
- class="img__icon-pane img__icon--notes"
241
- src="../../../../assets/images/icons/notesCv.svg"
242
- />
243
- </span>
244
-
245
- <upgrade-plan @send-contact="sendContact" v-if="isLocked" />
246
-
247
- <p class="notes-title mb-0">Notas da equipe</p>
248
- <div class="line mb-3"></div>
249
-
250
- <template v-if="!isLocked">
251
- <template v-if="notes.length > 0">
252
- <div
253
- v-for="(note, index) in notes.slice(0, 5)"
254
- :key="index"
255
- >
256
- <div class="notes-baloon">
257
- <div class="notes-text ml-3 pt-1">
258
- <p class="mt-3">{{ note.text }}</p>
259
- </div>
260
- <div
261
- class="d-flex justify-content-between align-items-center mx-3"
262
- >
263
- <p @click.prevent="handleRemoveNote(note)" v-if="String(currentUser.id) === String(note.user_id)" class="notes-date remove-baloon">
264
- Excluir
265
- </p>
266
- <div v-else></div>
267
-
268
- <p class="notes-date">
269
- {{ note.created_at | convertDate }}
270
- </p>
271
- </div>
272
- </div>
273
- <div class="notes-owner d-flex mt-2">
274
- <image-with-fallback
275
- :src="note.user.urlAvatar"
276
- :alt="note.user.name"
277
- :fallbackText="note.user.name"
278
- />
279
- <p class="ml-1">
280
- {{ note.user.name }}
281
- </p>
282
- </div>
283
- </div>
284
- </template>
285
- <div class="notes-text" v-if="notes.length === 0">
286
- <p>Nenhuma nota criada.</p>
287
- </div>
288
- </template>
289
-
290
- <div class="input-container" v-if="!isLocked">
291
- <input
292
- class="notes-new pl-4 mt-3 mb-3 form-rounded"
293
- type="text"
294
- placeholder="Escrever anotação"
295
- v-model="newNote"
296
- @change="$emit('new-note', newNote, userData.id)"
297
- v-on:change="cleatInput()"
298
- />
299
- <i
300
- @click="
301
- newNote.length > 0 &&
302
- $emit('new-note', newNote, userData.id)
303
- "
304
- class="fas fa-paper-plane input-icon"
305
- ></i>
306
- </div>
307
- </el-tab-pane>
308
-
309
- <el-tab-pane name="documents" class="ml-2">
310
- <span class="tab__icon-pane" slot="label">
311
- <img
312
- class="img__icon-pane img__icon--documents"
313
- src="../../../../assets/images/icons/icon3.svg"
314
- />
315
- </span>
316
-
317
- <upgrade-plan @send-contact="sendContact" v-if="isLocked" />
318
-
319
- <p class="notes-title mb-0">Documentos anexados</p>
320
- <div class="line mb-3"></div>
321
-
322
- <template v-if="!isLocked">
323
- <div class="archive-content">
324
- <div v-for="(item, index) in archives" :key="index">
325
- <div @click="openArchive(item)" class="archive-container">
326
- <div>
327
- <img class="archive-img" src="../../../../assets/images/icons/icon3.svg" >
328
- </div>
329
- <div class="archive-name">
330
- <span>{{item.name}}</span>
331
- <div class="archive-icon">
332
- <i @click.stop.prevent="openRemoveSection(item, (index+1))" class="far fa-trash-alt"></i>
333
- </div>
334
- </div>
335
- </div>
336
- <div v-if="hasRemove && hasRemove == (index+1)" class="archive-remove">
337
- <p>Você tem certeza que deseja apagar este arquivo?</p>
338
- <div class="d-flex">
339
- <base-button
340
- @click="removeArchive(currentRemoveItem, index)"
341
- size="sm"
342
- class="btn-outline-primary col-6 p-1"
343
- >
344
- Apagar
345
- </base-button>
346
- <base-button
347
- @click="hasRemove = false"
348
- size="sm"
349
- class="btn-outline-danger col-6 p-1"
350
- >
351
- Cancelar
352
- </base-button>
353
- </div>
354
- </div>
355
- </div>
356
- </div>
357
-
358
- <div class="notes-text" v-if="archives == null">
359
- <p>Nenhum arquvio anexado.</p>
360
- </div>
361
- </template>
362
-
363
- <div class="input-container" v-if="!isLocked">
364
- <div class="mt-5">
365
- <dropzone-file-upload
366
- disabled
367
- @error="showMessageError"
368
- ref="MyDropzone"
369
- :options="dropzoneOptions"
370
- v-model="fileToUpload"
371
- />
372
- </div>
373
-
374
- <div class="archive-buttons">
375
- <base-button @click="saveImage" size="sm" class="btn-outline-primary btn-rounded col-12">Salvar</base-button>
376
- </div>
377
- </div>
378
- </el-tab-pane>
379
-
380
- <el-tab-pane name="reports" class="ml-2" v-if="isReportsActived">
381
- <span class="tab__icon-pane" slot="label">
382
- <img
383
- class="img__icon-pane img__icon--reports"
384
- src="../../../../assets/images/icons/icon5.svg"
385
- />
386
- </span>
387
-
388
- <upgrade-plan @send-contact="sendContact" v-if="isLocked" />
389
-
390
- <p class="notes-title mb-0">Laudo do Candidato</p>
391
- <div class="line mb-3"></div>
392
- <div class="evaluation-area" v-if="likeStatus">
393
- <div class="action">
394
- <like class="icon" :colorActiveLike="likeStatus"/>
395
- <span class="font-weight-bold evaluation-area__text">
396
- Gostei
397
- </span>
398
- </div>
399
- <div class="action">
400
- <deslike class="icon" :colorActiveDeslike="likeStatus"/>
401
- <span class="font-weight-bold evaluation-area__text">
402
- Não Gostei
403
- </span>
404
- </div>
405
- </div>
406
- <template v-if="!isLocked">
407
- <div class="input-container" v-if="!userReportData.annex">
408
- <dropzone-file-upload
409
- disabled
410
- ref="MyReportDropzone"
411
- v-model="reportFileUpload"
412
- :options="reportsDropdownzoneOptions"
413
- @error="showMessageError"
414
- />
415
-
416
- <div class="archive-buttons" v-if="reportFileUpload.length > 0">
417
- <base-button @click="saveReport" size="sm" class="btn-outline-primary btn-rounded col-12">Salvar</base-button>
418
- </div>
419
- </div>
420
-
421
- <div class="archive-content" v-else-if="userReportData.annex">
422
- <div @click="openArchive(userReportData.annex)" class="archive-container">
423
- <div>
424
- <img class="archive-img" src="../../../../assets/images/icons/icon6.svg" >
425
- </div>
426
- <div class="archive-name">
427
- <span>{{ userReportData.annex.name }}</span>
428
- <div class="archive-icon">
429
- <i @click.stop.prevent="openReportRemoveSection(userReportData.annex)" class="far fa-trash-alt"></i>
430
- </div>
431
- </div>
432
- </div>
433
- <div v-if="hasReportRemove" class="archive-remove">
434
- <p>Você tem certeza que deseja apagar este arquivo?</p>
435
- <div class="d-flex">
436
- <base-button
437
- @click="removeReportArchive(currentRemoveItem)"
438
- size="sm"
439
- class="btn-outline-primary col-6 p-1"
440
- >
441
- Apagar
442
- </base-button>
443
- <base-button
444
- @click="hasRemove = false"
445
- size="sm"
446
- class="btn-outline-danger col-6 p-1"
447
- >
448
- Cancelar
449
- </base-button>
450
- </div>
451
- </div>
452
- </div>
453
- </template>
454
-
455
- <p class="notes-title mb-0">Comentários Recrutador</p>
456
- <div class="line mb-3"></div>
457
-
458
- <template v-if="!isLocked">
459
- <div v-if="userReportData.comment">
460
- <div class="notes-baloon fullsize">
461
- <div class="notes-text mx-3 pt-1">
462
- <p class="mt-3">{{ userReportData.comment.comment }}</p>
463
- </div>
464
- <div
465
- class="d-flex justify-content-between align-items-center mx-3"
466
- >
467
- <p @click.prevent="hasCommentRemove = !hasCommentRemove" class="notes-date remove-baloon">
468
- Excluir
469
- </p>
470
-
471
- <p class="notes-date">
472
- {{ userReportData.comment.created_at | convertDate }}
473
- </p>
474
- </div>
475
- </div>
476
- <div v-if="hasCommentRemove" class="archive-remove">
477
- <p>Você tem certeza que deseja apagar este comentário?</p>
478
- <div class="d-flex">
479
- <base-button
480
- @click="removeComment(userReportData.comment.id)"
481
- size="sm"
482
- class="btn-outline-primary col-6 p-1"
483
- >
484
- Apagar
485
- </base-button>
486
- <base-button
487
- @click="hasCommentRemove = false"
488
- size="sm"
489
- class="btn-outline-danger col-6 p-1"
490
- >
491
- Cancelar
492
- </base-button>
493
- </div>
494
- </div>
495
- <div class="notes-owner d-flex mt-2">
496
- <img
497
- v-if="userReportData.comment.user.urlAvatar"
498
- :src="userReportData.comment.user.urlAvatar"
499
- :alt="userReportData.comment.user.name"
500
- />
501
- <div
502
- v-else
503
- class="notes-avatar"
504
- ></div>
505
- <p class="ml-1">
506
- {{ userReportData.comment.user.name }}
507
- </p>
508
- </div>
509
- </div>
510
- </template>
511
-
512
- <div class="input-container" v-if="!isLocked && !userReportData.comment">
513
- <input
514
- class="notes-new pl-4 mt-3 mb-3 form-rounded"
515
- type="text"
516
- placeholder="Escrever anotação"
517
- v-model="newReportNote"
518
- @change="handleNewReportNoteSubmit"
519
- v-on:change="cleatInput()"
520
- />
521
- <i
522
- @click="handleNewReportNoteSubmit"
523
- class="fas fa-paper-plane input-icon"
524
- ></i>
525
- </div>
526
- </el-tab-pane>
527
- </el-tabs>
528
- </div>
529
- </template>
530
-
531
- <script>
532
- import { Tabs, TabPane } from 'element-ui';
533
- import DropzoneFileUpload from '@burh/nuxt-core/components/argon-core/Inputs/DropzoneFileUpload.vue';
534
- import swal from 'sweetalert2';
535
- import UpgradePlan from './UpgradePlan.vue';
536
- import like from '../../../organismos/atomos/Like.vue';
537
- import deslike from '../../../organismos/atomos/Deslike.vue';
538
-
539
- export default {
540
- name: 'user-cv-right-side',
541
- filters: {
542
- convertDate(data) {
543
- if (typeof data !== 'string') {
544
- data = '2020-01-01 12:00:00';
545
- }
546
- let d = new Date(data);
547
- let options = { hour: '2-digit', minute: '2-digit' };
548
- return d.toLocaleDateString('pt-BR', options);
549
- }
550
- },
551
- watch:{
552
- fileToUpload(value){
553
- if(value.length > 0 && value[0].accepted) {
554
- this.isError = false;
555
- }
556
- },
557
- reportFileUpload(value){
558
- if(value.length > 0 && value[0].accepted) {
559
- this.isError = false;
560
- }
561
- },
562
- archives() {
563
- this.getUserFolderData();
564
- }
565
- },
566
- components: {
567
- [Tabs.name]: Tabs,
568
- [TabPane.name]: TabPane,
569
- DropzoneFileUpload,
570
- UpgradePlan,
571
- like,
572
- deslike
573
- },
574
- data(){
575
- return {
576
- newNote: '',
577
- newReportNote: '',
578
- liked: 0,
579
- hasRemove: null,
580
- isError: true,
581
- currentRemoveItem: null,
582
- fileToUpload: [],
583
- dropzoneOptions: {
584
- maxFilesize: 5,
585
- dictFileTooBig:'Seu arquivo é poderoso demais (Máximo 5mb).',
586
- dictDefaultMessage: 'Clique ou arraste seu arquivo aqui.',
587
- dictInvalidFileType: 'Arquivo invalido.',
588
- dictMaxFilesExceeded: 'Não é permitido mais de um arquivo por vez.',
589
- acceptedFiles: 'image/*, application/pdf',
590
- },
591
- reportFileUpload: [],
592
- reportsDropdownzoneOptions: {
593
- maxFilesize: 1,
594
- dictFileTooBig:'Seu arquivo é poderoso demais (Máximo 5mb).',
595
- dictDefaultMessage: 'Clique ou arraste seu arquivo aqui.',
596
- dictInvalidFileType: 'Arquivo invalido.',
597
- dictMaxFilesExceeded: 'Não é permitido mais de um arquivo por vez.',
598
- acceptedFiles: 'image/*, application/pdf',
599
- },
600
- userReportData: [],
601
- hasReportRemove: false,
602
- hasCommentRemove: false,
603
- };
604
- },
605
- props: {
606
- archives: Array,
607
- userData: Object,
608
- automation:{
609
- type:Object || null,
610
- default:null
611
- },
612
- notes: Array,
613
- activeName: String,
614
- jobId:{
615
- type:[String, Number, Object],
616
- default:null
617
- },
618
- userFolderId: String,
619
- isNotesActived: {
620
- type: Boolean,
621
- default: true
622
- },
623
- isReportsActived: {
624
- type: Boolean,
625
- default: false
626
- },
627
- },
628
- mounted() {
629
- this.companyHistory();
630
- this.getUserFolderData();
631
- },
632
- methods: {
633
- async handleRemoveNote(note) {
634
- const apiUrl = `${process.env.baseApiUrl}/company/${note.company_id}/user/${note.user_id}/note/${note.id}`;
635
-
636
- const response = await this.$axios.delete(apiUrl)
637
- .then(res => res.data)
638
- .catch(() => {});
639
-
640
- if (!response || response && response.error) return this.showToast('error', 'Falha ao remover!');
641
-
642
- this.notes = this.notes.filter(n => n.id !== note.id);
643
- },
644
- removeComment(item){
645
- this.userReportData.comment = undefined;
646
- this.$emit('remove-comment', item);
647
- this.hasCommentRemove = false;
648
- },
649
- handleNewReportNoteSubmit() {
650
- if (this.newReportNote.length > 3) {
651
- this.$emit('new-report-note', this.newReportNote, this.userFolderId, this.userData.id);
652
- this.newReportNote = '';
653
- }
654
- },
655
- openRemoveSection(item, index) {
656
- this.hasRemove = index;
657
- this.currentRemoveItem = item;
658
- },
659
- openReportRemoveSection(item) {
660
- this.hasReportRemove = true;
661
- this.currentRemoveItem = item;
662
- },
663
-
664
- showToast(type, title){
665
- const Toast = swal.mixin({
666
- toast: true,
667
- position: 'top-end',
668
- showConfirmButton: false,
669
- timer: 3100,
670
- });
671
-
672
- return Toast.fire({
673
- type: type,
674
- title: title
675
- });
676
- },
677
-
678
- showMessageError(file, message) {
679
- this.isError = true;
680
- this.$refs.Mydropzone && this.$refs.Mydropzone.removeAllFiles();
681
-
682
- if (file.status !== 'canceled'){
683
- this.showToast('error', message);
684
- }
685
- },
686
- openArchive(item) {
687
- window.open(item.storage_url, '_blank');
688
- },
689
- saveImage(){
690
- if (!this.isError) {
691
- this.$emit('save-archive', this.fileToUpload[0], this.userData.id);
692
- this.$refs.MyDropzone && this.$refs.MyDropzone.removeAllFiles();
693
- this.showToast('success', 'Arquivo enviado com sucesso.');
694
- } else {
695
- if (this.fileToUpload.length > 0) {
696
- this.showToast('error', 'Arquivo invalido.');
697
- } else {
698
- this.showToast('warning', 'Selecione um arquivo.');
699
- }
700
- }
701
- },
702
- saveReport() {
703
- if (!this.isError) {
704
- this.$emit('save-report', this.reportFileUpload[0], this.userFolderId);
705
- this.$refs.MyReportDropzone && this.$refs.MyReportDropzone.removeAllFiles();
706
- this.showToast('success', 'Arquivo enviado com sucesso.');
707
-
708
- } else {
709
- if (this.reportFileUpload.length > 0) {
710
- this.showToast('error', 'Arquivo invalido.');
711
- } else {
712
- this.showToast('warning', 'Selecione um arquivo.');
713
- }
714
- }
715
- },
716
-
717
- removeArchive(archive, index){
718
- this.$emit('remove-archive', archive.user_id, archive.id, archive.company_id, index);
719
- this.hasRemove = null;
720
- },
721
-
722
- removeReportArchive(archive) {
723
- this.userReportData.annex = undefined;
724
-
725
- this.$emit('remove-report', archive.id);
726
- this.hasReportRemove = false;
727
- },
728
-
729
- cleatInput() {
730
- this.newNote = '';
731
- },
732
- companyHistory() {
733
- let tests = this.userData.tests.map(x => {
734
- if (x.finished_at) {
735
- return {
736
- date: x.finished_at,
737
- text: `Finalizou o teste ${x.test.name.toUpperCase()}`
738
- };
739
- } else {
740
- return {
741
- date: x.created_at,
742
- text: `Recebeu o teste ${x.test.name.toUpperCase()}`
743
- };
744
- }
745
-
746
- });
747
-
748
- let courses = this.userData.courses_user.map(x => {
749
- if (x.finished_at) {
750
- return{
751
- date: x.finished_at,
752
- text: `Finalizou o curso ${x.course.name.toUpperCase()}`
753
- };
754
- }
755
- });
756
-
757
- let discs = this.userData.solides.map(x => ({
758
- date: x.end,
759
- text: 'Realizou um teste DISC'
760
- }));
761
-
762
- return tests.concat(discs, courses);
763
- },
764
- orderByDate(data) {
765
- let sortedArray = data.sort((a, b) => {
766
- a = a.date || '2020-01-01 12:00:00';
767
- b = b.date || '2020-01-01 12:00:00';
768
-
769
- return new Date(b).getTime() - new Date(a).getTime();
770
- });
771
-
772
- return sortedArray;
773
- },
774
- sendContact() {
775
- this.$emit('open-contact');
776
- },
777
-
778
- async getUserFolderData() {
779
- if (this.isReportsActived) {
780
- const apiUrl = `${process.env.baseApiUrlV2}/company/buffer/folder/user/${this.userFolderId}`;
781
-
782
- const data = await this.$axios(apiUrl)
783
- .then((res) => {
784
- this.liked = res.data.data.like;
785
- return res.data;
786
- })
787
- .catch(() => {});
788
-
789
- if (!data) return;
790
-
791
- this.mountUserReport(data.data);
792
- }
793
- },
794
-
795
- mountUserReport(userData) {
796
- const annex = userData.annex[0] || undefined;
797
- const comment = userData.comments[0] || undefined;
798
-
799
- this.userReportData = {
800
- annex,
801
- comment
802
- };
803
- },
804
- haveAnswers(){
805
- if(this.automation && Object.keys(this.automation).length){
806
- return true;
807
- }else{
808
- this.active = this.activeName;
809
- return false;
810
- }
811
- }
812
- },
813
- computed: {
814
- currentUser() {
815
- return this.$store.state.user.currentUser;
816
- },
817
- isLocked() {
818
- return !this.companyHasProduct(
819
- this.$store.state.loja && this.$store.state.loja.showableProducts && this.$store.state.loja.showableProducts['HISTORICO_USUARIO'] || false
820
- );
821
- },
822
- companyHasAutomation() {
823
- return this.companyHasProduct(
824
- this.$store.state.loja && this.$store.state.loja.showableProducts && this.$store.state.loja.showableProducts['TRIAGEM_AUTOMATICA'] || false
825
- );
826
- },
827
- hasAutomation() {
828
- return this.automation && Object.values(this.automation).length > 0 || false;
829
- },
830
- activeTab() {
831
- let activeTab = this.activeName;
832
-
833
- if (this.jobId && this.companyHasAutomation && this.hasAutomation) {
834
- if (activeTab == 'history') {
835
- activeTab = 'melissa';
836
- }
837
- }
838
-
839
- return activeTab;
840
- },
841
- likeStatus() {
842
- return this.liked;
843
- },
844
- }
845
- };
846
- </script>
847
- <style>
848
- .el-tabs__nav-wrap.is-top::after {
849
- background: #fff !important;
850
- }
851
- .remove-baloon{
852
- cursor: pointer;
853
- }
854
- .el-tabs__active-bar.is-top {
855
- width: 30px !important;
856
- height: 4px !important;
857
- border-radius: 10px 10px 0px 0px;
858
- }
859
- </style>
860
-
861
- <style lang="scss">
862
- .swal2-title {
863
- font-size: 1rem !important;
864
- }
865
- .swal2-container {
866
- z-index: 5000 !important;
867
- }
868
- </style>
869
-
870
- <style lang="scss" scoped>
871
- @import '@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss';
872
-
873
- /deep/.dropzone {
874
- width: 95%;
875
-
876
- .dz-message {
877
- padding: 2rem 1rem !important;
878
- }
879
-
880
- button.dz-button {
881
- background-color: transparent;
882
- border: 0;
883
- }
884
- }
885
- .evaluation-area{
886
- margin-bottom: 16px;
887
- display: grid;
888
- grid-template-columns: repeat(2, 95px);
889
- @media (max-width:1155px){
890
- grid-template-columns: 1fr;
891
- }
892
- .action{
893
- display: grid;
894
- grid-template-columns: 2rem 1fr;
895
- align-items: center;
896
- white-space: nowrap;
897
- user-select: none;
898
- .icon {
899
- width: 2rem !important;
900
- margin-bottom: 0;
901
- }
902
- @media (max-width: 1440px) {
903
- justify-content:start;
904
- }
905
- @media (max-width:1155px){
906
- width: 7rem;
907
- margin-bottom: 0 !important;
908
- }
909
- }
910
- &__text {
911
- font-size: 0.8rem;
912
- color: #32325D;
913
- margin-left: 0.35rem;
914
- }
915
-
916
- .active-icon {
917
- font-size: 25px;
918
- color: #AEB0B7;
919
- transition: color 0.25s;
920
- cursor: pointer;
921
- &.active{
922
- color:#fff;
923
- }
924
- }
925
- }
926
- /deep/ .el-tab-pane {
927
- height: 760px;
928
- max-height: 760px;
929
- overflow: hidden;
930
- overflow-y: auto;
931
- position: relative;
932
-
933
- > .notes-title {
934
- position: sticky;
935
- position: -webkit-sticky;
936
- top: 0;
937
- background: white;
938
- padding: 10px 0;
939
- }
940
-
941
- > .input-container {
942
- position: sticky;
943
- position: -webkit-sticky;
944
- bottom: 0;
945
- background: white;
946
- > .input-icon {
947
- cursor: pointer;
948
- position: absolute;
949
- top: 50%;
950
- right: 30px;
951
- transform: translateY(-50%);
952
- color: #c8c8c8;
953
- }
954
- }
955
-
956
- &::-webkit-scrollbar {
957
- width: 8px;
958
- }
959
-
960
- &::-webkit-scrollbar-track {
961
- background: #f5f5f5;
962
- }
963
-
964
- &::-webkit-scrollbar-thumb {
965
- background: #e9e8e8;
966
- border-radius: 10px;
967
- }
968
-
969
- .archive-content {
970
- width: 95%;
971
-
972
- p {
973
- margin-bottom: 0;
974
- font-size: 0.875rem;
975
- padding: .3rem .6rem 0 .6rem;
976
- }
977
-
978
- .archive-container {
979
- display: flex;
980
- align-items: center;
981
- padding: 0.5rem 0.5rem 0.438rem;
982
- cursor: pointer;
983
- user-select: none;
984
-
985
- &:hover{
986
- background-color: #f6f9fc;
987
- border-radius: 5px;
988
- }
989
-
990
- .archive-img {
991
- background-color: #f5f5f5;
992
- border-radius: 6px;
993
- padding: 7px;
994
- }
995
-
996
- .archive-name {
997
- display: flex;
998
- margin-left: .8rem;
999
- width: 145%;
1000
- justify-content: space-between !important;
1001
-
1002
- .archive-icon {
1003
- margin-left: 1.5rem;
1004
- }
1005
-
1006
- p {
1007
- margin: 0;
1008
- padding: 0;
1009
- width: 13rem;
1010
- white-space: nowrap;
1011
- overflow: hidden;
1012
- text-overflow: ellipsis;
1013
- }
1014
- }
1015
-
1016
- .upload-container {
1017
- position: sticky;
1018
- position: -webkit-sticky;
1019
- bottom: 0;
1020
- background: white;
1021
- width: 231px;
1022
- }
1023
- }
1024
- }
1025
-
1026
- .archive-buttons {
1027
- display: flex;
1028
- margin-top: -1rem;
1029
- width: 95%;
1030
- }
1031
-
1032
- .archive-remove {
1033
- width: 90%;
1034
- word-break: break-word;
1035
- }
1036
- }
1037
-
1038
- /deep/ .el-tabs__nav-scroll {
1039
- display: flex;
1040
- justify-content: stretch;
1041
- align-items: flex-start;
1042
- }
1043
-
1044
- /deep/ .el-tabs__item {
1045
- padding: 0 1.5rem !important;
1046
- }
1047
-
1048
- /deep/ .el-tabs__nav {
1049
- width: 100% !important;
1050
- user-select: none;
1051
- }
1052
-
1053
- @media (max-width: 1520px) {
1054
- /deep/ .el-tabs__item {
1055
- padding: 0 1.2rem !important;
1056
- }
1057
- }
1058
- @media (max-width: 1340px) {
1059
- /deep/ .el-tabs__item {
1060
- padding: 0 1rem !important;
1061
- }
1062
- }
1063
- @media (max-width: 1240px) {
1064
- /deep/ .el-tabs__item {
1065
- padding: 0 0.8rem !important;
1066
- }
1067
- }
1068
- @media (max-width: 1140px) {
1069
- /deep/ .el-tabs__item {
1070
- padding: 0 0.6rem !important;
1071
- }
1072
- }
1073
-
1074
- .readmore {
1075
- overflow: hidden;
1076
- text-overflow: ellipsis;
1077
- display: -webkit-box;
1078
- -webkit-line-clamp: 3;
1079
- -webkit-box-orient: vertical;
1080
- }
1081
-
1082
- .tab__icon-pane {
1083
- .img__icon-pane {
1084
- background-color: #f5f5f5 !important;
1085
- border-radius: 30%;
1086
- padding: 7px;
1087
- height: 2.2rem;
1088
- width: 2.2rem;
1089
- margin-bottom: 1rem;
1090
- }
1091
- }
1092
-
1093
- .content-right {
1094
- width: 25%;
1095
- }
1096
-
1097
- .notes-title {
1098
- font-size: 14px;
1099
- word-break: break-word;
1100
- color: #1d364b;
1101
- font-weight: bold;
1102
- background-color: white;
1103
- z-index: 500;
1104
- }
1105
-
1106
- .notes-baloon {
1107
- width: 231px;
1108
- height: auto;
1109
- border-radius: 10px 10px 10px 0;
1110
- background: #eff5fd;
1111
- &.fullsize {
1112
- width: 80%!important;
1113
- min-width: 280px;
1114
- }
1115
- }
1116
- .notes-baloon-melissa {
1117
- padding: 5px 0;
1118
- .question-melissa-title{
1119
- font-size: 12px !important;
1120
- color:#62778c;
1121
- span {
1122
- word-break: break-word;
1123
- }
1124
- }
1125
- .notes-text-melissa {
1126
- font-size: 0.875rem;
1127
- color: #1d364b;
1128
- font-weight: bold;
1129
- }
1130
- &.fullsize {
1131
- width: 80%!important;
1132
- min-width: 280px;
1133
- }
1134
- }
1135
-
1136
- .notes-text {
1137
- p {
1138
- font-size: 13px;
1139
- color: #62778c;
1140
- }
1141
- }
1142
-
1143
- .notes-date {
1144
- font-size: 11px;
1145
- text-align: right;
1146
-
1147
- color: #8da2b5;
1148
- top: calc(50% - 17px / 2 - 444.5px);
1149
- }
1150
-
1151
- .notes-owner {
1152
- img {
1153
- width: 23px;
1154
- height: 23px;
1155
- border-radius: 50%;
1156
- }
1157
-
1158
- .notes-avatar {
1159
- width: 23px;
1160
- height: 23px;
1161
- border-radius: 50%;
1162
- background-color: #adb5bd;
1163
- }
1164
-
1165
- p {
1166
- font-size: 13px;
1167
- font-weight: 600;
1168
- text-transform: uppercase;
1169
-
1170
- color: #62778c;
1171
- }
1172
- }
1173
-
1174
- .notes-new {
1175
- width: 95%;
1176
- height: 33px;
1177
-
1178
- background: #f5f5f5;
1179
- border-radius: 16.5px;
1180
- border: none;
1181
-
1182
- outline: 0;
1183
- }
1184
-
1185
- .line {
1186
- width: 221px;
1187
- height: 0px;
1188
-
1189
- border: 1px solid #ececec5c;
1190
- }
1191
-
1192
- .history {
1193
- word-break: break-word;
1194
-
1195
- .history-text {
1196
- font-size: 13px;
1197
- color: #62778c;
1198
- }
1199
-
1200
- span {
1201
- font-size: 11px;
1202
- line-height: 16px;
1203
-
1204
- color: #8da2b5;
1205
- }
1206
- }
1207
-
1208
- .cursor-disabled {
1209
- cursor: no-drop;
1210
- }
1211
- </style>
1
+ <template>
2
+ <div class="bg-white content-right tabs">
3
+ <el-tabs
4
+ :class="activeTab"
5
+ class="mt-3 handle-icon-color"
6
+ v-model="activeTab"
7
+ >
8
+ <el-tab-pane v-if="companyHasAutomation && hasAutomation" name="melissa" class="mx-2">
9
+ <span class="tab__icon-pane" slot="label">
10
+ <img
11
+ class="img__icon-pane"
12
+ src="/img/recruitment/melissa.svg"
13
+ />
14
+ </span>
15
+ <p class="notes-title mb-0 notes-melissa-title">
16
+ {{automation.aproved ?
17
+ 'Candidato aprovado pela Melissa' :
18
+ 'Candidato reprovado pela Melissa'}}
19
+ </p>
20
+ <div class="line mb-3"></div>
21
+ <template>
22
+ <template>
23
+ <div v-if="automation && automation.vehicle_license && automation.vehicle_license.vehicle_license !== null">
24
+ <div class="notes-baloon-melissa mt-2">
25
+ <div class="question-melissa-title">
26
+ <span>
27
+ Você tem uma carteira de motorista válida?
28
+ </span>
29
+ </div>
30
+ <div class="notes-text-melissa pt-2">
31
+ <span class="mt-2">
32
+ {{ Boolean(automation.vehicle_license.vehicle_license) ? "Sim" : "Não" }}
33
+ <span v-if="automation.vehicle_license.vehicle_license_approved">
34
+ &#x2705;
35
+ </span>
36
+ <span v-else>
37
+ &#x274C;
38
+ </span>
39
+ </span>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ <div v-if="automation && automation.city && automation.city.city !== null">
44
+ <div class="notes-baloon-melissa mt-2">
45
+ <div class="question-melissa-title">
46
+ <span>
47
+ Você pode se locomover até onde esta vaga está localizada?
48
+ </span>
49
+ </div>
50
+ <div class="notes-text-melissa pt-2">
51
+ <span class="mt-2">
52
+ {{ Boolean(automation.city.city) ? "Sim" : "Não" }}
53
+ <span v-if="automation.city.city_approved">
54
+ &#x2705;
55
+ </span>
56
+ <span v-else>
57
+ &#x274C;
58
+ </span>
59
+ </span>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ <div v-if="automation && automation.urgent_hiring && automation.urgent_hiring.urgent_hiring !== null">
64
+ <div class="notes-baloon-melissa mt-2">
65
+ <div class="question-melissa-title">
66
+ <span>
67
+ Precisamos preencher esta posição com urgência. Você poderia começar imediatamente?
68
+ </span>
69
+ </div>
70
+ <div class="notes-text-melissa pt-2">
71
+ <span class="mt-2">
72
+ {{ Boolean(automation.urgent_hiring.urgent_hiring) ? "Sim" : "Não" }}
73
+ <span v-if="automation.urgent_hiring.urgent_hiring_approved">
74
+ &#x2705;
75
+ </span>
76
+ <span v-else>
77
+ &#x274C;
78
+ </span>
79
+ </span>
80
+ </div>
81
+ </div>
82
+ </div>
83
+ <div v-if="automation && automation.school_formation && automation.school_formation.school_formation !== null && automation.school_formation.option !== null">
84
+ <div class="notes-baloon-melissa mt-2">
85
+ <div class="question-melissa-title">
86
+ <span>
87
+ Você completou o curso: <b>{{automation.school_formation.option}}</b>?
88
+ </span>
89
+ </div>
90
+ <div class="notes-text-melissa pt-2">
91
+ <span class="mt-2">
92
+ {{ Boolean(automation.school_formation.school_formation) ? "Sim" : "Não" }}
93
+
94
+ <span v-if="automation.school_formation.school_formation_approved">
95
+ &#x2705;
96
+ </span>
97
+ <span v-else>
98
+ &#x274C;
99
+ </span>
100
+ </span>
101
+ </div>
102
+ </div>
103
+ </div>
104
+ <div v-if="automation && automation.tool_experience && automation.tool_experience.tool_experience !== null && automation.tool_experience.option !== null">
105
+ <div class="notes-baloon-melissa mt-2">
106
+ <div class="question-melissa-title">
107
+ <span>
108
+ Quantos anos de experiência você tem utilizando <b>{{automation.tool_experience.option}}</b>?
109
+ </span>
110
+ </div>
111
+ <div class="notes-text-melissa pt-2">
112
+ <span class="mt-2">
113
+ {{ automation.tool_experience.tool_experience }}
114
+ <span v-if="automation.tool_experience.tool_experience_approved">
115
+ &#x2705;
116
+ </span>
117
+ <span v-else>
118
+ &#x274C;
119
+ </span>
120
+ </span>
121
+ </div>
122
+ </div>
123
+ </div>
124
+ <div v-if="automation && automation.work_experience && automation.work_experience.work_experience !== null && automation.work_experience.option !== null">
125
+ <div class="notes-baloon-melissa mt-2">
126
+ <div class="question-melissa-title">
127
+ <span>
128
+ Quantos anos de experiência você tem na função de <b>{{automation.work_experience.option}}</b>?
129
+ </span>
130
+ </div>
131
+ <div class="notes-text-melissa pt-2">
132
+ <span class="mt-2">
133
+ {{ automation.work_experience.work_experience }}
134
+ <span v-if="automation.work_experience.work_experience_approved">
135
+ &#x2705;
136
+ </span>
137
+ <span v-else>
138
+ &#x274C;
139
+ </span>
140
+ </span>
141
+ </div>
142
+ </div>
143
+ </div>
144
+ <div v-if="automation && automation.sector_experience && automation.sector_experience.sector_experience !== null && automation.sector_experience.option !== null">
145
+ <div class="notes-baloon-melissa mt-2">
146
+ <div class="question-melissa-title">
147
+ <span>
148
+ Quantos anos de experiência você tem no setor de <b>{{automation.sector_experience.option}}</b>?
149
+ </span>
150
+ </div>
151
+ <div class="notes-text-melissa pt-2">
152
+ <span class="mt-2">
153
+ {{ automation.sector_experience.sector_experience }}
154
+ <span v-if="automation.sector_experience.sector_experience_approved">
155
+ &#x2705;
156
+ </span>
157
+ <span v-else>
158
+ &#x274C;
159
+ </span>
160
+ </span>
161
+ </div>
162
+ </div>
163
+ </div>
164
+ <div v-if="automation && automation.language && automation.language.language !== null && automation.language.option !== null">
165
+ <div class="notes-baloon-melissa mt-2">
166
+ <div class="question-melissa-title">
167
+ <span>
168
+ Qual seu nível de proficiência em <b>{{automation.language.option}}</b>?
169
+ </span>
170
+ </div>
171
+ <div class="notes-text-melissa pt-2">
172
+ <span class="mt-2">
173
+ {{ automation.language.language }}
174
+ <span v-if="automation.language.language_approved">
175
+ &#x2705;
176
+ </span>
177
+ <span v-else>
178
+ &#x274C;
179
+ </span>
180
+ </span>
181
+ </div>
182
+ </div>
183
+ </div>
184
+ <div
185
+ v-for="(melissa,index) in automation.custom"
186
+ :key="index"
187
+ >
188
+ <div class="notes-baloon-melissa mt-2">
189
+ <div class="question-melissa-title">
190
+ <span>{{ melissa.question }}</span>
191
+ </div>
192
+ <div class="notes-text-melissa pt-2">
193
+ <span class="mt-2">
194
+ {{ typeof melissa.response === "boolean" ? melissa.response ? "Sim" : "Não" : melissa.response }}
195
+ <span v-if="melissa.approved_in_question">
196
+ &#x2705;
197
+ </span>
198
+ <span v-else>
199
+ &#x274C;
200
+ </span>
201
+ </span>
202
+ </div>
203
+ </div>
204
+ </div>
205
+ </template>
206
+ </template>
207
+ </el-tab-pane>
208
+ <el-tab-pane class="history ml-2" name="history">
209
+ <span class="tab__icon-pane" slot="label">
210
+ <img
211
+ class="img__icon-pane img__icon--history"
212
+ src="../../../../assets/images/icons/historicCv.svg"
213
+ />
214
+ </span>
215
+ <upgrade-plan @send-contact="sendContact" v-if="isLocked" />
216
+
217
+ <p class="notes-title mb-0">Histórico com sua empresa</p>
218
+ <div class="line mb-3"></div>
219
+
220
+ <template v-if="!isLocked">
221
+ <div
222
+ class="mt-3"
223
+ v-for="(item, index) in orderByDate(companyHistory())"
224
+ :key="index"
225
+ >
226
+ <div class="d-flex align-items-center justify-content-between">
227
+ <p class="history-text mb-0" v-html="item.text" />
228
+
229
+ <el-tooltip
230
+ placement="top"
231
+ content="Baixar PDF"
232
+ >
233
+ <button
234
+ v-if="item.hasDownload"
235
+ class="py-2 px-3 mx-2 border-0 bg-transparent text-primary"
236
+ @click="() => downloadPdf(item)"
237
+ >
238
+ <i class="fas fa-download" />
239
+ </button>
240
+ </el-tooltip>
241
+ </div>
242
+
243
+ <span>{{ item.date | convertDate }}</span>
244
+ </div>
245
+ <p v-if="companyHistory().length === 0" class="history-text">
246
+ Histórico vazio.
247
+ </p>
248
+ </template>
249
+ </el-tab-pane>
250
+
251
+ <el-tab-pane name="notes" class="ml-2" v-if="isNotesActived">
252
+ <span class="tab__icon-pane" slot="label">
253
+ <img
254
+ class="img__icon-pane img__icon--notes"
255
+ src="../../../../assets/images/icons/notesCv.svg"
256
+ />
257
+ </span>
258
+
259
+ <upgrade-plan @send-contact="sendContact" v-if="isLocked" />
260
+
261
+ <p class="notes-title mb-0">Notas da equipe</p>
262
+ <div class="line mb-3"></div>
263
+
264
+ <template v-if="!isLocked">
265
+ <template v-if="notes.length > 0">
266
+ <div
267
+ v-for="(note, index) in notes.slice(0, 5)"
268
+ :key="index"
269
+ >
270
+ <div class="notes-baloon">
271
+ <div class="notes-text ml-3 pt-1">
272
+ <p class="mt-3">{{ note.text }}</p>
273
+ </div>
274
+ <div
275
+ class="d-flex justify-content-between align-items-center mx-3"
276
+ >
277
+ <p @click.prevent="handleRemoveNote(note)" v-if="String(currentUser.id) === String(note.user_id)" class="notes-date remove-baloon">
278
+ Excluir
279
+ </p>
280
+ <div v-else></div>
281
+
282
+ <p class="notes-date">
283
+ {{ note.created_at | convertDate }}
284
+ </p>
285
+ </div>
286
+ </div>
287
+ <div class="notes-owner d-flex mt-2">
288
+ <image-with-fallback
289
+ :src="note.user.urlAvatar"
290
+ :alt="note.user.name"
291
+ :fallbackText="note.user.name"
292
+ />
293
+ <p class="ml-1">
294
+ {{ note.user.name }}
295
+ </p>
296
+ </div>
297
+ </div>
298
+ </template>
299
+ <div class="notes-text" v-if="notes.length === 0">
300
+ <p>Nenhuma nota criada.</p>
301
+ </div>
302
+ </template>
303
+
304
+ <div class="input-container" v-if="!isLocked">
305
+ <input
306
+ class="notes-new pl-4 mt-3 mb-3 form-rounded"
307
+ type="text"
308
+ placeholder="Escrever anotação"
309
+ v-model="newNote"
310
+ @change="$emit('new-note', newNote, userData.id)"
311
+ v-on:change="cleatInput()"
312
+ />
313
+ <i
314
+ @click="
315
+ newNote.length > 0 &&
316
+ $emit('new-note', newNote, userData.id)
317
+ "
318
+ class="fas fa-paper-plane input-icon"
319
+ ></i>
320
+ </div>
321
+ </el-tab-pane>
322
+
323
+ <el-tab-pane name="documents" class="ml-2">
324
+ <span class="tab__icon-pane" slot="label">
325
+ <img
326
+ class="img__icon-pane img__icon--documents"
327
+ src="../../../../assets/images/icons/icon3.svg"
328
+ />
329
+ </span>
330
+
331
+ <upgrade-plan @send-contact="sendContact" v-if="isLocked" />
332
+
333
+ <p class="notes-title mb-0">Documentos anexados</p>
334
+ <div class="line mb-3"></div>
335
+
336
+ <template v-if="!isLocked">
337
+ <div class="archive-content">
338
+ <div v-for="(item, index) in archives" :key="index">
339
+ <div @click="openArchive(item)" class="archive-container">
340
+ <div>
341
+ <img class="archive-img" src="../../../../assets/images/icons/icon3.svg" >
342
+ </div>
343
+ <div class="archive-name">
344
+ <span>{{item.name}}</span>
345
+ <div class="archive-icon">
346
+ <i @click.stop.prevent="openRemoveSection(item, (index+1))" class="far fa-trash-alt"></i>
347
+ </div>
348
+ </div>
349
+ </div>
350
+ <div v-if="hasRemove && hasRemove == (index+1)" class="archive-remove">
351
+ <p>Você tem certeza que deseja apagar este arquivo?</p>
352
+ <div class="d-flex">
353
+ <base-button
354
+ @click="removeArchive(currentRemoveItem, index)"
355
+ size="sm"
356
+ class="btn-outline-primary col-6 p-1"
357
+ >
358
+ Apagar
359
+ </base-button>
360
+ <base-button
361
+ @click="hasRemove = false"
362
+ size="sm"
363
+ class="btn-outline-danger col-6 p-1"
364
+ >
365
+ Cancelar
366
+ </base-button>
367
+ </div>
368
+ </div>
369
+ </div>
370
+ </div>
371
+
372
+ <div class="notes-text" v-if="archives == null">
373
+ <p>Nenhum arquvio anexado.</p>
374
+ </div>
375
+ </template>
376
+
377
+ <div class="input-container" v-if="!isLocked">
378
+ <div class="mt-5">
379
+ <dropzone-file-upload
380
+ disabled
381
+ @error="showMessageError"
382
+ ref="MyDropzone"
383
+ :options="dropzoneOptions"
384
+ v-model="fileToUpload"
385
+ />
386
+ </div>
387
+
388
+ <div class="archive-buttons">
389
+ <base-button @click="saveImage" size="sm" class="btn-outline-primary btn-rounded col-12">Salvar</base-button>
390
+ </div>
391
+ </div>
392
+ </el-tab-pane>
393
+
394
+ <el-tab-pane name="reports" class="ml-2" v-if="isReportsActived">
395
+ <span class="tab__icon-pane" slot="label">
396
+ <img
397
+ class="img__icon-pane img__icon--reports"
398
+ src="../../../../assets/images/icons/icon5.svg"
399
+ />
400
+ </span>
401
+
402
+ <upgrade-plan @send-contact="sendContact" v-if="isLocked" />
403
+
404
+ <p class="notes-title mb-0">Laudo do Candidato</p>
405
+ <div class="line mb-3"></div>
406
+ <div class="evaluation-area" v-if="likeStatus">
407
+ <div class="action">
408
+ <like class="icon" :colorActiveLike="likeStatus"/>
409
+ <span class="font-weight-bold evaluation-area__text">
410
+ Gostei
411
+ </span>
412
+ </div>
413
+ <div class="action">
414
+ <deslike class="icon" :colorActiveDeslike="likeStatus"/>
415
+ <span class="font-weight-bold evaluation-area__text">
416
+ Não Gostei
417
+ </span>
418
+ </div>
419
+ </div>
420
+ <template v-if="!isLocked">
421
+ <div class="input-container" v-if="!userReportData.annex">
422
+ <dropzone-file-upload
423
+ disabled
424
+ ref="MyReportDropzone"
425
+ v-model="reportFileUpload"
426
+ :options="reportsDropdownzoneOptions"
427
+ @error="showMessageError"
428
+ />
429
+
430
+ <div class="archive-buttons" v-if="reportFileUpload.length > 0">
431
+ <base-button @click="saveReport" size="sm" class="btn-outline-primary btn-rounded col-12">Salvar</base-button>
432
+ </div>
433
+ </div>
434
+
435
+ <div class="archive-content" v-else-if="userReportData.annex">
436
+ <div @click="openArchive(userReportData.annex)" class="archive-container">
437
+ <div>
438
+ <img class="archive-img" src="../../../../assets/images/icons/icon6.svg" >
439
+ </div>
440
+ <div class="archive-name">
441
+ <span>{{ userReportData.annex.name }}</span>
442
+ <div class="archive-icon">
443
+ <i @click.stop.prevent="openReportRemoveSection(userReportData.annex)" class="far fa-trash-alt"></i>
444
+ </div>
445
+ </div>
446
+ </div>
447
+ <div v-if="hasReportRemove" class="archive-remove">
448
+ <p>Você tem certeza que deseja apagar este arquivo?</p>
449
+ <div class="d-flex">
450
+ <base-button
451
+ @click="removeReportArchive(currentRemoveItem)"
452
+ size="sm"
453
+ class="btn-outline-primary col-6 p-1"
454
+ >
455
+ Apagar
456
+ </base-button>
457
+ <base-button
458
+ @click="hasRemove = false"
459
+ size="sm"
460
+ class="btn-outline-danger col-6 p-1"
461
+ >
462
+ Cancelar
463
+ </base-button>
464
+ </div>
465
+ </div>
466
+ </div>
467
+ </template>
468
+
469
+ <p class="notes-title mb-0">Comentários Recrutador</p>
470
+ <div class="line mb-3"></div>
471
+
472
+ <template v-if="!isLocked">
473
+ <div v-if="userReportData.comment">
474
+ <div class="notes-baloon fullsize">
475
+ <div class="notes-text mx-3 pt-1">
476
+ <p class="mt-3">{{ userReportData.comment.comment }}</p>
477
+ </div>
478
+ <div
479
+ class="d-flex justify-content-between align-items-center mx-3"
480
+ >
481
+ <p @click.prevent="hasCommentRemove = !hasCommentRemove" class="notes-date remove-baloon">
482
+ Excluir
483
+ </p>
484
+
485
+ <p class="notes-date">
486
+ {{ userReportData.comment.created_at | convertDate }}
487
+ </p>
488
+ </div>
489
+ </div>
490
+ <div v-if="hasCommentRemove" class="archive-remove">
491
+ <p>Você tem certeza que deseja apagar este comentário?</p>
492
+ <div class="d-flex">
493
+ <base-button
494
+ @click="removeComment(userReportData.comment.id)"
495
+ size="sm"
496
+ class="btn-outline-primary col-6 p-1"
497
+ >
498
+ Apagar
499
+ </base-button>
500
+ <base-button
501
+ @click="hasCommentRemove = false"
502
+ size="sm"
503
+ class="btn-outline-danger col-6 p-1"
504
+ >
505
+ Cancelar
506
+ </base-button>
507
+ </div>
508
+ </div>
509
+ <div class="notes-owner d-flex mt-2">
510
+ <img
511
+ v-if="userReportData.comment.user.urlAvatar"
512
+ :src="userReportData.comment.user.urlAvatar"
513
+ :alt="userReportData.comment.user.name"
514
+ />
515
+ <div
516
+ v-else
517
+ class="notes-avatar"
518
+ ></div>
519
+ <p class="ml-1">
520
+ {{ userReportData.comment.user.name }}
521
+ </p>
522
+ </div>
523
+ </div>
524
+ </template>
525
+
526
+ <div class="input-container" v-if="!isLocked && !userReportData.comment">
527
+ <input
528
+ class="notes-new pl-4 mt-3 mb-3 form-rounded"
529
+ type="text"
530
+ placeholder="Escrever anotação"
531
+ v-model="newReportNote"
532
+ @change="handleNewReportNoteSubmit"
533
+ v-on:change="cleatInput()"
534
+ />
535
+ <i
536
+ @click="handleNewReportNoteSubmit"
537
+ class="fas fa-paper-plane input-icon"
538
+ ></i>
539
+ </div>
540
+ </el-tab-pane>
541
+ </el-tabs>
542
+ </div>
543
+ </template>
544
+
545
+ <script>
546
+ import { Tabs, TabPane } from 'element-ui';
547
+ import DropzoneFileUpload from '@burh/nuxt-core/components/argon-core/Inputs/DropzoneFileUpload.vue';
548
+ import swal from 'sweetalert2';
549
+ import UpgradePlan from './UpgradePlan.vue';
550
+ import like from '../../../organismos/atomos/Like.vue';
551
+ import deslike from '../../../organismos/atomos/Deslike.vue';
552
+
553
+ export default {
554
+ name: 'user-cv-right-side',
555
+ filters: {
556
+ convertDate(data) {
557
+ if (typeof data !== 'string') {
558
+ data = '2020-01-01 12:00:00';
559
+ }
560
+ let d = new Date(data);
561
+ let options = { hour: '2-digit', minute: '2-digit' };
562
+ return d.toLocaleDateString('pt-BR', options);
563
+ }
564
+ },
565
+ watch:{
566
+ fileToUpload(value){
567
+ if(value.length > 0 && value[0].accepted) {
568
+ this.isError = false;
569
+ }
570
+ },
571
+ reportFileUpload(value){
572
+ if(value.length > 0 && value[0].accepted) {
573
+ this.isError = false;
574
+ }
575
+ },
576
+ archives() {
577
+ this.getUserFolderData();
578
+ }
579
+ },
580
+ components: {
581
+ [Tabs.name]: Tabs,
582
+ [TabPane.name]: TabPane,
583
+ DropzoneFileUpload,
584
+ UpgradePlan,
585
+ like,
586
+ deslike
587
+ },
588
+ data(){
589
+ return {
590
+ newNote: '',
591
+ newReportNote: '',
592
+ liked: 0,
593
+ hasRemove: null,
594
+ isError: true,
595
+ currentRemoveItem: null,
596
+ fileToUpload: [],
597
+ dropzoneOptions: {
598
+ maxFilesize: 5,
599
+ dictFileTooBig:'Seu arquivo é poderoso demais (Máximo 5mb).',
600
+ dictDefaultMessage: 'Clique ou arraste seu arquivo aqui.',
601
+ dictInvalidFileType: 'Arquivo invalido.',
602
+ dictMaxFilesExceeded: 'Não é permitido mais de um arquivo por vez.',
603
+ acceptedFiles: 'image/*, application/pdf',
604
+ },
605
+ reportFileUpload: [],
606
+ reportsDropdownzoneOptions: {
607
+ maxFilesize: 1,
608
+ dictFileTooBig:'Seu arquivo é poderoso demais (Máximo 5mb).',
609
+ dictDefaultMessage: 'Clique ou arraste seu arquivo aqui.',
610
+ dictInvalidFileType: 'Arquivo invalido.',
611
+ dictMaxFilesExceeded: 'Não é permitido mais de um arquivo por vez.',
612
+ acceptedFiles: 'image/*, application/pdf',
613
+ },
614
+ userReportData: [],
615
+ hasReportRemove: false,
616
+ hasCommentRemove: false,
617
+ };
618
+ },
619
+ props: {
620
+ archives: Array,
621
+ userData: Object,
622
+ automation:{
623
+ type:Object || null,
624
+ default:null
625
+ },
626
+ notes: Array,
627
+ activeName: String,
628
+ jobId:{
629
+ type:[String, Number, Object],
630
+ default:null
631
+ },
632
+ userFolderId: String,
633
+ isNotesActived: {
634
+ type: Boolean,
635
+ default: true
636
+ },
637
+ isReportsActived: {
638
+ type: Boolean,
639
+ default: false
640
+ },
641
+ },
642
+ mounted() {
643
+ this.companyHistory();
644
+ this.getUserFolderData();
645
+ },
646
+ methods: {
647
+ async handleRemoveNote(note) {
648
+ const apiUrl = `${process.env.baseApiUrl}/company/${note.company_id}/user/${note.user_id}/note/${note.id}`;
649
+
650
+ const response = await this.$axios.delete(apiUrl)
651
+ .then(res => res.data)
652
+ .catch(() => {});
653
+
654
+ if (!response || response && response.error) return this.showToast('error', 'Falha ao remover!');
655
+
656
+ this.notes = this.notes.filter(n => n.id !== note.id);
657
+ },
658
+ removeComment(item){
659
+ this.userReportData.comment = undefined;
660
+ this.$emit('remove-comment', item);
661
+ this.hasCommentRemove = false;
662
+ },
663
+ handleNewReportNoteSubmit() {
664
+ if (this.newReportNote.length > 3) {
665
+ this.$emit('new-report-note', this.newReportNote, this.userFolderId, this.userData.id);
666
+ this.newReportNote = '';
667
+ }
668
+ },
669
+ openRemoveSection(item, index) {
670
+ this.hasRemove = index;
671
+ this.currentRemoveItem = item;
672
+ },
673
+ openReportRemoveSection(item) {
674
+ this.hasReportRemove = true;
675
+ this.currentRemoveItem = item;
676
+ },
677
+
678
+ showToast(type, title){
679
+ const Toast = swal.mixin({
680
+ toast: true,
681
+ position: 'top-end',
682
+ showConfirmButton: false,
683
+ timer: 3100,
684
+ });
685
+
686
+ return Toast.fire({
687
+ type: type,
688
+ title: title
689
+ });
690
+ },
691
+
692
+ showMessageError(file, message) {
693
+ this.isError = true;
694
+ this.$refs.Mydropzone && this.$refs.Mydropzone.removeAllFiles();
695
+
696
+ if (file.status !== 'canceled'){
697
+ this.showToast('error', message);
698
+ }
699
+ },
700
+ openArchive(item) {
701
+ window.open(item.storage_url, '_blank');
702
+ },
703
+ saveImage(){
704
+ if (!this.isError) {
705
+ this.$emit('save-archive', this.fileToUpload[0], this.userData.id);
706
+ this.$refs.MyDropzone && this.$refs.MyDropzone.removeAllFiles();
707
+ this.showToast('success', 'Arquivo enviado com sucesso.');
708
+ } else {
709
+ if (this.fileToUpload.length > 0) {
710
+ this.showToast('error', 'Arquivo invalido.');
711
+ } else {
712
+ this.showToast('warning', 'Selecione um arquivo.');
713
+ }
714
+ }
715
+ },
716
+ saveReport() {
717
+ if (!this.isError) {
718
+ this.$emit('save-report', this.reportFileUpload[0], this.userFolderId);
719
+ this.$refs.MyReportDropzone && this.$refs.MyReportDropzone.removeAllFiles();
720
+ this.showToast('success', 'Arquivo enviado com sucesso.');
721
+
722
+ } else {
723
+ if (this.reportFileUpload.length > 0) {
724
+ this.showToast('error', 'Arquivo invalido.');
725
+ } else {
726
+ this.showToast('warning', 'Selecione um arquivo.');
727
+ }
728
+ }
729
+ },
730
+
731
+ removeArchive(archive, index){
732
+ this.$emit('remove-archive', archive.user_id, archive.id, archive.company_id, index);
733
+ this.hasRemove = null;
734
+ },
735
+
736
+ removeReportArchive(archive) {
737
+ this.userReportData.annex = undefined;
738
+
739
+ this.$emit('remove-report', archive.id);
740
+ this.hasReportRemove = false;
741
+ },
742
+
743
+ cleatInput() {
744
+ this.newNote = '';
745
+ },
746
+ async downloadPdf(param) {
747
+ let data = await this.$store.app.$services.testOnline.downloadPdf(
748
+ param.id
749
+ );
750
+
751
+ const url = window.URL.createObjectURL(data.data);
752
+ const link = document.createElement('a');
753
+ link.href = url;
754
+ link.setAttribute(
755
+ 'download',
756
+ `${param.user.name}-${param.test.name}.pdf`
757
+ );
758
+ document.body.appendChild(link);
759
+ link.click();
760
+ link.remove();
761
+ window.URL.revokeObjectURL(url);
762
+ },
763
+ getTestHistory() {
764
+ const tests = this.userData.tests.map(test => {
765
+ if (!test.finished_at) {
766
+ return;
767
+ }
768
+
769
+ const testData = {
770
+ avarage: test.avarage,
771
+ date: test.finished_at,
772
+ text: `Finalizou o teste ${test.test.name.toUpperCase()} com nota <b>${test.avarage}</b>`
773
+ };
774
+
775
+ return testData;
776
+ }).filter(item => item);
777
+
778
+ return tests;
779
+ },
780
+ companyHistory() {
781
+ let tests = this.userData.tests.map(x => {
782
+ let test = {
783
+ id: x.id,
784
+ date: x.finished_at,
785
+ user: {
786
+ name: this.userData.name
787
+ },
788
+ test: {
789
+ name: x.test.name
790
+ }
791
+ };
792
+
793
+ if (x.finished_at) {
794
+ test.text = `Finalizou o teste ${x.test.name.toUpperCase()} com nota <b>${x.avarage}</b>`;
795
+ test.hasDownload = true;
796
+ } else {
797
+ test.text = `Recebeu o teste ${x.test.name.toUpperCase()}`;
798
+ }
799
+
800
+ return test;
801
+ });
802
+
803
+ let courses = this.userData.courses_user.map(x => {
804
+ if (x.finished_at) {
805
+ return{
806
+ date: x.finished_at,
807
+ text: `Finalizou o curso ${x.course.name.toUpperCase()}`
808
+ };
809
+ }
810
+ });
811
+
812
+ let discs = this.userData.solides.map(x => ({
813
+ date: x.end,
814
+ text: 'Realizou um teste DISC'
815
+ }));
816
+
817
+ return tests.concat(discs, courses);
818
+ },
819
+ orderByDate(data) {
820
+ let sortedArray = data.sort((a, b) => {
821
+ a = a.date || '2020-01-01 12:00:00';
822
+ b = b.date || '2020-01-01 12:00:00';
823
+
824
+ return new Date(b).getTime() - new Date(a).getTime();
825
+ });
826
+
827
+ return sortedArray;
828
+ },
829
+ sendContact() {
830
+ this.$emit('open-contact');
831
+ },
832
+
833
+ async getUserFolderData() {
834
+ if (this.isReportsActived) {
835
+ const apiUrl = `${process.env.baseApiUrlV2}/company/buffer/folder/user/${this.userFolderId}`;
836
+
837
+ const data = await this.$axios(apiUrl)
838
+ .then((res) => {
839
+ this.liked = res.data.data.like;
840
+ return res.data;
841
+ })
842
+ .catch(() => {});
843
+
844
+ if (!data) return;
845
+
846
+ this.mountUserReport(data.data);
847
+ }
848
+ },
849
+
850
+ mountUserReport(userData) {
851
+ const annex = userData.annex[0] || undefined;
852
+ const comment = userData.comments[0] || undefined;
853
+
854
+ this.userReportData = {
855
+ annex,
856
+ comment
857
+ };
858
+ },
859
+ haveAnswers(){
860
+ if(this.automation && Object.keys(this.automation).length){
861
+ return true;
862
+ }else{
863
+ this.active = this.activeName;
864
+ return false;
865
+ }
866
+ }
867
+ },
868
+ computed: {
869
+ currentUser() {
870
+ return this.$store.state.user.currentUser;
871
+ },
872
+ isLocked() {
873
+ return !this.companyHasProduct(
874
+ this.$store.state.loja && this.$store.state.loja.showableProducts && this.$store.state.loja.showableProducts['HISTORICO_USUARIO'] || false
875
+ );
876
+ },
877
+ companyHasAutomation() {
878
+ return this.companyHasProduct(
879
+ this.$store.state.loja && this.$store.state.loja.showableProducts && this.$store.state.loja.showableProducts['TRIAGEM_AUTOMATICA'] || false
880
+ );
881
+ },
882
+ hasAutomation() {
883
+ return this.automation && Object.values(this.automation).length > 0 || false;
884
+ },
885
+ activeTab() {
886
+ let activeTab = this.activeName;
887
+
888
+ if (this.jobId && this.companyHasAutomation && this.hasAutomation) {
889
+ if (activeTab == 'history') {
890
+ activeTab = 'melissa';
891
+ }
892
+ }
893
+
894
+ return activeTab;
895
+ },
896
+ likeStatus() {
897
+ return this.liked;
898
+ },
899
+ }
900
+ };
901
+ </script>
902
+ <style>
903
+ .el-tabs__nav-wrap.is-top::after {
904
+ background: #fff !important;
905
+ }
906
+ .remove-baloon{
907
+ cursor: pointer;
908
+ }
909
+ .el-tabs__active-bar.is-top {
910
+ width: 30px !important;
911
+ height: 4px !important;
912
+ border-radius: 10px 10px 0px 0px;
913
+ }
914
+ </style>
915
+
916
+ <style lang="scss">
917
+ .swal2-title {
918
+ font-size: 1rem !important;
919
+ }
920
+ .swal2-container {
921
+ z-index: 5000 !important;
922
+ }
923
+ </style>
924
+
925
+ <style lang="scss" scoped>
926
+ @import '@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss';
927
+
928
+ /deep/.dropzone {
929
+ width: 95%;
930
+
931
+ .dz-message {
932
+ padding: 2rem 1rem !important;
933
+ }
934
+
935
+ button.dz-button {
936
+ background-color: transparent;
937
+ border: 0;
938
+ }
939
+ }
940
+ .evaluation-area{
941
+ margin-bottom: 16px;
942
+ display: grid;
943
+ grid-template-columns: repeat(2, 95px);
944
+ @media (max-width:1155px){
945
+ grid-template-columns: 1fr;
946
+ }
947
+ .action{
948
+ display: grid;
949
+ grid-template-columns: 2rem 1fr;
950
+ align-items: center;
951
+ white-space: nowrap;
952
+ user-select: none;
953
+ .icon {
954
+ width: 2rem !important;
955
+ margin-bottom: 0;
956
+ }
957
+ @media (max-width: 1440px) {
958
+ justify-content:start;
959
+ }
960
+ @media (max-width:1155px){
961
+ width: 7rem;
962
+ margin-bottom: 0 !important;
963
+ }
964
+ }
965
+ &__text {
966
+ font-size: 0.8rem;
967
+ color: #32325D;
968
+ margin-left: 0.35rem;
969
+ }
970
+
971
+ .active-icon {
972
+ font-size: 25px;
973
+ color: #AEB0B7;
974
+ transition: color 0.25s;
975
+ cursor: pointer;
976
+ &.active{
977
+ color:#fff;
978
+ }
979
+ }
980
+ }
981
+ /deep/ .el-tab-pane {
982
+ height: 760px;
983
+ max-height: 760px;
984
+ overflow: hidden;
985
+ overflow-y: auto;
986
+ position: relative;
987
+
988
+ > .notes-title {
989
+ position: sticky;
990
+ position: -webkit-sticky;
991
+ top: 0;
992
+ background: white;
993
+ padding: 10px 0;
994
+ }
995
+
996
+ > .input-container {
997
+ position: sticky;
998
+ position: -webkit-sticky;
999
+ bottom: 0;
1000
+ background: white;
1001
+ > .input-icon {
1002
+ cursor: pointer;
1003
+ position: absolute;
1004
+ top: 50%;
1005
+ right: 30px;
1006
+ transform: translateY(-50%);
1007
+ color: #c8c8c8;
1008
+ }
1009
+ }
1010
+
1011
+ &::-webkit-scrollbar {
1012
+ width: 8px;
1013
+ }
1014
+
1015
+ &::-webkit-scrollbar-track {
1016
+ background: #f5f5f5;
1017
+ }
1018
+
1019
+ &::-webkit-scrollbar-thumb {
1020
+ background: #e9e8e8;
1021
+ border-radius: 10px;
1022
+ }
1023
+
1024
+ .archive-content {
1025
+ width: 95%;
1026
+
1027
+ p {
1028
+ margin-bottom: 0;
1029
+ font-size: 0.875rem;
1030
+ padding: .3rem .6rem 0 .6rem;
1031
+ }
1032
+
1033
+ .archive-container {
1034
+ display: flex;
1035
+ align-items: center;
1036
+ padding: 0.5rem 0.5rem 0.438rem;
1037
+ cursor: pointer;
1038
+ user-select: none;
1039
+
1040
+ &:hover{
1041
+ background-color: #f6f9fc;
1042
+ border-radius: 5px;
1043
+ }
1044
+
1045
+ .archive-img {
1046
+ background-color: #f5f5f5;
1047
+ border-radius: 6px;
1048
+ padding: 7px;
1049
+ }
1050
+
1051
+ .archive-name {
1052
+ display: flex;
1053
+ margin-left: .8rem;
1054
+ width: 145%;
1055
+ justify-content: space-between !important;
1056
+
1057
+ .archive-icon {
1058
+ margin-left: 1.5rem;
1059
+ }
1060
+
1061
+ p {
1062
+ margin: 0;
1063
+ padding: 0;
1064
+ width: 13rem;
1065
+ white-space: nowrap;
1066
+ overflow: hidden;
1067
+ text-overflow: ellipsis;
1068
+ }
1069
+ }
1070
+
1071
+ .upload-container {
1072
+ position: sticky;
1073
+ position: -webkit-sticky;
1074
+ bottom: 0;
1075
+ background: white;
1076
+ width: 231px;
1077
+ }
1078
+ }
1079
+ }
1080
+
1081
+ .archive-buttons {
1082
+ display: flex;
1083
+ margin-top: -1rem;
1084
+ width: 95%;
1085
+ }
1086
+
1087
+ .archive-remove {
1088
+ width: 90%;
1089
+ word-break: break-word;
1090
+ }
1091
+ }
1092
+
1093
+ /deep/ .el-tabs__nav-scroll {
1094
+ display: flex;
1095
+ justify-content: stretch;
1096
+ align-items: flex-start;
1097
+ }
1098
+
1099
+ /deep/ .el-tabs__item {
1100
+ padding: 0 1.5rem !important;
1101
+ }
1102
+
1103
+ /deep/ .el-tabs__nav {
1104
+ width: 100% !important;
1105
+ user-select: none;
1106
+ }
1107
+
1108
+ @media (max-width: 1520px) {
1109
+ /deep/ .el-tabs__item {
1110
+ padding: 0 1.2rem !important;
1111
+ }
1112
+ }
1113
+ @media (max-width: 1340px) {
1114
+ /deep/ .el-tabs__item {
1115
+ padding: 0 1rem !important;
1116
+ }
1117
+ }
1118
+ @media (max-width: 1240px) {
1119
+ /deep/ .el-tabs__item {
1120
+ padding: 0 0.8rem !important;
1121
+ }
1122
+ }
1123
+ @media (max-width: 1140px) {
1124
+ /deep/ .el-tabs__item {
1125
+ padding: 0 0.6rem !important;
1126
+ }
1127
+ }
1128
+
1129
+ .readmore {
1130
+ overflow: hidden;
1131
+ text-overflow: ellipsis;
1132
+ display: -webkit-box;
1133
+ -webkit-line-clamp: 3;
1134
+ -webkit-box-orient: vertical;
1135
+ }
1136
+
1137
+ .tab__icon-pane {
1138
+ .img__icon-pane {
1139
+ background-color: #f5f5f5 !important;
1140
+ border-radius: 30%;
1141
+ padding: 7px;
1142
+ height: 2.2rem;
1143
+ width: 2.2rem;
1144
+ margin-bottom: 1rem;
1145
+ }
1146
+ }
1147
+
1148
+ .content-right {
1149
+ width: 25%;
1150
+ }
1151
+
1152
+ .notes-title {
1153
+ font-size: 14px;
1154
+ word-break: break-word;
1155
+ color: #1d364b;
1156
+ font-weight: bold;
1157
+ background-color: white;
1158
+ z-index: 500;
1159
+ }
1160
+
1161
+ .notes-baloon {
1162
+ width: 231px;
1163
+ height: auto;
1164
+ border-radius: 10px 10px 10px 0;
1165
+ background: #eff5fd;
1166
+ &.fullsize {
1167
+ width: 80%!important;
1168
+ min-width: 280px;
1169
+ }
1170
+ }
1171
+ .notes-baloon-melissa {
1172
+ padding: 5px 0;
1173
+ .question-melissa-title{
1174
+ font-size: 12px !important;
1175
+ color:#62778c;
1176
+ span {
1177
+ word-break: break-word;
1178
+ }
1179
+ }
1180
+ .notes-text-melissa {
1181
+ font-size: 0.875rem;
1182
+ color: #1d364b;
1183
+ font-weight: bold;
1184
+ }
1185
+ &.fullsize {
1186
+ width: 80%!important;
1187
+ min-width: 280px;
1188
+ }
1189
+ }
1190
+
1191
+ .notes-text {
1192
+ p {
1193
+ font-size: 13px;
1194
+ color: #62778c;
1195
+ }
1196
+ }
1197
+
1198
+ .notes-date {
1199
+ font-size: 11px;
1200
+ text-align: right;
1201
+
1202
+ color: #8da2b5;
1203
+ top: calc(50% - 17px / 2 - 444.5px);
1204
+ }
1205
+
1206
+ .notes-owner {
1207
+ img {
1208
+ width: 23px;
1209
+ height: 23px;
1210
+ border-radius: 50%;
1211
+ }
1212
+
1213
+ .notes-avatar {
1214
+ width: 23px;
1215
+ height: 23px;
1216
+ border-radius: 50%;
1217
+ background-color: #adb5bd;
1218
+ }
1219
+
1220
+ p {
1221
+ font-size: 13px;
1222
+ font-weight: 600;
1223
+ text-transform: uppercase;
1224
+
1225
+ color: #62778c;
1226
+ }
1227
+ }
1228
+
1229
+ .notes-new {
1230
+ width: 95%;
1231
+ height: 33px;
1232
+
1233
+ background: #f5f5f5;
1234
+ border-radius: 16.5px;
1235
+ border: none;
1236
+
1237
+ outline: 0;
1238
+ }
1239
+
1240
+ .line {
1241
+ width: 221px;
1242
+ height: 0px;
1243
+
1244
+ border: 1px solid #ececec5c;
1245
+ }
1246
+
1247
+ .history {
1248
+ word-break: break-word;
1249
+
1250
+ .history-text {
1251
+ font-size: 13px;
1252
+ color: #62778c;
1253
+ }
1254
+
1255
+ span {
1256
+ font-size: 11px;
1257
+ line-height: 16px;
1258
+
1259
+ color: #8da2b5;
1260
+ }
1261
+ }
1262
+
1263
+ .cursor-disabled {
1264
+ cursor: no-drop;
1265
+ }
1266
+ </style>