sass警告
This commit is contained in:
@@ -566,6 +566,13 @@ function goSearchJobs() {
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
// 检测 URL 中的邀请码参数 invite_code,存入全局状态
|
||||
const urlParams = new URLSearchParams(window.location.search)
|
||||
const inviteCode = urlParams.get('invite_code')
|
||||
if (inviteCode && inviteCode.length === 10) {
|
||||
store.commit('SET_INVITE_CODE', inviteCode)
|
||||
}
|
||||
|
||||
// 加载公共工具数据(行业分类、岗位分类、地区分类等)
|
||||
store.dispatch('loadCommonData')
|
||||
})
|
||||
|
||||
+26
-1
@@ -276,6 +276,11 @@
|
||||
|
||||
<!-- 岗位专属简历定制弹窗 -->
|
||||
<JobResumeCustomDialog v-model="showResumeCustomDialog" :job-info="resumeCustomJobInfo" :job-id="jobId" @skip="handleSkipToApply" />
|
||||
|
||||
<!-- 会员权限拦截弹窗 -->
|
||||
<MemberAccessDialog v-model="showMemberAccessDialog" @open-member="showMemberDialog = true" />
|
||||
<!-- 会员购买弹窗 -->
|
||||
<MemberDialog v-model="showMemberDialog" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -289,7 +294,10 @@ import JobPageHeader from '@/components/JobPageHeader.vue'
|
||||
import JobDislikeDialog from '@/components/JobDislikeDialog.vue'
|
||||
import JobFeedbackDialog from '@/components/JobFeedbackDialog.vue'
|
||||
import JobResumeCustomDialog from '@/components/JobResumeCustomDialog.vue'
|
||||
import MemberAccessDialog from '@/components/MemberAccessDialog.vue'
|
||||
import MemberDialog from '@/components/MemberDialog.vue'
|
||||
import { fetchJobDetail, toggleJobFavorite, removeJobFavorite, fetchSkillGap } from '@/api/jobs'
|
||||
import { fetchMemberStatus } from '@/api/member'
|
||||
import type { JobDetailData, SkillGapData } from '@/api/jobs'
|
||||
|
||||
// ==================== 路由相关 ====================
|
||||
@@ -554,6 +562,11 @@ function handleReport() {
|
||||
/** 简历定制弹窗显隐 */
|
||||
const showResumeCustomDialog = ref(false)
|
||||
|
||||
/** 会员权限拦截弹窗 */
|
||||
const showMemberAccessDialog = ref(false)
|
||||
/** 会员购买弹窗 */
|
||||
const showMemberDialog = ref(false)
|
||||
|
||||
/** 技能差距分析数据 */
|
||||
const skillGapData = ref<SkillGapData | null>(null)
|
||||
|
||||
@@ -571,8 +584,20 @@ const resumeCustomJobInfo = computed(() => ({
|
||||
defaultResume: skillGapData.value?.resume || null,
|
||||
}))
|
||||
|
||||
/** 生成岗位专属简历 — 调用 skill-gap 接口后打开定制弹窗 */
|
||||
/** 生成岗位专属简历 — 先检查会员状态,非会员弹权限拦截弹窗 */
|
||||
async function handleGenerateResume() {
|
||||
// 先检查会员状态
|
||||
try {
|
||||
const statusRes = await fetchMemberStatus()
|
||||
if (statusRes.code === '0' && statusRes.data && !statusRes.data.isMember) {
|
||||
// 非会员 — 弹出会员权限拦截弹窗
|
||||
showMemberAccessDialog.value = true
|
||||
return
|
||||
}
|
||||
} catch {
|
||||
// 接口异常时不阻断,继续执行
|
||||
}
|
||||
|
||||
const loadingInstance = ElLoading.service({
|
||||
text: '正在分析岗位匹配度...',
|
||||
background: 'rgba(0, 0, 0, 0.5)',
|
||||
|
||||
@@ -412,6 +412,11 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 会员权限拦截弹窗 -->
|
||||
<MemberAccessDialog v-model="showMemberAccessDialog" @open-member="showMemberDialog = true" />
|
||||
<!-- 会员购买弹窗 -->
|
||||
<MemberDialog v-model="showMemberDialog" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -424,6 +429,9 @@ import ResumeAnalysisReportDrawer from '@/components/ResumeAnalysisReportDrawer.
|
||||
import ResumeIssueFixDrawer from '@/components/ResumeIssueFixDrawer.vue'
|
||||
import ResumeExportDialog from '@/components/ResumeExportDialog.vue'
|
||||
import ResumeEditNameDialog from '@/components/ResumeEditNameDialog.vue'
|
||||
import MemberAccessDialog from '@/components/MemberAccessDialog.vue'
|
||||
import MemberDialog from '@/components/MemberDialog.vue'
|
||||
import { fetchMemberStatus } from '@/api/member'
|
||||
import {
|
||||
fetchResumeMain,
|
||||
fetchResumeEducation,
|
||||
@@ -463,6 +471,11 @@ import {
|
||||
|
||||
// ==================== 诊断数据相关 ====================
|
||||
|
||||
/** 会员权限拦截弹窗 */
|
||||
const showMemberAccessDialog = ref(false)
|
||||
/** 会员购买弹窗 */
|
||||
const showMemberDialog = ref(false)
|
||||
|
||||
/** 问题类型枚举值 */
|
||||
type IssueType = 'urgent' | 'optimize' | 'expression'
|
||||
|
||||
@@ -748,8 +761,20 @@ function handleClose_report() {
|
||||
showReportDrawer.value = false
|
||||
}
|
||||
|
||||
/** 重新诊断 / 开始诊断 — 调用 AI 诊断接口,完成后刷新诊断数据 */
|
||||
/** 重新诊断 / 开始诊断 — 先检查会员状态,非会员弹权限拦截弹窗 */
|
||||
async function handleDiagnose() {
|
||||
// 先检查会员状态
|
||||
try {
|
||||
const statusRes = await fetchMemberStatus()
|
||||
if (statusRes.code === '0' && statusRes.data && !statusRes.data.isMember) {
|
||||
// 非会员 — 弹出会员权限拦截弹窗
|
||||
showMemberAccessDialog.value = true
|
||||
return
|
||||
}
|
||||
} catch {
|
||||
// 接口异常时不阻断(可能是网络问题),继续执行诊断
|
||||
}
|
||||
|
||||
// 全屏加载提示,AI 接口响应较慢
|
||||
const loading = ElLoading.service({
|
||||
lock: true,
|
||||
|
||||
Reference in New Issue
Block a user