Browse Source

删除旧文件

lifanagju_citu 10 tháng trước cách đây
mục cha
commit
c54dfff607

+ 0 - 111
src/views/recruit/personal/shareJob/components/baseInfoCompleteForm.vue

@@ -1,111 +0,0 @@
-<template>
-  <div style="width: 100%;">
-    <CtForm ref="formPageRef" :items="items"></CtForm>
-  </div>
-</template>
-
-<script setup>
-import { getDict } from '@/hooks/web/useDictionaries'
-defineOptions({ name: 'shareJob-baseInfoCompleteForm'})
-import { reactive, ref, defineExpose } from 'vue'
-
-const formPageRef = ref()
-let query = reactive({})
-
-const items = ref({
-  options: [
-    {
-      type: 'text',
-      key: 'name',
-      value: '',
-      default: null,
-      label: '姓名 *',
-      outlined: true,
-      rules: [v => !!v || '请输入姓名']
-    },
-    {
-      type: 'text',
-      key: 'phone',
-      value: '',
-      clearable: true,
-      label: '联系手机号 *',
-      rules: [v => !!v || '请填写联系手机号']
-    },
-    {
-      type: 'autocomplete',
-      key: 'jobStatus',
-      value: '',
-      default: null,
-      label: '求职状态 *',
-      outlined: true,
-      itemText: 'label',
-      itemValue: 'value',
-      dictTypeName: 'menduner_job_status',
-      rules: [v => !!v || '请选择求职状态'],
-      items: []
-    },
-    {
-      type: 'autocomplete',
-      key: 'expType',
-      value: '',
-      default: null,
-      label: '工作经验 *',
-      outlined: true,
-      itemText: 'label',
-      itemValue: 'value',
-      dictTypeName: 'menduner_exp_type',
-      rules: [v => !!v || '请选择工作经验'],
-      items: []
-    },
-    {
-      type: 'autocomplete',
-      key: 'eduType',
-      value: '',
-      default: null,
-      label: '最高学历 *',
-      outlined: true,
-      itemText: 'label',
-      itemValue: 'value',
-      dictTypeName: 'menduner_education_type',
-      rules: [v => !!v || '请选择最高学历'],
-      items: []
-    },
-  ]
-})
-
-// 获取字典内容
-const getDictData = async (dictTypeName) => {
-  const item = items.value.options.find(e => e.dictTypeName === dictTypeName)
-  if (item) {
-    const { data } = await getDict(dictTypeName)
-    item.items = data
-  }
-}
-
-items.value.options.forEach((e) => {
-  if (e.dictTypeName) getDictData(e.dictTypeName) // 查字典set options
-  // formItems回显
-  // const infoExist = baseInfo.value && Object.keys(baseInfo.value).length
-  // if (infoExist && baseInfo.value[e.key]) e.value = baseInfo.value[e.key]
-  // // 日期相关
-  // if (e.type === 'datepicker') e.value = timesTampChange(e.value).slice(0, 10)
-  // // 所在城市回显
-  // if (infoExist && e.nameKey) e[e.nameKey] = baseInfo.value[e.nameKey]
-})
-
-const getQuery = async () => {
-  const { valid } = await formPageRef.value.formRef.validate()
-  if (!valid) return
-  const obj = {}
-  items.value.options.forEach(e => {
-    if (Object.prototype.hasOwnProperty.call(e, 'data')) return obj[e.key] = e.data
-    obj[e.key] = e.value
-  })
-  query = Object.assign(query, obj)
-  return query
-}
-
-defineExpose({
-  getQuery
-})
-</script>

+ 0 - 89
src/views/recruit/personal/shareJob/components/deliveryForm.vue

