@burh/nuxt-core 1.0.214 → 1.0.216
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
|
-
<
|
|
3
|
-
<
|
|
4
|
-
<
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
<
|
|
9
|
-
<
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
-
|
|
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
|
-
<
|
|
13
|
+
<el-tooltip
|
|
14
14
|
v-for="(image, index) in images"
|
|
15
15
|
:key="index"
|
|
16
|
-
|
|
17
|
-
:
|
|
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,239 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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="send-badge 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
|
+
<span></span>
|
|
41
|
+
</div>
|
|
35
42
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
43
|
+
<div class="col-6">
|
|
44
|
+
<label for="teste">Selecione o teste</label>
|
|
45
|
+
<el-select
|
|
46
|
+
filterable
|
|
47
|
+
no-match-text="Nenhuma teste encontrado"
|
|
48
|
+
no-data-text="Nenhum teste encontrado"
|
|
49
|
+
placeholder="Escolha o teste"
|
|
50
|
+
v-model="testid"
|
|
51
|
+
class="w-100"
|
|
52
|
+
>
|
|
53
|
+
<el-option
|
|
54
|
+
v-for="test in allTests"
|
|
55
|
+
class="select-danger"
|
|
56
|
+
:value="test.id"
|
|
57
|
+
:label="test.name"
|
|
58
|
+
:key="test.id"
|
|
59
|
+
:disabled="
|
|
60
|
+
!categoryIsAllowedToSend(
|
|
61
|
+
test.category_test_id
|
|
62
|
+
)
|
|
63
|
+
"
|
|
64
|
+
></el-option>
|
|
65
|
+
</el-select>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
61
68
|
|
|
62
|
-
|
|
69
|
+
<hr />
|
|
63
70
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
71
|
+
<validation-observer ref="sendTest">
|
|
72
|
+
<div
|
|
73
|
+
class="row mt-3 send send-form"
|
|
74
|
+
v-for="(slot, idx) in slots"
|
|
75
|
+
:key="idx"
|
|
76
|
+
>
|
|
77
|
+
<!-- <label for="name">Nome</label> -->
|
|
78
|
+
<div class="col-6">
|
|
79
|
+
<validation-provider
|
|
80
|
+
tag="div"
|
|
81
|
+
:vid="`send-name-${idx}`"
|
|
82
|
+
name="Nome"
|
|
83
|
+
rules="required"
|
|
84
|
+
v-slot="{ errors }"
|
|
85
|
+
>
|
|
86
|
+
<label for="email">Nome</label>
|
|
87
|
+
<base-input
|
|
88
|
+
v-model="slot.name"
|
|
89
|
+
:error="errors[0]"
|
|
90
|
+
:valid="errors.length ? true : false"
|
|
91
|
+
class="w-100"
|
|
92
|
+
placeholder="Nome do usuário/candidato"
|
|
93
|
+
id="name"
|
|
94
|
+
/>
|
|
95
|
+
</validation-provider>
|
|
96
|
+
</div>
|
|
90
97
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
98
|
+
<div class="col-6">
|
|
99
|
+
<validation-provider
|
|
100
|
+
tag="div"
|
|
101
|
+
:vid="`send-email-${idx}`"
|
|
102
|
+
name="Email"
|
|
103
|
+
rules="required|email"
|
|
104
|
+
v-slot="{ errors }"
|
|
105
|
+
>
|
|
106
|
+
<label for="email">E-mail</label>
|
|
107
|
+
<base-input
|
|
108
|
+
v-model="slot.email"
|
|
109
|
+
:error="errors[0]"
|
|
110
|
+
:valid="errors.length ? true : false"
|
|
111
|
+
class="w-100"
|
|
112
|
+
id="email"
|
|
113
|
+
placeholder="E-mail do usuário/candidato"
|
|
114
|
+
/>
|
|
115
|
+
<div class="send send-icon">
|
|
116
|
+
<i
|
|
117
|
+
v-if="idx !== slots.length - 1"
|
|
118
|
+
class="fa fa-trash pointer"
|
|
119
|
+
@click="removeSlot(slot.id)"
|
|
120
|
+
></i>
|
|
121
|
+
<i
|
|
122
|
+
v-else
|
|
123
|
+
class="fa fa-plus pointer"
|
|
124
|
+
@click="addSlot"
|
|
125
|
+
></i>
|
|
126
|
+
</div>
|
|
127
|
+
</validation-provider>
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
</validation-observer>
|
|
124
131
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
132
|
+
<div class="col text-center mt-1">
|
|
133
|
+
<button class="send send-button" @click="sendTest">
|
|
134
|
+
Enviar teste
|
|
135
|
+
</button>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
131
138
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
139
|
+
<span class="tool tool-close" @click="closeModal">
|
|
140
|
+
Fechar
|
|
141
|
+
<font-awesome-icon
|
|
142
|
+
:icon="['fas', 'times']"
|
|
143
|
+
class="text-white ml-1"
|
|
144
|
+
/>
|
|
145
|
+
</span>
|
|
146
|
+
</template>
|
|
147
|
+
</el-dialog>
|
|
141
148
|
</template>
|
|
142
149
|
|
|
143
150
|
<script>
|
|
144
151
|
import { Dialog, Select, Option } from 'element-ui';
|
|
152
|
+
import Badge from '../../argon-core/Badge.vue';
|
|
145
153
|
|
|
146
154
|
export default {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
155
|
+
name: 'send-test',
|
|
156
|
+
components: {
|
|
157
|
+
[Select.name]: Select,
|
|
158
|
+
[Option.name]: Option,
|
|
159
|
+
[Dialog.name]: Dialog
|
|
160
|
+
},
|
|
161
|
+
props: {
|
|
162
|
+
hasEnableBadge: Boolean,
|
|
163
|
+
allTests: Array,
|
|
164
|
+
allJobs: Array,
|
|
165
|
+
isModalOpen: {
|
|
166
|
+
type: Boolean,
|
|
167
|
+
default: false
|
|
168
|
+
},
|
|
169
|
+
selectedTest: Number,
|
|
170
|
+
categoriesAllowedToSend: {
|
|
171
|
+
type: Object,
|
|
172
|
+
default: () => ({})
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
methods: {
|
|
176
|
+
closeModal(e) {
|
|
177
|
+
this.$emit('closemodal', e);
|
|
178
|
+
},
|
|
179
|
+
removeSlot(id) {
|
|
180
|
+
this.slots = this.slots.filter(slot => slot.id !== id);
|
|
181
|
+
},
|
|
182
|
+
addSlot() {
|
|
183
|
+
const newSlot = {
|
|
184
|
+
id: new Date().getTime(),
|
|
185
|
+
name: '',
|
|
186
|
+
email: '',
|
|
187
|
+
selected: 8
|
|
188
|
+
};
|
|
180
189
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
190
|
+
this.slots = [...this.slots, newSlot];
|
|
191
|
+
},
|
|
192
|
+
async sendTest() {
|
|
193
|
+
const pass = await this.$refs.sendTest.validate();
|
|
194
|
+
if (!pass) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
const filterSlots = slot => slot.email !== '';
|
|
198
|
+
const formatRequest = slot => ({
|
|
199
|
+
...slot,
|
|
200
|
+
jobid: this.jobid,
|
|
201
|
+
testid: this.testid
|
|
202
|
+
});
|
|
203
|
+
const testRequest = this.slots
|
|
204
|
+
.filter(filterSlots)
|
|
205
|
+
.map(formatRequest);
|
|
206
|
+
this.$emit('send-test', testRequest);
|
|
207
|
+
this.$emit('closemodal');
|
|
208
|
+
},
|
|
209
|
+
categoryIsAllowedToSend(categoryId) {
|
|
210
|
+
const categoryIsAllowToSend = Object.values(
|
|
211
|
+
this.categoriesAllowedToSend
|
|
212
|
+
).find(id => id == categoryId);
|
|
213
|
+
return categoryIsAllowToSend ? true : false;
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
watch: {
|
|
217
|
+
selectedTest(newValue) {
|
|
218
|
+
this.testid = newValue;
|
|
219
|
+
},
|
|
220
|
+
isModalOpen(newValue) {
|
|
221
|
+
!newValue && this.closeModal();
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
data() {
|
|
225
|
+
return {
|
|
226
|
+
jobid: null,
|
|
227
|
+
testid: this.selectedTest,
|
|
228
|
+
slots: [
|
|
229
|
+
{
|
|
230
|
+
id: 'first',
|
|
231
|
+
name: '',
|
|
232
|
+
email: ''
|
|
233
|
+
}
|
|
234
|
+
]
|
|
235
|
+
};
|
|
236
|
+
}
|
|
228
237
|
};
|
|
229
238
|
</script>
|
|
230
239
|
<style lang="scss" scoped>
|
|
@@ -246,6 +255,10 @@ export default {
|
|
|
246
255
|
margin-top: 0.7rem !important;
|
|
247
256
|
}
|
|
248
257
|
|
|
258
|
+
.badge-font {
|
|
259
|
+
font-size: 10px !important;
|
|
260
|
+
}
|
|
261
|
+
|
|
249
262
|
.send {
|
|
250
263
|
&-test {
|
|
251
264
|
h5 {
|