|
@@ -62,21 +62,48 @@
|
|
</div>
|
|
</div>
|
|
<div class="text-center my-10">
|
|
<div class="text-center my-10">
|
|
<v-btn class="mr-2 radius button-item" color="success" variant="outlined" target="_blank" to="/recruit/personal/position">{{ $t('position.moreBtn') }}</v-btn>
|
|
<v-btn 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="handleDelivery">{{ delivery ? $t('position.delivered') : $t('position.submitResume') }}</v-btn>
|
|
|
|
|
|
+ <v-btn class="radius button-item" color="primary" :disabled="delivery" @click="sendResumeProcessVerify">{{ delivery ? $t('position.delivered') : $t('position.submitResume') }}</v-btn>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</v-card>
|
|
</v-card>
|
|
|
|
+
|
|
|
|
+ <!-- 快速登录/注册 -->
|
|
|
|
+ <login-page
|
|
|
|
+ v-if="sendResume.showLogin"
|
|
|
|
+ :jobId="jobId"
|
|
|
|
+ @loginSuccess="loginSuccess"
|
|
|
|
+ @close="handleClose('showLogin')"
|
|
|
|
+ ></login-page>
|
|
|
|
+
|
|
|
|
+ <!-- 快速填写简易人才信息 -->
|
|
|
|
+ <simple-page
|
|
|
|
+ v-if="sendResume.showSimpleInfo"
|
|
|
|
+ @simpleInfoReady="simpleInfoReadyFun"
|
|
|
|
+ @close="handleClose('showSimpleInfo')"
|
|
|
|
+ ></simple-page>
|
|
|
|
+
|
|
|
|
+ <!-- 选择简历 -->
|
|
|
|
+ <select-page
|
|
|
|
+ v-if="sendResume.showSelect"
|
|
|
|
+ :hire="info?.hire"
|
|
|
|
+ :jobId="jobId"
|
|
|
|
+ :userId="sharedById"
|
|
|
|
+ @refresh="handleCheckJobDelivery"
|
|
|
|
+ @close="handleClose('showSelect')"
|
|
|
|
+ ref="selectRef"
|
|
|
|
+ ></select-page>
|
|
|
|
+
|
|
<!-- 简历投递 -->
|
|
<!-- 简历投递 -->
|
|
- <handleDeliveryCom
|
|
|
|
|
|
+ <!-- <handleDeliveryCom
|
|
v-if="showHandleDelivery"
|
|
v-if="showHandleDelivery"
|
|
:jobId="jobId"
|
|
:jobId="jobId"
|
|
:hire="info?.hire"
|
|
:hire="info?.hire"
|
|
:userId="sharedById"
|
|
:userId="sharedById"
|
|
:baseInfo="baseInfo"
|
|
:baseInfo="baseInfo"
|
|
@refresh="handleCheckJobDelivery"
|
|
@refresh="handleCheckJobDelivery"
|
|
- ></handleDeliveryCom>
|
|
|
|
|
|
+ ></handleDeliveryCom> -->
|
|
<!-- 快速登录 -->
|
|
<!-- 快速登录 -->
|
|
- <CtDialog
|
|
|
|
|
|
+ <!-- <CtDialog
|
|
:visible="showQuickResumeDialog"
|
|
:visible="showQuickResumeDialog"
|
|
:widthType="2"
|
|
:widthType="2"
|
|
:footer="false"
|
|
:footer="false"
|
|
@@ -85,17 +112,20 @@
|
|
@close="showQuickResumeDialog = false"
|
|
@close="showQuickResumeDialog = false"
|
|
>
|
|
>
|
|
<quickLogin :jobId="jobId" @loginSuccess="loginSuccess"></quickLogin>
|
|
<quickLogin :jobId="jobId" @loginSuccess="loginSuccess"></quickLogin>
|
|
- </CtDialog>
|
|
|
|
|
|
+ </CtDialog> -->
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
defineOptions({name: 'recruit-personal-shareJob-index'})
|
|
defineOptions({name: 'recruit-personal-shareJob-index'})
|
|
-import { onMounted, ref } from 'vue';
|
|
|
|
|
|
+import loginPage from './components/login.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 { getPositionDetails, jobCvRelCheckSend, getPersonJobUnfavorite, getPersonJobFavorite, getJobFavoriteCheck } from '@/api/position'
|
|
import { dealDictObjData } from '@/utils/position'
|
|
import { dealDictObjData } from '@/utils/position'
|
|
-import handleDeliveryCom from './components/handleDeliveryCom.vue'
|
|
|
|
-import quickLogin from './components/quickLogin.vue'
|
|
|
|
|
|
+// import handleDeliveryCom from './components/handleDeliveryCom.vue'
|
|
|
|
+// import quickLogin from './components/quickLogin.vue'
|
|
import { getPersonalToken } from '@/utils/auth'
|
|
import { getPersonalToken } from '@/utils/auth'
|
|
import Snackbar from '@/plugins/snackbar'
|
|
import Snackbar from '@/plugins/snackbar'
|
|
import { useI18n } from '@/hooks/web/useI18n'; const { t } = useI18n()
|
|
import { useI18n } from '@/hooks/web/useI18n'; const { t } = useI18n()
|
|
@@ -136,17 +166,18 @@ const getCollectionStatus = async () => {
|
|
isCollection.value = data
|
|
isCollection.value = data
|
|
}
|
|
}
|
|
|
|
|
|
-const handleLogin = () => {
|
|
|
|
- showQuickResumeDialog.value = true
|
|
|
|
- showHandleDelivery.value = !showQuickResumeDialog.value
|
|
|
|
-}
|
|
|
|
|
|
+// const handleLogin = () => {
|
|
|
|
+// showQuickResumeDialog.value = true
|
|
|
|
+// showHandleDelivery.value = !showQuickResumeDialog.value
|
|
|
|
+// }
|
|
|
|
|
|
// 收藏&取消收藏职位
|
|
// 收藏&取消收藏职位
|
|
const handleCollection = async () => {
|
|
const handleCollection = async () => {
|
|
// 效验登录状态
|
|
// 效验登录状态
|
|
if (!getPersonalToken()) {
|
|
if (!getPersonalToken()) {
|
|
actions.value = true
|
|
actions.value = true
|
|
- handleLogin()
|
|
|
|
|
|
+ // handleLogin()
|
|
|
|
+ sendResume.showLogin = true
|
|
return
|
|
return
|
|
}
|
|
}
|
|
if (!jobId) return
|
|
if (!jobId) return
|
|
@@ -175,20 +206,10 @@ const desc = [
|
|
{ mdi: 'mdi-clock-time-ten-outline', value: 'expName' }
|
|
{ mdi: 'mdi-clock-time-ten-outline', value: 'expName' }
|
|
]
|
|
]
|
|
|
|
|
|
-// handleClick 投递简历
|
|
|
|
-const showQuickResumeDialog = ref(false)
|
|
|
|
-const showHandleDelivery = ref(false)
|
|
|
|
-const handleDelivery = () => {
|
|
|
|
- if (getPersonalToken()) {
|
|
|
|
- showHandleDelivery.value = true
|
|
|
|
- showQuickResumeDialog.value = !showHandleDelivery.value
|
|
|
|
- } else handleLogin()
|
|
|
|
-}
|
|
|
|
|
|
|
|
// 快速登录成功
|
|
// 快速登录成功
|
|
-const baseInfo = ref({ baseInfoReady: false, baseInfo: {}, keyArr: [] })
|
|
|
|
-const loginSuccess = async (info) => {
|
|
|
|
- showQuickResumeDialog.value = false // 关闭快速登录弹窗
|
|
|
|
|
|
+const loginSuccess = async () => {
|
|
|
|
+ sendResume.showLogin = false // 关闭快速登录弹窗
|
|
// actions为true则是收藏时的登录,不需要弹窗选择简历
|
|
// actions为true则是收藏时的登录,不需要弹窗选择简历
|
|
if (actions.value) {
|
|
if (actions.value) {
|
|
actions.value = false
|
|
actions.value = false
|
|
@@ -198,8 +219,46 @@ const loginSuccess = async (info) => {
|
|
}
|
|
}
|
|
const bool = await handleCheckJobDelivery()
|
|
const bool = await handleCheckJobDelivery()
|
|
if (bool) return Snackbar.warning(t('resume.alreadyResume'))
|
|
if (bool) return Snackbar.warning(t('resume.alreadyResume'))
|
|
- baseInfo.value = info
|
|
|
|
- showHandleDelivery.value = true // 校验流程
|
|
|
|
|
|
+ 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 (!getPersonalToken()) {
|
|
|
|
+ sendResume.showLogin = true
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 已登录
|
|
|
|
+ // * 必填人才信息不完全 -> 不符合快速投递,进入完善人才信息流程
|
|
|
|
+ if (!simpleInfoReady.value) {
|
|
|
|
+ sendResume.showSimpleInfo = true
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // * 简历列表
|
|
|
|
+ // if (!) sendResume.showSelect = true
|
|
|
|
+ sendResume.showSelect = true
|
|
|
|
+ } catch (error) {
|
|
|
|
+ console.error('error', error)
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const handleClose = (key) => {
|
|
|
|
+ sendResume[key] = false // 弹窗关闭,重置绑定数据
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
|
|
|