@@ -1,89 +0,0 @@
-<template>
-  <div style="width: 100%;">
-    <CtForm ref="formPageRef" :items="items"></CtForm>
-  </div>
-</template>
-
-<script setup>
-defineOptions({ name: 'position-add-job-requirements'})
-import { reactive, ref, defineExpose } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { uploadFile } from '@/api/common'
-import Snackbar from '@/plugins/snackbar'
-
-const { t }  = useI18n()
-const formPageRef = ref()
-let query = reactive({})
-
-// 上传简历
-const typeList = ['pdf', 'doc', 'docx']
-const handleUpload = async (e) => {
-  const file = e
-  const size = file.size
-  if (size / (1024*1024) > 10) {
-    Snackbar.warning(t('common.fileSizeExceed'))
-    return
-  }
-  const arr = file.name.split('.')
-  if (typeList.indexOf(arr[arr.length - 1]) < 0) {
-    Snackbar.warning(t('common.fileFormatIncorrect'))
-    return
-  }
-  const formData = new FormData()
-  formData.append('file', file)
-  const { data } = await uploadFile(formData)
-  if (!data) return
-  const urlItem = items.value.options.find(e => e.key === 'url')
-  if (urlItem) urlItem.data = data
-  query.fileName = file.name
-}
-
-const items = ref({
-  options: [
-    // {
-    //   type: 'text',
-    //   key: 'name',
-    //   value: '',
-    //   clearable: true,
-    //   label: '姓名 *',
-    //   rules: [v => !!v || '请填写姓名']
-    // },
-    // {
-    //   type: 'text',
-    //   key: 'phone',
-    //   value: '',
-    //   clearable: true,
-    //   label: '手机号码 *',
-    //   rules: [v => !!v || '请填写手机号码']
-    // },
-    {
-      type: 'upload',
-      key: 'url',
-      value: null,
-      data: '',
-      label: '简历 *',
-      accept: '.doc, .docx, .pdf',
-      placeholder: '请上传简历',
-      rules: [v => !!v || '请上传简历'],
-      change: handleUpload
-    }
-  ]
-})
-
-
-const getQuery = async () => {
-  const { valid } = await formPageRef.value.formRef.validate()
-  if (!valid) return
-  const obj = {}
-  items.value.options.forEach(e => {
-    if (Object.prototype.hasOwnProperty.call(e, 'data')) return obj[e.key] = e.data
-    obj[e.key] = e.value
-  })
-  query = Object.assign(query, obj)
-  return query
-}
-
-defineExpose({
-  getQuery
-})
-</script>

+ 0 - 141
src/views/recruit/personal/shareJob/components/handleDeliveryCom.vue

