@burh/nuxt-core 1.0.340 → 1.0.341
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.
- package/assets/sass/burh-ds/_global.scss +323 -323
- package/assets/sass/burh-ds/content/_interface-spa.scss +306 -306
- package/assets/sass/burh-ds/content/_main-content.scss +25 -25
- package/components/argon-core/BaseDropdown.vue +114 -114
- package/components/argon-core/LoadingPanel.vue +26 -26
- package/components/argon-core/Modal.vue +183 -183
- package/components/burh-ds/Cards/BaseCard.vue +190 -188
- package/components/burh-ds/Cards/FeatureBusinessCard.vue +74 -74
- package/components/burh-ds/Cards/PerformanceCard.vue +81 -81
- package/components/burh-ds/Cards/RecruitmentCard.vue +229 -229
- package/components/burh-ds/Curriculum/UserCurriculum/index.vue +245 -245
- package/components/burh-ds/Dropdown/JobStatusDropdown.vue +153 -146
- package/components/burh-ds/Filters/FilterWithDropdown.vue +228 -169
- package/components/burh-ds/Inputs/SearchInput.vue +64 -64
- package/components/burh-ds/Modals/NewUserModal.vue +87 -87
- package/components/burh-ds/Modals/SharedModal.vue +270 -270
- package/components/burh-ds/Modals/UniversityAccessModal.vue +134 -134
- package/components/burh-ds/Skeleton/BaseCardUniversity.vue +79 -79
- package/components/burh-ds/Skeleton/BaseCardUser.vue +84 -84
- package/components/burh-ds/Skeleton/BaseCourseInfo.vue +71 -71
- package/components/burh-ds/Skeleton/Cards.vue +86 -86
- package/components/burh-ds/Skeleton/Home.vue +100 -100
- package/components/burh-ds/Skeleton/RecruitmentCard.vue +169 -169
- package/components/burh-ds/Skeleton/SkeletonAnimate.vue +96 -96
- package/environment.js +221 -221
- package/nuxt.config.js +207 -207
- package/package.json +1 -1
- package/plugins/vClickOutside.js +4 -4
|
@@ -1,134 +1,134 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<modal :show.sync="showModal"
|
|
3
|
-
modalContentClasses="container-fluid" headerClasses="row px-4" bodyClasses="row px-4 pt-3"
|
|
4
|
-
v-on:close="closeModal()">
|
|
5
|
-
<template slot="header">
|
|
6
|
-
<h5 class="pl-3 modal-title">Acesso</h5>
|
|
7
|
-
</template>
|
|
8
|
-
|
|
9
|
-
<div class="col-12 d-flex">
|
|
10
|
-
<div
|
|
11
|
-
id="role"
|
|
12
|
-
tag="div"
|
|
13
|
-
class="d-flex flex-column mb-3"
|
|
14
|
-
name="role"
|
|
15
|
-
>
|
|
16
|
-
<label for="email" class="form-control-label">Email</label>
|
|
17
|
-
<el-input disabled v-model="email"></el-input>
|
|
18
|
-
</div>
|
|
19
|
-
</div>
|
|
20
|
-
|
|
21
|
-
<div class="col-12 d-flex">
|
|
22
|
-
<div
|
|
23
|
-
id="role"
|
|
24
|
-
tag="div"
|
|
25
|
-
class="d-flex flex-column mb-3"
|
|
26
|
-
name="role"
|
|
27
|
-
>
|
|
28
|
-
|
|
29
|
-
<label for="role" class="form-control-label">Cargo</label>
|
|
30
|
-
<el-input disabled v-model="role"></el-input>
|
|
31
|
-
</div>
|
|
32
|
-
|
|
33
|
-
<!-- Habilitar novamente caso volte a ser usado -->
|
|
34
|
-
|
|
35
|
-
<!-- <el-tooltip class="item" placement="top" :content="'Editar Cargo'">
|
|
36
|
-
<base-button size="md" type="link" disabled class="text-primary h-25 my-auto px-2 w-auto"
|
|
37
|
-
@click="$emit('first-icon-click', { firstFieldText: firstFieldValue })">
|
|
38
|
-
<font-awesome-icon :icon="['fas', 'save']" class="mr-2" />
|
|
39
|
-
</base-button>
|
|
40
|
-
</el-tooltip> -->
|
|
41
|
-
</div>
|
|
42
|
-
|
|
43
|
-
<label for="trainings" class="col-12 form-control-label">Acesso aos Treinamentos</label>
|
|
44
|
-
<!--não estou conseguindo listar o userTrainingsSelecteds vindo com (id, name)-->
|
|
45
|
-
<el-select
|
|
46
|
-
v-model="userTrainingsSelecteds"
|
|
47
|
-
id="trainings"
|
|
48
|
-
class="d-block col-12"
|
|
49
|
-
multiple
|
|
50
|
-
placeholder="Selecionar"
|
|
51
|
-
>
|
|
52
|
-
<el-option
|
|
53
|
-
v-for="item in itemsToSelect"
|
|
54
|
-
:key="`course-to-select-${item.id}`"
|
|
55
|
-
:value="item.id"
|
|
56
|
-
:label="item.name">
|
|
57
|
-
</el-option>
|
|
58
|
-
</el-select>
|
|
59
|
-
|
|
60
|
-
<div class="col-12">
|
|
61
|
-
<a @click.prevent="$emit('first-element-click')" class="btn btn-link text-danger cursor-pointer pl-0">Remover Aluno</a>
|
|
62
|
-
</div>
|
|
63
|
-
|
|
64
|
-
</modal>
|
|
65
|
-
</template>
|
|
66
|
-
<script>
|
|
67
|
-
import { Select, Option } from 'element-ui';
|
|
68
|
-
export default {
|
|
69
|
-
components: {
|
|
70
|
-
[Select.name]: Select,
|
|
71
|
-
[Option.name]: Option
|
|
72
|
-
},
|
|
73
|
-
data() {
|
|
74
|
-
return {
|
|
75
|
-
firstFieldValue: this.propFirstFieldValue,
|
|
76
|
-
userTrainingsSelecteds: [],
|
|
77
|
-
showModal: this.openModal
|
|
78
|
-
};
|
|
79
|
-
},
|
|
80
|
-
props: {
|
|
81
|
-
propFirstFieldValue: {
|
|
82
|
-
type: String,
|
|
83
|
-
default: ''
|
|
84
|
-
},
|
|
85
|
-
email: {
|
|
86
|
-
type: String,
|
|
87
|
-
default: ''
|
|
88
|
-
},
|
|
89
|
-
role: {
|
|
90
|
-
type: String,
|
|
91
|
-
default: ''
|
|
92
|
-
},
|
|
93
|
-
openModal: false,
|
|
94
|
-
userTrainings: {
|
|
95
|
-
type: Array,
|
|
96
|
-
default: () => []
|
|
97
|
-
},
|
|
98
|
-
itemsToSelect: {
|
|
99
|
-
type: Array,
|
|
100
|
-
default: () => []
|
|
101
|
-
},
|
|
102
|
-
},
|
|
103
|
-
methods:{
|
|
104
|
-
closeModal(){
|
|
105
|
-
this.$emit('close-modal');
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
watch: {
|
|
109
|
-
userTrainings(newValue) {
|
|
110
|
-
console.log(newValue);
|
|
111
|
-
this.userTrainingsSelecteds = newValue;
|
|
112
|
-
|
|
113
|
-
},
|
|
114
|
-
|
|
115
|
-
userTrainingsSelecteds(newValue, oldVal) {
|
|
116
|
-
if (oldVal != newValue) {
|
|
117
|
-
console.log('change on if');
|
|
118
|
-
this.$emit('change-selecteds', {
|
|
119
|
-
oldSelecteds: oldVal,
|
|
120
|
-
newSelecteds: newValue,
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
},
|
|
124
|
-
|
|
125
|
-
openModal(value) {
|
|
126
|
-
this.showModal = value;
|
|
127
|
-
},
|
|
128
|
-
|
|
129
|
-
propFirstFieldValue(value) {
|
|
130
|
-
this.firstFieldValue = value;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
};
|
|
134
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<modal :show.sync="showModal"
|
|
3
|
+
modalContentClasses="container-fluid" headerClasses="row px-4" bodyClasses="row px-4 pt-3"
|
|
4
|
+
v-on:close="closeModal()">
|
|
5
|
+
<template slot="header">
|
|
6
|
+
<h5 class="pl-3 modal-title">Acesso</h5>
|
|
7
|
+
</template>
|
|
8
|
+
|
|
9
|
+
<div class="col-12 d-flex">
|
|
10
|
+
<div
|
|
11
|
+
id="role"
|
|
12
|
+
tag="div"
|
|
13
|
+
class="d-flex flex-column mb-3"
|
|
14
|
+
name="role"
|
|
15
|
+
>
|
|
16
|
+
<label for="email" class="form-control-label">Email</label>
|
|
17
|
+
<el-input disabled v-model="email"></el-input>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
<div class="col-12 d-flex">
|
|
22
|
+
<div
|
|
23
|
+
id="role"
|
|
24
|
+
tag="div"
|
|
25
|
+
class="d-flex flex-column mb-3"
|
|
26
|
+
name="role"
|
|
27
|
+
>
|
|
28
|
+
|
|
29
|
+
<label for="role" class="form-control-label">Cargo</label>
|
|
30
|
+
<el-input disabled v-model="role"></el-input>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<!-- Habilitar novamente caso volte a ser usado -->
|
|
34
|
+
|
|
35
|
+
<!-- <el-tooltip class="item" placement="top" :content="'Editar Cargo'">
|
|
36
|
+
<base-button size="md" type="link" disabled class="text-primary h-25 my-auto px-2 w-auto"
|
|
37
|
+
@click="$emit('first-icon-click', { firstFieldText: firstFieldValue })">
|
|
38
|
+
<font-awesome-icon :icon="['fas', 'save']" class="mr-2" />
|
|
39
|
+
</base-button>
|
|
40
|
+
</el-tooltip> -->
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<label for="trainings" class="col-12 form-control-label">Acesso aos Treinamentos</label>
|
|
44
|
+
<!--não estou conseguindo listar o userTrainingsSelecteds vindo com (id, name)-->
|
|
45
|
+
<el-select
|
|
46
|
+
v-model="userTrainingsSelecteds"
|
|
47
|
+
id="trainings"
|
|
48
|
+
class="d-block col-12"
|
|
49
|
+
multiple
|
|
50
|
+
placeholder="Selecionar"
|
|
51
|
+
>
|
|
52
|
+
<el-option
|
|
53
|
+
v-for="item in itemsToSelect"
|
|
54
|
+
:key="`course-to-select-${item.id}`"
|
|
55
|
+
:value="item.id"
|
|
56
|
+
:label="item.name">
|
|
57
|
+
</el-option>
|
|
58
|
+
</el-select>
|
|
59
|
+
|
|
60
|
+
<div class="col-12">
|
|
61
|
+
<a @click.prevent="$emit('first-element-click')" class="btn btn-link text-danger cursor-pointer pl-0">Remover Aluno</a>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
</modal>
|
|
65
|
+
</template>
|
|
66
|
+
<script>
|
|
67
|
+
import { Select, Option } from 'element-ui';
|
|
68
|
+
export default {
|
|
69
|
+
components: {
|
|
70
|
+
[Select.name]: Select,
|
|
71
|
+
[Option.name]: Option
|
|
72
|
+
},
|
|
73
|
+
data() {
|
|
74
|
+
return {
|
|
75
|
+
firstFieldValue: this.propFirstFieldValue,
|
|
76
|
+
userTrainingsSelecteds: [],
|
|
77
|
+
showModal: this.openModal
|
|
78
|
+
};
|
|
79
|
+
},
|
|
80
|
+
props: {
|
|
81
|
+
propFirstFieldValue: {
|
|
82
|
+
type: String,
|
|
83
|
+
default: ''
|
|
84
|
+
},
|
|
85
|
+
email: {
|
|
86
|
+
type: String,
|
|
87
|
+
default: ''
|
|
88
|
+
},
|
|
89
|
+
role: {
|
|
90
|
+
type: String,
|
|
91
|
+
default: ''
|
|
92
|
+
},
|
|
93
|
+
openModal: false,
|
|
94
|
+
userTrainings: {
|
|
95
|
+
type: Array,
|
|
96
|
+
default: () => []
|
|
97
|
+
},
|
|
98
|
+
itemsToSelect: {
|
|
99
|
+
type: Array,
|
|
100
|
+
default: () => []
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
methods:{
|
|
104
|
+
closeModal(){
|
|
105
|
+
this.$emit('close-modal');
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
watch: {
|
|
109
|
+
userTrainings(newValue) {
|
|
110
|
+
console.log(newValue);
|
|
111
|
+
this.userTrainingsSelecteds = newValue;
|
|
112
|
+
|
|
113
|
+
},
|
|
114
|
+
|
|
115
|
+
userTrainingsSelecteds(newValue, oldVal) {
|
|
116
|
+
if (oldVal != newValue) {
|
|
117
|
+
console.log('change on if');
|
|
118
|
+
this.$emit('change-selecteds', {
|
|
119
|
+
oldSelecteds: oldVal,
|
|
120
|
+
newSelecteds: newValue,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
|
|
125
|
+
openModal(value) {
|
|
126
|
+
this.showModal = value;
|
|
127
|
+
},
|
|
128
|
+
|
|
129
|
+
propFirstFieldValue(value) {
|
|
130
|
+
this.firstFieldValue = value;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
</script>
|
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="recruitment__user__card">
|
|
3
|
-
<div
|
|
4
|
-
class="recruitment__user__card__header"
|
|
5
|
-
>
|
|
6
|
-
<skeleton-animate class="user__cover" />
|
|
7
|
-
</div>
|
|
8
|
-
|
|
9
|
-
<div class="recruitment__user__card__content">
|
|
10
|
-
<skeleton-animate class="user__avatar" :width="120" :height="120" img />
|
|
11
|
-
|
|
12
|
-
<skeleton-animate class="user__title" :width="160" :height="20" />
|
|
13
|
-
</div>
|
|
14
|
-
|
|
15
|
-
<div class="recruitment__user__card__footer">
|
|
16
|
-
<skeleton-animate class="user__footer" :width="200" :height="20" />
|
|
17
|
-
</div>
|
|
18
|
-
</div>
|
|
19
|
-
</template>
|
|
20
|
-
|
|
21
|
-
<script>
|
|
22
|
-
import SkeletonAnimate from './SkeletonAnimate.vue';
|
|
23
|
-
|
|
24
|
-
export default {
|
|
25
|
-
name: 'base-card-university',
|
|
26
|
-
components: {
|
|
27
|
-
SkeletonAnimate
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
</script>
|
|
31
|
-
|
|
32
|
-
<style lang="scss" scoped>
|
|
33
|
-
|
|
34
|
-
.recruitment__user__card {
|
|
35
|
-
background: #fff;
|
|
36
|
-
box-shadow: 0 3px 20px rgba(0, 0, 0, 0.08);
|
|
37
|
-
border-radius: 4px;
|
|
38
|
-
overflow: hidden;
|
|
39
|
-
cursor: pointer;
|
|
40
|
-
transition: transform 0.25s;
|
|
41
|
-
|
|
42
|
-
&__header {
|
|
43
|
-
width: 100%;
|
|
44
|
-
height: 70px;
|
|
45
|
-
overflow: hidden;
|
|
46
|
-
position: relative;
|
|
47
|
-
.user__cover {
|
|
48
|
-
width: 100%!important;
|
|
49
|
-
height: 100%!important;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
&__content {
|
|
53
|
-
display: flex;
|
|
54
|
-
flex-direction: column;
|
|
55
|
-
align-items: center;
|
|
56
|
-
justify-content: center;
|
|
57
|
-
.user__avatar {
|
|
58
|
-
margin-top: -20px;
|
|
59
|
-
border: 4px solid #fff;
|
|
60
|
-
z-index: 10;
|
|
61
|
-
}
|
|
62
|
-
.user__title {
|
|
63
|
-
margin-top: 40px;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
&__footer {
|
|
67
|
-
display: flex;
|
|
68
|
-
align-items: center;
|
|
69
|
-
justify-content: center;
|
|
70
|
-
padding-bottom: 20px;
|
|
71
|
-
.user__footer {
|
|
72
|
-
margin-top: 40px;
|
|
73
|
-
margin-bottom: 20px;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
</style>
|
|
79
|
-
|
|
1
|
+
<template>
|
|
2
|
+
<div class="recruitment__user__card">
|
|
3
|
+
<div
|
|
4
|
+
class="recruitment__user__card__header"
|
|
5
|
+
>
|
|
6
|
+
<skeleton-animate class="user__cover" />
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<div class="recruitment__user__card__content">
|
|
10
|
+
<skeleton-animate class="user__avatar" :width="120" :height="120" img />
|
|
11
|
+
|
|
12
|
+
<skeleton-animate class="user__title" :width="160" :height="20" />
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<div class="recruitment__user__card__footer">
|
|
16
|
+
<skeleton-animate class="user__footer" :width="200" :height="20" />
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
</template>
|
|
20
|
+
|
|
21
|
+
<script>
|
|
22
|
+
import SkeletonAnimate from './SkeletonAnimate.vue';
|
|
23
|
+
|
|
24
|
+
export default {
|
|
25
|
+
name: 'base-card-university',
|
|
26
|
+
components: {
|
|
27
|
+
SkeletonAnimate
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
</script>
|
|
31
|
+
|
|
32
|
+
<style lang="scss" scoped>
|
|
33
|
+
|
|
34
|
+
.recruitment__user__card {
|
|
35
|
+
background: #fff;
|
|
36
|
+
box-shadow: 0 3px 20px rgba(0, 0, 0, 0.08);
|
|
37
|
+
border-radius: 4px;
|
|
38
|
+
overflow: hidden;
|
|
39
|
+
cursor: pointer;
|
|
40
|
+
transition: transform 0.25s;
|
|
41
|
+
|
|
42
|
+
&__header {
|
|
43
|
+
width: 100%;
|
|
44
|
+
height: 70px;
|
|
45
|
+
overflow: hidden;
|
|
46
|
+
position: relative;
|
|
47
|
+
.user__cover {
|
|
48
|
+
width: 100%!important;
|
|
49
|
+
height: 100%!important;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
&__content {
|
|
53
|
+
display: flex;
|
|
54
|
+
flex-direction: column;
|
|
55
|
+
align-items: center;
|
|
56
|
+
justify-content: center;
|
|
57
|
+
.user__avatar {
|
|
58
|
+
margin-top: -20px;
|
|
59
|
+
border: 4px solid #fff;
|
|
60
|
+
z-index: 10;
|
|
61
|
+
}
|
|
62
|
+
.user__title {
|
|
63
|
+
margin-top: 40px;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
&__footer {
|
|
67
|
+
display: flex;
|
|
68
|
+
align-items: center;
|
|
69
|
+
justify-content: center;
|
|
70
|
+
padding-bottom: 20px;
|
|
71
|
+
.user__footer {
|
|
72
|
+
margin-top: 40px;
|
|
73
|
+
margin-bottom: 20px;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
</style>
|
|
79
|
+
|
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="recruitment__user__card">
|
|
3
|
-
<div
|
|
4
|
-
class="recruitment__user__card__header"
|
|
5
|
-
>
|
|
6
|
-
<skeleton-animate class="user__cover" />
|
|
7
|
-
</div>
|
|
8
|
-
|
|
9
|
-
<div class="recruitment__user__card__content">
|
|
10
|
-
<skeleton-animate class="user__avatar" :width="120" :height="120" img />
|
|
11
|
-
|
|
12
|
-
<skeleton-animate class="user__title" :width="160" :height="20" />
|
|
13
|
-
<skeleton-animate class="user__age" :width="80" :height="15" />
|
|
14
|
-
|
|
15
|
-
<skeleton-animate class="user__city" :width="120" :height="25" />
|
|
16
|
-
|
|
17
|
-
<skeleton-animate class="user__text" :width="140" :height="15" />
|
|
18
|
-
<skeleton-animate class="user__experience" :width="220" :height="20" />
|
|
19
|
-
</div>
|
|
20
|
-
</div>
|
|
21
|
-
</template>
|
|
22
|
-
|
|
23
|
-
<script>
|
|
24
|
-
import SkeletonAnimate from './SkeletonAnimate.vue';
|
|
25
|
-
|
|
26
|
-
export default {
|
|
27
|
-
name: 'base-card-user',
|
|
28
|
-
components: {
|
|
29
|
-
SkeletonAnimate
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
</script>
|
|
33
|
-
|
|
34
|
-
<style lang="scss" scoped>
|
|
35
|
-
|
|
36
|
-
.recruitment__user__card {
|
|
37
|
-
background: #fff;
|
|
38
|
-
box-shadow: 0 3px 20px rgba(0, 0, 0, 0.08);
|
|
39
|
-
border-radius: 4px;
|
|
40
|
-
overflow: hidden;
|
|
41
|
-
cursor: pointer;
|
|
42
|
-
transition: transform 0.25s;
|
|
43
|
-
padding-bottom: 40px;
|
|
44
|
-
|
|
45
|
-
&__header {
|
|
46
|
-
width: 100%;
|
|
47
|
-
height: 70px;
|
|
48
|
-
overflow: hidden;
|
|
49
|
-
position: relative;
|
|
50
|
-
.user__cover {
|
|
51
|
-
width: 100%!important;
|
|
52
|
-
height: 100%!important;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
&__content {
|
|
56
|
-
display: flex;
|
|
57
|
-
flex-direction: column;
|
|
58
|
-
align-items: center;
|
|
59
|
-
justify-content: center;
|
|
60
|
-
.user__avatar {
|
|
61
|
-
margin-top: -20px;
|
|
62
|
-
border: 4px solid #fff;
|
|
63
|
-
z-index: 10;
|
|
64
|
-
}
|
|
65
|
-
.user__title {
|
|
66
|
-
margin-top: 20px;
|
|
67
|
-
}
|
|
68
|
-
.user__age {
|
|
69
|
-
margin-top: 10px;
|
|
70
|
-
}
|
|
71
|
-
.user__city {
|
|
72
|
-
margin-top: 40px;
|
|
73
|
-
}
|
|
74
|
-
.user__text {
|
|
75
|
-
margin-top: 40px;
|
|
76
|
-
}
|
|
77
|
-
.user__experience {
|
|
78
|
-
margin-top: 5px;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
</style>
|
|
84
|
-
|
|
1
|
+
<template>
|
|
2
|
+
<div class="recruitment__user__card">
|
|
3
|
+
<div
|
|
4
|
+
class="recruitment__user__card__header"
|
|
5
|
+
>
|
|
6
|
+
<skeleton-animate class="user__cover" />
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<div class="recruitment__user__card__content">
|
|
10
|
+
<skeleton-animate class="user__avatar" :width="120" :height="120" img />
|
|
11
|
+
|
|
12
|
+
<skeleton-animate class="user__title" :width="160" :height="20" />
|
|
13
|
+
<skeleton-animate class="user__age" :width="80" :height="15" />
|
|
14
|
+
|
|
15
|
+
<skeleton-animate class="user__city" :width="120" :height="25" />
|
|
16
|
+
|
|
17
|
+
<skeleton-animate class="user__text" :width="140" :height="15" />
|
|
18
|
+
<skeleton-animate class="user__experience" :width="220" :height="20" />
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
</template>
|
|
22
|
+
|
|
23
|
+
<script>
|
|
24
|
+
import SkeletonAnimate from './SkeletonAnimate.vue';
|
|
25
|
+
|
|
26
|
+
export default {
|
|
27
|
+
name: 'base-card-user',
|
|
28
|
+
components: {
|
|
29
|
+
SkeletonAnimate
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<style lang="scss" scoped>
|
|
35
|
+
|
|
36
|
+
.recruitment__user__card {
|
|
37
|
+
background: #fff;
|
|
38
|
+
box-shadow: 0 3px 20px rgba(0, 0, 0, 0.08);
|
|
39
|
+
border-radius: 4px;
|
|
40
|
+
overflow: hidden;
|
|
41
|
+
cursor: pointer;
|
|
42
|
+
transition: transform 0.25s;
|
|
43
|
+
padding-bottom: 40px;
|
|
44
|
+
|
|
45
|
+
&__header {
|
|
46
|
+
width: 100%;
|
|
47
|
+
height: 70px;
|
|
48
|
+
overflow: hidden;
|
|
49
|
+
position: relative;
|
|
50
|
+
.user__cover {
|
|
51
|
+
width: 100%!important;
|
|
52
|
+
height: 100%!important;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
&__content {
|
|
56
|
+
display: flex;
|
|
57
|
+
flex-direction: column;
|
|
58
|
+
align-items: center;
|
|
59
|
+
justify-content: center;
|
|
60
|
+
.user__avatar {
|
|
61
|
+
margin-top: -20px;
|
|
62
|
+
border: 4px solid #fff;
|
|
63
|
+
z-index: 10;
|
|
64
|
+
}
|
|
65
|
+
.user__title {
|
|
66
|
+
margin-top: 20px;
|
|
67
|
+
}
|
|
68
|
+
.user__age {
|
|
69
|
+
margin-top: 10px;
|
|
70
|
+
}
|
|
71
|
+
.user__city {
|
|
72
|
+
margin-top: 40px;
|
|
73
|
+
}
|
|
74
|
+
.user__text {
|
|
75
|
+
margin-top: 40px;
|
|
76
|
+
}
|
|
77
|
+
.user__experience {
|
|
78
|
+
margin-top: 5px;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
</style>
|
|
84
|
+
|