|
@@ -0,0 +1,154 @@
|
|
|
|
+<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>
|
|
|
|
+ <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 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>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script setup name="positionItem">
|
|
|
|
+import { ref } from 'vue'
|
|
|
|
+
|
|
|
|
+const props = defineProps({
|
|
|
|
+ tab: {
|
|
|
|
+ type: Number,
|
|
|
|
+ default: 0
|
|
|
|
+ }
|
|
|
|
+})
|
|
|
|
+
|
|
|
|
+const list = ref([
|
|
|
|
+ {
|
|
|
|
+ contact: {
|
|
|
|
+ name: '肖女士',
|
|
|
|
+ avatars: 'https://cdn.vuetifyjs.com/images/john.jpg',
|
|
|
|
+ postNameCn: '人事经理'
|
|
|
|
+ },
|
|
|
|
+ name: '前端开发工程师',
|
|
|
|
+ areaName: '北京·石景山区·八大处',
|
|
|
|
+ payFrom: 15,
|
|
|
|
+ payTo: 18,
|
|
|
|
+ expName: '3-5年',
|
|
|
|
+ eduName: '本科',
|
|
|
|
+ active: false,
|
|
|
|
+ enterprise: {
|
|
|
|
+ name: '广州辞图科技有限公司',
|
|
|
|
+ industryName: '互联网',
|
|
|
|
+ scaleName: '0-20人',
|
|
|
|
+ financingName: '未融资'
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ contact: {
|
|
|
|
+ name: '肖女士',
|
|
|
|
+ avatars: 'https://cdn.vuetifyjs.com/images/john.jpg',
|
|
|
|
+ postNameCn: '人事经理'
|
|
|
|
+ },
|
|
|
|
+ name: '前端开发工程师',
|
|
|
|
+ areaName: '北京·石景山区·八大处',
|
|
|
|
+ payFrom: 15,
|
|
|
|
+ payTo: 18,
|
|
|
|
+ expName: '3-5年',
|
|
|
|
+ eduName: '本科',
|
|
|
|
+ active: false,
|
|
|
|
+ enterprise: {
|
|
|
|
+ name: '广州辞图科技有限公司',
|
|
|
|
+ industryName: '互联网',
|
|
|
|
+ scaleName: '0-20人',
|
|
|
|
+ financingName: '未融资'
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+])
|
|
|
|
+
|
|
|
|
+const desc = ['industryName', 'financingName', 'scaleName']
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style scoped lang="scss">
|
|
|
|
+.position-item {
|
|
|
|
+ height: 144px;
|
|
|
|
+ background-color: #fff;
|
|
|
|
+ border-radius: 12px;
|
|
|
|
+ &:hover {
|
|
|
|
+ box-shadow: 0 16px 40px 0 rgba(153, 153, 153, .3);
|
|
|
|
+ }
|
|
|
|
+ .info-header {
|
|
|
|
+ height: 48px;
|
|
|
|
+ background: linear-gradient(90deg,#f5fcfc,#fcfbfa);
|
|
|
|
+ .img-box {
|
|
|
|
+ padding: 12px 24px;
|
|
|
|
+ .name {
|
|
|
|
+ color: #222;
|
|
|
|
+ font-weight: 400;
|
|
|
|
+ font-size: 13px;
|
|
|
|
+ .gray {
|
|
|
|
+ color: #666;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .header-btn {
|
|
|
|
+ padding: 10px 10px 0 0;
|
|
|
|
+ float: right;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .info-content {
|
|
|
|
+ display: flex;
|
|
|
|
+ padding: 16px 24px;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ .job-info {
|
|
|
|
+ width: 500px;
|
|
|
|
+ min-width: 500px;
|
|
|
|
+ max-width: 500px;
|
|
|
|
+ font-weight: 500;
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ .job-name {
|
|
|
|
+ height: 22px;
|
|
|
|
+ line-height: 22px;
|
|
|
|
+ color: #222;
|
|
|
|
+ margin-bottom: 12px;
|
|
|
|
+ }
|
|
|
|
+ .job-other {
|
|
|
|
+ color: var(--v-error-base);
|
|
|
|
+ height: 22px;
|
|
|
|
+ line-height: 22px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .company-info {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+</style>
|