@burh/nuxt-core 1.0.214 → 1.0.218

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,60 +1,61 @@
1
1
  <template>
2
- <article class="recruitment__card" @click="$emit('card-click')">
3
- <header class="recruitment__card__header">
4
- <div class="recruitment__card__header__status">
5
- <p>SELECT</p>
6
- </div>
7
- <div class="recruitment__card__header__actions">
8
- <el-tooltip placement="top" content="Anotações">
9
- <button
10
- class="action__item"
11
- @click.stop.prevent="$emit('notes-click')"
12
- >
13
- <i class="far fa-comment-alt"></i>
14
- </button>
15
- </el-tooltip>
2
+ <nuxt-link :to="`/recrutamento/vaga/${job.id}`" class="recruitment__card">
3
+ <article>
4
+ <header class="recruitment__card__header">
5
+ <div class="recruitment__card__header__status">
6
+ <p>SELECT</p>
7
+ </div>
8
+ <div class="recruitment__card__header__actions">
9
+ <el-tooltip placement="top" content="Anotações">
10
+ <button
11
+ class="action__item"
12
+ @click.stop.prevent="$emit('notes-click')"
13
+ >
14
+ <i class="far fa-comment-alt"></i>
15
+ </button>
16
+ </el-tooltip>
16
17
 
17
- <el-tooltip placement="top" content="Compartilhar">
18
- <button
19
- class="action__item"
20
- @click.stop.prevent="$emit('share-click')"
21
- >
22
- <i class="fas fa-share-alt"></i>
23
- </button>
24
- </el-tooltip>
25
- </div>
26
- </header>
18
+ <el-tooltip placement="top" content="Compartilhar">
19
+ <button
20
+ class="action__item"
21
+ @click.stop.prevent="$emit('share-click')"
22
+ >
23
+ <i class="fas fa-share-alt"></i>
24
+ </button>
25
+ </el-tooltip>
26
+ </div>
27
+ </header>
27
28
 
28
- <section class="recruitment__card__content">
29
- <span class="recruitment__card__content__date">Publicada {{fromNow(job.published_at)}}</span>
30
- <h2 class="recruitment__card__content__title">{{ job.title }}</h2>
31
- <span class="recruitment__card__content__id">{{ job.id }}</span>
29
+ <section class="recruitment__card__content">
30
+ <span class="recruitment__card__content__date">Publicada {{fromNow(job.published_at)}}</span>
31
+ <h2 class="recruitment__card__content__title">{{ job.title }}</h2>
32
+ <span class="recruitment__card__content__id">{{ job.id }}</span>
32
33
 
33
- <div class="recruitment__card__info">
34
- <p class="recruitment__card__info__text"><span>{{ job.info.applieds }}</span>Inscritos</p>
35
- <p class="recruitment__card__info__text"><span>{{ job.info.positions }}</span>Posição</p>
36
- <p class="recruitment__card__info__text"><span>{{ job.info.hireds }}</span>Contratados</p>
37
- </div>
38
- </section>
34
+ <div class="recruitment__card__info">
35
+ <p class="recruitment__card__info__text"><span>{{ job.info.applieds }}</span>Inscritos</p>
36
+ <p class="recruitment__card__info__text"><span>{{ job.info.positions }}</span>Posição</p>
37
+ <p class="recruitment__card__info__text"><span>{{ job.info.hireds }}</span>Contratados</p>
38
+ </div>
39
+ </section>
39
40
 
40
- <footer class="recruitment__card__footer">
41
- <p class="recruitment__card__footer__title">EQUIPE RESPONSÁVEL</p>
42
- <div class="recruitment__card__footer__images">
43
- <el-tooltip
44
- v-for="(user, index) in job.team"
45
- :key="index"
46
- placement="top"
47
- :content="user.name"
48
- >
49
- <img
50
- :src="user.image"
51
- :alt="user.name"
41
+ <footer class="recruitment__card__footer">
42
+ <p class="recruitment__card__footer__title">EQUIPE RESPONSÁVEL</p>
43
+ <div class="recruitment__card__footer__images">
44
+ <el-tooltip
45
+ v-for="(user, index) in job.team"
46
+ :key="index"
47
+ placement="top"
48
+ :content="user.name"
52
49
  >
