ai页面岗位跳转bug修复

This commit is contained in:
FengHui
2026-05-23 19:29:22 +08:00
parent 6b4c4a7bd5
commit 71d0836e1f
14 changed files with 67 additions and 84 deletions

View File

@@ -13,7 +13,7 @@
v-for="(card, index) in localJobCardsList"
:key="index"
class="custom-card"
@tap="navigateToJobDetail(card.jobId)"
@tap="navigateToJobDetail(card.encryptJobId)"
>
<view class="card-title">
<text class="title-text">{{ card.jobTitle }}</text>
@@ -76,26 +76,24 @@ watch(() => renderedHtml.value, (newVal) => {
});
// 微信小程序端导航到岗位详情页面
const navigateToJobDetail = (jobId) => {
console.log('navigateToJobDetail called with jobId:', jobId);
if (jobId && jobId !== 'undefined' && jobId !== 'null') {
// 跳转到岗位详情页面
const navigateToJobDetail = (encryptJobId) => {
console.log('navigateToJobDetail called with encryptJobId:', encryptJobId);
if (encryptJobId && encryptJobId !== 'undefined' && encryptJobId !== 'null') {
let url = `/packageA/pages/post/post?encryptJobId=${encryptJobId}`
uni.navigateTo({
url: `/packageA/pages/post/post?jobId=${jobId}`,
url: url,
success: (res) => {
console.log('navigateTo success:', res);
},
fail: (err) => {
console.error('navigateTo failed:', err);
// 如果navigateTo失败尝试redirectTo
uni.redirectTo({
url: `/packageA/pages/post/post?jobId=${jobId}`,
url: url,
success: (res2) => {
console.log('redirectTo success:', res2);
},
fail: (err2) => {
console.error('redirectTo also failed:', err2);
// 如果还是失败,显示错误提示
uni.showToast({
title: '跳转失败,请稍后重试',
icon: 'none'
@@ -105,7 +103,7 @@ const navigateToJobDetail = (jobId) => {
}
});
} else {
console.error('Invalid jobId:', jobId);
console.error('Invalid encryptJobId:', encryptJobId);
uni.showToast({
title: '岗位信息不完整',
icon: 'none'
@@ -134,36 +132,33 @@ const handleH5Click = (e) => {
console.log('Found elements:', { cardElement, moreElement });
if (cardElement) {
// 尝试多种方式获取jobId
let jobId = cardElement.getAttribute('data-job-id');
console.log('Found custom-card, data-job-id attribute:', jobId);
let encryptJobId = cardElement.getAttribute('data-encrypt-job-id');
console.log('Found custom-card, data-encrypt-job-id attribute:', encryptJobId);
// 如果data-job-id为空尝试从onclick事件中提取jobId
if (!jobId) {
if (!encryptJobId) {
const onclick = cardElement.getAttribute('onclick');
if (onclick) {
const match = onclick.match(/jobId=(\w+)/);
const match = onclick.match(/encryptJobId=([^'"]+)/);
if (match && match[1]) {
jobId = match[1];
console.log('Extracted jobId from onclick:', jobId);
encryptJobId = match[1];
console.log('Extracted encryptJobId from onclick:', encryptJobId);
}
}
}
if (jobId) {
console.log('Final jobId for navigation:', jobId);
if (encryptJobId) {
console.log('Final encryptJobId for navigation:', encryptJobId);
try {
// 直接使用uni.navigateTo避免navTo函数的潜在问题
let url = `/packageA/pages/post/post?encryptJobId=${encryptJobId}`
uni.navigateTo({
url: `/packageA/pages/post/post?jobId=${jobId}`,
url: url,
success: (res) => {
console.log('navigateTo success:', res);
},
fail: (err) => {
console.error('navigateTo failed:', err);
// 如果navigateTo失败尝试redirectTo
uni.redirectTo({
url: `/packageA/pages/post/post?jobId=${jobId}`,
url: url,
success: (res2) => {
console.log('redirectTo success:', res2);
},
@@ -178,39 +173,36 @@ const handleH5Click = (e) => {
}
return;
} else {
console.error('No jobId found for custom-card');
console.error('No encryptJobId found for custom-card');
}
} else if (moreElement) {
// 尝试多种方式获取jobId
let jobId = moreElement.getAttribute('data-job-id');
console.log('Found custom-more, data-job-id attribute:', jobId);
let encryptJobId = moreElement.getAttribute('data-encrypt-job-id');
console.log('Found custom-more, data-encrypt-job-id attribute:', encryptJobId);
// 如果data-job-id为空尝试从onclick事件中提取jobId
if (!jobId) {
if (!encryptJobId) {
const onclick = moreElement.getAttribute('onclick');
if (onclick) {
const match = onclick.match(/jobId=(\w+)/);
const match = onclick.match(/encryptJobId=([^'"]+)/);
if (match && match[1]) {
jobId = match[1];
console.log('Extracted jobId from onclick:', jobId);
encryptJobId = match[1];
console.log('Extracted encryptJobId from onclick:', encryptJobId);
}
}
}
if (jobId) {
console.log('Final jobId for more jobs:', jobId);
if (encryptJobId) {
console.log('Final encryptJobId for more jobs:', encryptJobId);
try {
// 直接使用uni.navigateTo避免navTo函数的潜在问题
let url = `/packageA/pages/moreJobs/moreJobs?encryptJobId=${encryptJobId}`
uni.navigateTo({
url: `/packageA/pages/moreJobs/moreJobs?jobId=${jobId}`,
url: url,
success: (res) => {
console.log('navigateTo success:', res);
},
fail: (err) => {
console.error('navigateTo failed:', err);
// 如果navigateTo失败尝试redirectTo
uni.redirectTo({
url: `/packageA/pages/moreJobs/moreJobs?jobId=${jobId}`,
url: url,
success: (res2) => {
console.log('redirectTo success:', res2);
},