Xiao_123 9 kuukautta sitten
vanhempi
commit
8f3f963f64

+ 9 - 2
src/components/Position/longStrip.vue

@@ -3,7 +3,6 @@
     <div class="position-item mb-3 job-closed" 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" class="header-btn">
-          <!-- <v-btn class="half-button" color="primary" size="small">继续沟通</v-btn> -->
           <v-btn v-if="props.showCancelBtn" class="half-button ml-3" color="primary" size="small" @click="handleCancel(val)">取消感兴趣</v-btn>
         </div>
         <div class="img-box">
@@ -17,7 +16,7 @@
       <div class="info-content">
         <div class="job-info">
           <div class="job-name cursor-pointer">
-            <span class="mr-3 info-name">{{ val.job.name }}</span>
+            <span class="mr-3 info-name" @click="handleToPositionDetails(val)">{{ val.job.name }}</span>
             <span v-if="val?.job?.areaName">[{{ val.job.areaName }}]</span>
           </div>
           <div class="job-other">
@@ -46,6 +45,7 @@ import { getPersonJobUnfavorite } from '@/api/position'
 import { useI18n } from '@/hooks/web/useI18n'
 import Snackbar from '@/plugins/snackbar'
 import { getUserAvatar } from '@/utils/avatar'
+import { useRouter } from 'vue-router'
 
 const emits = defineEmits(['refresh'])
 const { t } = useI18n()
@@ -60,6 +60,8 @@ const props = defineProps({
   }
 })
 
+const router = useRouter()
+
 const desc = ['industryName', 'financingName', 'scaleName']
 
 const handleCancel = async (item) => {
@@ -68,6 +70,11 @@ const handleCancel = async (item) => {
   emits('refresh')
   Snackbar.success(t('common.operationSuccessful'))
 }
+
+// 职位详情
+const handleToPositionDetails = (item) => {
+  router.push(`/recruit/personal/position/details/${item.job.id}`)
+}
 </script>
 
 <style scoped lang="scss">

+ 14 - 9
src/views/recruit/enterprise/positionManagement/components/details.vue

@@ -1,9 +1,12 @@
 <template>
   <div class="default-width mb-5">
     <div class="banner px-6">
-      <div class="banner-title">
-        <h1 class="ellipsis">{{ info.name }}</h1>
-        <span class="salary">{{ info.payFrom }}-{{ info.payTo }}/{{ info.payName }}</span>
+      <div class="banner-title d-flex justify-space-between">
+        <div class="d-flex align-center">
+          <h1 class="ellipsis">{{ info.name }}</h1>
+          <span class="salary">{{ info.payFrom }}-{{ info.payTo }}/{{ info.payName }}</span>
+          <publicRecruitment v-if="info.hire" class="ml-5" width="50" height="50"></publicRecruitment>
+        </div>
         <span class="refresh-time">{{ timesTampChange(info.updateTime) }} {{ $t('common.refresh') }} <v-icon color="warning" size="20">mdi-alert-outline</v-icon></span>
       </div>
       <div class="banner-tags mt-4">
@@ -15,7 +18,11 @@
       <div class="banner-tools my-4">
         <v-chip size="small" label v-for="(k, i) in info.tagList" :key="i" class="mr-1" color="primary">{{ k }}</v-chip>
       </div>
-      <div class="d-flex justify-end mb-5">
+      <div class="d-flex justify-space-between mb-5">
+        <div>
+          <v-chip v-if="info.hire && info.hirePrice && info.hirePrice > 0" label color="primary">赏金:{{ commissionCalculation(info.hirePrice, 1) }}元</v-chip>
+          <v-chip v-if="info.hire && info.hirePoint && info.hirePoint > 0" label color="primary" class="ml-1">积分:{{ commissionCalculation(info.hirePoint, 1) }}点</v-chip>
+        </div>
         <div class="banner-tools-btns">
           <v-btn class="button-item radius" color="primary" variant="outlined" @click="handleEdit">{{ $t('common.edit') }}</v-btn>
         </div>
@@ -38,9 +45,6 @@
                   <div class="contact-info">{{ info.enterprise.name }} · {{ info.contact.postNameCn }}</div>
                 </div>
               </div>
-              <!-- <div class="float-right">
-                <v-chip color="primary" label>{{ $t('position.currentOnline') }}</v-chip>
-              </div> -->
             </div>
             <v-divider class="my-3"></v-divider>
             <div>
@@ -77,6 +81,7 @@ import { useRouter } from 'vue-router'
 import { timesTampChange } from '@/utils/date'
 import { getJobDetails } from '@/api/position'
 import { dealDictObjData } from '@/utils/position'
+import { commissionCalculation } from '@/utils/position'
 
 const router = useRouter()
 const { id } = router.currentRoute.value.params
@@ -100,8 +105,8 @@ const desc = [
 ]
 
 const handleEdit = () => {
-  if (!enterprise.value.id) return
-  window.open(`/recruit/enterprise/position/edit?id=${enterprise.value.id}`)
+  if (!id) return
+  window.open(`/recruit/enterprise/position/edit?id=${id}`)
 }
 </script>
 

+ 13 - 2
src/views/recruit/personal/PersonalCenter/components/interview/item.vue

@@ -25,7 +25,7 @@
         </div>
         <div class="job-info color-666">
           <div class="job-name ellipsis" style="max-width: 410px;">
-            <span class="mr-3">{{ val.job.name }}</span>
+            <span class="mr-3 cursor-pointer position-name" @click="handleToPositionDetails(val)">{{ val.job.name }}</span>
             <span>{{ val.job.payFrom }}-{{ val.job.payTo }}/{{ val.job.payName }}</span>
           </div>
           <div class="job-other d-flex align-center">
@@ -54,6 +54,7 @@ import { userInterviewInviteReject, userInterviewInviteConsent } from '@/api/rec
 import Snackbar from '@/plugins/snackbar'
 import Confirm from '@/plugins/confirm'
 import { getUserAvatar } from '@/utils/avatar'
+import { useRouter } from 'vue-router'
 
 const { t } = useI18n()
 const emits = defineEmits(['refresh'])
@@ -68,11 +69,18 @@ const props = defineProps({
   }
 })
 
+const router = useRouter()
+
 // 企业详情
 const handleToEnterprise = (item) => {
   const id = item.enterprise.id
   if (!id) return
-  window.open(`/recruit/personal/company/details/${id}?key=briefIntroduction`)
+  router.push(`/recruit/personal/company/details/${id}?key=briefIntroduction`)
+}
+
+// 职位详情
+const handleToPositionDetails = (item) => {
+  router.push(`/recruit/personal/position/details/${item.job.id}`)
 }
 
 // 同意
@@ -164,4 +172,7 @@ const handleRefuse = (val) => {
     }
   }
 }
+.position-name:hover {
+  color: var(--v-primary-base);
+}
 </style>