|
@@ -1,47 +1,57 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
- <div class="position-item mb-3" v-for="(val, i) in list" :key="i" @mouseenter="val.active = true" @mouseleave="val.active = false">
|
|
|
- <div class="info-header">
|
|
|
- <div v-if="val.active" class="header-btn">
|
|
|
- <v-btn class="half-button" color="primary" size="small">继续沟通</v-btn>
|
|
|
- <v-btn v-if="props.tab === 4" class="half-button ml-3" color="primary" size="small">取消感兴趣</v-btn>
|
|
|
- </div>
|
|
|
- <div class="img-box">
|
|
|
- <v-avatar :image="val.contact.avatars" size="x-small"></v-avatar>
|
|
|
- <span class="name">
|
|
|
- <span class="mx-3">{{ val.contact.name }}</span>
|
|
|
- <span class="gray">{{ val.contact.postNameCn }}</span>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="info-content">
|
|
|
- <div class="job-info">
|
|
|
- <div class="job-name">
|
|
|
- <span class="mr-3">{{ val.name }}</span>
|
|
|
- <span>[{{ val.areaName }}]</span>
|
|
|
+ <div v-if="list.length">
|
|
|
+ <div class="position-item mb-3 job-closed" v-for="(val, i) in list" :key="i" @mouseenter="handleMouseEnter(val)" @mouseleave="val.active = false">
|
|
|
+ <div class="info-header">
|
|
|
+ <div v-if="val.active" class="header-btn">
|
|
|
+ <v-btn class="half-button" color="primary" size="small">继续沟通</v-btn>
|
|
|
+ <v-btn v-if="props.tab === 4" class="half-button ml-3" color="primary" size="small">取消感兴趣</v-btn>
|
|
|
</div>
|
|
|
- <div class="job-other">
|
|
|
- <span class="salary">{{ val.payFrom }}-{{ val.payTo }}k</span>
|
|
|
- <v-chip class="mx-3" color="primary" label size="small">{{ val.expName }}</v-chip>
|
|
|
- <v-chip color="primary" label size="small">{{ val.eduName }}</v-chip>
|
|
|
+ <div class="img-box">
|
|
|
+ <v-avatar :image="val.contact.avatars" size="x-small"></v-avatar>
|
|
|
+ <span class="name">
|
|
|
+ <span class="mx-3">{{ val.contact.name }}</span>
|
|
|
+ <span class="gray">{{ val.contact.postNameCn }}</span>
|
|
|
+ </span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="company-info">
|
|
|
- <v-img width="50" height="50" :src="val.contact.avatars"></v-img>
|
|
|
- <div class="ml-3">
|
|
|
- <div class="company-name">{{ val.enterprise.name }}</div>
|
|
|
- <div class="mt-3">
|
|
|
- <v-chip color="primary" label size="small" class="mr-3" v-for="k in desc" :key="k">{{ val.enterprise[k] }}</v-chip>
|
|
|
+ <div class="info-content">
|
|
|
+ <div class="job-info">
|
|
|
+ <div class="job-name cursor-pointer">
|
|
|
+ <span class="mr-3 info-name">{{ val.name }}</span>
|
|
|
+ <span>[{{ val.areaName }}]</span>
|
|
|
+ </div>
|
|
|
+ <div class="job-other">
|
|
|
+ <span class="salary">{{ val.payFrom }}-{{ val.payTo }}k</span>
|
|
|
+ <v-chip class="mx-3" color="primary" label size="small">{{ val.expName }}</v-chip>
|
|
|
+ <v-chip color="primary" label size="small">{{ val.eduName }}</v-chip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-if="props.tab === 3" class="interview-info">
|
|
|
+ <div>面试时间:2022.03.15 17:00</div>
|
|
|
+ <div class="mt-3">面试地点:先烈中路100号大院203室</div>
|
|
|
+ </div>
|
|
|
+ <div v-else class="company-info">
|
|
|
+ <v-img width="50" height="50" :src="val.contact.avatars"></v-img>
|
|
|
+ <div class="ml-3">
|
|
|
+ <div class="cursor-pointer info-name">{{ val.enterprise.name }}</div>
|
|
|
+ <div class="mt-3">
|
|
|
+ <v-chip color="primary" label size="small" class="mr-3" v-for="k in desc" :key="k">{{ val.enterprise[k] }}</v-chip>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div v-else>
|
|
|
+ <Empty></Empty>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup name="positionItem">
|
|
|
import { ref } from 'vue'
|
|
|
+import Empty from '@/components/Empty'
|
|
|
|
|
|
const props = defineProps({
|
|
|
tab: {
|
|
@@ -94,6 +104,10 @@ const list = ref([
|
|
|
])
|
|
|
|
|
|
const desc = ['industryName', 'financingName', 'scaleName']
|
|
|
+
|
|
|
+const handleMouseEnter = (val) => {
|
|
|
+ if (props.tab !==3 ) val.active = true
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
@@ -121,6 +135,9 @@ const desc = ['industryName', 'financingName', 'scaleName']
|
|
|
.header-btn {
|
|
|
padding: 10px 10px 0 0;
|
|
|
float: right;
|
|
|
+ .v-btn {
|
|
|
+ z-index: 1;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
.info-content {
|
|
@@ -149,6 +166,50 @@ const desc = ['industryName', 'financingName', 'scaleName']
|
|
|
display: flex;
|
|
|
align-items: center
|
|
|
}
|
|
|
+ .interview-info {
|
|
|
+ color: #333;
|
|
|
+ font-size: 15px;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+.info-name:hover {
|
|
|
+ color: var(--v-primary-base);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+// .position-item:not(.job-closed):hover {
|
|
|
+// box-shadow: 0 16px 40px 0 hsla(0,0%,60%,.3);
|
|
|
+// z-index: 3
|
|
|
+// }
|
|
|
+
|
|
|
+// .position-item.job-closed .img-box {
|
|
|
+// position: relative
|
|
|
+// }
|
|
|
+
|
|
|
+// .position-item.job-closed .img-box:after {
|
|
|
+// content: "";
|
|
|
+// position: absolute;
|
|
|
+// left: 0;
|
|
|
+// top: 0;
|
|
|
+// width: 100%;
|
|
|
+// height: 48px;
|
|
|
+// background: linear-gradient(90deg,#f5fcfc,#fcfbfa);
|
|
|
+// opacity: .8
|
|
|
+// }
|
|
|
+
|
|
|
+// .position-item.job-closed .info-content {
|
|
|
+// position: relative
|
|
|
+// }
|
|
|
+
|
|
|
+// .position-item.job-closed .info-content:after {
|
|
|
+// content: "";
|
|
|
+// position: absolute;
|
|
|
+// left: 0;
|
|
|
+// top: 0;
|
|
|
+// width: 100%;
|
|
|
+// height: 92px;
|
|
|
+// background: #fff;
|
|
|
+// opacity: .8
|
|
|
+// }
|
|
|
</style>
|