diff --git a/apiRc/jobSkill.js b/apiRc/jobSkill.js
index 4c9f8ac..8741153 100644
--- a/apiRc/jobSkill.js
+++ b/apiRc/jobSkill.js
@@ -13,6 +13,16 @@ export function getJobSkillDetail(params) {
})
}
+// 获取技能权重
+export function getJobSkillWeight(params) {
+ return request({
+ url: '/jobSkillDet/getJobSkillWeight',
+ method: 'get',
+ params,
+ baseUrlType: 'zytp'
+ })
+}
+
// 暂未使用 - 如果需要在 CareerPath.vue 中点击路径职位查看详细技能信息时使用
// 使用场景:获取职业路径中某个职位的详细技能信息(包含技能分数、类型等)
// export function getJobPathSkill(data) {
diff --git a/apiRc/user/user.js b/apiRc/user/user.js
index 7e43b26..a40ac31 100644
--- a/apiRc/user/user.js
+++ b/apiRc/user/user.js
@@ -8,8 +8,7 @@ import request from '@/utilsRc/request'
// 获取用户信息(职业规划推荐用)
export function appUserInfo() {
return request({
- url: '/app/user/appUserInfo',
- method: 'get',
- baseUrlType: 'user' // 使用用户接口专用baseUrl
+ fullUrl: 'http://222.80.110.161:11111/api/ks/app/user/appUserInfo',
+ method: 'get'
})
}
diff --git a/common/globalFunction.js b/common/globalFunction.js
index 874e94d..f97113a 100644
--- a/common/globalFunction.js
+++ b/common/globalFunction.js
@@ -50,7 +50,8 @@ const prePage = () => {
return prePage.$vm;
}
-export const urls ='http://10.110.145.145/images/train/'
+// export const urls ='http://10.110.145.145/images/train/'
+export const urls ='http://222.80.110.161:11111/images/train/'
/**
* 页面跳转封装,支持 query 参数传递和返回回调
@@ -60,34 +61,74 @@ export const urls ='http://10.110.145.145/images/train/'
* @param {object} options.query - 携带参数
* @param {function} options.onBack - 页面返回时的回调(目标页调用 uni.navigateBack 时传递数据)
*/
-export const navTo = function(url, {
- needLogin = false,
- query = {},
- onBack = null
-} = {}) {
- const userStore = useUserStore();
-
- if (needLogin && !userStore.hasLogin) {
- uni.navigateTo({
- url: '/pages/complete-info/complete-info'
- });
- return;
- }
-
- const queryStr = Object.entries(query)
- .map(([key, val]) => `${key}=${encodeURIComponent(val)}`)
- .join('&');
- const finalUrl = queryStr ? `${url}?${queryStr}` : url;
-
- if (onBack) {
- const pages = getCurrentPages();
- const currentPage = pages[pages.length - 1];
- currentPage.__onBackCallback__ = onBack;
- }
-
- uni.navigateTo({
- url: finalUrl
- });
+export const navTo = function(url, {
+ needLogin = false,
+ query = {},
+ onBack = null
+} = {}) {
+ const userStore = useUserStore();
+
+ if (needLogin && !userStore.hasLogin) {
+ 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;
+ }
+
+ const queryStr = Object.entries(query)
+ .map(([key, val]) => `${key}=${encodeURIComponent(val)}`)
+ .join('&');
+ const finalUrl = queryStr ? `${url}?${queryStr}` : url;
+
+ if (onBack) {
+ const pages = getCurrentPages();
+ const currentPage = pages[pages.length - 1];
+ currentPage.__onBackCallback__ = onBack;
+ }
+
+ 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({
diff --git a/components/jobfair/signDialog.vue b/components/jobfair/signDialog.vue
index 1b12efb..70a1704 100644
--- a/components/jobfair/signDialog.vue
+++ b/components/jobfair/signDialog.vue
@@ -54,7 +54,7 @@
{{ item.jobTitle }}
- {{ item.salaryRange }}元/月
+ {{ item.minSalary }} - {{ item.maxSalary }}元/月
diff --git a/config.js b/config.js
index a819393..c00d7aa 100644
--- a/config.js
+++ b/config.js
@@ -3,10 +3,14 @@ export default {
baseUrl: 'http://222.80.110.161:11111/api/ks', // 测试
// baseUrl: 'http://ks.zhaopinzao8dian.com/api/ks', // 测试
- LCBaseUrl:'http://10.110.145.145:9100',//招聘、培训、帮扶
- LCBaseUrlInner:'http://10.110.145.145:10100',//内网端口
- imgBaseUrl:'http://10.110.145.145/images', //图片基础url
- trainVideoImgUrl:'http://10.110.145.145:9100/file/file/minio',
+ // LCBaseUrl:'http://10.110.145.145:9100',//内网端口
+ // LCBaseUrlInner:'http://10.110.145.145:10100',//招聘、培训、帮扶
+ // imgBaseUrl:'http://10.110.145.145/images', //图片基础url
+ // trainVideoImgUrl:'http://10.110.145.145:9100/file/file/minio',
+ LCBaseUrl:'http://222.80.110.161:11111/prod-api',//内网端口
+ LCBaseUrlInner:'http://222.80.110.161:11111/prod-psout-api',//招聘、培训、帮扶
+ imgBaseUrl:'http://222.80.110.161:11111/images', //图片基础url
+ trainVideoImgUrl:'http://222.80.110.161:11111/prod-api/file/file/minio',
// sseAI+
// StreamBaseURl: 'http://39.98.44.136:8000',
StreamBaseURl: 'https://qd.zhaopinzao8dian.com/ai',
@@ -21,7 +25,7 @@ export default {
// 只使用本地缓寸的数据
OnlyUseCachedDB: true,
// 使用模拟定位
- UsingSimulatedPositioning: true,
+ UsingSimulatedPositioning: false,
// 应用信息
appInfo: {
// 应用名称
diff --git a/packageA/pages/personalInfo/personalInfo.vue b/packageA/pages/personalInfo/personalInfo.vue
index 7d75162..10fe842 100644
--- a/packageA/pages/personalInfo/personalInfo.vue
+++ b/packageA/pages/personalInfo/personalInfo.vue
@@ -394,11 +394,31 @@ function addSkill() {
// 删除技能
function removeSkill(index) {
- state.skills.splice(index, 1);
+ const skill = state.skills[index];
- // 更新完成度
- const result = getFormCompletionPercent(fromValue);
- percent.value = result;
+ // 如果有技能id,调用删除接口
+ if (skill && skill.id) {
+ $api.createRequest(`/app/appskill/${skill.id}`, {}, 'DELETE').then(() => {
+ // 接口调用成功,从本地数组中移除
+ state.skills.splice(index, 1);
+
+ // 更新完成度
+ const result = getFormCompletionPercent(fromValue);
+ percent.value = result;
+
+ $api.msg('删除成功');
+ }).catch((err) => {
+ console.error('删除技能失败:', err);
+ $api.msg('删除失败,请重试');
+ });
+ } else {
+ // 没有id的技能(新增的),直接从本地数组中移除
+ state.skills.splice(index, 1);
+
+ // 更新完成度
+ const result = getFormCompletionPercent(fromValue);
+ percent.value = result;
+ }
}
// 获取技能等级文本
diff --git a/packageA/pages/post/post.vue b/packageA/pages/post/post.vue
index 05279af..4060ebc 100644
--- a/packageA/pages/post/post.vue
+++ b/packageA/pages/post/post.vue
@@ -68,6 +68,39 @@
{{ jobInfo.description }}
+
+
+
+ 职位图片
+
+
+
+
+
+
+
+
+
+
+ 联系人信息
+
+
+
+
+ 联系人:
+ {{ contact.contactPerson }}
+
+
+ 职位:
+ {{ contact.position }}
+
+
+ 电话:
+ {{ contact.contactPersonPhone }}
+
+
+
+
@@ -482,6 +515,16 @@ function formatPublishTime(dateString) {
return `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;
}
}
+
+// 预览图片
+function previewImage(url, index) {
+ // 获取所有图片的URL列表
+ const allImageUrls = jobInfo.value.filesList.map(file => file.fileUrl);
+ uni.previewImage({
+ urls: allImageUrls,
+ current: index
+ });
+}
diff --git a/pages/nearby/components/three.vue b/pages/nearby/components/three.vue
index 8355421..1126a62 100644
--- a/pages/nearby/components/three.vue
+++ b/pages/nearby/components/three.vue
@@ -1,5 +1,5 @@
-
+
@@ -48,66 +48,69 @@
-
-
-
-
-
-
- 全部
-
-
- {{ item }}
-
-
-
-
-
- 添加
-
-
-
-
+
+
+
+
+
- {{ item.text }}
+ 全部
+
+
+ {{ item }}
-
- 筛选
-
-
+
+
+
+ 添加
-
-
-
-
+
+
+
+ {{ item.text }}
+
+
+
+ 筛选
+
+
+
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/stores/useLocationStore.js b/stores/useLocationStore.js
index fc0c453..c8fd9fe 100644
--- a/stores/useLocationStore.js
+++ b/stores/useLocationStore.js
@@ -24,8 +24,8 @@ const useLocationStore = defineStore("location", () => {
timeout: 10000,
success: function(res) {
const resd = {
- longitude: 120.382665,
- latitude: 36.066938
+ longitude: 75.993802,
+ latitude: 39.468225
}
if (config.UsingSimulatedPositioning) { // 使用模拟定位
longitudeVal.value = resd.longitude
@@ -44,8 +44,8 @@ const useLocationStore = defineStore("location", () => {
// latitudeVal.value = ''
// reject(err)
const resd = {
- longitude: 120.382665,
- latitude: 36.066938
+ longitude: 75.993802,
+ latitude: 39.468225
}
longitudeVal.value = resd.longitude
latitudeVal.value = resd.latitude
diff --git a/utils/loginHelper.js b/utils/loginHelper.js
index 77ce8b3..919567d 100644
--- a/utils/loginHelper.js
+++ b/utils/loginHelper.js
@@ -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);
+ }
+ });
+ }
+ });
+ }
}
}
diff --git a/utils/request.js b/utils/request.js
index ab07299..573cce0 100644
--- a/utils/request.js
+++ b/utils/request.js
@@ -215,14 +215,34 @@ export function myRequest(url, data = {}, method = 'GET', port = 9100, headers =
resolve(resData.data)
return
}
- // 处理业务错误
- if (resData.data?.code === 401 || resData.data?.code === 402) {
- uni.navigateTo({
- url:'/packageB/login?flag=nw'
- })
- // navTo('/packageB/login?flag=nw');
- useUserStore().logOut()
-
+ // 处理业务错误
+ if (resData.data?.code === 401 || resData.data?.code === 402) {
+ 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()
+
}
// 显示具体的错误信息
const errorMsg = msg || '请求出现异常,请联系工作人员'
diff --git a/utilsRc/config.js b/utilsRc/config.js
index 94697f0..c29333e 100644
--- a/utilsRc/config.js
+++ b/utilsRc/config.js
@@ -26,10 +26,13 @@ let exports = {
// baseUrl: 'http://ks.zhaopinzao8dian.com/api/ks', // 已从根目录config.js引用,不再重复配置
// ========== 职业图谱专用baseUrl ==========
- zytpBaseUrl: 'http://ks.zhaopinzao8dian.com/api/ks_zytp/admin-api/zytp',
+ zytpBaseUrl: 'http://222.80.110.161:11111/career-map/api/ks_zytp/admin-api/zytp',
- // ========== 用户接口专用baseUrl(appUserInfo等接口使用) ==========
+ // ========== 用户接口专用baseUrl(其他用户接口使用) ==========
userBaseUrl: 'http://ks.zhaopinzao8dian.com/api/ks', // 用户相关接口使用根目录config.js的baseUrl
+
+ // ========== appUserInfo接口专用baseUrl ==========
+ appUserInfoBaseUrl: 'http://222.80.110.161:11111/api/ks', // appUserInfo接口专用,与其他接口路径不一致
diff --git a/utilsRc/request.js b/utilsRc/request.js
index 5a915ad..de40339 100644
--- a/utilsRc/request.js
+++ b/utilsRc/request.js
@@ -14,23 +14,28 @@ let timeout = 10000
const baseUrl = configRc.baseUrl
const zytpBaseUrl = configRc.zytpBaseUrl || ''
const userBaseUrl = configRc.userBaseUrl || ''
+const appUserInfoBaseUrl = configRc.appUserInfoBaseUrl || ''
const request = config => {
// 是否需要设置 token
const isToken = (config.headers || {}).isToken === false
config.header = config.header || {}
- // 从存储中获取微信登录的 token
- const token = getToken()
- if (token && !isToken) {
- config.header['Authorization'] = 'Bearer ' + token
- }
// get请求映射params参数
const baseType = config.baseUrlType
+ // 职业图谱相关接口不需要Authorization
+ const isZytpApi = baseType === 'zytp'
+ // 从存储中获取微信登录的 token
+ const token = getToken()
+ if (token && !isToken && !isZytpApi) {
+ config.header['Authorization'] = 'Bearer ' + token
+ }
let requestBaseUrl = baseUrl
if (baseType === 'zytp' && zytpBaseUrl) {
requestBaseUrl = zytpBaseUrl
} else if (baseType === 'user' && userBaseUrl) {
requestBaseUrl = userBaseUrl
+ } else if (baseType === 'appUserInfo' && appUserInfoBaseUrl) {
+ requestBaseUrl = appUserInfoBaseUrl
}
let requestUrl = config.fullUrl ? config.fullUrl : (requestBaseUrl + (config.url || ''))