Selaa lähdekoodia

删除/shareJob文件夹

Xiao_123 3 kuukautta sitten
vanhempi
commit
8bee7c5c62

+ 1 - 2
components.d.ts

@@ -31,7 +31,6 @@ declare module 'vue' {
     CtTextField: typeof import('./src/components/CtVuetify/CtTextField/index.vue')['default']
     DatePicker: typeof import('./src/components/DatePicker/index.vue')['default']
     Echarts: typeof import('./src/components/Echarts/index.vue')['default']
-    ElCascader: typeof import('element-plus/es')['ElCascader']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
     Empty: typeof import('./src/components/Empty/index.vue')['default']
     File: typeof import('./src/components/Upload/file.vue')['default']
@@ -53,7 +52,7 @@ declare module 'vue' {
     LongCompany: typeof import('./src/components/Position/longCompany.vue')['default']
     LongStrip: typeof import('./src/components/Position/longStrip.vue')['default']
     NestedListGroup: typeof import('./src/components/FormUI/nestedListGroup/index.vue')['default']
-    Pay: typeof import('./src/components/personalRecharge/pay.vue')['default']
+    Pay: typeof import('./src/components/pay/index.vue')['default']
     PersonalRecharge: typeof import('./src/components/personalRecharge/index.vue')['default']
     PreviewImage: typeof import('./src/components/PreviewImg/previewImage.vue')['default']
     PreviewImg: typeof import('./src/components/PreviewImg/index.vue')['default']

+ 0 - 113
src/views/recruit/personal/shareJob/form/simpleInfo.vue

@@ -1,113 +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-form-baseInfo'})
-import { reactive, ref } 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: 'phoneNumber',
-      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_seek_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
-  }
-}
-
-const userInfo = ref(localStorage.getItem('userInfo') ? JSON.parse(localStorage.getItem('userInfo')) : {})
-items.value.options.forEach((e) => {
-  if (e.dictTypeName) getDictData(e.dictTypeName) // 查字典set options
-  e.value = userInfo.value[e.key] // 回显
-  // 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 false
-  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 - 83
src/views/recruit/personal/shareJob/form/upload.vue

@@ -1,83 +0,0 @@
-<template>
-  <div style="width: 100%;">
-    <CtForm ref="formPageRef" :items="items"></CtForm>
-    <div class="color-666 mb-3" style="font-size: 13px;">* 仅支持.doc, .docx, .pdf文件且大小不能超过20MB</div>
-  </div>
-</template>
-
-<script setup>
-defineOptions({name: 'shareJob-form-upload'})
-import { reactive, ref } 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) > 20) {
-    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)
-  formData.append('path', 'attachment')
-  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: 'title',
-      value: null,
-      label: '附件简历名称 *',
-      rules: [v => !!v || '请填写附件简历名称']
-    },
-    {
-      type: 'upload',
-      key: 'url',
-      value: null,
-      data: '',
-      label: '附件简历 *',
-      placeholder: '请上传附件简历',
-      accept: '.doc, .docx, .pdf',
-      prependInnerIcon: 'mdi-file-document-outline',
-      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 - 311
src/views/recruit/personal/shareJob/index.vue

@@ -1,311 +0,0 @@
-<!-- 分享职位 -->
-<template>
-  <div style="background-color: #f0f0f0;" :style="{'padding': isMobile ? '0' : '10px'}">
-    <v-card
-      class="py-3 px-5"
-      style="min-height: calc(100vh - 20px); box-sizing: border-box; margin: 0 auto;"
-      :style="{'width': isMobile ? '100%' : '750px'}"
-    >
-      <div v-if="!Object.keys(info).length">加载失败</div>
-      <div v-else>
-        <div class="d-flex justify-space-between">
-          <h2 class="JobName ellipsis">{{ info.name }}</h2>
-          <span v-if="!info.payFrom && !info.payTo" class="salary">面议</span>
-          <span v-else class="salary">{{ info.payFrom ? info.payFrom + '-' : '' }}{{ info.payTo }}{{ positionInfo.payName ? '/' + positionInfo.payName : '' }}</span>
-        </div>
-        <div class="d-flex justify-space-between mt-4">
-          <div class="banner-tags">
-            <div v-for="k in desc" :key="k.mdi" class="mr-3">
-              <v-icon color="var(--color-666)" size="20">{{ k.mdi }}</v-icon>
-              <span class="f-w-600 ml-1">{{ positionInfo[k.value] }}</span>
-            </div>
-          </div>
-          <div class="mt-4" v-if="info?.tagList">
-            <v-chip size="small" class="mr-1 mb-1" color="primary" label v-for="(k, i) in info.tagList" :key="i">{{ k }}</v-chip>
-          </div>
-        </div>
-        <div class="text-end d-flex align-center justify-space-between mt-3">
-          <v-btn
-            class="button-item radius"
-            color="warning" 
-            variant="outlined" 
-            :prepend-icon="isCollection ? 'mdi-heart' : 'mdi-heart-outline'"
-            @click="handleCollection"
-          >{{ isCollection ? $t('position.cancelFavorite') : $t('position.collection') }}</v-btn>
-          <svg-icon v-if="info.hire" name="pin" size="50"></svg-icon>
-        </div>
-        <div v-if="info.hire" class="mt-3">
-          <v-chip v-if="info.hirePrice" label color="primary">赏金:{{ commissionCalculation(info.hirePrice / 100, 1) }}元</v-chip>
-          <v-chip v-if="info.hirePoint" label color="primary">积分:{{ commissionCalculation(info.hirePoint / 100, 1) }}点</v-chip>
-        </div>
-        <v-divider class="mt-3"></v-divider>
-        <div class="mt-3 mb-1 f-w-600">{{ $t('position.jobResponsibilities') }}</div>
-        <div v-if="info.content" class="requirement" v-html="info.content?.replace(/\n/g, '</br>')"></div>
-        <div v-else>暂无</div>
-        <div class="mt-3 mb-1 f-w-600">{{ $t('position.jobRequirements') }}</div>
-        <div v-if="info.requirement" class="requirement" v-html="info.requirement?.replace(/\n/g, '</br>')"></div>
-        <div v-else>暂无</div>
-        <v-divider class="my-3"></v-divider>
-        <div class="contact">
-          <div class="float-left d-flex align-center">
-            <v-img :src="info.contact?.avatar || 'https://minio.citupro.com/dev/menduner/7.png'" :width="45" style="height: 45px;"></v-img>
-            <div class="ml-2">
-              <div class="contact-name">{{ info.contact?.name }}</div>
-              <div class="contact-info">{{ info.enterprise?.name }} · {{ info.contact?.postNameCn }}</div>
-            </div>
-          </div>
-        </div>
-        <v-divider class="my-3"></v-divider>
-        <div>
-          <h4>{{ $t('position.address') }}</h4>
-          <div class="mt-1">
-            <v-icon size="25" color="primary">mdi-map-marker</v-icon>
-            <span style="color: var(--color-666);font-size: 15px;">{{ info.address }}</span>
-          </div>
-        </div>
-        <div class="text-center my-10">
-          <v-btn v-if="!isMobile" class="mr-2 radius button-item" color="success" variant="outlined" target="_blank" to="/recruit/personal/position">{{ $t('position.moreBtn') }}</v-btn>
-          <v-btn class="radius button-item" color="primary" :disabled="delivery" @click="sendResumeProcessVerify">{{ delivery ? $t('position.delivered') : $t('position.submitResume') }}</v-btn>
-          <span v-if="showSwitchAccount" class="ml-2 cursor-pointer" style="font-size: 14px; color: #666; text-decoration: underline;" @click="handleSwitchAccount">切换账号</span>
-        </div>
-      </div>
-    </v-card>
-
-    <!-- 快速登录/注册 -->
-    <loginPage
-      v-if="sendResume.showLogin"
-      :jobId="jobId"
-      :hasLogout="hasLogout"
-      @loginSuccess="loginSuccess"
-      @close="handleClose('showLogin')"
-    ></loginPage>
-
-    <!-- 快速填写简易人才信息 -->
-    <simplePage
-      v-if="sendResume.showSimpleInfo"
-      @simpleInfoReady="simpleInfoReadyFun"
-      @close="handleClose('showSimpleInfo')"
-    ></simplePage>
-
-    <!-- 选择简历 -->
-    <selectPage
-      v-if="sendResume.showSelect"
-      :hire="info?.hire"
-      :jobId="jobId"
-      :userId="sharedById"
-      @refresh="handleCheckJobDelivery"
-      @close="handleClose('showSelect')"
-      ref="selectRef"
-    ></selectPage>
-  </div>
-</template>
-
-<script setup>
-import { commissionCalculation } from '@/utils/position'
-defineOptions({name: 'recruit-personal-shareJob-index'})
-import loginPage from '@/views/common/loginDialog.vue'
-import simplePage from './sendResume/simple.vue'
-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 { getToken } from '@/utils/auth'
-import Snackbar from '@/plugins/snackbar'
-import { useI18n } from '@/hooks/web/useI18n'; const { t } = useI18n()
-
-// 组件挂载后添加事件监听器  
-const isMobile = ref(false)
-onMounted(() => {
-  const userAgent = navigator.userAgent
-  isMobile.value = /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i.test(userAgent)
-})
-// 获取路由参数
-const queryParams = new URLSearchParams(window.location.search)
-const jobId = queryParams.get('jobId') || ''
-const sharedById = queryParams.get('sharedById') || ''
-
-// 职位详情
-const info = ref({})
-const positionInfo = ref({})
-const getPositionDetail = async () => {
-  const data = await getPositionDetails({ id: jobId })
-  info.value = data
-  positionInfo.value = { ...dealDictObjData({}, info.value), ...info.value }
-}
-
-// 效验是否已投递
-const delivery = ref(false)
-const handleCheckJobDelivery = async () => {
-  delivery.value = await jobCvRelCheckSend({ jobId })
-  return delivery.value
-}
-
-// 效验求职者是否有收藏该职位
-const actions = ref(false)
-const isCollection = ref(false)
-const getCollectionStatus = async () => {
-  if (!jobId) return
-  const data = await getJobFavoriteCheck({ jobId })
-  isCollection.value = data
-}
-
-// 收藏&取消收藏职位
-const handleCollection = async () => {
-  // 效验登录状态
-  if (!getToken()) {
-    actions.value = true
-    sendResume.showLogin = true
-    return
-  }
-  if (!jobId) return
-  const api = isCollection.value ? getPersonJobUnfavorite : getPersonJobFavorite
-  await api(isCollection.value ? jobId : { jobId })
-  await getCollectionStatus()
-}
-
-// 判断有没有jobId跟sharedById,没有的话关闭当前窗口
-if (!jobId) { // !sharedById
-  Snackbar.warning('当前打开的链接无效')
-  setTimeout(() => {
-    window.close()
-  }, 2000)
-} else {
-  getPositionDetail()
-  if (getToken()) {
-    handleCheckJobDelivery()
-    getCollectionStatus()
-  }
-}
-
-const desc = [
-  { mdi: 'mdi-map-marker-outline', value: 'areaName' },
-  { mdi: 'mdi-school-outline', value: 'eduName' },
-  { mdi: 'mdi-clock-time-ten-outline', value: 'expName' }
-]
-
-// 快速登录成功
-const loginSuccess = async () => {
-  simpleInfoReady.value = false
-  sendResume.showLogin = false // 关闭快速登录弹窗
-  showSwitchAccountFun(true)
-  // actions为true则是收藏时的登录,不需要弹窗选择简历
-  if (actions.value) {
-    actions.value = false
-    Snackbar.success('登录成功')
-    await handleCollection()
-    return 
-  }
-  const bool = await handleCheckJobDelivery()
-  if (bool) return Snackbar.warning(t('resume.alreadyResume'))
-  sendResumeProcessVerify()
-}
-
-// 简易人才信息
-const simpleInfoReady = ref(false)
-const simpleInfoReadyFun = () => {
-  sendResume.showSimpleInfo = false
-  simpleInfoReady.value = true
-  sendResumeProcessVerify()
-}
-const sendResume = reactive({
-  showLogin: false,
-  showSimpleInfo: false,
-  showSelect: false,
-})
-
-// 流程校准
-const sendResumeProcessVerify = async () => {
-  try { // 1.登录 2.具备人才信息 3.有无附件简历,无则上传
-    // 未登录
-    if (!getToken()) {
-      sendResume.showLogin = true
-      return
-    }
-    // 已登录
-    // * 必填人才信息不完全 -> 不符合快速投递,进入完善人才信息流程
-    if (!simpleInfoReady.value) {
-      sendResume.showSimpleInfo = true
-      return
-    }
-    // * 简历列表
-    sendResume.showSelect = hasLogout.value ? false : true
-    hasLogout.value = false
-  } catch (error) {
-    console.error('error', error)
-  }
-}
-
-const handleClose = (key) => {
-  sendResume[key] = false // 弹窗关闭,重置绑定数据
-  hasLogout.value = false
-}
-
-const showSwitchAccount = ref(false)
-const showSwitchAccountFun = (bool) => {
-  showSwitchAccount.value = bool
-}
-
-onMounted(() => {
-  showSwitchAccountFun(getToken()) // (isMobile.value && getToken())
-})
-
-// 切换账号
-const hasLogout = ref(false)
-const handleSwitchAccount = async () => {
-  hasLogout.value = true
-  sendResume.showLogin = true
-}
-</script>
-
-<style lang="scss" scoped>
-.f-w-600 { font-weight: 600; }
-.radius { border-radius: 8px; }
-.salary {
-  color: var(--v-error-base);
-  line-height: 41px;
-  font-weight: 600;
-  height: auto;
-  display: inline-block;
-  vertical-align: sub;
-}
-.JobName {
-  color: #37576c;
-  font-size: 28px;
-  margin-right: 30px;
-  margin-top: 1px;
-  // max-width: 45%;
-  vertical-align: middle;
-  flex: 1;
-}
-.banner-tags { display: flex; flex-wrap: wrap; }
-.requirement {
-  white-space: pre-wrap;
-  word-break: break-all;
-  line-height: 28px;
-  color: var(--color-333);
-  font-size: 15px;
-  text-align: justify;
-  letter-spacing: 0;
-}
-.contact {
-  height: 60px;
-  line-height: 60px;
-  padding: 0 10px;
-}
-.contact-name {
-  font-size: 20px;
-  font-weight: 500;
-  color: var(--color-222);
-  line-height: 28px;
-}
-.contact-info {
-  font-size: 15px;
-  color: var(--color-666);
-  line-height: 21px;
-  margin-top: 8px;
-}
-.button-item {
-  min-width: 110px;
-  height: 36px
-}
-</style>

+ 0 - 113
src/views/recruit/personal/shareJob/sendResume/select.vue

@@ -1,113 +0,0 @@
-<!-- 选择简历 -->
-<template>
-  <!-- 已上传的简历列表 -->
-  <selectResumeDialog
-    v-model="showResume"
-    :list="resumeList"
-    :selectLocalFile="true"
-    @handleLocalFileClick="selectLocalFileClick"
-    @submit="handleSubmit"
-    @close="handleClose"
-  ></selectResumeDialog>
-  <!-- 选择本地简历 -->
-  <CtDialog
-    :visible="openUploadDialog"
-    :widthType="2"
-    titleClass="text-h6"
-    submitText="立即投递"
-    @close="openUploadDialog = false"
-    title="附件简历上传"
-    @submit="uploadFileSubmit"
-  >
-  <uploadForm ref="uploadFormRef"></uploadForm>
-  <div class="color-warning" style="font-size: 13px;">提示:立即投递会将已上传的简历进行投递</div>
-  </CtDialog>
-</template>
-
-<script setup>
-// 上传附件
-import uploadForm from '../form/upload.vue'
-import { savePersonResumeCv } from '@/api/recruit/personal/resume'
-// 选择简历
-import selectResumeDialog from '@/views/recruit/personal/position/components/jobDetails/selectResumeDialog'
-import { hireJobCvDelivery } from '@/api/recruit/personal/shareJob'
-import { jobCvRelSend } from '@/api/position'
-import { getPersonResumeCv } from '@/api/recruit/personal/resume'
-import { useI18n } from '@/hooks/web/useI18n'; const { t } = useI18n()
-import Snackbar from '@/plugins/snackbar'
-import { ref } from 'vue'
-defineOptions({name: 'shareJob-sendResume-select'})
-const emit = defineEmits(['refresh', 'close'])
-const props = defineProps({
-  jobId: {
-    type: String,
-    default: ''
-  },
-  hire: {
-    type: Boolean,
-    default: false
-  },
-  userId: {
-    type: String,
-    default: ''
-  },
-})
-
-const resumeList = ref([])
-const getResumeList = async () => {
-  resumeList.value = []
-  const data = await getPersonResumeCv()
-  if (!data?.length) {
-    // 没有上传过简历
-    openUploadDialog.value = true
-    return
-  }
-  // 可以选择之前上传的简历
-  resumeList.value = data
-  showResume.value = true
-}
-getResumeList()
-
-const uploadFormRef = ref()
-const openUploadDialog = ref(false)
-// 上传附件-提交
-const uploadFileSubmit = async () => {
-  const obj = await uploadFormRef.value.getQuery()
-  if (!obj?.url || !obj?.title) return Snackbar.warning(t('resume.selectResumeToSubmit'))
-  const query = { title: obj.title, url: obj.url }
-  await savePersonResumeCv(query)
-  handleSubmit(query, '上传的文件提交_直接投递')
-}
-
-const selectLocalFileClick = () => {
-  openUploadDialog.value = true
-}
-
-const showResume = ref(false)
-const selectResume = ref()
-const handleSubmit = async (val, type = '') =>{
-  selectResume.value = val
-  if (!selectResume.value) return Snackbar.warning(t('resume.selectResumeToSubmit'))
-  const obj = type ? val : resumeList.value.find(e => e.id === selectResume.value)
-  if (!obj && !type) 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  })
-  Snackbar.success(t('resume.deliverySuccess'))
-  // setTimeout(() => {
-  // }, 3000)
-  emit('refresh')
-  handleClose()
-}
-
-const handleClose = () => {
-  showResume.value = false
-  openUploadDialog.value = false
-  selectResume.value = null
-  emit('close')
-}
-
-</script>
-<style lang="scss" scoped>
-</style>