@@ -1,141 +0,0 @@
-<!-- 选择简历 -->
-<template>
-  <selectResumeDialog v-model="showResume" :list="resumeList" @submit="handleSubmit" @close="handleClose"></selectResumeDialog>
-  <CtDialog
-    :visible="showUploadFile"
-    :widthType="2"
-    titleClass="text-h6"
-    @close="showUploadFile = false"
-    title="简历上传"
-    @submit="uploadFileSubmit"
-  >
-    <DeliveryForm ref="deliveryFormRef"></DeliveryForm>
-  </CtDialog>
-  <CtDialog
-    :visible="baseInfoCompleteDialog"
-    :widthType="2"
-    titleClass="text-h6"
-    @close="baseInfoCompleteDialog = false"
-    title="快速填写"
-    @submit="baseInfoSubmit"
-  >
-    <baseInfoCompleteForm ref="baseInfoCompleteFormRef" :baseInfo="baseInfo"></baseInfoCompleteForm>
-  </CtDialog>
-</template>
-
-<script setup>
-defineOptions({name: 'shareJob-handleDeliveryCom'})
-import { nextTick, 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, savePersonSimpleInfo } from '@/api/recruit/personal/shareJob'
-import DeliveryForm from './deliveryForm.vue'
-import baseInfoCompleteForm from './baseInfoCompleteForm.vue'
-import { getPersonResumeCv, savePersonResumeCv } from '@/api/resume'
-
-const emits = defineEmits(['refresh'])
-const props = defineProps({
-  jobId: {
-    type: String,
-    default: ''
-  },
-  hire: {
-    type: Boolean,
-    default: false
-  },
-  userId: {
-    type: String,
-    default: ''
-  },
-  baseInfo: {
-    type: Object,
-    default: () => {}
-  }
-})
-const showResume = ref(false)
-const showUploadFile = ref(false)
-const resumeList = ref([])
-
-// 填写必填信息
-const baseInfoReady1 = ref(false)
-const baseInfoCompleteDialog = ref(false)
-const baseInfoCompleteFormRef = ref()
-const baseInfoSubmit = async () => {
-  const appPersonInfoSaveSimpleReqVO = await baseInfoCompleteFormRef.value.getQuery()
-  await savePersonSimpleInfo(appPersonInfoSaveSimpleReqVO)
-  localStorage.setItem('baseInfo', JSON.stringify(appPersonInfoSaveSimpleReqVO))
-  baseInfoReady1.value = true
-  baseInfoCompleteDialog.value = false
-  inspectionProcess()
-  // nextTick(() => { baseInfoCompleteDialog.value = false; inspectionProcess() })
-}
-
-const deliveryFormRef = ref()
-const uploadFileSubmit = async () => {
-  const obj = await deliveryFormRef.value.getQuery()
-  await savePersonResumeCv({ title: obj.fileName, url: obj.url })
-  showUploadFile.value = false
-  inspectionProcess()
-}
-
-const inspectionProcess = async () => {
-  try {
-    // 已登录情况下流程:
-    //
-    // * 必填人才信息不完全 -> 不符合快速投递,进入完善人才信息流程
-    const info = JSON.parse(localStorage.getItem('baseInfo'))
-    const keyArr = ['name', 'phone', 'jobStatus', 'expType', 'eduType'] // 必填人才信息
-    const baseInfoReady = keyArr.every(e => info[e] && info[e] !== 0) // 校验必填人才信息
-    if (!baseInfoReady) {
-      Snackbar.warning('请先完善个人基本信息')
-      nextTick(() => { baseInfoCompleteDialog.value = true })
-      return
-    }
-    // * 查看简历列表
-    const data = await getPersonResumeCv()
-    resumeList.value = data
-    // * 上传简历 (已登录但未上传简历)
-    if (!data?.length) {
-      nextTick(() => { showUploadFile.value = true })
-      return
-    }
-    // * 简历选择
-    if (data?.length) nextTick(() => { showResume.value = true })
-  } catch (error) {
-    console.error('error', error)
-  }
-}
-inspectionProcess()
-
-// 简历投递
-const selectResume = ref()
-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'))
-
-  // 区分普通职位跟众聘职位投递
-  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, type: props.hire ? 1 : 0 })
-
-  // setTimeout(() => {
-    Snackbar.success(t('resume.deliverySuccess'))
-  // }, 3000)
-  emits('refresh')
-  handleClose()
-}
-
-</script>
-<style lang="scss" scoped>
-</style>

+ 0 - 66
src/views/recruit/personal/shareJob/components/quickLogin.vue

@@ -1,66 +0,0 @@
-<!--  -->
-<template>
-  <div class="my-5">
-    <phoneFrom ref="phoneRef" @handleEnter="handleLogin"></phoneFrom>
-    <v-btn :loading="loginLoading" color="primary" class="white--text mt-5" min-width="350" @click="handleLogin">
-      {{ $t('login.register') }}
-    </v-btn>
-  </div>
-</template>
-
-<script setup>
-import phoneFrom from '@/components/VerificationCode'
-import { useUserStore } from '@/store/user'; const userStore = useUserStore()
-import { useI18n } from '@/hooks/web/useI18n'; const { t } = useI18n()
-import Snackbar from '@/plugins/snackbar'
-import { ref } from 'vue'
-defineOptions({name: 'shareJob-login'})
-const emit = defineEmits(['loginSuccess'])
-
-// 验证码登录
-const phoneRef = ref()
-const loginLoading = ref(false)
-
-const timer = ref(null)
-const baseInfo = ref(null)
-const handleLogin = async () => {
-  localStorage.removeItem('currentRole')
-  const { valid } = await phoneRef.value.phoneForm.validate()
-  if (!valid) return
-  loginLoading.value = true
-  try {
-    const params = { ...phoneRef.value.loginData } // 只能验证码登录
-    await userStore.handleSmsLogin(params)
-    // 查询用户基本信息
-    timer.value = setInterval(() => { getUserInfoVerify() }, 1000)
-    // 十秒后停止获取清除timer
-    setTimeout(() => { if (!baseInfo.value) getUserInfoFail() }, 10000);
-  } catch (error) {
-    console.error('error', error)
-  }
-}
-
-// 查询用户基本信息失败 
-const getUserInfoVerify = () => {
-  if (baseInfo.value) {
-    clearInterval(timer.value)
-    timer.value = null
-    loginLoading.value = false
-    const keyArr = ['name', 'phone', 'jobStatus', 'expType', 'eduType'] // 必填人才信息
-    const baseInfoReady = keyArr.every(e => baseInfo.value[e] && baseInfo.value[e] !== 0) // 校验必填人才信息
-    const obj = { baseInfoReady, baseInfo: baseInfo.value, keyArr }
-    emit('loginSuccess', obj)
-  }
-  baseInfo.value = JSON.parse(localStorage.getItem('baseInfo'))
-}
-
-// 查询用户基本信息失败 
-const getUserInfoFail = () => {
-  clearInterval(timer.value)
-  timer.value = null
-  loginLoading.value = false
-  Snackbar.success(t('login.getUserInfoFailed')+','+t('login.loginAgain'))
-}
-</script>
-<style lang="scss" scoped>
-</style>

