| | |
| | | const { |
| | | post |
| | | } = require('../../api/request.js'); |
| | | const { PROJECT_CONFIG } = require('../../utils/projectConfig.js'); |
| | | const { setBaseUrl } = require('../../api/config.js'); |
| | | |
| | | Page({ |
| | | |
| | |
| | | }, |
| | | |
| | | /** |
| | | * 跳转到账号密码登录页面 |
| | | */ |
| | | goToAccountLogin: function() { |
| | | // 获取当前项目信息,传递给accountLogin页面 |
| | | const { selectedProject, projectName } = this.data; |
| | | |
| | | // 跳转到账号密码登录页面 |
| | | wx.navigateTo({ |
| | | url: `/pages/accountLogin/accountLogin?project=${selectedProject}&projectName=${projectName}` |
| | | }); |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad: function (options) { |
| | |
| | | |
| | | // 更新 BASEURL |
| | | try { |
| | | const { PROJECT_URLS } = require('../../api/config.js'); |
| | | getApp().globalData.baseUrl = PROJECT_URLS[project]; |
| | | // 使用导入的setBaseUrl函数设置baseUrl |
| | | setBaseUrl(project); |
| | | |
| | | // 从PROJECT_CONFIG中获取serverUrl |
| | | const serverUrl = PROJECT_CONFIG[project]?.serverUrl; |
| | | if (serverUrl) { |
| | | getApp().globalData.baseUrl = serverUrl; |
| | | console.log('设置baseUrl成功:', serverUrl); |
| | | } |
| | | } catch (e) { |
| | | console.error('设置baseUrl失败:', e); |
| | | } |
| | | } |
| | | |
| | | // 检查项目配置的登录方式是否与当前页面匹配 |
| | | const projectConfig = PROJECT_CONFIG[project]; |
| | | if (projectConfig && projectConfig.loginType === 'account') { |
| | | console.log(`当前项目配置的登录方式为account,自动跳转到账号密码登录页面`); |
| | | |
| | | // 设置手动导航标记,避免触发返回逻辑 |
| | | this.setData({ manualNavigate: true }); |
| | | |
| | | // 延迟执行跳转,确保页面完全加载 |
| | | setTimeout(() => { |
| | | wx.redirectTo({ |
| | | url: `/pages/accountLogin/accountLogin?project=${project}&projectName=${projectName}` |
| | | }); |
| | | }, 100); |
| | | } |
| | | } else { |
| | | 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 { |
| | |
| | | // 保存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); |
| | | } |
| | | }); |
| | | }, |