handleDeliveryCom.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <!-- 选择简历 -->
  2. <template>
  3. <selectResumeDialog v-model="showResume" :list="resumeList" @submit="handleSubmit" @close="handleClose"></selectResumeDialog>
  4. </template>
  5. <script setup>
  6. defineOptions({name: 'shareJob-handleDeliveryCom'})
  7. import { ref } from 'vue'
  8. import selectResumeDialog from '@/views/recruit/personal/position/components/jobDetails/selectResumeDialog'
  9. import Snackbar from '@/plugins/snackbar'
  10. import { useI18n } from '@/hooks/web/useI18n'; const { t } = useI18n()
  11. import { jobCvRelCheckSend, jobCvRelSend } from '@/api/position'
  12. import { hireJobCvDelivery } from '@/api/recruit/personal/shareJob'
  13. import { getPersonResumeCv } from '@/api/resume'
  14. const props = defineProps({
  15. jobId: {
  16. type: String,
  17. default: ''
  18. },
  19. hire: {
  20. type: Boolean,
  21. default: false
  22. },
  23. userId: {
  24. type: String,
  25. default: ''
  26. }
  27. })
  28. const showResume = ref(false)
  29. const resumeList = ref([])
  30. const inspectionProcess = async () => {
  31. try {
  32. // 已登录情况下: 1.是否投递过简历 2.是否有上传简历 3.已登录但未上传过简历->快速投递
  33. const res = await jobCvRelCheckSend({ jobId: props.jobId }) //是否投递过简历
  34. if (res) return Snackbar.warning(t('resume.alreadyResume'))
  35. //
  36. const data = await getPersonResumeCv()// 简历列表
  37. resumeList.value = data
  38. //
  39. if (data?.length) showResume.value = true // 简历选择
  40. else console.log('已登录但未上传简历')
  41. } catch (error) {
  42. console.error('error', error)
  43. }
  44. }
  45. inspectionProcess()
  46. // 简历投递
  47. const selectResume = ref()
  48. const handleClose = () => {
  49. showResume.value = false
  50. selectResume.value = null
  51. }
  52. const handleSubmit = async (val) =>{
  53. selectResume.value = val
  54. if (!selectResume.value) return Snackbar.warning(t('resume.selectResumeToSubmit'))
  55. const obj = resumeList.value.find(e => e.id === selectResume.value)
  56. if (!obj) return Snackbar.warning(t('resume.selectedResumeNotExist'))
  57. // 区分普通职位跟众聘职位投递
  58. if (props.hire) await hireJobCvDelivery({ jobId: props.jobId, recommendUserId: props.userId, url: obj.url })
  59. else await jobCvRelSend({ jobId: props.jobId, title: obj.title, url: obj.url })
  60. setTimeout(() => {
  61. Snackbar.success(t('resume.deliverySuccess'))
  62. }, 3000)
  63. handleClose()
  64. }
  65. </script>
  66. <style lang="scss" scoped>
  67. </style>