Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 65dea06316 | |||
| 30b5caf87b | |||
| d42128be8b | |||
| d15765973a | |||
| 2e40eec875 | |||
| 9a09edf54c | |||
| 8578c96931 | |||
| 4faaedcbbd |
@@ -3,7 +3,21 @@
|
||||
* @LastEditors: shirlwang
|
||||
* @LastEditTime: 2025-12-16 16:35:06
|
||||
*/
|
||||
import { createRequest } from '../../utils/request';
|
||||
import request from '@/utilsRc/request'
|
||||
import { createRequest } from '@/utils/request';
|
||||
|
||||
// 获取职业图谱token
|
||||
export function appToken(token) {
|
||||
return request({
|
||||
url: '/loginByToken',
|
||||
method: 'post',
|
||||
data: {
|
||||
token,
|
||||
loginWay: '2'
|
||||
},
|
||||
baseUrlType: 'zytp'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取用户信息(职业规划推荐用)
|
||||
export function appUserInfo() {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!--suppress HtmlUnknownTag, NpmUsedModulesInstalled, JSFileReferences -->
|
||||
<script setup>
|
||||
import { ref, inject, nextTick, onMounted } from 'vue';
|
||||
import { onLoad, onShow } from '@dcloudio/uni-app';
|
||||
import { inject, nextTick, onMounted, ref } from 'vue';
|
||||
import { onShow } from '@dcloudio/uni-app';
|
||||
import { appUserInfo } from '@/apiRc/user/user.js';
|
||||
import RemindPopup from './components/RemindPopup.vue';
|
||||
import PageHeader from './components/PageHeader.vue';
|
||||
@@ -10,6 +10,9 @@ import CareerRecommend from './components/CareerRecommend.vue';
|
||||
import CareerPath from './components/CareerPath.vue';
|
||||
import SkillDevelopment from './components/SkillDevelopment.vue';
|
||||
import CustomTabBar from '@/components/CustomTabBar/CustomTabBar.vue';
|
||||
import { appToken } from '@/apiRc/user/user';
|
||||
import { setToken } from '@/utilsRc/auth';
|
||||
|
||||
|
||||
const { navBack, navTo } = inject('globalFunction');
|
||||
|
||||
@@ -29,7 +32,6 @@ const selectedJobImprovementSkills = ref([]);
|
||||
const currentJobId = ref(null);
|
||||
const currentJobName = ref('');
|
||||
|
||||
|
||||
const pathSkillsData = ref({
|
||||
pathData: {
|
||||
start: { title: '', skills: [] },
|
||||
@@ -87,6 +89,14 @@ async function getRemindInfo() {
|
||||
|
||||
hasCheckedRemindInfo = true;
|
||||
|
||||
try {
|
||||
const t = uni.getStorageSync('token');
|
||||
const { token } = await appToken(t);
|
||||
setToken(token);
|
||||
} catch (e) {
|
||||
console.warn(e);
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await appUserInfo();
|
||||
const userInfo = response?.data || {};
|
||||
@@ -141,11 +151,11 @@ async function getRemindInfo() {
|
||||
if (!hasSkills) {
|
||||
missingItems.push('技能标签');
|
||||
}
|
||||
remindList.value = [`请完善${missingItems.join('、')}`];
|
||||
remindList.value = [ `请完善${ missingItems.join('、') }` ];
|
||||
} else {
|
||||
// 信息完整,设置职位信息
|
||||
if (hasJobTitle) {
|
||||
currentJobName.value = jobTitles[0];
|
||||
currentJobName.value = jobTitles[ 0 ];
|
||||
} else {
|
||||
currentJobName.value = jobName;
|
||||
currentJobId.value = userInfo?.jobId ??
|
||||
@@ -209,11 +219,11 @@ async function getRemindInfo() {
|
||||
if (!hasSkills) {
|
||||
missingItems.push('技能标签');
|
||||
}
|
||||
remindList.value = [`请完善${missingItems.join('、')}`];
|
||||
remindList.value = [ `请完善${ missingItems.join('、') }` ];
|
||||
} else {
|
||||
// 信息完整,设置职位信息
|
||||
if (hasJobTitle) {
|
||||
currentJobName.value = cachedJobTitles[0];
|
||||
currentJobName.value = cachedJobTitles[ 0 ];
|
||||
} else {
|
||||
currentJobName.value = jobName;
|
||||
currentJobId.value = cachedUserInfo?.jobId ??
|
||||
@@ -276,7 +286,7 @@ function switchTab(index) {
|
||||
let newJobName = '';
|
||||
|
||||
if (cachedJobTitles.length > 0) {
|
||||
newJobName = cachedJobTitles[0];
|
||||
newJobName = cachedJobTitles[ 0 ];
|
||||
} else {
|
||||
// 如果缓存中没有 jobTitles,从其他字段获取
|
||||
newJobName = currentJobName.value ||
|
||||
@@ -325,10 +335,6 @@ function handlePathDataUpdated(data) {
|
||||
};
|
||||
}
|
||||
|
||||
onLoad(() => {
|
||||
getRemindInfo();
|
||||
});
|
||||
|
||||
onShow(() => {
|
||||
// 返回本页后,如果之前因为信息缺失未展示内容,则重新检查
|
||||
if (!showContent.value) {
|
||||
@@ -349,52 +355,36 @@ onMounted(() => {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="career-planning-page">
|
||||
<!-- 提醒弹窗 -->
|
||||
<RemindPopup
|
||||
ref="remindPopup"
|
||||
:remind-list="remindList"
|
||||
@cancel="handleCancel"
|
||||
@confirm="handleConfirm"
|
||||
/>
|
||||
<div class="career-planning-page">
|
||||
<!-- 提醒弹窗 -->
|
||||
<RemindPopup ref="remindPopup" :remind-list="remindList" @cancel="handleCancel" @confirm="handleConfirm" />
|
||||
|
||||
<!-- 技能详情弹出层 -->
|
||||
<SkillDetailPopup
|
||||
ref="skillDetailPopup"
|
||||
:job-title="selectedJobTitle"
|
||||
:possessed-skills="selectedJobPossessedSkills"
|
||||
:improvement-skills="selectedJobImprovementSkills"
|
||||
/>
|
||||
<!-- 技能详情弹出层 -->
|
||||
<SkillDetailPopup ref="skillDetailPopup" :improvement-skills="selectedJobImprovementSkills" :job-title="selectedJobTitle" :possessed-skills="selectedJobPossessedSkills" />
|
||||
|
||||
<!-- 页面内容 -->
|
||||
<div class="page-content" v-if="showContent">
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
<!-- 小程序背景图片 -->
|
||||
<image class="mp-background" src="/static/icon/background2.png" mode="aspectFill"></image>
|
||||
<!-- #endif -->
|
||||
<!-- 页面内容 -->
|
||||
<div v-if="showContent" class="page-content">
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
<!-- 小程序背景图片 -->
|
||||
<image class="mp-background" mode="aspectFill" src="/static/icon/background2.png"></image>
|
||||
<!-- #endif -->
|
||||
|
||||
<!-- 头部区域 -->
|
||||
<PageHeader
|
||||
:active-tab="activeTab"
|
||||
@tab-change="switchTab"
|
||||
@search-click="handleSearchClick"
|
||||
@menu-click="handleMenuClick"
|
||||
@more-click="handleMoreClick"
|
||||
/>
|
||||
<!-- 头部区域 -->
|
||||
<PageHeader :active-tab="activeTab" @tab-change="switchTab" @search-click="handleSearchClick" @menu-click="handleMenuClick" @more-click="handleMoreClick" />
|
||||
|
||||
<!-- 内容区域 -->
|
||||
<scroll-view scroll-y class="content-scroll">
|
||||
<CareerRecommend v-if="activeTab === 0"/>
|
||||
<CareerPath v-else-if="activeTab === 1" />
|
||||
<SkillDevelopment v-else />
|
||||
</scroll-view>
|
||||
</div>
|
||||
|
||||
<!-- 底部导航栏 -->
|
||||
<div class="tabbar-wrapper" v-if="showContent">
|
||||
<CustomTabBar :currentPage="0" />
|
||||
</div>
|
||||
<!-- 内容区域 -->
|
||||
<scroll-view class="content-scroll" scroll-y>
|
||||
<CareerRecommend v-if="activeTab === 0" />
|
||||
<CareerPath v-else-if="activeTab === 1" />
|
||||
<SkillDevelopment v-else />
|
||||
</scroll-view>
|
||||
</div>
|
||||
|
||||
<!-- 底部导航栏 -->
|
||||
<div v-if="showContent" class="tabbar-wrapper">
|
||||
<CustomTabBar :currentPage="0" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="scss">
|
||||
@@ -484,6 +474,7 @@ onMounted(() => {
|
||||
height: 728rpx;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
/* #endif */
|
||||
|
||||
.page-content {
|
||||
@@ -495,7 +486,6 @@ onMounted(() => {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
.content-scroll {
|
||||
flex: 1;
|
||||
height: 0;
|
||||
|
||||
@@ -80,7 +80,7 @@ export const useCareerPathStore = defineStore('career-path', () => {
|
||||
const fetchData = async () => {
|
||||
try {
|
||||
const { code, msg, data } = await getCurrentPosition();
|
||||
if (code !== 0) {
|
||||
if (code !== 200) {
|
||||
uni.showToast({
|
||||
title: msg,
|
||||
icon: 'none'
|
||||
@@ -104,7 +104,7 @@ export const useCareerPathStore = defineStore('career-path', () => {
|
||||
const fetchDataPath = async () => {
|
||||
try {
|
||||
const { code, msg, data } = await getPath();
|
||||
if (code !== 0) {
|
||||
if (code !== 200) {
|
||||
uni.showToast({
|
||||
title: msg,
|
||||
icon: 'none'
|
||||
@@ -137,7 +137,7 @@ export const useCareerPathStore = defineStore('career-path', () => {
|
||||
};
|
||||
try {
|
||||
const { code, msg, data } = await getPathDetail(params);
|
||||
if (code !== 0) {
|
||||
if (code !== 200) {
|
||||
uni.showToast({
|
||||
title: msg,
|
||||
icon: 'none'
|
||||
|
||||
@@ -78,7 +78,7 @@ export const useCareerRecommendationStore = defineStore('career-recommendation',
|
||||
const fetchData = async () => {
|
||||
try {
|
||||
const { code, msg, data } = await getProfessions();
|
||||
if (code !== 0) {
|
||||
if (code !== 200) {
|
||||
uni.showToast({
|
||||
title: msg,
|
||||
icon: 'none'
|
||||
@@ -105,7 +105,7 @@ export const useCareerRecommendationStore = defineStore('career-recommendation',
|
||||
};
|
||||
try {
|
||||
const { code, msg, data } = await getSkillTags(params);
|
||||
if (code !== 0) {
|
||||
if (code !== 200) {
|
||||
uni.showToast({
|
||||
title: msg,
|
||||
icon: 'none'
|
||||
@@ -126,7 +126,7 @@ export const useCareerRecommendationStore = defineStore('career-recommendation',
|
||||
};
|
||||
try {
|
||||
const { code, msg, data } = await getRecommend(params);
|
||||
if (code !== 0) {
|
||||
if (code !== 200) {
|
||||
uni.showToast({
|
||||
title: msg,
|
||||
icon: 'none'
|
||||
|
||||
@@ -92,7 +92,7 @@ export const useSkillDevelopmentStore = defineStore('skill-development', () => {
|
||||
const fetchData = async () => {
|
||||
try {
|
||||
const { code, msg, data } = await getCurrentPosition();
|
||||
if (code !== 0) {
|
||||
if (code !== 200) {
|
||||
uni.showToast({
|
||||
title: msg,
|
||||
icon: 'none'
|
||||
@@ -116,7 +116,7 @@ export const useSkillDevelopmentStore = defineStore('skill-development', () => {
|
||||
const fetchDataPath = async () => {
|
||||
try {
|
||||
const { code, msg, data } = await getPath();
|
||||
if (code !== 0) {
|
||||
if (code !== 200) {
|
||||
uni.showToast({
|
||||
title: msg,
|
||||
icon: 'none'
|
||||
@@ -149,7 +149,7 @@ export const useSkillDevelopmentStore = defineStore('skill-development', () => {
|
||||
};
|
||||
try {
|
||||
const { code, msg, data } = await getCareerPath(params);
|
||||
if (code !== 0) {
|
||||
if (code !== 200) {
|
||||
uni.showToast({
|
||||
title: msg,
|
||||
icon: 'none'
|
||||
@@ -195,7 +195,7 @@ export const useSkillDevelopmentStore = defineStore('skill-development', () => {
|
||||
};
|
||||
try {
|
||||
const { code, msg, data } = await getSkillResult(params);
|
||||
if (code !== 0) {
|
||||
if (code !== 200) {
|
||||
uni.showToast({
|
||||
title: msg,
|
||||
icon: 'none'
|
||||
|
||||
@@ -29,7 +29,8 @@ let exports = {
|
||||
// baseUrl: 'http://ks.zhaopinzao8dian.com/api/ks', // 已从根目录config.js引用,不再重复配置
|
||||
|
||||
// ========== 职业图谱专用baseUrl ==========
|
||||
zytpBaseUrl: 'https://www.xjksly.cn/career-map/api/ks_zytp/admin-api/zytp',
|
||||
zytpBaseUrl: 'https://www.xjksly.cn/career-map/api/ks_zytp/zytp',
|
||||
// zytpBaseUrl: 'http://ks.zhaopinzao8dian.com/api/ks_zytp/zytp',
|
||||
|
||||
// ========== 用户接口专用baseUrl(其他用户接口使用) ==========
|
||||
userBaseUrl: 'http://ks.zhaopinzao8dian.com/api/ks', // 用户相关接口使用根目录config.js的baseUrl
|
||||
|
||||
@@ -26,7 +26,7 @@ const request = config => {
|
||||
const isZytpApi = baseType === 'zytp'
|
||||
// 从存储中获取微信登录的 token
|
||||
const token = getToken()
|
||||
if (token && !isToken && !isZytpApi) {
|
||||
if (token && !isToken) {
|
||||
// config.header['Authorization'] = 'Bearer ' + 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJhb0Y4RmJPQWJ6ZVA3NlpzaENyM0tPSEZTbU85U0ZhViIsInVzZXJJZCI6MX0.kPEDm7D8eVvFlwAiUiE57evWaCX5EcSEOq-LEYGTm9Q'
|
||||
config.header['Authorization'] = 'Bearer ' + token
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user