Compare commits

8 Commits

Author SHA1 Message Date
d78382ba08 Merge remote-tracking branch 'origin/main' into CareerMap 2025-12-08 20:24:39 +08:00
a74cdcc850 Fix career map missing info redirect flow 2025-12-08 20:22:40 +08:00
d89b566ad3 修改政策 2025-12-08 16:11:01 +08:00
3c66e16e49 Merge branch 'main' of http://124.243.245.42:3000/sdz/ks-app-employment-service 2025-12-08 16:02:20 +08:00
ccbb5008bd 修改跳转 2025-12-08 16:01:34 +08:00
bc48d7fff0 fix:修改跳转逻辑 2025-12-05 17:59:37 +08:00
francis_fh
6baacfcf20 Merge branch 'main' of http://124.243.245.42:3000/sdz/ks-app-employment-service 2025-12-05 17:11:56 +08:00
francis_fh
c4f7d6d998 服务指导页面优化 2025-12-05 17:06:22 +08:00
6 changed files with 75 additions and 22 deletions

View File

@@ -81,10 +81,16 @@ const fromValue = reactive({
area: '',
jobTitleId: [],
});
onLoad(async () => {
const needSkill = ref(false);
onLoad(async (options) => {
// 初始化字典数据
await getDictData();
initLoad();
// 检查是否需要继续跳转到技能页面
if (options && options.needSkill === 'true') {
needSkill.value = true;
}
});
const confirm = () => {
if (!fromValue.jobTitleId) {
@@ -94,7 +100,12 @@ const confirm = () => {
$api.msg('完成');
state.disbleDate = true;
getUserResume().then(() => {
navBack();
// 如果需要继续跳转到技能页面,则跳转到个人信息页面(携带 needSkill 标记,便于返回两级)
if (needSkill.value) {
navTo('/packageA/pages/personalInfo/personalInfo?needSkill=true');
} else {
navBack();
}
});
});
};

View File

@@ -150,6 +150,8 @@ const openSelectPopup = (config) => {
};
const percent = ref('0%');
// 当从“先职位后技能”链路进入时,提交后需直接返回职业规划页
const needGoBackTwoStep = ref(false);
const state = reactive({
educationText: '',
politicalAffiliationText: '',
@@ -168,7 +170,10 @@ const fromValue = reactive({
// 移除重复的onLoad定义已在上方实现
// 在onLoad中初始化数据确保页面加载时就能获取技能信息
onLoad(() => {
onLoad((options = {}) => {
if (options.needSkill === 'true') {
needGoBackTwoStep.value = true;
}
// 初始化页面数据
initLoad();
});
@@ -369,7 +374,12 @@ const confirm = () => {
$api.createRequest('/app/user/resume', params, 'post').then((resData) => {
$api.msg('完成');
getUserResume().then(() => {
navBack();
// 如果从“缺职位+技能”链路进入,回退两层直接返回职业规划页
if (needGoBackTwoStep.value) {
navBack({ delta: 2 });
} else {
navBack();
}
});
});
};

View File

@@ -1,7 +1,7 @@
<!--
* @Date: 2025-10-16 15:15:47
* @LastEditors: lip
* @LastEditTime: 2025-11-19 18:22:34
* @LastEditors: shirlwang
* @LastEditTime: 2025-12-08 16:10:47
-->
<template>
<!-- @scroll="handleScroll" @scrolltolower="scrollBottom" -->
@@ -66,7 +66,7 @@
<view class="title-item active"><view>政策专区</view></view>
<view @click="toPolicyList">{{'查看更多 >'}}</view>
</view>
<view v-for="(item, index) in policyList" :key="index" class="job-list" @click="toPolicyDetail">
<view v-for="(item, index) in policyList" :key="index" class="job-list" @click="toPolicyDetail(item)">
<view class="sign">推荐</view>
<view class="title">
<image src="../../../packageRc/static/zcLeft.png"/>
@@ -100,7 +100,7 @@ function getPolicy() {
function toPolicyList() {
navTo(`/packageRc/pages/policy/policyList`)
}
function toPolicyDetail() {
function toPolicyDetail(item) {
navTo(`/packageRc/pages/policy/policyDetail?id=${item.id}`)
}
let activeTab = ref(1)

View File

@@ -95,12 +95,7 @@
</view>
<view class="service-title">服务指导</view>
</view>
// <view class="service-item press-button" @click="handleServiceClick('public-recruitment')">
// <view class="service-icon service-icon-2">
// <IconfontIcon name="zhengfulou" :size="48" color="#FFFFFF" />
// </view>
// <view class="service-title">事业单位招录</view>
// </view>
<view class="service-item press-button" @click="handleServiceClick('resume-creation')">
<view class="service-icon service-icon-3">
<IconfontIcon name="jianli" :size="48" color="#FFFFFF" />
@@ -111,7 +106,7 @@
<view class="service-icon service-icon-4">
<IconfontIcon name="zhengce" :size="48" color="#FFFFFF" />
</view>
<view class="service-title">劳动政策指引</view>
<view class="service-title">政策指引</view>
</view>
<view class="service-item press-button" @click="handleServiceClick('skill-training')">
<view class="service-icon service-icon-5">
@@ -861,7 +856,7 @@ function navToService(serviceType) {
'service-guidance': '/pages/service/guidance',
'public-recruitment': '/pages/service/public-recruitment',
'resume-creation': '/pages/resume-guide/resume-guide',
'labor-policy': '/pages/service/labor-policy',
'labor-policy': '/packageRc/pages/policy/policyList',
'skill-training': '/packageB/train/video/videoList',
'skill-evaluation': '/packageB/train/index',
// 'skill-evaluation': '/pages/service/skill-evaluation',
@@ -1070,7 +1065,6 @@ import storeRc from '@/utilsRc/store/index.js';
function goRc(){
if (checkLogin()) {
let userInfo = uni.getStorageSync('userInfo')
console.log(uni.getStorageSync('userInfo'), "uni.getStorageSync('userInfo')");
storeRc.dispatch('LoginByUserInfo', userInfo).then(res => {
// console.log(res, "'res");
navTo('/packageRc/pages/index/index');

View File

@@ -64,7 +64,7 @@
<script setup>
import { ref, inject, nextTick, onMounted } from 'vue';
import { onLoad } from '@dcloudio/uni-app';
import { onLoad, onShow } from '@dcloudio/uni-app';
import { appUserInfo } from '@/apiRc/user/user.js';
import RemindPopup from './components/RemindPopup.vue';
import PageHeader from './components/PageHeader.vue';
@@ -143,6 +143,11 @@ function openRemindPopup() {
// 检查用户是否完善了个人信息(调用接口获取)
let hasCheckedRemindInfo = false;
// 保存缺失信息的标识
const missingInfo = ref({
hasJobInfo: false,
hasSkills: false
});
async function getRemindInfo() {
if (hasCheckedRemindInfo) {
@@ -186,6 +191,10 @@ async function getRemindInfo() {
return skillName && skillName.trim() !== '';
});
// 保存缺失信息标识(只保存职位信息和技能标签,身份证信息跳转到个人信息页面)
missingInfo.value.hasJobInfo = hasJobInfo;
missingInfo.value.hasSkills = hasSkills;
// 判断信息是否完整idCard、职位信息、技能标签都必须有
const isComplete = hasIdCard && hasJobInfo && hasSkills;
@@ -250,6 +259,10 @@ async function getRemindInfo() {
return skillName && skillName.trim() !== '';
});
// 保存缺失信息标识
missingInfo.value.hasJobInfo = hasJobInfo;
missingInfo.value.hasSkills = hasSkills;
// 判断信息是否完整idCard、职位信息、技能标签都必须有
const isComplete = hasIdCard && hasJobInfo && hasSkills;
@@ -299,8 +312,25 @@ function handleCancel() {
async function handleConfirm() {
remindPopup.value?.close();
// 跳转到完善信息页面
navTo('/pages/complete-info/complete-info');
const { hasJobInfo, hasSkills } = missingInfo.value;
// 如果同时缺少职位信息和技能标签:先跳转到职位信息页面,并传递参数表示完成后需要继续跳转到技能页面
if (!hasJobInfo && !hasSkills) {
// 跳转到职位信息页面,传递参数表示完成后需要继续跳转到技能页面
navTo('/packageA/pages/jobExpect/jobExpect?needSkill=true');
}
// 如果只缺少技能标签:直接跳转到技能页面(个人信息页面的技能部分)
else if (!hasSkills) {
navTo('/packageA/pages/personalInfo/personalInfo');
}
// 如果只缺少职位信息:直接跳转到职位信息页面
else if (!hasJobInfo) {
navTo('/packageA/pages/jobExpect/jobExpect');
}
// 如果只缺少身份证信息:跳转到个人信息页面
else {
navTo('/packageA/pages/personalInfo/personalInfo');
}
}
// 切换tab
@@ -483,6 +513,14 @@ onLoad(() => {
getRemindInfo();
});
onShow(() => {
// 返回本页后,如果之前因为信息缺失未展示内容,则重新检查
if (!showContent.value) {
hasCheckedRemindInfo = false;
getRemindInfo();
}
});
onMounted(() => {
if (remindList.value.length > 0 && !showContent.value) {
setTimeout(() => {

View File

@@ -157,7 +157,7 @@
<text>在职位详情页面点击右上角的收藏按钮即可将职位添加到收藏夹</text>
</view>
</view>
<view class="faq-item">
<!-- <view class="faq-item">
<view class="faq-question">
<uni-icons type="right" size="18" color="#256BFA"></uni-icons>
<text>如何联系客服</text>
@@ -165,7 +165,7 @@
<view class="faq-answer">
<text>如果您在使用过程中遇到问题可以在"我的"页面找到"联系客服"入口或拨打客服热线</text>
</view>
</view>
</view> -->
</view>
</view>