|
@@ -0,0 +1,89 @@
|
|
|
+<!-- 快速填写-简易人才信息 -->
|
|
|
+<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 './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
|
|
|
+}
|
|
|
+const showSimpleFun = () => {
|
|
|
+ if (!getToken()) return
|
|
|
+ openDialog.value = true // 不存在
|
|
|
+ Snackbar.warning('请先完善个人基本信息')
|
|
|
+}
|
|
|
+
|
|
|
+let verifyCount = 0
|
|
|
+const getUserInfoVerify = () => {
|
|
|
+ // console.log('获取人才信息->')
|
|
|
+ const bInfo = JSON.parse(localStorage.getItem('baseInfo'))
|
|
|
+ let simpleInfoReady = bInfo && Object.keys(bInfo).length
|
|
|
+ if (simpleInfoReady) { // 校验必填人才信息
|
|
|
+ // console.log('获取人才信息成功->')
|
|
|
+ const keyArr = ['name', 'phone', 'jobStatus', 'expType', 'eduType'] // 必填人才信息
|
|
|
+ simpleInfoReady = keyArr.every(e => bInfo[e] && bInfo[e] !== 0) // 校验必填人才信息
|
|
|
+ if (simpleInfoReady) {
|
|
|
+ emit('simpleInfoReady') // 存在
|
|
|
+ } else {
|
|
|
+ showSimpleFun()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (verifyCount > 4) showSimpleFun()
|
|
|
+ else {
|
|
|
+ verifyCount++
|
|
|
+ setTimeout(() => { getUserInfoVerify() }, 2000) // 获取人才信息
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+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>
|