|
@@ -1,9 +1,13 @@
|
|
<template>
|
|
<template>
|
|
<div>
|
|
<div>
|
|
- <div class="position-item mb-3 job-closed elevation-2" v-for="(val, i) in props.items" :key="i" @mouseenter="val.active = true" @mouseleave="val.active = false">
|
|
|
|
|
|
+ <div class="position-item mb-3 job-closed elevation-2" style="position: relative;"
|
|
|
|
+ :class="{'close-position': val.job.status === '1'}"
|
|
|
|
+ v-for="(val, i) in props.items" :key="i" @mouseenter="val.active = true" @mouseleave="val.active = false"
|
|
|
|
+ >
|
|
<div class="info-header">
|
|
<div class="info-header">
|
|
- <div v-if="val.active" class="header-btn">
|
|
|
|
|
|
+ <div v-if="val.active && val.job.status === '0'" class="header-btn">
|
|
<v-btn v-if="props.showCancelBtn" class="half-button ml-3" color="primary" size="small" @click="handleCancel(val)">取消收藏</v-btn>
|
|
<v-btn v-if="props.showCancelBtn" class="half-button ml-3" color="primary" size="small" @click="handleCancel(val)">取消收藏</v-btn>
|
|
|
|
+ <!-- <v-btn class="half-button ml-3" color="primary" size="small" @click="toDetails(val)">立即沟通</v-btn> -->
|
|
</div>
|
|
</div>
|
|
<div class="img-box">
|
|
<div class="img-box">
|
|
<v-avatar :image="getUserAvatar(val.contact.avatar, val.contact.sex)" size="x-small"></v-avatar>
|
|
<v-avatar :image="getUserAvatar(val.contact.avatar, val.contact.sex)" size="x-small"></v-avatar>
|
|
@@ -13,7 +17,7 @@
|
|
</span>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="info-content">
|
|
|
|
|
|
+ <div class="info-content" >
|
|
<div class="job-info">
|
|
<div class="job-info">
|
|
<div class="job-name cursor-pointer">
|
|
<div class="job-name cursor-pointer">
|
|
<span class="mr-3 info-name" @click="handleToPositionDetails(val)">{{ val.job.name }}</span>
|
|
<span class="mr-3 info-name" @click="handleToPositionDetails(val)">{{ val.job.name }}</span>
|
|
@@ -52,6 +56,7 @@ import { useI18n } from '@/hooks/web/useI18n'
|
|
import Snackbar from '@/plugins/snackbar'
|
|
import Snackbar from '@/plugins/snackbar'
|
|
import { getUserAvatar } from '@/utils/avatar'
|
|
import { getUserAvatar } from '@/utils/avatar'
|
|
import { useRouter } from 'vue-router'
|
|
import { useRouter } from 'vue-router'
|
|
|
|
+// import { prologue, defaultText } from '@/hooks/web/useIM'
|
|
|
|
|
|
const emits = defineEmits(['refresh'])
|
|
const emits = defineEmits(['refresh'])
|
|
const { t } = useI18n()
|
|
const { t } = useI18n()
|
|
@@ -86,6 +91,19 @@ const handleToPositionDetails = (item) => {
|
|
const handleToEnterprise = (item) => {
|
|
const handleToEnterprise = (item) => {
|
|
router.push(`/recruit/personal/company/details/${item.enterprise.id}?key=briefIntroduction`)
|
|
router.push(`/recruit/personal/company/details/${item.enterprise.id}?key=briefIntroduction`)
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+// // 立即沟通
|
|
|
|
+// const toDetails = async (info) => {
|
|
|
|
+// const userId = info.contact.userId
|
|
|
|
+// const enterpriseId = info.contact.enterpriseId
|
|
|
|
+// await prologue({userId, enterpriseId, defaultText})
|
|
|
|
+// let url = `/recruit/personal/message?id=${info.job.id}`
|
|
|
|
+// if (info.contact.enterpriseId) {
|
|
|
|
+// url += `&enterprise=${info.contact.enterpriseId}`
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+// router.push(url)
|
|
|
|
+// }
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
<style scoped lang="scss">
|