53
- </el-tooltip>
54
- </div>
55
- </footer>
56
-
57
- </article>
50
+ <img
51
+ :src="user.image"
52
+ :alt="user.name"
53
+ >
54
+ </el-tooltip>
55
+ </div>
56
+ </footer>
57
+ </article>
58
+ </nuxt-link>
58
59
  </template>
59
60
 
60
61
  <script>
@@ -85,6 +86,13 @@ export default {
85
86
  padding: 20px;
86
87
  border-radius: 4px;
87
88
  transition: transform 0.25s;
89
+ border: none;
90
+ text-align: initial;
91
+ color: #1D364B;
92
+ &:focus {
93
+ outline: none;
94
+ transform: translateY(-5px);
95
+ }
88
96
  &:hover {
89
97
  transform: translateY(-5px);
90
98
  }
@@ -114,7 +122,7 @@ export default {
114
122
  }
115
123
  &:focus {
116
124
  outline: none;
117
- box-shadow: none;
125
+ background: rgba(0, 0, 0, 0.08);
118
126
  }
119
127
  &:not(:first-child) {
120
128
  margin-left: 5px;
@@ -10,12 +10,17 @@
10
10
  <div class="header__content">
11
11
  <h2 class="font-weight-bold display-3">{{name}}</h2>
12
12
  <div class="images" v-if="images.length">
13
- <img
13
+ <el-tooltip
14
14
  v-for="(image, index) in images"
15
15
  :key="index"
16
- :src="image.src"
17
- :alt="image.name"
16
+ placement="top"
17
+ :content="image.name"
18
18
  >
19
+ <img
20
+ :src="image.src"
21
+ :alt="image.name"
22
+ >
23
+ </el-tooltip>
19
24
  </div>
20
25
  </div>
21
26
 
@@ -1,230 +1,238 @@
1
1
  <template>
2
- <el-dialog
3
- :visible.sync="isModalOpen"
4
- width="54%"
5
- custom-class="position-relative"
6
- @close="$emit('close')"
7
- >
8
- <template>
9
- <div class="ml-5 mr-5">
10
- <div class="row send send-test mx-0">
11
- <h5>Insira o e-mail que deseja enviar o teste</h5>
12
- </div>
2
+ <el-dialog
3
+ :visible.sync="isModalOpen"
4
+ width="54%"
5
+ custom-class="position-relative"
6
+ @close="$emit('close')"
7
+ >
8
+ <template>
9
+ <div class="ml-5 mr-5">
10
+ <div class="row send send-test mx-0">
11
+ <h5>Insira o e-mail que deseja enviar o teste</h5>
12
+ </div>
13
13
 
14
- <div class="row mt-3 send send-form">
15
- <div class="col-6">
16
- <label for="teste">Selecione a vaga</label>
17
- <el-select
18
- filterable
19
- no-match-text="Nenhuma vaga encontrada"
20
- no-data-text="Nenhuma vaga encontrada"
21
- placeholder="Escolha a vaga"
22
- v-model="jobid"
23
- class="w-100"
24
- >
25
- <el-option
26
- v-for="job in allJobs"
27
- class="select-danger"
28
- :value="job.id"
29
- :label="job.name"
30
- :key="job.id"
31
- ></el-option>
32
- </el-select>
33
- <span></span>
34
- </div>
14
+ <div class="row mt-3 send send-form">
15
+ <div class="col-6">
16
+ <label for="teste">Selecione a vaga</label>
17
+ <badge
18
+ rounded
19
+ size="md"
20
+ type="primary"
21
+ class="ml-auto badge-bg-color badge-font">
22
+ opcional
23
+ </badge>
24
+ <el-select
25
+ filterable
26
+ no-match-text="Nenhuma vaga encontrada"
27
+ no-data-text="Nenhuma vaga encontrada"
28
+ placeholder="Escolha a vaga"
29
+ v-model="jobid"
30
+ class="w-100"
31
+ >
32
+ <el-option
33
+ v-for="job in allJobs"
34
+ class="select-danger"
35
+ :value="job.id"
36
+ :label="job.name"
37
+ :key="job.id"
38
+ ></el-option>
39
+ </el-select>
40
+ </div>
35
41
 
36
- <div class="col-6">
37
- <label for="teste">Selecione o teste</label>
38
- <el-select
39
- filterable
40
- no-match-text="Nenhuma teste encontrado"
41
- no-data-text="Nenhum teste encontrado"
42
- placeholder="Escolha o teste"
43
- v-model="testid"
44
- class="w-100"
45
- >
46
- <el-option
47
- v-for="test in allTests"
48
- class="select-danger"
49
- :value="test.id"
50
- :label="test.name"
51
- :key="test.id"
52
- :disabled="
53
- !categoryIsAllowedToSend(
54
- test.category_test_id
55
- )
56
- "
57
- ></el-option>
58
- </el-select>
59
- </div>
60
- </div>
42
+ <div class="col-6">
43
+ <label for="teste">Selecione o teste</label>
44
+ <el-select
45
+ filterable
46
+ no-match-text="Nenhuma teste encontrado"
47
+ no-data-text="Nenhum teste encontrado"
48
+ placeholder="Escolha o teste"
49
+ v-model="testid"
50
+ class="w-100"
51
+ >
52
+ <el-option
53
+ v-for="test in allTests"
54
+ class="select-danger"
55
+ :value="test.id"
56
+ :label="test.name"
57
+ :key="test.id"
58
+ :disabled="
59
+ !categoryIsAllowedToSend(
60
+ test.category_test_id
61
+ )
62
+ "
63
+ ></el-option>
64
+ </el-select>
65
+ </div>
66
+ </div>
61
67
 
62
- <hr />
68
+ <hr />
63
69
 
64
- <validation-observer ref="sendTest">
65
- <div
66
- class="row mt-3 send send-form"
67
- v-for="(slot, idx) in slots"
68
- :key="idx"
69
- >
70
- <!-- <label for="name">Nome</label> -->
71
- <div class="col-6">
72
- <validation-provider
73
- tag="div"
74
- :vid="`send-name-${idx}`"
75
- name="Nome"
76
- rules="required"
77
- v-slot="{ errors }"
78
- >
79
- <label for="email">Nome</label>
80
- <base-input
81
- v-model="slot.name"
82
- :error="errors[0]"
83
- :valid="errors.length ? true : false"
84
- class="w-100"
85
- placeholder="Nome do usuário/candidato"
86
- id="name"
87
- />
88
- </validation-provider>
89
- </div>
70
+ <validation-observer ref="sendTest">
71
+ <div
72
+ class="row mt-3 send send-form"
73
+ v-for="(slot, idx) in slots"
74
+ :key="idx"
75
+ >
76
+ <!-- <label for="name">Nome</label> -->
77
+ <div class="col-6">
78
+ <validation-provider
79
+ tag="div"
80
+ :vid="`send-name-${idx}`"
81
+ name="Nome"
82
+ rules="required"
83
+ v-slot="{ errors }"
84
+ >
85
+ <label for="email">Nome</label>
86
+ <base-input
87
+ v-model="slot.name"
88
+ :error="errors[0]"
89
+ :valid="errors.length ? true : false"
90
+ class="w-100"
91
+ placeholder="Nome do usuário/candidato"
92
+ id="name"
93
+ />
94
+ </validation-provider>
95
+ </div>
90
96
 
91
- <div class="col-6">
92
- <validation-provider
93
- tag="div"
94
- :vid="`send-email-${idx}`"
95
- name="Email"
96
- rules="required|email"
97
- v-slot="{ errors }"
98
- >
99
- <label for="email">E-mail</label>
100
- <base-input
101
- v-model="slot.email"
102
- :error="errors[0]"
103
- :valid="errors.length ? true : false"
104
- class="w-100"
105
- id="email"
106
- placeholder="E-mail do usuário/candidato"
107
- />
108
- <div class="send send-icon">
109
- <i
110
- v-if="idx !== slots.length - 1"
111
- class="fa fa-trash pointer"
112
- @click="removeSlot(slot.id)"
113
- ></i>
114
- <i
115
- v-else
116
- class="fa fa-plus pointer"
117
- @click="addSlot"
118
- ></i>
119
- </div>
120
- </validation-provider>
121
- </div>
122
- </div>
123
- </validation-observer>
97
+ <div class="col-6">
98
+ <validation-provider
99
+ tag="div"
100
+ :vid="`send-email-${idx}`"
101
+ name="Email"
102
+ rules="required|email"
103
+ v-slot="{ errors }"
104
+ >
105
+ <label for="email">E-mail</label>
106
+ <base-input
107
+ v-model="slot.email"
108
+ :error="errors[0]"
109
+ :valid="errors.length ? true : false"
110
+ class="w-100"
111
+ id="email"
112
+ placeholder="E-mail do usuário/candidato"
113
+ />
114
+ <div class="send send-icon">
115
+ <i
116
+ v-if="idx !== slots.length - 1"
117
+ class="fa fa-trash pointer"
118
+ @click="removeSlot(slot.id)"
119
+ ></i>
120
+ <i
121
+ v-else
122
+ class="fa fa-plus pointer"
123
+ @click="addSlot"
124
+ ></i>
125
+ </div>
126
+ </validation-provider>
127
+ </div>
128
+ </div>
129
+ </validation-observer>
124
130
 
125
- <div class="col text-center mt-1">
126
- <button class="send send-button" @click="sendTest">
127
- Enviar teste
128
- </button>
129
- </div>
130
- </div>
131
+ <div class="col text-center mt-1">
132
+ <button class="send send-button" @click="sendTest">
133
+ Enviar teste
134
+ </button>
135
+ </div>
136
+ </div>
131
137
 
132
- <span class="tool tool-close" @click="closeModal">
133
- Fechar
134
- <font-awesome-icon
135
- :icon="['fas', 'times']"
136
- class="text-white ml-1"
137
- />
138
- </span>
139
- </template>
140
- </el-dialog>
138
+ <span class="tool tool-close" @click="closeModal">
139
+ Fechar
140
+ <font-awesome-icon
141
+ :icon="['fas', 'times']"
142
+ class="text-white ml-1"
143
+ />
144
+ </span>
145
+ </template>
146
+ </el-dialog>
141
147
  </template>
142
148
 
143
149
  <script>
144
150
  import { Dialog, Select, Option } from 'element-ui';
151
+ import Badge from '../../argon-core/Badge.vue';
145
152
 
146
153
  export default {
147
- name: 'send-test',
148
- components: {
149
- [Select.name]: Select,
150
- [Option.name]: Option,
151
- [Dialog.name]: Dialog
152
- },
153
- props: {
154
- allTests: Array,
155
- allJobs: Array,
156
- isModalOpen: {
157
- type: Boolean,
158
- default: false
159
- },
160
- selectedTest: Number,
161
- categoriesAllowedToSend: {
162
- type: Object,
163
- default: () => ({})
164
- }
165
- },
166
- methods: {
167
- closeModal(e) {
168
- this.$emit('closemodal', e);
169
- },
170
- removeSlot(id) {
171
- this.slots = this.slots.filter(slot => slot.id !== id);
172
- },
173
- addSlot() {
174
- const newSlot = {
175
- id: new Date().getTime(),
176
- name: '',
177
- email: '',
178
- selected: 8
179
- };
154
+ name: 'send-test',
155
+ components: {
156
+ [Select.name]: Select,
157
+ [Option.name]: Option,
158
+ [Dialog.name]: Dialog
159
+ },
160
+ props: {
161
+ hasEnableBadge: Boolean,
162
+ allTests: Array,
163
+ allJobs: Array,
164
+ isModalOpen: {
165
+ type: Boolean,
166
+ default: false
167
+ },
168
+ selectedTest: Number,
169
+ categoriesAllowedToSend: {
170
+ type: Object,
171
+ default: () => ({})
172
+ }
173
+ },
174
+ methods: {
175
+ closeModal(e) {
176
+ this.$emit('closemodal', e);
177
+ },
178
+ removeSlot(id) {
179
+ this.slots = this.slots.filter(slot => slot.id !== id);
180
+ },
181
+ addSlot() {
182
+ const newSlot = {
183
+ id: new Date().getTime(),
184
+ name: '',
185
+ email: '',
186
+ selected: 8
187
+ };
180
188
 
181
- this.slots = [...this.slots, newSlot];
182
- },
183
- async sendTest() {
184
- const pass = await this.$refs.sendTest.validate();
185
- if (!pass) {
186
- return;
187
- }
188
- const filterSlots = slot => slot.email !== '';
189
- const formatRequest = slot => ({
190
- ...slot,
191
- jobid: this.jobid,
192
- testid: this.testid
193
- });
194
- const testRequest = this.slots
195
- .filter(filterSlots)
196
- .map(formatRequest);
197
- this.$emit('send-test', testRequest);
198
- this.$emit('closemodal');
199
- },
200
- categoryIsAllowedToSend(categoryId) {
201
- const categoryIsAllowToSend = Object.values(
202
- this.categoriesAllowedToSend
203
- ).find(id => id == categoryId);
204
- return categoryIsAllowToSend ? true : false;
205
- }
206
- },
207
- watch: {
208
- selectedTest(newValue) {
209
- this.testid = newValue;
210
- },
211
- isModalOpen(newValue) {
212
- !newValue && this.closeModal();
213
- }
214
- },
215
- data() {
216
- return {
217
- jobid: null,
218
- testid: this.selectedTest,
219
- slots: [
220
- {
221
- id: 'first',
222
- name: '',
223
- email: ''
224
- }
225
- ]
226
- };
227
- }
189
+ this.slots = [...this.slots, newSlot];
190
+ },
191
+ async sendTest() {
192
+ const pass = await this.$refs.sendTest.validate();
193
+ if (!pass) {
194
+ return;
195
+ }
196
+ const filterSlots = slot => slot.email !== '';
197
+ const formatRequest = slot => ({
198
+ ...slot,
199
+ jobid: this.jobid,
200
+ testid: this.testid
201
+ });
202
+ const testRequest = this.slots
203
+ .filter(filterSlots)
204
+ .map(formatRequest);
205
+ this.$emit('send-test', testRequest);
206
+ this.$emit('closemodal');
207
+ },
208
+ categoryIsAllowedToSend(categoryId) {
209
+ const categoryIsAllowToSend = Object.values(
210
+ this.categoriesAllowedToSend
211
+ ).find(id => id == categoryId);
212
+ return categoryIsAllowToSend ? true : false;
213
+ }
214
+ },
215
+ watch: {
216
+ selectedTest(newValue) {
217
+ this.testid = newValue;
218
+ },
219
+ isModalOpen(newValue) {
220
+ !newValue && this.closeModal();
221
+ }
222
+ },
223
+ data() {
224
+ return {
225
+ jobid: null,
226
+ testid: this.selectedTest,
227
+ slots: [
228
+ {
229
+ id: 'first',
230
+ name: '',
231
+ email: ''
232
+ }
233
+ ]
234
+ };
235
+ }
228
236
  };
229
237
  </script>
230
238
  <style lang="scss" scoped>
@@ -246,6 +254,10 @@ export default {
246
254
  margin-top: 0.7rem !important;
247
255
  }
248
256
 
257
+ .badge-font {
258
+ font-size: 10px !important;
259
+ }
260
+
249
261
  .send {
250
262
  &-test {
251
263
  h5 {
@@ -78,6 +78,7 @@
78
78
  </div>
79
79
 
80
80
  <validation-provider
81
+ v-if="isModalOpen"
81
82
  tag="div"
82
83
  class="pb-3"
83
84
  name="Texto da mensagem"
@@ -181,7 +182,20 @@ export default {
181
182
  watch: {
182
183
  templates(newValue) {
183
184
  this.models = newValue;
185
+ },
186
+ isModalOpen(newValue) {
187
+ if (!newValue) {
188
+ this.templates = null
189
+ this.models = this.templates
190
+ this.messageTitle = null
191
+ this.receiver = null
192
+ this.message = ''
193
+ this.saveModel = false
194
+ this.modelName = null
195
+ this.allNumbers = []
196
+ }
184
197
  }
198
+
185
199
  },
186
200
  data() {
187
201
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burh/nuxt-core",
3
- "version": "1.0.214",
3
+ "version": "1.0.218",
4
4
  "description": "Design System and Components.",
5
5
  "author": "Burh",
6
6
  "scripts": {