| | |
| | | manualNavigate: false // 标记是否是通过编程方式导航的 |
| | | }); |
| | | |
| | | // 获取选择的项目 - 优先使用URL参数 |
| | | // 从URL参数获取项目信息 |
| | | if (options && options.project) { |
| | | const project = options.project; |
| | | const projectName = project === 'JYG' ? '嘉峪关项目' : |
| | | project === 'MQ' ? '民勤项目' : |
| | | project === 'TEST' ? '测试项目' : '未知项目'; |
| | | // 直接使用传入的项目名称,不再手动转换 |
| | | const projectName = options.projectName || '默认项目'; |
| | | |
| | | console.log(`从URL参数获取项目信息: ${project} (${projectName})`); |
| | | |
| | |
| | | console.error('设置baseUrl失败:', e); |
| | | } |
| | | } |
| | | |
| | | // 保存项目选择到本地存储,确保项目信息一致 |
| | | storage.setItem('selectedProject', project) |
| | | .then(() => console.log('成功保存项目选择到存储')) |
| | | .catch(err => console.error('保存项目选择到存储失败:', err)); |
| | | } else { |
| | | // 从本地存储获取已选择的项目 |
| | | storage.getItemSafe('selectedProject').then(project => { |
| | | if (project) { |
| | | const projectName = project === 'JYG' ? '嘉峪关项目' : |
| | | project === 'MQ' ? '民勤项目' : |
| | | project === 'TEST' ? '测试项目' : '未知项目'; |
| | | console.log(`从存储获取项目信息: ${project} (${projectName})`); |
| | | |
| | | this.setData({ |
| | | selectedProject: project, |
| | | projectName: projectName |
| | | }); |
| | | } else { |
| | | console.log('未找到已选择的项目,使用默认项目'); |
| | | } |
| | | }).catch(err => { |
| | | console.error('获取已选择项目失败:', err); |
| | | }); |
| | | console.log('未从URL获取到项目信息,使用默认值'); |
| | | } |
| | | }, |
| | | |
| | |
| | | console.log('检测到有上一页,使用navigateBack返回'); |
| | | wx.navigateBack({ |
| | | delta: 1, |
| | | success: () => console.log('navigateBack成功'), |
| | | fail: (err) => { |
| | | console.error('navigateBack失败:', err); |
| | | // 如果navigateBack失败,尝试reLaunch |
| | | this.backupReturnToHome(); |
| | | success: () => { |
| | | // 通过eventChannel向上一个页面传递数据 |
| | | const eventChannel = pages[pages.length - 2].getOpenerEventChannel(); |
| | | if (eventChannel && eventChannel.emit) { |
| | | eventChannel.emit('fromLogin', { fromLogin: true }); |
| | | } |
| | | console.log('已成功返回到上一页面'); |
| | | } |
| | | }); |
| | | } else { |
| | |
| | | } |
| | | }, |
| | | |
| | | // 备用的返回首页方法 |
| | | backupReturnToHome() { |
| | | console.log('使用备用方法返回首页'); |
| | | |
| | | |
| | | // 尝试使用switchTab(如果首页在tabBar中) |
| | | const useReLaunch = () => { |
| | | console.log('使用reLaunch返回首页'); |
| | | wx.reLaunch({ |
| | | url: '/pages/home/home?fromLogin=true', |
| | | success: () => console.log('reLaunch成功返回首页'), |
| | | fail: (err) => { |
| | | console.error('reLaunch返回首页失败:', err); |
| | | // 最后的备用方案:使用redirectTo |
| | | setTimeout(() => { |
| | | console.log('延迟使用redirectTo尝试返回首页'); |
| | | wx.redirectTo({ |
| | | url: '/pages/home/home?fromLogin=true', |
| | | success: () => console.log('redirectTo成功返回首页'), |
| | | fail: (err) => console.error('所有返回方法都失败:', err) |
| | | }); |
| | | }, 100); |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | // 先尝试使用switchTab(某些版本可能将首页设置为tabBar) |
| | | wx.switchTab({ |
| | | url: '/pages/home/home', |
| | | success: () => console.log('switchTab成功返回首页'), |
| | | fail: (err) => { |
| | | console.log('switchTab失败(可能首页不在tabBar中):', err); |
| | | useReLaunch(); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | |
| | | /** |
| | | * 页面相关事件处理函数--监听用户下拉动作 |
| | |
| | | getApp().globalData.clientId = String(data.content.clientId); |
| | | storage.setItem("clientId", String(data.content.clientId)); |
| | | |
| | | // 设置当前项目的tag |
| | | const tag = this.data.selectedProject === 'JYG' ? 'ym' : |
| | | this.data.selectedProject === 'MQ' ? 'mq' : |
| | | this.data.selectedProject === 'TEST' ? 'test' : 'unknown'; |
| | | getApp().globalData.tag = tag; |
| | | |
| | | // 保存用户信息 |
| | | const userInfo = { |
| | |
| | | clientId: String(data.content.clientId), |
| | | phone: this.data.phone, |
| | | token: data.content.token || '', |
| | | project: this.data.selectedProject, |
| | | tag: tag |
| | | project: this.data.selectedProject |
| | | }; |
| | | |
| | | // 保存到全局变量 |
| | |
| | | // 保存userData信息,包含sessionId和tag |
| | | const userData = JSON.stringify({ |
| | | sessionId: String(data.content.sessionId), |
| | | tag: tag |
| | | tag: this.data.selectedProject === 'JYG' ? 'ym' : (this.data.selectedProject === 'MQ' ? 'mq' : 'ym'), |
| | | project: this.data.selectedProject, |
| | | phone: this.data.phone, |
| | | clientName: data.content.clientName || '', |
| | | clientId: String(data.content.clientId) |
| | | }); |
| | | return storage.setItem("userData", userData); |
| | | }) |
| | |
| | | success: () => { |
| | | // 延迟跳转,确保Toast显示完成 |
| | | setTimeout(() => { |
| | | console.log('登录成功,准备跳转到首页'); |
| | | // 跳转到首页,使用reLaunch而不是redirectTo |
| | | wx.redirectTo({ |
| | | url: '/pages/home/home' |
| | | }); |
| | | console.log('登录成功,准备返回到首页'); |
| | | |
| | | // 获取当前页面栈 |
| | | const pages = getCurrentPages(); |
| | | |
| | | // 检查是否有上一个页面可返回 |
| | | if (pages.length > 1) { |
| | | // 应用一个技巧,先设置前一个页面的参数 |
| | | try { |
| | | if (pages.length > 1) { |
| | | const prevPage = pages[pages.length - 2]; |
| | | if (prevPage && prevPage.options) { |
| | | // 设置 fromLogin 参数 |
| | | prevPage.options.fromLogin = 'true'; |
| | | |
| | | // 如果页面有onLoad方法,则可能需要传递参数 |
| | | if (typeof prevPage.onLoad === 'function') { |
| | | let newOptions = {...prevPage.options}; |
| | | newOptions.fromLogin = 'true'; |
| | | prevPage.onLoad(newOptions); |
| | | } |
| | | } |
| | | } |
| | | } catch (e) { |
| | | console.error('设置前一页参数失败:', e); |
| | | } |
| | | |
| | | // 返回到上一个页面 |
| | | wx.navigateBack({ |
| | | delta: 1, |
| | | success: () => { |
| | | console.log('已成功返回到上一页面'); |
| | | }, |
| | | fail: (err) => { |
| | | console.error('navigateBack失败:', err); |
| | | // 如果返回失败,使用重定向 |
| | | wx.redirectTo({ |
| | | url: '/pages/home/home?fromLogin=true' |
| | | }); |
| | | } |
| | | }); |
| | | } else { |
| | | // 如果没有上一个页面,则重新打开home页面 |
| | | wx.redirectTo({ |
| | | url: '/pages/home/home?fromLogin=true' |
| | | }); |
| | | } |
| | | }, 1500); |
| | | } |
| | | }); |