|
@@ -3,13 +3,7 @@
|
|
|
<div class="position-item mb-3 job-closed" style="position: relative;" :class="val.active ? 'elevation-8 hoverShadowSolid' : 'elevation-3'"
|
|
|
v-for="(val, i) in props.items" :key="i" @mouseenter="val.active = true" @mouseleave="val.active = false"
|
|
|
>
|
|
|
- <div class="info-header">
|
|
|
- <div v-if="val.active && val.job.status === '0'" class="header-btn">
|
|
|
- <v-btn v-if="showCancelDeliveryResumeBtn && val.cvRel?.status === '0'" class="MiSans-Medium" color="primary" size="small" @click.stop="emits('cancelDeliveryResume', val.cvRel.id)">撤销投递简历</v-btn>
|
|
|
- <v-btn v-if="props.showCancelBtn" class="half-button ml-3 MiSans-Medium" color="primary" size="small" @click.stop="handleCancel(val)">取消收藏</v-btn>
|
|
|
- <v-btn class="half-button ml-3 MiSans-Medium" color="primary" size="small" @click.stop="toDetails(val)">立即沟通</v-btn>
|
|
|
- </div>
|
|
|
- <div v-if="val.job.status === '1'" class="font-size-14 header-btn color-error">职位已关闭</div>
|
|
|
+ <div class="info-header d-flex align-center justify-space-between">
|
|
|
<div class="img-box">
|
|
|
<v-avatar :image="getUserAvatar(val.contact.avatar, val.contact.sex)" size="x-small"></v-avatar>
|
|
|
<span class="name">
|
|
@@ -17,6 +11,17 @@
|
|
|
<span class="gray">{{ val.contact.postNameCn }}</span>
|
|
|
</span>
|
|
|
</div>
|
|
|
+ <div class="d-flex align-center">
|
|
|
+ <div v-if="val.active && val.job.status === '0'" class="header-btn">
|
|
|
+ <v-btn v-if="showCancelDeliveryResumeBtn && val.cvRel?.status === '0'" class="MiSans-Medium" color="warning" size="small" @click.stop="emits('cancelDeliveryResume', val.cvRel.id)">撤销投递简历</v-btn>
|
|
|
+ <v-btn v-if="props.showCancelBtn" class="half-button ml-3 MiSans-Medium" color="warning" size="small" @click.stop="handleCancel(val)">取消收藏</v-btn>
|
|
|
+ <v-btn class="half-button ml-3 MiSans-Medium" color="#008BB7" size="small" @click.stop="toDetails(val)">立即沟通</v-btn>
|
|
|
+ </div>
|
|
|
+ <div v-if="val.job.status === '1'" class="font-size-14 header-btn color-error mr-3">职位已关闭</div>
|
|
|
+ <div v-if="showReportBtn && val.job.bizId && !val.internshipEnterprise" class="header-btn">
|
|
|
+ <v-btn color="primary" size="small" @click="handleReport(val)">上报为实习企业</v-btn>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div class="info-content" >
|
|
|
<div class="job-info">
|
|
@@ -61,6 +66,7 @@ defineOptions({ name: 'longStrip'})
|
|
|
import { getPersonJobUnfavorite } from '@/api/position'
|
|
|
import { useI18n } from '@/hooks/web/useI18n'
|
|
|
import Snackbar from '@/plugins/snackbar'
|
|
|
+import Confirm from '@/plugins/confirm'
|
|
|
import { getUserAvatar } from '@/utils/avatar'
|
|
|
import { useRouter } from 'vue-router'
|
|
|
import { ref } from 'vue'
|
|
@@ -71,6 +77,7 @@ import { checkPersonBaseInfo } from '@/utils/check'
|
|
|
import dialogExtend from '@/plugins/dialogExtend'
|
|
|
import { formatName } from '@/utils/getText'
|
|
|
import { jumpToEnterpriseDetail } from '@/utils/position'
|
|
|
+import { reportStudentPracticeEnterprise } from '@/api/recruit/personal/student.js'
|
|
|
|
|
|
const emits = defineEmits(['refresh', 'cancelDeliveryResume'])
|
|
|
const { t } = useI18n()
|
|
@@ -88,6 +95,11 @@ const props = defineProps({
|
|
|
showCancelDeliveryResumeBtn: {
|
|
|
type: Boolean,
|
|
|
default: false
|
|
|
+ },
|
|
|
+ // 是否展示上报为实习企业按钮(只有学生需要展示)
|
|
|
+ showReportBtn: {
|
|
|
+ type: Boolean,
|
|
|
+ default: false
|
|
|
}
|
|
|
})
|
|
|
|
|
@@ -102,6 +114,16 @@ const handleCancel = async (item) => {
|
|
|
Snackbar.success(t('common.operationSuccessful'))
|
|
|
}
|
|
|
|
|
|
+// 上报为实习企业
|
|
|
+const handleReport = (val) => {
|
|
|
+ if (!val.enterprise.id || !val.job.id) return Snackbar.warning('企业或职位信息错误')
|
|
|
+ Confirm(t('common.confirmTitle'), '是否确定上报为实习企业?').then(async () => {
|
|
|
+ await reportStudentPracticeEnterprise(val.enterprise.id, val.job.id)
|
|
|
+ Snackbar.success('上报成功')
|
|
|
+ emits('refresh')
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
// 职位详情
|
|
|
const handleToPositionDetails = (item) => {
|
|
|
if (item.job.status === '1') return
|
|
@@ -165,6 +187,7 @@ const loginClose = () => {
|
|
|
height: 144px;
|
|
|
background-color: #fff;
|
|
|
border-radius: 12px;
|
|
|
+ border: 1px solid #fff;
|
|
|
.info-header {
|
|
|
height: 48px;
|
|
|
background: linear-gradient(90deg,#f5fcfc,#fcfbfa);
|
|
@@ -181,8 +204,7 @@ const loginClose = () => {
|
|
|
}
|
|
|
}
|
|
|
.header-btn {
|
|
|
- padding: 10px 10px 0 0;
|
|
|
- float: right;
|
|
|
+ padding-right: 10px;
|
|
|
.v-btn {
|
|
|
z-index: 1;
|
|
|
}
|