|
@@ -3,24 +3,50 @@
|
|
|
<v-card class="positionItem" v-for="(item, index) in list" :key="index" @mouseenter="item.active = true" @mouseleave="item.active = false">
|
|
|
<!-- 职位、公司 -->
|
|
|
<div class="position-and-company" @click="handlePosition(item)">
|
|
|
- <div class="position">
|
|
|
- <p :class="['title1', {'default-active': item.active }]">{{ item.job.name }}{{ '[广州]' }}</p>
|
|
|
+ <div class="position" @mouseenter="item.positionActive = true" @mouseleave="item.positionActive = false">
|
|
|
+ <p :class="['title1', {'default-active': item.positionActive }]">{{ item.job.name }}{{ item.job.pos ? ' [' + item.job.pos + '] ' : '' }}</p>
|
|
|
<div class="d-flex row2">
|
|
|
<div class="salary">
|
|
|
<span>16-18K</span>
|
|
|
<span>·13薪</span>
|
|
|
</div>
|
|
|
<template v-if="item.job?.tagList?.length">
|
|
|
- <v-chip class="tip" size="x-small" label v-for="(tip, i) in item.job.tagList" :key="i" color="#666">{{ tip }}</v-chip>
|
|
|
+ <v-chip class="tipClsss" size="x-small" label v-for="(tip, i) in item.job.tagList" :key="i" color="#666">{{ tip }}</v-chip>
|
|
|
+ <v-chip v-bind="props" class="tipClsss" prepend-icon="mdi-message-processing" size="x-small" label color="secondary" variant="outlined">
|
|
|
+ <span v-if="item.active">立即沟通</span>
|
|
|
+ <template v-else>
|
|
|
+ <span class="textColor666">{{ item.contact.name }}</span>
|
|
|
+ <span style="margin: 0 2px;">|</span>
|
|
|
+ <span class="textColor666">{{ item.contact.postNameCn }}</span>
|
|
|
+ </template>
|
|
|
+ </v-chip>
|
|
|
+ <v-chip v-if="item.contact.status === 1" size="x-small" label color="green" variant="outlined">在线</v-chip>
|
|
|
</template>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="company">company</div>
|
|
|
+ <div class="company">
|
|
|
+ <v-img class="companyLogo" :src="item.enterprise.logoUrl" />
|
|
|
+ <div>
|
|
|
+ <v-hover>
|
|
|
+ <template v-slot:default="{ isHovering, props }">
|
|
|
+ <p v-bind="props" :class="['title1', {'default-active': isHovering }]">{{ item.enterprise.anotherName }}</p>
|
|
|
+ </template>
|
|
|
+ </v-hover>
|
|
|
+ <v-chip class="tipClsss" size="x-small" label v-for="(tip, i) in item.enterprise.tags" :key="i" color="#666">{{ tip }}</v-chip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<!-- 底部 -->
|
|
|
<div class="footer">
|
|
|
- <div>footer</div>
|
|
|
- <div>footer1</div>
|
|
|
+ <div class="footer-left">
|
|
|
+ <template v-for="(jobTag, jobTagsIndex) in item.enterprise.tags1" :key="jobTagsIndex">
|
|
|
+ <span class="textColor666 mx-1" v-if="jobTagsIndex">|</span>
|
|
|
+ <span class="textColor666">{{ jobTag }}</span>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ <div class="footer-right" v-if="item.enterprise.welfareList?.length">
|
|
|
+ {{ item.enterprise.welfareList.join('、') }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</v-card>
|
|
|
</template>
|
|
@@ -43,11 +69,6 @@ watch(
|
|
|
{ immediate: true },
|
|
|
{ deep: true }
|
|
|
)
|
|
|
-// const desc = [
|
|
|
-// { mdi: 'mdi-map-marker-outline', value: 'areaName' },
|
|
|
-// { mdi: 'mdi-school-outline', value: 'eduName' },
|
|
|
-// { mdi: 'mdi-clock-time-ten-outline', value: 'expName' }
|
|
|
-// ]
|
|
|
|
|
|
const emits = defineEmits(['position', 'enterprise'])
|
|
|
const handlePosition = (item) => {
|
|
@@ -56,7 +77,10 @@ const handlePosition = (item) => {
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
+
|
|
|
+.tipClsss { margin-right: 4px; }
|
|
|
.title1 { font-size: 16px; font-weight: 500; line-height: 28px;}
|
|
|
+.textColor666 { color: #666; }
|
|
|
.positionItem {
|
|
|
width: 884px;
|
|
|
margin-bottom: 20px;
|
|
@@ -89,28 +113,37 @@ const handlePosition = (item) => {
|
|
|
color: #fe574a;
|
|
|
line-height: 32px;
|
|
|
float: left;
|
|
|
- margin-right: 6px;
|
|
|
- }
|
|
|
- .tip {
|
|
|
- margin-right: 4px;
|
|
|
+ margin-right: 16px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.company {
|
|
|
flex: 1;
|
|
|
+ display: flex;
|
|
|
+ .companyLogo {
|
|
|
+ height: 54px;
|
|
|
+ width: 54px;
|
|
|
+ min-width: 54px;
|
|
|
+ min-height: 54px;
|
|
|
+ max-width: 54px;
|
|
|
+ max-height: 54px;
|
|
|
+ margin-right: 20px;
|
|
|
+ border-radius: 8px;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
.footer {
|
|
|
height: 48px;
|
|
|
line-height: 48px;
|
|
|
padding: 0px 20px;
|
|
|
+ font-size: 14px;
|
|
|
background: linear-gradient(90deg, #f5fcfc 0, #fcfbfa 100%);
|
|
|
display: flex;
|
|
|
- :first-child {
|
|
|
+ .footer-left {
|
|
|
width: 440px;
|
|
|
padding-right: 12px;
|
|
|
}
|
|
|
- :nth-child(2) {
|
|
|
+ .footer-right {
|
|
|
flex: 1;
|
|
|
}
|
|
|
div {
|