个人资料,简历
This commit is contained in:
+49
-5
@@ -171,6 +171,18 @@
|
||||
<MemberDialog v-model="showMemberDialog" />
|
||||
<!-- 全屏加载遮罩 -->
|
||||
<FullscreenLoading :visible="fullLoading" :text="fullLoadingText" title="Nova 正在帮您努力处理~" />
|
||||
|
||||
<!-- 岗位简历生成步骤进度遮罩 -->
|
||||
<StepProgressOverlay
|
||||
v-if="showStepProgress"
|
||||
:title="stepProgressTitle"
|
||||
:subtitle="stepProgressSubtitle"
|
||||
:steps="stepProgressSteps"
|
||||
:durations="stepProgressDurations"
|
||||
:done="stepProgressDone"
|
||||
@finished="handleStepProgressFinished"
|
||||
@close="handleStepProgressClose"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -186,6 +198,7 @@ import JobResumeCustomDialog from '@/components/JobResumeCustomDialog.vue'
|
||||
import MemberAccessDialog from '@/components/MemberAccessDialog.vue'
|
||||
import FullscreenLoading from '@/components/FullscreenLoading.vue'
|
||||
import MemberDialog from '@/components/MemberDialog.vue'
|
||||
import StepProgressOverlay from '@/components/StepProgressOverlay.vue'
|
||||
import { fetchJobDetail, toggleJobFavorite, removeJobFavorite, fetchSkillGap } from '@/api/jobs'
|
||||
import { fetchMemberStatus } from '@/api/member'
|
||||
import type { JobDetailData, SkillGapData } from '@/api/jobs'
|
||||
@@ -475,23 +488,54 @@ async function handleGenerateResume() {
|
||||
// 接口异常时不阻断,继续执行
|
||||
}
|
||||
|
||||
fullLoadingText.value = '正在分析岗位匹配度...'
|
||||
fullLoading.value = true
|
||||
// 显示步骤进度遮罩
|
||||
showStepProgress.value = true
|
||||
stepProgressDone.value = false
|
||||
|
||||
try {
|
||||
const res = await fetchSkillGap(jobId)
|
||||
if (res.code === 0 && res.data) {
|
||||
skillGapData.value = res.data
|
||||
// 通知组件接口已完成
|
||||
stepProgressDone.value = true
|
||||
} else {
|
||||
// 接口返回异常,关闭遮罩提示错误
|
||||
showStepProgress.value = false
|
||||
ElMessage.error('分析失败,请稍后重试')
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('技能差距分析失败', e)
|
||||
showStepProgress.value = false
|
||||
ElMessage.error('分析失败,请稍后重试')
|
||||
return
|
||||
} finally {
|
||||
fullLoading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== 步骤进度遮罩相关 ====================
|
||||
|
||||
/** 步骤进度遮罩是否显示 */
|
||||
const showStepProgress = ref(false)
|
||||
/** 接口是否已完成 */
|
||||
const stepProgressDone = ref(false)
|
||||
/** 步骤进度大标题 */
|
||||
const stepProgressTitle = '分析简历中,请耐心等待'
|
||||
/** 步骤进度副标题 */
|
||||
const stepProgressSubtitle = '正在根据岗位所需技能、简历详情发现问题'
|
||||
/** 步骤名称 */
|
||||
const stepProgressSteps = ['岗位技能解析...', '岗位职责解析...', '简历经历技能匹配...', '优化建议最终生成...']
|
||||
/** 每步模拟时长(毫秒) */
|
||||
const stepProgressDurations = [2000, 2000, 2000, 2000]
|
||||
|
||||
/** 步骤进度走完后打开简历定制弹窗 */
|
||||
function handleStepProgressFinished() {
|
||||
showStepProgress.value = false
|
||||
showResumeCustomDialog.value = true
|
||||
}
|
||||
|
||||
/** 关闭步骤进度遮罩 */
|
||||
function handleStepProgressClose() {
|
||||
showStepProgress.value = false
|
||||
}
|
||||
|
||||
/** 不优化直接投递 */
|
||||
function handleSkipToApply() {
|
||||
if (job.sourceUrl) {
|
||||
|
||||
Reference in New Issue
Block a user