handleDeliveryCom.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <!-- 选择简历 -->
  2. <template>
  3. <selectResumeDialog v-model="showResume" :list="resumeList" @submit="handleSubmit" @close="handleClose"></selectResumeDialog>
  4. <CtDialog
  5. :visible="showUploadFile"
  6. :widthType="2"
  7. titleClass="text-h6"
  8. title="简历上传"
  9. @close="showQuickResumeDialog = false"
  10. @submit="null"
  11. >
  12. <DeliveryForm ref="deliveryForm"></DeliveryForm>
  13. </CtDialog>
  14. <CtDialog
  15. :visible="baseInfoCompleteDialog"
  16. :widthType="2"
  17. titleClass="text-h6"
  18. title="快速填写"
  19. @close="baseInfoCompleteDialog = false"
  20. @submit="baseInfoSubmit"
  21. >
  22. <DeliveryForm ref="deliveryForm"></DeliveryForm>
  23. </CtDialog>
  24. </template>
  25. <script setup>
  26. defineOptions({name: 'shareJob-handleDeliveryCom'})
  27. import { ref } from 'vue'
  28. import selectResumeDialog from '@/views/recruit/personal/position/components/jobDetails/selectResumeDialog'
  29. import Snackbar from '@/plugins/snackbar'
  30. import { useI18n } from '@/hooks/web/useI18n'; const { t } = useI18n()
  31. import {
  32. // jobCvRelCheckSend,
  33. jobCvRelSend
  34. } from '@/api/position'
  35. import { hireJobCvDelivery } from '@/api/recruit/personal/shareJob'
  36. import DeliveryForm from './deliveryForm.vue'
  37. import { getPersonResumeCv } from '@/api/resume'
  38. const emits = defineEmits(['refresh'])
  39. const props = defineProps({
  40. jobId: {
  41. type: String,
  42. default: ''
  43. },
  44. hire: {
  45. type: Boolean,
  46. default: false
  47. },
  48. userId: {
  49. type: String,
  50. default: ''
  51. },
  52. baseInfo: {
  53. type: Object,
  54. default: () => {}
  55. }
  56. })
  57. const showResume = ref(false)
  58. const showUploadFile = ref(false)
  59. const baseInfoCompleteDialog = ref(false)
  60. const resumeList = ref([])
  61. // if (baseInfoReady) {
  62. // // 必填人才信息已存在 -> 符合快速投递,进入查看是否存在简历
  63. // } else {
  64. // // 必填人才信息不完全 -> 不符合快速投递,进入完善人才信息流程
  65. // }
  66. const inspectionProcess = async () => {
  67. try {
  68. // 已登录情况下: 1.是否投递过简历 2.是否有上传简历 3.已登录但未上传过简历->快速投递
  69. // const res = await jobCvRelCheckSend({ jobId: props.jobId }) //是否投递过简历
  70. // if (res) return Snackbar.warning(t('resume.alreadyResume'))
  71. //
  72. if (!props.baseInfo?.baseInfoReady) {
  73. baseInfoCompleteDialog.value = true
  74. return
  75. }
  76. const data = await getPersonResumeCv()// 简历列表
  77. resumeList.value = data
  78. //
  79. if (data?.length) showResume.value = true // 简历选择
  80. else showUploadFile.value = true // 已登录但未上传简历
  81. } catch (error) {
  82. console.error('error', error)
  83. }
  84. }
  85. inspectionProcess()
  86. // 简历投递
  87. const selectResume = ref()
  88. const handleClose = () => {
  89. showResume.value = false
  90. selectResume.value = null
  91. }
  92. const handleSubmit = async (val) =>{
  93. selectResume.value = val
  94. if (!selectResume.value) return Snackbar.warning(t('resume.selectResumeToSubmit'))
  95. const obj = resumeList.value.find(e => e.id === selectResume.value)
  96. if (!obj) return Snackbar.warning(t('resume.selectedResumeNotExist'))
  97. // 区分普通职位跟众聘职位投递
  98. if (props.hire) await hireJobCvDelivery({ jobId: props.jobId, recommendUserId: props.userId, url: obj.url })
  99. else await jobCvRelSend({ jobId: props.jobId, title: obj.title, url: obj.url })
  100. // setTimeout(() => {
  101. Snackbar.success(t('resume.deliverySuccess'))
  102. // }, 3000)
  103. emits('refresh')
  104. handleClose()
  105. }
  106. </script>
  107. <style lang="scss" scoped>
  108. </style>