Ver código fonte

Merge branch 'dev' of https://git.citupro.com/zhengnaiwen_citu/menduner into dev

lifanagju_citu 10 meses atrás
pai
commit
532c991450

+ 4 - 2
src/views/recruit/personal/position/components/details.vue

@@ -185,11 +185,13 @@ getCollectionStatus()
 // 分享有礼
 const shareDialog = ref(false)
 const shareUrl = ref('')
+const userInfo = JSON.parse(localStorage.getItem('userInfo') || {})
 const handleShare = async () => {
-  // 分享链接携带参数: 1.用户id。2.手机号。3.附件简历。4.姓名。5.职位id
+  // 分享链接携带参数: 用户id、职位id
+  if (!id || !userInfo.id) return
   shareUrl.value = '/shareJob?' + new URLSearchParams({
     jobId: id,
-    sharedById: 'userId',
+    sharedById: userInfo?.id,
   }).toString()
   shareDialog.value = true
 }

+ 18 - 3
src/views/recruit/personal/shareJob/components/handleDeliveryCom.vue

@@ -14,18 +14,28 @@
 </template>
 
 <script setup>
+defineOptions({name: 'shareJob-handleDeliveryCom'})
+import { ref } from 'vue'
 import selectResumeDialog from '@/views/recruit/personal/position/components/jobDetails/selectResumeDialog'
 import Snackbar from '@/plugins/snackbar'
 import { useI18n } from '@/hooks/web/useI18n'; const { t } = useI18n()
 import { jobCvRelCheckSend, jobCvRelSend } from '@/api/position'
+import { hireJobCvDelivery } from '@/api/recruit/personal/shareJob'
 import DeliveryForm from './deliveryForm.vue'
 import { getPersonResumeCv } from '@/api/resume'
-import { ref } from 'vue'
-defineOptions({name: 'shareJob-handleDeliveryCom'})
+
 const props = defineProps({
   jobId: {
     type: String,
     default: ''
+  },
+  hire: {
+    type: Boolean,
+    default: false
+  },
+  userId: {
+    type: String,
+    default: ''
   }
 })
 const showResume = ref(false)
@@ -55,12 +65,17 @@ const handleClose = () => {
   showResume.value = false
   selectResume.value = null
 }
+
 const handleSubmit = async (val) =>{
   selectResume.value = val
   if (!selectResume.value) return Snackbar.warning(t('resume.selectResumeToSubmit'))
   const obj = resumeList.value.find(e => e.id === selectResume.value)
   if (!obj) return Snackbar.warning(t('resume.selectedResumeNotExist'))
-  await jobCvRelSend({ jobId: props.jobId, title: obj.title, url: obj.url })
+
+  // 区分普通职位跟众聘职位投递
+  if (props.hire) await hireJobCvDelivery({ jobId: props.jobId, recommendUserId: props.userId, url: obj.url })
+  else await jobCvRelSend({ jobId: props.jobId, title: obj.title, url: obj.url })
+
   setTimeout(() => {
     Snackbar.success(t('resume.deliverySuccess'))
   }, 3000)

+ 11 - 3
src/views/recruit/personal/shareJob/index.vue

@@ -32,6 +32,7 @@
             @click="null"
           >{{ $t('position.collection') }}</v-btn>
         </div>
+        {{ info.hire }}
         <v-divider class="mt-3"></v-divider>
         <div class="mt-3 mb-1 f-w-600">{{ $t('position.jobResponsibilities') }}</div>
         <div class="requirement" v-html="info.content?.replace(/\n/g, '</br>')"></div>
@@ -61,7 +62,7 @@
         </div>
       </div>
     </v-card>
-    <handleDeliveryCom v-if="showHandleDelivery" :jobId="jobId"></handleDeliveryCom>
+    <handleDeliveryCom v-if="showHandleDelivery" :jobId="jobId" :hire="info?.hire" :userId="sharedById"></handleDeliveryCom>
     <CtDialog
       :visible="showQuickResumeDialog"
       :widthType="2"
@@ -84,6 +85,7 @@ import { dealDictObjData } from '@/utils/position'
 import handleDeliveryCom from './components/handleDeliveryCom.vue'
 import login from './components/login.vue'
 import { getPersonalToken } from '@/utils/auth'
+import Snackbar from '@/plugins/snackbar'
 
 // 组件挂载后添加事件监听器  
 const isMobile = ref(false)
@@ -94,7 +96,7 @@ onMounted(() => {
 // 获取路由参数
 const queryParams = new URLSearchParams(window.location.search)
 const jobId = queryParams.get('jobId') || ''
-// const sharedById = queryParams.get('sharedById') || ''
+const sharedById = queryParams.get('sharedById') || ''
 
 // 职位详情
 const info = ref({})
@@ -104,7 +106,13 @@ const getPositionDetail = async () => {
   info.value = data
   positionInfo.value = { ...dealDictObjData({}, info.value), ...info.value }
 }
-getPositionDetail()
+// 判断有没有jobId跟sharedById,没有的话关闭当前窗口
+if (!jobId || !sharedById) {
+  Snackbar.warning('当前打开的链接无效')
+  setTimeout(() => {
+    window.close()
+  }, 2000)
+} else getPositionDetail()
 
 const desc = [
   { mdi: 'mdi-map-marker-outline', value: 'areaName' },