|
@@ -8,15 +8,18 @@
|
|
|
<v-btn color="primary" size="small" @click.stop="handleAgree(val)">同意</v-btn>
|
|
|
<v-btn class="ml-3" color="error" size="small" @click.stop="handleRefuse(val)">拒绝</v-btn>
|
|
|
</div>
|
|
|
+ <div v-if="['1', '3'].includes(val.status) && val.jobFairId && !val.internshipEnterprise" class="header-btn">
|
|
|
+ <v-btn color="primary" size="small" @click="handleReport(val)">上报为实习企业</v-btn>
|
|
|
+ </div>
|
|
|
<div v-if="val.job.status === '1'" class="font-size-14 header-btn color-error">职位已关闭</div>
|
|
|
<div class="img-box">
|
|
|
- <v-avatar :image="getUserAvatar(val.contact.avatar, val.contact.sex)" size="x-small"></v-avatar>
|
|
|
- <span class="name">
|
|
|
- <span class="mx-3">{{ val.contact.name }}</span>
|
|
|
- <span class="gray">{{ val.contact.postNameCn }}</span>
|
|
|
- <span v-if="val.invitePhone" class="septal-line"></span>
|
|
|
- <span class="gray">{{ val.invitePhone }}</span>
|
|
|
- </span>
|
|
|
+ <v-avatar :image="getUserAvatar(val.contact.avatar, val.contact.sex)" size="x-small"></v-avatar>
|
|
|
+ <span class="name">
|
|
|
+ <span class="mx-3">{{ val.contact.name }}</span>
|
|
|
+ <span class="gray">{{ val.contact.postNameCn }}</span>
|
|
|
+ <span v-if="val.invitePhone" class="septal-line"></span>
|
|
|
+ <span class="gray">{{ val.invitePhone }}</span>
|
|
|
+ </span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="info-content">
|
|
@@ -27,7 +30,11 @@
|
|
|
</div>
|
|
|
<div class="job-info color-666">
|
|
|
<div class="job-name ellipsis" style="max-width: 410px;">
|
|
|
- <!-- <svg-icon v-if="val.jobFairId" name="jobFair" size="18" class="mr-1"></svg-icon> -->
|
|
|
+ <v-tooltip text="上报的实习企业" location="top">
|
|
|
+ <template v-slot:activator="{ props }">
|
|
|
+ <svg-icon v-bind="props" v-if="val.internshipEnterprise" name="current-practice-enterprise" size="20"></svg-icon>
|
|
|
+ </template>
|
|
|
+ </v-tooltip>
|
|
|
<span class="mr-3" :class="{'cursor-pointer': val.job.status === '0', 'position-name': val.job.status === '0'}" @click.stop="handleToPositionDetails(val)">{{ formatName(val.job.name) }}</span>
|
|
|
<span v-if="!val.job.payFrom && !val.job.payTo">面议</span>
|
|
|
<span v-else>{{ val.job.payFrom ? val.job.payFrom + '-' : '' }}{{ val.job.payTo }}{{ val.job.payName ? '/' + val.job.payName : '' }}</span>
|
|
@@ -63,6 +70,7 @@ import { getUserAvatar } from '@/utils/avatar'
|
|
|
import { useRouter } from 'vue-router'
|
|
|
import { formatName } from '@/utils/getText'
|
|
|
import { jumpToEnterpriseDetail } from '@/utils/position'
|
|
|
+import { reportStudentPracticeEnterprise } from '@/api/recruit/personal/student.js'
|
|
|
|
|
|
const { t } = useI18n()
|
|
|
const emits = defineEmits(['refresh'])
|
|
@@ -115,6 +123,17 @@ const handleRefuse = (val) => {
|
|
|
emits('refresh')
|
|
|
})
|
|
|
}
|
|
|
+
|
|
|
+// 上报为实习企业
|
|
|
+const handleReport = async (val) => {
|
|
|
+ if (!val.jobFairId) return Snackbar.warning('不是招聘会职位不能上报为实习企业')
|
|
|
+ if (!val.enterpriseId || !val.jobId) return Snackbar.warning('企业或职位信息错误')
|
|
|
+ Confirm(t('common.confirmTitle'), '是否确定上报为实习企业?').then(async () => {
|
|
|
+ await reportStudentPracticeEnterprise(val.enterpriseId, val.jobId)
|
|
|
+ Snackbar.success('上报成功')
|
|
|
+ emits('refresh')
|
|
|
+ })
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
@@ -122,6 +141,7 @@ const handleRefuse = (val) => {
|
|
|
height: 160px;
|
|
|
background-color: #fff;
|
|
|
border-radius: 12px;
|
|
|
+ border: 1px solid #fff;
|
|
|
.info-header {
|
|
|
height: 48px;
|
|
|
background: linear-gradient(90deg,#f5fcfc,#fcfbfa);
|