+ 0 - 21
src/views/recruit/personal/shareJob/components/quickResume.vue

@@ -1,21 +0,0 @@
-<!-- 未登录 -->
-<template>
-  <DeliveryForm ref="deliveryForm"></DeliveryForm>
-</template>
-
-<script setup>
-import DeliveryForm from './deliveryForm.vue'
-import { defineExpose, ref } from 'vue'
-defineOptions({name: 'shareJob-quickResumeDialog'})
-
-const deliveryForm = ref()
-const submit = async () => {
-  console.log(await deliveryForm.value.getQuery(), 'quickResumeSubmit')
-}
-
-defineExpose({
-  submit
-})
-</script>
-<style lang="scss" scoped>
-</style>

+ 0 - 29
src/views/recruit/personal/shareJob/index.vue

@@ -92,27 +92,6 @@
       @close="handleClose('showSelect')"
       ref="selectRef"
     ></select-page>
-
-    <!-- 简历投递 -->
-    <!-- <handleDeliveryCom
-      v-if="showHandleDelivery"
-      :jobId="jobId"
-      :hire="info?.hire"
-      :userId="sharedById"
-      :baseInfo="baseInfo"
-      @refresh="handleCheckJobDelivery"
-    ></handleDeliveryCom> -->
-    <!-- 快速登录 -->
-    <!-- <CtDialog
-      :visible="showQuickResumeDialog"
-      :widthType="2"
-      :footer="false"
-      titleClass="text-h6"
-      title="快速登录"
-      @close="showQuickResumeDialog = false"
-    >
-      <quickLogin :jobId="jobId" @loginSuccess="loginSuccess"></quickLogin>
-    </CtDialog> -->
   </div>
 </template>
 
@@ -124,8 +103,6 @@ import selectPage from './sendResume/select.vue'
 import { onMounted, reactive, ref } from 'vue';
 import { getPositionDetails, jobCvRelCheckSend, getPersonJobUnfavorite, getPersonJobFavorite, getJobFavoriteCheck } from '@/api/position'
 import { dealDictObjData } from '@/utils/position'
-// import handleDeliveryCom from './components/handleDeliveryCom.vue'
-// import quickLogin from './components/quickLogin.vue'
 import { getPersonalToken } from '@/utils/auth'
 import Snackbar from '@/plugins/snackbar'
 import { useI18n } from '@/hooks/web/useI18n'; const { t } = useI18n()
@@ -166,11 +143,6 @@ const getCollectionStatus = async () => {
   isCollection.value = data
 }
 
-// const handleLogin = () => {
-//   showQuickResumeDialog.value = true
-//   showHandleDelivery.value = !showQuickResumeDialog.value
-// }
-
 // 收藏&取消收藏职位
 const handleCollection = async () => {
   // 效验登录状态
@@ -206,7 +178,6 @@ const desc = [
   { mdi: 'mdi-clock-time-ten-outline', value: 'expName' }
 ]
 
-
 // 快速登录成功
 const loginSuccess = async () => {
   sendResume.showLogin = false // 关闭快速登录弹窗