@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
|
-
<
|
|
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,238 @@
|
|
|
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="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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
|
|
68
|
+
<hr />
|
|
63
69
|
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 {
|