@burh/nuxt-core 1.0.258 → 1.0.259

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.
@@ -3,7 +3,10 @@
3
3
  <article>
4
4
  <header class="recruitment__card__header">
5
5
  <div class="recruitment__card__header__status">
6
- <p>SELECT</p>
6
+ <job-status-dropdown
7
+ :status="job.status"
8
+ @select="handleChangeJobStatus"
9
+ />
7
10
  </div>
8
11
  <div class="recruitment__card__header__actions">
9
12
  <el-tooltip placement="top" content="Anotações">
@@ -62,8 +65,13 @@
62
65
  import moment from 'moment';
63
66
  import 'moment/locale/pt-br';
64
67
 
68
+ import JobStatusDropdown from '@burh/nuxt-core/components/burh-ds/Dropdown/JobStatusDropdown.vue';
69
+
65
70
  export default {
66
71
  name: 'recruitment-card',
72
+ components: {
73
+ JobStatusDropdown
74
+ },
67
75
  props: {
68
76
  job: {
69
77
  type: Object,
@@ -73,6 +81,9 @@ export default {
73
81
  methods: {
74
82
  fromNow(date, format = 'YYYYMMDD') {
75
83
  return moment(date, format).fromNow();
84
+ },
85
+ handleChangeJobStatus(id) {
86
+ this.$emit('select', id);
76
87
  }
77
88
  }
78
89
  };
@@ -0,0 +1,218 @@
1
+ <template>
2
+ <div class="university__user__card">
3
+ <div class="university__user__card__header">
4
+ <img :src="cover" alt="Cover" class="user__cover" />
5
+ </div>
6
+
7
+ <div class="university__user__card__content">
8
+ <img :src="universityData.urlLogo" :alt="universityData.name" />
9
+ <span class="name">
10
+ {{ universityData.initials }}
11
+ </span>
12
+ <!-- <span class="city">
13
+ <i class="fas fa-map-marker-alt"></i>
14
+ Sorocaba
15
+ </span> -->
16
+ <div class="info">
17
+ <span
18
+ >Aproximadamente
19
+ {{ universityData.studentsCount }} alunos</span
20
+ >
21
+ </div>
22
+ </div>
23
+
24
+ <!-- <div class="university__user__card__footer">
25
+ <span>
26
+ <el-tooltip placement="top" content="Indicado">
27
+ <i class="fas fa-user-plus"></i>
28
+ </el-tooltip>
29
+ </span>
30
+ <span>
31
+ <el-tooltip placement="top" content="Reincidente">
32
+ <i class="fas fa-sync-alt"></i>
33
+ </el-tooltip>
34
+ </span>
35
+ <span>
36
+ <el-tooltip placement="top" content="Visualizado">
37
+ <i class="fas fa-eye"></i>
38
+ </el-tooltip>
39
+ </span>
40
+ <span>
41
+ <el-tooltip placement="top" content="Interno">
42
+ <i class="fas fa-building"></i>
43
+ </el-tooltip>
44
+ </span>
45
+ </div> -->
46
+ </div>
47
+ </template>
48
+
49
+ <script>
50
+ import { Checkbox } from 'element-ui';
51
+
52
+ export default {
53
+ name: 'university-card',
54
+ components: {
55
+ ElCheckbox: Checkbox
56
+ },
57
+ data() {
58
+ return {
59
+ isChecked: false
60
+ };
61
+ },
62
+ props: {
63
+ universityData: {
64
+ type: Object,
65
+ default: {},
66
+ description: 'Data of university'
67
+ },
68
+ cover: {
69
+ type: String,
70
+ default: '',
71
+ description: 'University cover'
72
+ }
73
+ }
74
+ };
75
+ </script>
76
+
77
+ <style lang="scss" scoped>
78
+ .university__user__card {
79
+ background: #fff;
80
+ box-shadow: 0 3px 20px rgba(0, 0, 0, 0.08);
81
+ border-radius: 4px;
82
+ overflow: hidden;
83
+ cursor: pointer;
84
+ transition: transform 0.25s;
85
+ &:focus {
86
+ outline: none;
87
+ transform: translateY(-5px);
88
+ }
89
+ &:hover {
90
+ transform: translateY(-5px);
91
+ }
92
+
93
+ &__header {
94
+ width: 100%;
95
+ height: 70px;
96
+ overflow: hidden;
97
+ position: relative;
98
+ &::before {
99
+ content: '';
100
+ position: absolute;
101
+ top: 0;
102
+ left: 0;
103
+ width: 100%;
104
+ height: 100%;
105
+ z-index: 1;
106
+ backdrop-filter: blur(3px);
107
+ -webkit-backdrop-filter: blur(3px);
108
+ }
109
+ img {
110
+ width: 100%;
111
+ height: 100%;
112
+ object-fit: cover;
113
+ }
114
+ &__actions {
115
+ position: absolute;
116
+ top: 0;
117
+ left: 0;
118
+ width: 100%;
119
+ display: flex;
120
+ align-items: center;
121
+ justify-content: space-between;
122
+ padding: 10px 15px;
123
+ z-index: 2;
124
+ .right {
125
+ display: flex;
126
+ align-items: center;
127
+ flex-direction: row;
128
+ button {
129
+ color: #fff;
130
+ border: 0;
131
+ background: transparent;
132
+ width: 32px;
133
+ height: 32px;
134
+ display: flex;
135
+ align-items: center;
136
+ justify-content: center;
137
+ .notes {
138
+ position: relative;
139
+ &::after {
140
+ content: '';
141
+ position: absolute;
142
+ top: -5px;
143
+ right: -5px;
144
+ width: 10px;
145
+ height: 10px;
146
+ background: #ff7d7e;
147
+ border-radius: 100px;
148
+ }
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
154
+ &__content {
155
+ display: flex;
156
+ flex-direction: column;
157
+ align-items: center;
158
+ justify-content: center;
159
+ img {
160
+ background: #fff;
161
+ width: 120px;
162
+ height: 120px;
163
+ border-radius: 100px;
164
+ object-fit: cover;
165
+ margin-top: -20px;
166
+ z-index: 10;
167
+ box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
168
+ object-fit: contain;
169
+ }
170
+
171
+ .name {
172
+ font-size: 1.275rem;
173
+ font-weight: 500;
174
+ color: #1d364b;
175
+ padding-top: 20px;
176
+ text-transform: uppercase;
177
+ }
178
+ .age {
179
+ font-weight: 500;
180
+ font-size: 0.875rem;
181
+ color: #1f8ceb;
182
+ padding-bottom: 20px;
183
+ }
184
+
185
+ .city {
186
+ font-size: 1rem;
187
+ font-weight: 400;
188
+ color: #525f7f;
189
+ }
190
+
191
+ .info {
192
+ padding: 30px 0;
193
+ text-align: center;
194
+ span {
195
+ font-size: 0.75rem;
196
+ font-weight: 500;
197
+ color: #aeb6be;
198
+ text-transform: uppercase;
199
+ }
200
+ }
201
+ }
202
+ &__footer {
203
+ display: flex;
204
+ align-items: center;
205
+ justify-content: center;
206
+ padding-bottom: 20px;
207
+ span {
208
+ font-size: 0.875rem;
209
+ font-weight: 500;
210
+ margin: 0 10px;
211
+ color: #aeb6be;
212
+ &.new {
213
+ color: #1f8ceb;
214
+ }
215
+ }
216
+ }
217
+ }
218
+ </style>
@@ -0,0 +1,145 @@
1
+ <template>
2
+ <div class="job__status" v-if="selectedOptionId">
3
+ <p class="job__status__title" @click.stop.prevent="toggleDropdown">
4
+ <span :class="`color--${options[(selectedOptionId - 1)].color}`"></span>
5
+ {{ options[(selectedOptionId - 1)].title }}
6
+ <i class="fas fa-caret-down"></i>
7
+ </p>
8
+ <ul class="job__status__dropdown" :class="{ 'job__status__dropdown--open': isDropdownOpen }">
9
+ <li
10
+ v-for="item in options"
11
+ :key="item.id"
12
+ >
13
+ <p
14
+ class="job__status__title"
15
+ v-if="item.id !== selectedOptionId"
16
+ @click.stop.prevent="selectOption(item.id)"
17
+ >
18
+ <span :class="`color--${item.color}`"></span>
19
+ {{ item.title }}
20
+ </p>
21
+ </li>
22
+ </ul>
23
+ </div>
24
+ </template>
25
+
26
+ <script>
27
+ export default {
28
+ name: 'job-status-dropdown',
29
+ props: {
30
+ status: {
31
+ type: Number,
32
+ default: 1
33
+ }
34
+ },
35
+ data() {
36
+ return {
37
+ isDropdownOpen: false,
38
+ selectedOptionId: null,
39
+ options: [
40
+ {
41
+ id: 1,
42
+ title: 'Aberta',
43
+ color: 'green'
44
+ },
45
+ {
46
+ id: 2,
47
+ title: 'Em Análise',
48
+ color: 'yellow'
49
+ },
50
+ {
51
+ id: 3,
52
+ title: 'Pausada',
53
+ color: 'pink'
54
+ },
55
+ {
56
+ id: 4,
57
+ title: 'Finalizada',
58
+ color: 'blue'
59
+ }
60
+ ]
61
+ };
62
+ },
63
+ mounted() {
64
+ this.selectedOptionId = this.status;
65
+ },
66
+ methods: {
67
+ toggleDropdown() {
68
+ this.isDropdownOpen = !this.isDropdownOpen;
69
+ },
70
+ selectOption(id) {
71
+ this.selectedOptionId = id;
72
+ this.isDropdownOpen = false;
73
+ this.$emit('select', id);
74
+ }
75
+ }
76
+ };
77
+ </script>
78
+
79
+ <style lang="scss" scoped>
80
+ .job__status {
81
+ position: relative;
82
+ &__dropdown {
83
+ position: absolute;
84
+ left: -20px;
85
+ transform: translateY(-10px);
86
+ opacity: 0;
87
+ pointer-events: none;
88
+ background: #fff;
89
+ box-shadow: 3px 3px 20px rgba(0, 0, 0, 0.2);
90
+ list-style: none;
91
+ border-radius: 4px;
92
+ overflow: hidden;
93
+ min-width: 220px;
94
+ padding: 0!important;
95
+ margin: 0!important;
96
+ transition: transform 0.3s, opacity 0.3s;
97
+ transform-origin: top;
98
+ &--open {
99
+ transform: translateY(10px);
100
+ opacity: 1;
101
+ pointer-events: all;
102
+ }
103
+ li {
104
+ display: block;
105
+ p {
106
+ padding: 15px 20px;
107
+ transition: background 0.5s, color 0.5s;
108
+ &:hover {
109
+ background: #F6F9FC;
110
+ color: #1F8CEB;
111
+ }
112
+ }
113
+ }
114
+ }
115
+ &__title {
116
+ cursor: pointer;
117
+ display: flex;
118
+ align-items: center;
119
+ user-select: none;
120
+ margin: 0!important;
121
+ span {
122
+ display: block;
123
+ border-radius: 100px;
124
+ width: 12px;
125
+ height: 12px;
126
+ margin-right: 10px;
127
+ &.color--green {
128
+ background: #3AC089;
129
+ }
130
+ &.color--yellow {
131
+ background: #FFCF02;
132
+ }
133
+ &.color--pink {
134
+ background: #FF539D;
135
+ }
136
+ &.color--blue {
137
+ background: #0C95FC;
138
+ }
139
+ }
140
+ i {
141
+ margin-left: 10px;
142
+ }
143
+ }
144
+ }
145
+ </style>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burh/nuxt-core",
3
- "version": "1.0.258",
3
+ "version": "1.0.259",
4
4
  "description": "Design System and Components.",
5
5
  "author": "Burh",
6
6
  "scripts": {