Compare commits
13 Commits
ad69929666
...
CareerMap
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d78382ba08 | ||
|
|
a74cdcc850 | ||
| d89b566ad3 | |||
| 3c66e16e49 | |||
| ccbb5008bd | |||
|
|
bc48d7fff0 | ||
|
|
6baacfcf20 | ||
| e290340b8c | |||
|
|
c4f7d6d998 | ||
|
|
fa7749da9d | ||
|
|
b2016378fb | ||
|
|
a812c7b1d6 | ||
|
|
85a6066494 |
@@ -8,7 +8,7 @@ import request from '@/utilsRc/request'
|
||||
// 获取用户信息(职业规划推荐用)
|
||||
export function appUserInfo() {
|
||||
return request({
|
||||
fullUrl: 'http://ks.zhaopinzao8dian.com/api/ks/app/user/appUserInfo',
|
||||
fullUrl: 'http://222.80.110.161:11111/api/ks/app/user/appUserInfo',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
@@ -69,9 +69,28 @@ export const navTo = function(url, {
|
||||
const userStore = useUserStore();
|
||||
|
||||
if (needLogin && !userStore.hasLogin) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/complete-info/complete-info'
|
||||
});
|
||||
const pages = getCurrentPages();
|
||||
if (pages.length >= 10) {
|
||||
uni.redirectTo({
|
||||
url: '/pages/complete-info/complete-info',
|
||||
fail: (err) => {
|
||||
console.error('页面跳转失败:', err);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: '/pages/complete-info/complete-info',
|
||||
fail: (err) => {
|
||||
console.error('页面跳转失败:', err);
|
||||
uni.redirectTo({
|
||||
url: '/pages/complete-info/complete-info',
|
||||
fail: (err2) => {
|
||||
console.error('redirectTo也失败:', err2);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -86,9 +105,30 @@ export const navTo = function(url, {
|
||||
currentPage.__onBackCallback__ = onBack;
|
||||
}
|
||||
|
||||
uni.navigateTo({
|
||||
url: finalUrl
|
||||
});
|
||||
const pages = getCurrentPages();
|
||||
if (pages.length >= 10) {
|
||||
// 页面栈已满,使用redirectTo替代
|
||||
uni.redirectTo({
|
||||
url: finalUrl,
|
||||
fail: (err) => {
|
||||
console.error('页面跳转失败:', err);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: finalUrl,
|
||||
fail: (err) => {
|
||||
console.error('页面跳转失败:', err);
|
||||
// 失败后尝试redirectTo
|
||||
uni.redirectTo({
|
||||
url: finalUrl,
|
||||
fail: (err2) => {
|
||||
console.error('redirectTo也失败:', err2);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
export const navBack = function({
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
export default {
|
||||
// baseUrl: 'http://39.98.44.136:8080', // 测试
|
||||
baseUrl: 'http://222.80.110.161:11111/api/ks', // 正式环境
|
||||
baseUrl: 'http://222.80.110.161:11111/api/ks', // 测试
|
||||
// baseUrl: 'http://ks.zhaopinzao8dian.com/api/ks', // 测试
|
||||
|
||||
// LCBaseUrl:'http://10.110.145.145:9100',//内网端口
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -143,6 +143,12 @@
|
||||
"style": {
|
||||
"navigationBarTitleText": "薪酬信息"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/service/guidance",
|
||||
"style": {
|
||||
"navigationBarTitleText": "服务指导"
|
||||
}
|
||||
}
|
||||
],
|
||||
"subpackages": [
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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(() => {
|
||||
|
||||
456
pages/service/guidance.vue
Normal file
456
pages/service/guidance.vue
Normal file
@@ -0,0 +1,456 @@
|
||||
<template>
|
||||
<view class="service-guidance-container">
|
||||
<view class="guidance-header">
|
||||
<text class="header-title">服务指导</text>
|
||||
<text class="header-subtitle">如何使用喀什智慧就业平台</text>
|
||||
</view>
|
||||
|
||||
<scroll-view class="guidance-content" scroll-y="true">
|
||||
<!-- 欢迎介绍 -->
|
||||
<view class="guidance-section">
|
||||
<view class="section-title">
|
||||
<uni-icons type="info-filled" size="24" color="#256BFA"></uni-icons>
|
||||
<text class="title-text">欢迎使用</text>
|
||||
</view>
|
||||
<view class="section-content">
|
||||
<text class="content-text">喀什智慧就业平台是为您提供全方位就业服务的小程序,包括职位搜索、简历创建、职业规划等功能。</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 使用步骤 -->
|
||||
<view class="guidance-section">
|
||||
<view class="section-title">
|
||||
<uni-icons type="steps-filled" size="24" color="#256BFA"></uni-icons>
|
||||
<text class="title-text">使用步骤</text>
|
||||
</view>
|
||||
<view class="section-content">
|
||||
<view class="step-item">
|
||||
<view class="step-number">1</view>
|
||||
<view class="step-content">
|
||||
<text class="step-title">登录/注册</text>
|
||||
<text class="step-desc">首次使用请先完成登录或注册,完善个人信息以便获取更好的服务。</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="step-item">
|
||||
<view class="step-number">2</view>
|
||||
<view class="step-content">
|
||||
<text class="step-title">浏览首页</text>
|
||||
<text class="step-desc">首页展示了推荐职位、附近工作和各种服务功能,您可以根据需求选择。</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="step-item">
|
||||
<view class="step-number">3</view>
|
||||
<view class="step-content">
|
||||
<text class="step-title">搜索职位</text>
|
||||
<text class="step-desc">使用顶部搜索框输入职位名称、关键词等,快速找到您感兴趣的职位。</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="step-item">
|
||||
<view class="step-number">4</view>
|
||||
<view class="step-content">
|
||||
<text class="step-title">查看职位详情</text>
|
||||
<text class="step-desc">点击职位卡片查看详细信息,包括薪资待遇、工作地点、任职要求等。</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="step-item">
|
||||
<view class="step-number">5</view>
|
||||
<view class="step-content">
|
||||
<text class="step-title">投递简历</text>
|
||||
<text class="step-desc">如果您对某个职位感兴趣,可以直接投递简历,等待企业联系。</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="step-item">
|
||||
<view class="step-number">6</view>
|
||||
<view class="step-content">
|
||||
<text class="step-title">使用服务功能</text>
|
||||
<text class="step-desc">首页九宫格提供了多种服务,包括简历指导、劳动政策指引、技能培训等,您可以根据需要使用。</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 功能介绍 -->
|
||||
<view class="guidance-section">
|
||||
<view class="section-title">
|
||||
<uni-icons type="grid-filled" size="24" color="#256BFA"></uni-icons>
|
||||
<text class="title-text">主要功能</text>
|
||||
</view>
|
||||
<view class="section-content">
|
||||
<view class="feature-grid">
|
||||
<view class="feature-item">
|
||||
<view class="feature-icon">
|
||||
<uni-icons type="search" size="36" color="#256BFA"></uni-icons>
|
||||
</view>
|
||||
<text class="feature-title">职位搜索</text>
|
||||
<text class="feature-desc">智能匹配,精准推荐</text>
|
||||
</view>
|
||||
<view class="feature-item">
|
||||
<view class="feature-icon">
|
||||
<uni-icons type="person-filled" size="36" color="#256BFA"></uni-icons>
|
||||
</view>
|
||||
<text class="feature-title">简历管理</text>
|
||||
<text class="feature-desc">在线创建,一键投递</text>
|
||||
</view>
|
||||
<view class="feature-item">
|
||||
<view class="feature-icon">
|
||||
<uni-icons type="map-pin" size="36" color="#256BFA"></uni-icons>
|
||||
</view>
|
||||
<text class="feature-title">附近工作</text>
|
||||
<text class="feature-desc">基于位置,就近推荐</text>
|
||||
</view>
|
||||
<view class="feature-item">
|
||||
<view class="feature-icon">
|
||||
<uni-icons type="document" size="36" color="#256BFA"></uni-icons>
|
||||
</view>
|
||||
<text class="feature-title">简历指导</text>
|
||||
<text class="feature-desc">专业建议,优化简历</text>
|
||||
</view>
|
||||
<view class="feature-item">
|
||||
<view class="feature-icon">
|
||||
<uni-icons type="book-filled" size="36" color="#256BFA"></uni-icons>
|
||||
</view>
|
||||
<text class="feature-title">政策指引</text>
|
||||
<text class="feature-desc">最新政策,实时更新</text>
|
||||
</view>
|
||||
<view class="feature-item">
|
||||
<view class="feature-icon">
|
||||
<uni-icons type="videocam-filled" size="36" color="#256BFA"></uni-icons>
|
||||
</view>
|
||||
<text class="feature-title">技能培训</text>
|
||||
<text class="feature-desc">线上学习,提升技能</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 常见问题 -->
|
||||
<view class="guidance-section">
|
||||
<view class="section-title">
|
||||
<uni-icons type="help-filled" size="24" color="#256BFA"></uni-icons>
|
||||
<text class="title-text">常见问题</text>
|
||||
</view>
|
||||
<view class="section-content">
|
||||
<view class="faq-item">
|
||||
<view class="faq-question">
|
||||
<uni-icons type="right" size="18" color="#256BFA"></uni-icons>
|
||||
<text>如何修改个人信息?</text>
|
||||
</view>
|
||||
<view class="faq-answer">
|
||||
<text>在"我的"页面点击个人信息,进入编辑页面即可修改基本信息、求职意向等。</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="faq-item">
|
||||
<view class="faq-question">
|
||||
<uni-icons type="right" size="18" color="#256BFA"></uni-icons>
|
||||
<text>如何查看投递记录?</text>
|
||||
</view>
|
||||
<view class="faq-answer">
|
||||
<text>在"我的"页面点击"投递记录",即可查看所有已投递的职位和状态。</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="faq-item">
|
||||
<view class="faq-question">
|
||||
<uni-icons type="right" size="18" color="#256BFA"></uni-icons>
|
||||
<text>如何收藏职位?</text>
|
||||
</view>
|
||||
<view class="faq-answer">
|
||||
<text>在职位详情页面点击右上角的收藏按钮,即可将职位添加到收藏夹。</text>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="faq-item">
|
||||
<view class="faq-question">
|
||||
<uni-icons type="right" size="18" color="#256BFA"></uni-icons>
|
||||
<text>如何联系客服?</text>
|
||||
</view>
|
||||
<view class="faq-answer">
|
||||
<text>如果您在使用过程中遇到问题,可以在"我的"页面找到"联系客服"入口,或拨打客服热线。</text>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 温馨提示 -->
|
||||
<view class="guidance-section">
|
||||
<view class="section-title">
|
||||
<uni-icons type="warning-filled" size="24" color="#256BFA"></uni-icons>
|
||||
<text class="title-text">温馨提示</text>
|
||||
</view>
|
||||
<view class="section-content">
|
||||
<view class="tips-list">
|
||||
<view class="tip-item">
|
||||
<uni-icons type="circle" size="12" color="#256BFA" class="tip-icon"></uni-icons>
|
||||
<text class="tip-text">请确保填写的个人信息真实有效,这有助于企业更好地了解您。</text>
|
||||
</view>
|
||||
<view class="tip-item">
|
||||
<uni-icons type="circle" size="12" color="#256BFA" class="tip-icon"></uni-icons>
|
||||
<text class="tip-text">定期更新简历,保持简历内容的时效性。</text>
|
||||
</view>
|
||||
<view class="tip-item">
|
||||
<uni-icons type="circle" size="12" color="#256BFA" class="tip-icon"></uni-icons>
|
||||
<text class="tip-text">多关注"附近工作"和"推荐职位",不错过好机会。</text>
|
||||
</view>
|
||||
<view class="tip-item">
|
||||
<uni-icons type="circle" size="12" color="#256BFA" class="tip-icon"></uni-icons>
|
||||
<text class="tip-text">如有任何疑问,欢迎随时联系我们的客服团队。</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 结尾鼓励 -->
|
||||
<view class="guidance-section end-section">
|
||||
<view class="encourage-content">
|
||||
<uni-icons type="thumbsup-filled" size="48" color="#256BFA"></uni-icons>
|
||||
<text class="encourage-text">祝您早日找到理想的工作!</text>
|
||||
<text class="encourage-subtext">喀什智慧就业平台与您同行</text>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { onLoad } from '@dcloudio/uni-app';
|
||||
|
||||
onLoad(() => {
|
||||
// 页面加载时的逻辑
|
||||
console.log('服务指导页面加载');
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.service-guidance-container {
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
background-color: #F5F7FA;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.guidance-header {
|
||||
padding: 32rpx 24rpx;
|
||||
background-color: #FFFFFF;
|
||||
box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.05);
|
||||
text-align: center;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.header-title {
|
||||
display: block;
|
||||
font-size: 36rpx;
|
||||
font-weight: bold;
|
||||
color: #333333;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
|
||||
.header-subtitle {
|
||||
display: block;
|
||||
font-size: 24rpx;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
.guidance-content {
|
||||
flex: 1;
|
||||
padding: 24rpx;
|
||||
overflow-y: scroll;
|
||||
box-sizing: border-box;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
.guidance-section {
|
||||
background-color: #FFFFFF;
|
||||
border-radius: 16rpx;
|
||||
padding: 32rpx;
|
||||
margin-bottom: 24rpx;
|
||||
box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.section-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 24rpx;
|
||||
}
|
||||
|
||||
.title-text {
|
||||
font-size: 28rpx;
|
||||
font-weight: bold;
|
||||
color: #333333;
|
||||
margin-left: 12rpx;
|
||||
}
|
||||
|
||||
.section-content {
|
||||
font-size: 24rpx;
|
||||
color: #666666;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
/* 步骤样式 */
|
||||
.step-item {
|
||||
display: flex;
|
||||
margin-bottom: 32rpx;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.step-number {
|
||||
width: 48rpx;
|
||||
height: 48rpx;
|
||||
border-radius: 50%;
|
||||
background-color: #256BFA;
|
||||
color: #FFFFFF;
|
||||
font-size: 24rpx;
|
||||
font-weight: bold;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 20rpx;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.step-content {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.step-title {
|
||||
display: block;
|
||||
font-size: 26rpx;
|
||||
font-weight: bold;
|
||||
color: #333333;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
|
||||
.step-desc {
|
||||
display: block;
|
||||
font-size: 24rpx;
|
||||
color: #666666;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
/* 功能网格样式 */
|
||||
.feature-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 24rpx;
|
||||
margin-top: 16rpx;
|
||||
}
|
||||
|
||||
.feature-item {
|
||||
text-align: center;
|
||||
padding: 24rpx;
|
||||
background-color: #F8FAFC;
|
||||
border-radius: 12rpx;
|
||||
}
|
||||
|
||||
.feature-icon {
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
|
||||
.feature-title {
|
||||
display: block;
|
||||
font-size: 24rpx;
|
||||
font-weight: bold;
|
||||
color: #333333;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
|
||||
.feature-desc {
|
||||
display: block;
|
||||
font-size: 20rpx;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
/* 常见问题样式 */
|
||||
.faq-item {
|
||||
margin-bottom: 24rpx;
|
||||
padding-bottom: 24rpx;
|
||||
border-bottom: 1rpx solid #F0F0F0;
|
||||
}
|
||||
|
||||
.faq-item:last-child {
|
||||
border-bottom: none;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.faq-question {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 26rpx;
|
||||
font-weight: bold;
|
||||
color: #333333;
|
||||
margin-bottom: 12rpx;
|
||||
}
|
||||
|
||||
.faq-question uni-icons {
|
||||
margin-right: 12rpx;
|
||||
}
|
||||
|
||||
.faq-answer {
|
||||
font-size: 24rpx;
|
||||
color: #666666;
|
||||
line-height: 1.6;
|
||||
padding-left: 40rpx;
|
||||
}
|
||||
|
||||
/* 温馨提示样式 */
|
||||
.tips-list {
|
||||
margin-top: 16rpx;
|
||||
}
|
||||
|
||||
.tip-item {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
margin-bottom: 16rpx;
|
||||
font-size: 24rpx;
|
||||
color: #666666;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.tip-icon {
|
||||
margin-right: 12rpx;
|
||||
margin-top: 8rpx;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.tip-text {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/* 结尾鼓励样式 */
|
||||
.end-section {
|
||||
text-align: center;
|
||||
background: linear-gradient(135deg, #256BFA 0%, #6A8FFF 100%);
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.end-section .section-title {
|
||||
color: #FFFFFF;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.end-section .title-text {
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.encourage-content {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.encourage-content uni-icons {
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
|
||||
.encourage-text {
|
||||
display: block;
|
||||
font-size: 32rpx;
|
||||
font-weight: bold;
|
||||
color: #FFFFFF;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
|
||||
.encourage-subtext {
|
||||
display: block;
|
||||
font-size: 24rpx;
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
}
|
||||
</style>
|
||||
@@ -72,9 +72,32 @@ export function navigateToLoginPage(options = {}) {
|
||||
? `?${new URLSearchParams(params).toString()}`
|
||||
: '';
|
||||
|
||||
uni.navigateTo({
|
||||
url: `${loginPage}${queryString}`
|
||||
});
|
||||
const finalUrl = `${loginPage}${queryString}`;
|
||||
const pages = getCurrentPages();
|
||||
|
||||
if (pages.length >= 10) {
|
||||
// 页面栈已满,使用redirectTo替代
|
||||
uni.redirectTo({
|
||||
url: finalUrl,
|
||||
fail: (err) => {
|
||||
console.error('页面跳转失败:', err);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: finalUrl,
|
||||
fail: (err) => {
|
||||
console.error('页面跳转失败:', err);
|
||||
// 失败后尝试redirectTo
|
||||
uni.redirectTo({
|
||||
url: finalUrl,
|
||||
fail: (err2) => {
|
||||
console.error('redirectTo也失败:', err2);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -217,10 +217,30 @@ export function myRequest(url, data = {}, method = 'GET', port = 9100, headers =
|
||||
}
|
||||
// 处理业务错误
|
||||
if (resData.data?.code === 401 || resData.data?.code === 402) {
|
||||
uni.navigateTo({
|
||||
url:'/packageB/login?flag=nw'
|
||||
})
|
||||
// navTo('/packageB/login?flag=nw');
|
||||
const pages = getCurrentPages();
|
||||
if (pages.length >= 10) {
|
||||
// 页面栈已满,使用redirectTo替代
|
||||
uni.redirectTo({
|
||||
url:'/packageB/login?flag=nw',
|
||||
fail: (err) => {
|
||||
console.error('页面跳转失败:', err);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url:'/packageB/login?flag=nw',
|
||||
fail: (err) => {
|
||||
console.error('页面跳转失败:', err);
|
||||
// 失败后尝试redirectTo
|
||||
uni.redirectTo({
|
||||
url:'/packageB/login?flag=nw',
|
||||
fail: (err2) => {
|
||||
console.error('redirectTo也失败:', err2);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
useUserStore().logOut()
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user