生成定制简历部分默认优化选项全选

This commit is contained in:
2026-07-06 18:58:16 +08:00
parent 6024ea27e9
commit 78bf7fbebc
8 changed files with 655 additions and 409 deletions
+3 -1
View File
@@ -401,9 +401,11 @@ const resumeCustomJobInfo = computed(() => ({
companyLogoUrl: job.companyLogoUrl,
location: job.location,
matchScore: skillGapData.value?.score ?? +(job.matchScore / 10).toFixed(1),
missingSkills: skillGapData.value?.missingSkills || [],
missingSkills: skillGapData.value?.missingSkills || skillGapData.value?.gaps?.map(g => g.keyword) || [],
keywords: skillGapData.value?.job?.skillTags || job.requiredSkills.map(s => s.name),
sourceUrl: job.sourceUrl,
/** 差距分析列表(来自 skill-gap 接口) */
gaps: skillGapData.value?.gaps || [],
/** 默认简历信息(来自 skill-gap 接口) */
defaultResume: skillGapData.value?.resume || null,
}))
+9 -6
View File
@@ -15,7 +15,7 @@
</div>
<!-- 页面标题 + Tab 切换 -->
<JobPageHeader v-model:activeTab="activeTab" :favoriteCount="favoriteTotal" :applyCount="applyTotal" />
<JobPageHeader v-model:activeTab="activeTab" />
<!-- 筛选条件 -->
<div v-if="isRecommendTab" class="jobs-page__filters-bar">
@@ -214,7 +214,7 @@
<template v-if="isAuthenticated">
<div class="jobs-page__match-ring">
<svg viewBox="0 0 80 80" class="jobs-page__ring-svg">
<circle cx="40" cy="40" r="34" stroke-width="5" stroke="#9FD051" fill="none" opacity="0.3"/>
<circle cx="40" cy="40" r="34" stroke-width="5" :stroke="matchRingColor(job.matchScore)" fill="none" opacity="0.3"/>
<circle cx="40" cy="40" r="34" stroke-width="5" fill="none"
:stroke="matchRingColor(job.matchScore)"
stroke-linecap="round"
@@ -1194,20 +1194,23 @@ async function handleRemoveFromList(job: JobItem) {
/** 根据匹配分数返回对应的 CSS 类名 */
function matchClass(score: number) {
return score >= 80 ? 'jobs-page__job-match--high' : 'jobs-page__job-match--low'
if (score >= 80) return 'jobs-page__job-match--high'
if (score >= 40) return 'jobs-page__job-match--medium'
return 'jobs-page__job-match--low'
}
/** 根据匹配分数返回环形颜色 */
function matchRingColor(score: number) {
if (score >= 80) return '#9FD051'
return '#9FD051'
if (score >= 40) return '#F59E0B'
return '#FE6D52'
}
/** 根据匹配分数返回匹配等级文案 */
function matchLevelText(score: number) {
if (score >= 80) return '高匹配度'
if (score >= 60) return '一般匹配'
return '匹配度偏低'
if (score >= 40) return '匹配'
return '匹配度'
}
/** 跳转到岗位详情页 — 未登录弹登录框,登录后再跳转 */