|  | @@ -8,15 +8,18 @@
 | 
											
												
													
														|  |          <v-btn color="primary" size="small" @click.stop="handleAgree(val)">同意</v-btn>
 |  |          <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>
 |  |          <v-btn class="ml-3" color="error" size="small" @click.stop="handleRefuse(val)">拒绝</v-btn>
 | 
											
												
													
														|  |        </div>
 |  |        </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 v-if="val.job.status === '1'" class="font-size-14 header-btn color-error">职位已关闭</div>
 | 
											
												
													
														|  |        <div class="img-box">
 |  |        <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>
 |  |      </div>
 | 
											
												
													
														|  |      <div class="info-content">
 |  |      <div class="info-content">
 | 
											
										
											
												
													
														|  | @@ -27,7 +30,11 @@
 | 
											
												
													
														|  |          </div>
 |  |          </div>
 | 
											
												
													
														|  |          <div class="job-info color-666">
 |  |          <div class="job-info color-666">
 | 
											
												
													
														|  |            <div class="job-name ellipsis" style="max-width: 410px;">
 |  |            <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 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-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>
 |  |              <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 { useRouter } from 'vue-router'
 | 
											
												
													
														|  |  import { formatName } from '@/utils/getText'
 |  |  import { formatName } from '@/utils/getText'
 | 
											
												
													
														|  |  import { jumpToEnterpriseDetail } from '@/utils/position'
 |  |  import { jumpToEnterpriseDetail } from '@/utils/position'
 | 
											
												
													
														|  | 
 |  | +import { reportStudentPracticeEnterprise } from '@/api/recruit/personal/student.js'
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  const { t } = useI18n()
 |  |  const { t } = useI18n()
 | 
											
												
													
														|  |  const emits = defineEmits(['refresh'])
 |  |  const emits = defineEmits(['refresh'])
 | 
											
										
											
												
													
														|  | @@ -115,6 +123,17 @@ const handleRefuse = (val) => {
 | 
											
												
													
														|  |      emits('refresh')
 |  |      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>
 |  |  </script>
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  <style scoped lang="scss">
 |  |  <style scoped lang="scss">
 | 
											
										
											
												
													
														|  | @@ -122,6 +141,7 @@ const handleRefuse = (val) => {
 | 
											
												
													
														|  |    height: 160px;
 |  |    height: 160px;
 | 
											
												
													
														|  |    background-color: #fff;
 |  |    background-color: #fff;
 | 
											
												
													
														|  |    border-radius: 12px;
 |  |    border-radius: 12px;
 | 
											
												
													
														|  | 
 |  | +  border: 1px solid #fff;
 | 
											
												
													
														|  |    .info-header {
 |  |    .info-header {
 | 
											
												
													
														|  |      height: 48px;
 |  |      height: 48px;
 | 
											
												
													
														|  |      background: linear-gradient(90deg,#f5fcfc,#fcfbfa);
 |  |      background: linear-gradient(90deg,#f5fcfc,#fcfbfa);
 |