This commit is contained in:
francis_fh
2025-12-08 21:20:34 +08:00
10 changed files with 245 additions and 47 deletions

View File

@@ -81,10 +81,16 @@ const fromValue = reactive({
area: '', area: '',
jobTitleId: [], jobTitleId: [],
}); });
onLoad(async () => { const needSkill = ref(false);
onLoad(async (options) => {
// 初始化字典数据 // 初始化字典数据
await getDictData(); await getDictData();
initLoad(); initLoad();
// 检查是否需要继续跳转到技能页面
if (options && options.needSkill === 'true') {
needSkill.value = true;
}
}); });
const confirm = () => { const confirm = () => {
if (!fromValue.jobTitleId) { if (!fromValue.jobTitleId) {
@@ -94,7 +100,12 @@ const confirm = () => {
$api.msg('完成'); $api.msg('完成');
state.disbleDate = true; state.disbleDate = true;
getUserResume().then(() => { 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 percent = ref('0%');
// 当从“先职位后技能”链路进入时,提交后需直接返回职业规划页
const needGoBackTwoStep = ref(false);
const state = reactive({ const state = reactive({
educationText: '', educationText: '',
politicalAffiliationText: '', politicalAffiliationText: '',
@@ -168,7 +170,10 @@ const fromValue = reactive({
// 移除重复的onLoad定义已在上方实现 // 移除重复的onLoad定义已在上方实现
// 在onLoad中初始化数据确保页面加载时就能获取技能信息 // 在onLoad中初始化数据确保页面加载时就能获取技能信息
onLoad(() => { onLoad((options = {}) => {
if (options.needSkill === 'true') {
needGoBackTwoStep.value = true;
}
// 初始化页面数据 // 初始化页面数据
initLoad(); initLoad();
}); });
@@ -369,7 +374,12 @@ const confirm = () => {
$api.createRequest('/app/user/resume', params, 'post').then((resData) => { $api.createRequest('/app/user/resume', params, 'post').then((resData) => {
$api.msg('完成'); $api.msg('完成');
getUserResume().then(() => { getUserResume().then(() => {
navBack(); // 如果从“缺职位+技能”链路进入,回退两层直接返回职业规划页
if (needGoBackTwoStep.value) {
navBack({ delta: 2 });
} else {
navBack();
}
}); });
}); });
}; };

View File

@@ -58,8 +58,57 @@ const { $api, navTo, vacanciesTo, formatTotal, config } = inject('globalFunction
import useUserStore from '@/stores/useUserStore'; import useUserStore from '@/stores/useUserStore';
import useDictStore from '@/stores/useDictStore'; import useDictStore from '@/stores/useDictStore';
function jumps(url){ onLoad(() => {
navTo(url); thirdLogin()
});
async function jumps(url){
if(await thirdLogin()){
navTo(url);
}
}
async function thirdLogin(){
let form={}
if (uni.getStorageSync('userInfo').isCompanyUser=='1') {
form={
usertype: '1',
idno: uni.getStorageSync('userInfo').idCard,
name: uni.getStorageSync('userInfo').name,
enterprisecode:"",
enterprisename: "",
contactperson: "",
contactphone: "",
}
}else if (uni.getStorageSync('userInfo').isCompanyUser=='0') {
form={
usertype: "2",
enterprisecode: uni.getStorageSync('userInfo').idCard,
enterprisename: uni.getStorageSync('userInfo').name,
contactperson: "",
contactphone: "",
idno: "",
name: ""
}
}else{
uni.showToast({
icon: 'none',
title: '请先登录'
})
return false;
}
var resLogin = await $api.myRequest('/auth/login2/ks',form,'post',10100);
if (resLogin.code=='200') {
uni.setStorageSync('Padmin-Token', resLogin.data.access_token)
return true;
}else{
uni.showToast({
icon: 'none',
title: '单点异常'
})
return false;
}
} }
</script> </script>

View File

@@ -202,12 +202,10 @@ function getData() {
function getHeart() { function getHeart() {
const raw = uni.getStorageSync("Padmin-Token"); const raw = uni.getStorageSync("Padmin-Token");
const token = typeof raw === "string" ? raw.trim() : ""; const token = typeof raw === "string" ? raw.trim() : "";
const headers = token ? { Authorization: raw.startsWith("Bearer ") ? raw : `Bearer ${token}` }: {} const headers = token ? { Authorization: raw.startsWith("Bearer ") ? raw : `Bearer ${token}` }: {};
$api.myRequest("/dashboard/auth/heart", {}, "POST", 10100, headers).then((resData) => { $api.myRequest("/dashboard/auth/heart", {}, "POST", 10100, headers).then((resData) => {
if (resData.code == 200) { if (resData.code == 200) {
getUserInfo(); getUserInfo();
} else {
navTo('/packageB/login')
} }
}); });
} }
@@ -218,6 +216,7 @@ function getUserInfo(){
$api.myRequest('/system/user/login/user/info', {},'get',10100,header).then((resData) => { $api.myRequest('/system/user/login/user/info', {},'get',10100,header).then((resData) => {
userId.value=resData.info.userId userId.value=resData.info.userId
getData() getData()
updateVideoInfo()
}); });
} }
function getDictionary(){ function getDictionary(){
@@ -277,15 +276,20 @@ function updateVideoInfo(){
'Authorization':uni.getStorageSync('Padmin-Token'), 'Authorization':uni.getStorageSync('Padmin-Token'),
'Content-Type': "application/x-www-form-urlencoded" 'Content-Type': "application/x-www-form-urlencoded"
} }
if(videoInfo.value.isCollect===null && videoInfo.value.process ===null){
$api.myRequest('/train/public/videoUser/add', paramsData,'post',9100,header).then((resData) => { $api.myRequest("/dashboard/auth/heart", {}, "POST", 10100, header).then((resData) => {
console.log("视频播放时长更新成功") if (resData.code == 200) {
}); if(videoInfo.value.isCollect===null && videoInfo.value.process ===null){
}else{ $api.myRequest('/train/public/videoUser/add', paramsData,'post',9100,header).then((resData) => {
$api.myRequest('/train/public/videoUser/update', paramsData,'post',9100,header).then((resData) => { console.log("视频播放时长更新成功")
console.log("视频播放时长更新成功") });
}); }else{
} $api.myRequest('/train/public/videoUser/update', paramsData,'post',9100,header).then((resData) => {
console.log("视频播放时长更新成功")
});
}
}
})
} }
// 计算并上报停留时长 // 计算并上报停留时长
function reportPageDuration() { function reportPageDuration() {

View File

@@ -80,7 +80,8 @@ const getItemBackgroundStyle = (imageName) => ({
}); });
const trainVideoImgUrl=config.trainVideoImgUrl const trainVideoImgUrl=config.trainVideoImgUrl
onLoad(() => { onLoad(async () => {
await thirdLogin()
getDataList('refresh'); getDataList('refresh');
}); });
@@ -135,8 +136,53 @@ function getDataList(type = 'add') {
// 播放视频 // 播放视频
function playVideo(video) { async function playVideo(video) {
navTo(`/packageB/train/video/videoDetail?id=${video.videoId}`); if(await thirdLogin()){
navTo(`/packageB/train/video/videoDetail?id=${video.videoId}`);
}
}
async function thirdLogin(){
let form={}
if (uni.getStorageSync('userInfo').isCompanyUser=='1') {
form={
usertype: '1',
idno: uni.getStorageSync('userInfo').idCard,
name: uni.getStorageSync('userInfo').name,
enterprisecode:"",
enterprisename: "",
contactperson: "",
contactphone: "",
}
}else if (uni.getStorageSync('userInfo').isCompanyUser=='0') {
form={
usertype: "2",
enterprisecode: uni.getStorageSync('userInfo').idCard,
enterprisename: uni.getStorageSync('userInfo').name,
contactperson: "",
contactphone: "",
idno: "",
name: ""
}
}else{
uni.showToast({
icon: 'none',
title: '请先登录'
})
return false;
}
var resLogin = await $api.myRequest('/auth/login2/ks',form,'post',10100);
if (resLogin.code=='200') {
uni.setStorageSync('Padmin-Token', resLogin.data.access_token)
return true;
}else{
uni.showToast({
icon: 'none',
title: '单点异常'
})
return false;
}
} }
</script> </script>

View File

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

View File

@@ -143,13 +143,59 @@
// startDate: currentDate, // startDate: currentDate,
// }); // });
// weekList.value = result; // weekList.value = result;
getHeart(); if(thirdLogin()){
getHeart();
}
}); });
onShow(() => { onShow(() => {
// 更新自定义tabbar选中状态 // 更新自定义tabbar选中状态
tabbarManager.updateSelected(1); tabbarManager.updateSelected(1);
}); });//
async function thirdLogin(){
let form={}
if (uni.getStorageSync('userInfo').isCompanyUser=='1') {
form={
usertype: '1',
idno: uni.getStorageSync('userInfo').idCard,
name: uni.getStorageSync('userInfo').name,
enterprisecode:"",
enterprisename: "",
contactperson: "",
contactphone: "",
}
}else if (uni.getStorageSync('userInfo').isCompanyUser=='0') {
form={
usertype: "2",
enterprisecode: uni.getStorageSync('userInfo').idCard,
enterprisename: uni.getStorageSync('userInfo').name,
contactperson: "",
contactphone: "",
idno: "",
name: ""
}
}else{
uni.showToast({
icon: 'none',
title: '请先登录'
})
return false;
}
var resLogin = await $api.myRequest('/auth/login2/ks',form,'post',10100);
if (resLogin.code=='200') {
uni.setStorageSync('Padmin-Token', resLogin.data.access_token)
return true;
}else{
uni.showToast({
icon: 'none',
title: '单点异常'
})
return false;
}
}
onMounted(() => { onMounted(() => {
// 监听退出登录事件,显示微信登录弹窗 // 监听退出登录事件,显示微信登录弹窗
@@ -168,19 +214,22 @@
// 可以在这里添加登录成功后的处理逻辑 // 可以在这里添加登录成功后的处理逻辑
}; };
function goDetail(jobFairId){ async function goDetail(jobFairId){
if(state.current != 3){ if(await thirdLogin()){
navTo('/packageA/pages/exhibitors/exhibitors?jobFairId=' + jobFairId) debugger
}else{ if(state.current != 3){
console.log(userInfo.value, 'userInfo'); navTo('/packageA/pages/exhibitors/exhibitors?jobFairId=' + jobFairId)
if(userInfo.value){ }else{
if(userInfo.value.userType=='ent'){ console.log(userInfo.value, 'userInfo');
navTo('/packageB/jobFair/detailCom?jobFairId=' + jobFairId) if(userInfo.value){
}else{ if(userInfo.value.userType=='ent'){
navTo('/packageB/jobFair/detailPerson?jobFairId=' + jobFairId) navTo('/packageB/jobFair/detailCom?jobFairId=' + jobFairId)
}else{
navTo('/packageB/jobFair/detailPerson?jobFairId=' + jobFairId)
}
} }
} }
} }
} }
function toSelectDate() { function toSelectDate() {

View File

@@ -106,7 +106,7 @@
<view class="service-icon service-icon-4"> <view class="service-icon service-icon-4">
<IconfontIcon name="zhengce" :size="48" color="#FFFFFF" /> <IconfontIcon name="zhengce" :size="48" color="#FFFFFF" />
</view> </view>
<view class="service-title">劳动政策指引</view> <view class="service-title">政策指引</view>
</view> </view>
<view class="service-item press-button" @click="handleServiceClick('skill-training')"> <view class="service-item press-button" @click="handleServiceClick('skill-training')">
<view class="service-icon service-icon-5"> <view class="service-icon service-icon-5">
@@ -856,7 +856,7 @@ function navToService(serviceType) {
'service-guidance': '/pages/service/guidance', 'service-guidance': '/pages/service/guidance',
'public-recruitment': '/pages/service/public-recruitment', 'public-recruitment': '/pages/service/public-recruitment',
'resume-creation': '/pages/resume-guide/resume-guide', '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-training': '/packageB/train/video/videoList',
'skill-evaluation': '/packageB/train/index', 'skill-evaluation': '/packageB/train/index',
// 'skill-evaluation': '/pages/service/skill-evaluation', // 'skill-evaluation': '/pages/service/skill-evaluation',
@@ -1065,7 +1065,6 @@ import storeRc from '@/utilsRc/store/index.js';
function goRc(){ function goRc(){
if (checkLogin()) { if (checkLogin()) {
let userInfo = uni.getStorageSync('userInfo') let userInfo = uni.getStorageSync('userInfo')
console.log(uni.getStorageSync('userInfo'), "uni.getStorageSync('userInfo')");
storeRc.dispatch('LoginByUserInfo', userInfo).then(res => { storeRc.dispatch('LoginByUserInfo', userInfo).then(res => {
// console.log(res, "'res"); // console.log(res, "'res");
navTo('/packageRc/pages/index/index'); navTo('/packageRc/pages/index/index');

View File

@@ -143,6 +143,11 @@ function openRemindPopup() {
// 检查用户是否完善了个人信息(调用接口获取) // 检查用户是否完善了个人信息(调用接口获取)
let hasCheckedRemindInfo = false; let hasCheckedRemindInfo = false;
// 保存缺失信息的标识
const missingInfo = ref({
hasJobInfo: false,
hasSkills: false
});
async function getRemindInfo() { async function getRemindInfo() {
if (hasCheckedRemindInfo) { if (hasCheckedRemindInfo) {
@@ -186,6 +191,10 @@ async function getRemindInfo() {
return skillName && skillName.trim() !== ''; return skillName && skillName.trim() !== '';
}); });
// 保存缺失信息标识(只保存职位信息和技能标签,身份证信息跳转到个人信息页面)
missingInfo.value.hasJobInfo = hasJobInfo;
missingInfo.value.hasSkills = hasSkills;
// 判断信息是否完整idCard、职位信息、技能标签都必须有 // 判断信息是否完整idCard、职位信息、技能标签都必须有
const isComplete = hasIdCard && hasJobInfo && hasSkills; const isComplete = hasIdCard && hasJobInfo && hasSkills;
@@ -250,6 +259,10 @@ async function getRemindInfo() {
return skillName && skillName.trim() !== ''; return skillName && skillName.trim() !== '';
}); });
// 保存缺失信息标识
missingInfo.value.hasJobInfo = hasJobInfo;
missingInfo.value.hasSkills = hasSkills;
// 判断信息是否完整idCard、职位信息、技能标签都必须有 // 判断信息是否完整idCard、职位信息、技能标签都必须有
const isComplete = hasIdCard && hasJobInfo && hasSkills; const isComplete = hasIdCard && hasJobInfo && hasSkills;
@@ -299,8 +312,25 @@ function handleCancel() {
async function handleConfirm() { async function handleConfirm() {
remindPopup.value?.close(); remindPopup.value?.close();
// 跳转到完善信息页面 const { hasJobInfo, hasSkills } = missingInfo.value;
navTo('/packageA/pages/personalInfo/personalInfo');
// 如果同时缺少职位信息和技能标签:先跳转到职位信息页面,并传递参数表示完成后需要继续跳转到技能页面
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 // 切换tab

View File

@@ -246,10 +246,10 @@ export function myRequest(url, data = {}, method = 'GET', port = 9100, headers =
} }
// 显示具体的错误信息 // 显示具体的错误信息
const errorMsg = msg || '请求出现异常,请联系工作人员' const errorMsg = msg || '请求出现异常,请联系工作人员'
uni.showToast({ // uni.showToast({
title: errorMsg, // title: errorMsg,
icon: 'none' // icon: 'none'
}) // })
const err = new Error(errorMsg) const err = new Error(errorMsg)
err.error = resData err.error = resData
reject(err) reject(err)