+ 0 - 84
src/views/recruit/personal/shareJob/sendResume/simple.vue

@@ -1,84 +0,0 @@
-<!-- 快速填写-简易人才信息 -->
-<template>
-  <CtDialog
-    :visible="openDialog"
-    :widthType="2"
-    :closeText="closeText"
-    titleClass="text-h6"
-    title="补充基本信息"
-    :closeable="props.closeable"
-    @close="handleClose"
-    @submit="simpleInfoSubmit"
-  >
-    <simpleInfoForm ref="formRef"></simpleInfoForm>
-  </CtDialog>
-</template>
-
-<script setup>
-import { getToken } from '@/utils/auth'
-import simpleInfoForm from '../form/simpleInfo.vue'
-import { savePersonSimpleInfo } from '@/api/recruit/personal/shareJob'
-import { useI18n } from '@/hooks/web/useI18n'; const { t } = useI18n()
-import Snackbar from '@/plugins/snackbar'
-import { ref } from 'vue'
-defineOptions({name: 'shareJob-sendResume-simple'})
-
-const emit = defineEmits(['simpleInfoReady', 'close'])
-const props = defineProps({
-  closeable: {
-    type: Boolean,
-    default: true
-  },
-  closeText: {
-    type: String,
-    default: '取消'
-  }
-})
-
-const openDialog = ref(false) // 默认不打开弹窗,先检验simpleInfoReady
-
-const handleClose = () => {
-  emit('close')
-  openDialog.value = props.closeable ? false : true
-}
-
-let verifyCount = 0
-const getUserInfoVerify = () => {
-  // console.log('获取人才信息->')
-  const bInfo = JSON.parse(localStorage.getItem('baseInfo'))
-  if (bInfo && Object.keys(bInfo).length) { // 校验必填人才信息
-    // console.log('获取人才信息成功->')
-    const keyArr = ['name', 'phone', 'jobStatus', 'expType', 'eduType'] // 必填人才信息
-    const simpleInfoReady = keyArr.every(e => bInfo[e] && bInfo[e] !== 0) // 校验必填人才信息
-    if (simpleInfoReady) {
-      emit('simpleInfoReady') // 存在
-    } else {
-      openDialog.value = true // 不存在
-      Snackbar.warning('请先完善个人基本信息')
-    }
-  } else {
-    if (verifyCount > 2) Snackbar.error(t('login.getUserInfoFailed')+','+t('login.loginAgain'))  // 获取人才信息失败 
-    else {
-      verifyCount++
-      setTimeout(() => { getUserInfoVerify() }, 4000) // 获取人才信息
-    }
-  }
-}
-if (getToken()) setTimeout(() => { getUserInfoVerify() }, 2000) // 获取人才信息
-
-const formRef = ref()
-const simpleInfoSubmit = async () => {
-  try {
-    const obj = await formRef.value.getQuery()
-    if (!obj) return
-    await savePersonSimpleInfo(obj)
-    localStorage.setItem('baseInfo', JSON.stringify(obj))
-    openDialog.value = false
-    emit('simpleInfoReady')
-  } catch (error) {
-    console.error('error', error)
-  }
-}
-</script>
-<style lang="scss" scoped>
-</style>