| | |
| | | lastIntakeName: "", |
| | | showProjectDialog: false, |
| | | selectedProject: '', |
| | | tempSelectedProject: '', // 添加临时选择变量,用于保存用户在对话框中选择但尚未确认的项目 |
| | | avatarTapCount: 0, |
| | | isFromLogin: false, |
| | | showTipDialog: '', |
| | |
| | | |
| | | openValve: function (e) { |
| | | const app = getApp(); |
| | | if (app.globalData.isLoggedIn) { |
| | | wx.navigateTo({ |
| | | url: '/pages/waterIntake/waterIntake', |
| | | }) |
| | | } else { |
| | | wx.showToast({ |
| | | title: '请先登录', |
| | | icon: 'error' |
| | | }) |
| | | // 检查当前项目是否需要登录 |
| | | const currentProject = app.globalData.selectedProject; |
| | | if (currentProject && PROJECT_CONFIG[currentProject] && PROJECT_CONFIG[currentProject].needLogin) { |
| | | // 需要登录的项目,检查是否已登录 |
| | | if (!app.globalData.isLoggedIn) { |
| | | // 未登录,显示提示并阻止操作 |
| | | wx.showToast({ |
| | | title: '请先登录', |
| | | icon: 'error', |
| | | duration: 2000 |
| | | }); |
| | | |
| | | // 获取项目配置 |
| | | const projectConfig = PROJECT_CONFIG[currentProject]; |
| | | if (projectConfig) { |
| | | // 询问用户是否前往登录 |
| | | wx.showModal({ |
| | | title: '提示', |
| | | content: '您需要登录后才能使用开阀功能,是否立即登录?', |
| | | confirmText: '前往登录', |
| | | cancelText: '取消', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | // 用户点击确认,直接调用wxLogin方法 |
| | | this.wxLogin(); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | return; |
| | | } |
| | | } |
| | | |
| | | // 已登录或不需要登录的项目,执行开阀操作 |
| | | wx.navigateTo({ |
| | | url: '/pages/waterIntake/waterIntake', |
| | | }) |
| | | }, |
| | | |
| | | // calculateScrollViewHeight: function () { |
| | | // wx.createSelectorQuery().selectAll('.list-item').boundingClientRect((rects) => { |
| | | // let totalHeight = rects.reduce((sum, rect) => sum + rect.height, 0); |
| | |
| | | }); |
| | | } |
| | | |
| | | // 尝试获取eventChannel,用于监听登录页面发回的消息 |
| | | try { |
| | | const eventChannel = currentPage.getOpenerEventChannel(); |
| | | if (eventChannel && eventChannel.on) { |
| | | eventChannel.on('fromLogin', (data) => { |
| | | console.log('onShow: 接收到登录页面返回的消息', data); |
| | | if (data && data.fromLogin) { |
| | | fromLogin = true; |
| | | this.setData({ |
| | | isFromLogin: true |
| | | }); |
| | | |
| | | // 登录成功后刷新数据 |
| | | console.log('登录成功后刷新数据'); |
| | | this.initData(); |
| | | } |
| | | }); |
| | | } |
| | | } catch (e) { |
| | | console.error('获取eventChannel失败:', e); |
| | | } |
| | | |
| | | // 初始化处理 |
| | | if (fromLogin || this.data.isFromLogin) { |
| | | console.log('onShow: 从登录页返回,不进行登录检查'); |
| | | |
| | | // 如果是从登录页返回,重新加载数据 |
| | | this.initData(); |
| | | } else { |
| | | console.log('onShow: 正常显示页面'); |
| | | // 延迟检查登录状态,确保能正确识别临时标记 |
| | |
| | | }, |
| | | openValveList() { |
| | | const app = getApp(); |
| | | if (app.globalData.isLoggedIn) { |
| | | wx.navigateTo({ |
| | | url: '/pages/valveList/valveList', |
| | | }) |
| | | } else { |
| | | wx.showToast({ |
| | | title: '请先登录', |
| | | icon: 'error' |
| | | }) |
| | | // 检查当前项目是否需要登录 |
| | | const currentProject = app.globalData.selectedProject; |
| | | if (currentProject && PROJECT_CONFIG[currentProject] && PROJECT_CONFIG[currentProject].needLogin) { |
| | | // 需要登录的项目,检查是否已登录 |
| | | if (!app.globalData.isLoggedIn) { |
| | | // 未登录,显示提示并阻止操作 |
| | | wx.showToast({ |
| | | title: '请先登录', |
| | | icon: 'error', |
| | | duration: 2000 |
| | | }); |
| | | |
| | | // 获取项目配置 |
| | | const projectConfig = PROJECT_CONFIG[currentProject]; |
| | | if (projectConfig) { |
| | | // 询问用户是否前往登录 |
| | | wx.showModal({ |
| | | title: '提示', |
| | | content: '您需要登录后才能查看开关阀记录,是否立即登录?', |
| | | confirmText: '前往登录', |
| | | cancelText: '取消', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | // 用户点击确认,直接调用wxLogin方法 |
| | | this.wxLogin(); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | return; |
| | | } |
| | | } |
| | | |
| | | // 已登录或不需要登录的项目,执行查看记录操作 |
| | | wx.navigateTo({ |
| | | url: '/pages/valveList/valveList', |
| | | }) |
| | | }, |
| | | feedBack() { |
| | | wx.showToast({ |
| | |
| | | }); |
| | | } |
| | | }, |
| | | //轮灌 |
| | | irrigation() { |
| | | if (getApp().globalData.isLoggedIn) { |
| | | wx.navigateTo({ |
| | | url: '/pages/irrigation/irrigation', |
| | | }) |
| | | } else { |
| | | wx.showToast({ |
| | | title: '请先登录', |
| | | icon: 'error' |
| | | }) |
| | | const app = getApp(); |
| | | // 检查当前项目是否需要登录 |
| | | const currentProject = app.globalData.selectedProject; |
| | | if (currentProject && PROJECT_CONFIG[currentProject] && PROJECT_CONFIG[currentProject].needLogin) { |
| | | // 需要登录的项目,检查是否已登录 |
| | | if (!app.globalData.isLoggedIn) { |
| | | // 未登录,显示提示并阻止操作 |
| | | wx.showToast({ |
| | | title: '请先登录', |
| | | icon: 'error', |
| | | duration: 2000 |
| | | }); |
| | | |
| | | // 获取项目配置 |
| | | const projectConfig = PROJECT_CONFIG[currentProject]; |
| | | if (projectConfig) { |
| | | // 询问用户是否前往登录 |
| | | wx.showModal({ |
| | | title: '提示', |
| | | content: '您需要登录后才能使用轮灌功能,是否立即登录?', |
| | | confirmText: '前往登录', |
| | | cancelText: '取消', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | // 用户点击确认,直接调用wxLogin方法 |
| | | this.wxLogin(); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | return; |
| | | } |
| | | } |
| | | |
| | | // 已登录或不需要登录的项目,执行轮灌操作 |
| | | wx.navigateTo({ |
| | | url: '/pages/irrigation/irrigation', |
| | | }) |
| | | }, |
| | | handleChange(e) { |
| | | const item = e.currentTarget.dataset.item; |
| | |
| | | }, |
| | | //根据session获取农户信息 |
| | | getUserDataBySession() { |
| | | // 先检查是否从登录页返回 |
| | | if (this.getFromLogin()) { |
| | | console.log('getUserDataBySession: 检测到从登录页返回的标记,不执行API请求'); |
| | | return; |
| | | } |
| | | |
| | | const app = getApp(); |
| | | |
| | | // 检查是否有sessionId |
| | |
| | | * 扫码开阀 |
| | | */ |
| | | scenCode() { |
| | | const app = getApp(); |
| | | // 检查当前项目是否需要登录 |
| | | const currentProject = app.globalData.selectedProject; |
| | | if (currentProject && PROJECT_CONFIG[currentProject] && PROJECT_CONFIG[currentProject].needLogin) { |
| | | // 需要登录的项目,检查是否已登录 |
| | | if (!app.globalData.isLoggedIn) { |
| | | // 未登录,显示提示并阻止扫码 |
| | | wx.showToast({ |
| | | title: '请先登录', |
| | | icon: 'error', |
| | | duration: 2000 |
| | | }); |
| | | |
| | | // 获取项目配置 |
| | | const projectConfig = PROJECT_CONFIG[currentProject]; |
| | | if (projectConfig) { |
| | | // 询问用户是否前往登录 |
| | | wx.showModal({ |
| | | title: '提示', |
| | | content: '您需要登录后才能使用扫码开阀功能,是否立即登录?', |
| | | confirmText: '前往登录', |
| | | cancelText: '取消', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | // 用户点击确认,直接调用wxLogin方法 |
| | | this.wxLogin(); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | return; |
| | | } |
| | | } |
| | | |
| | | // 已登录或不需要登录的项目,执行扫码操作 |
| | | const that = this; |
| | | wx.scanCode({ |
| | | success(res) { |
| | |
| | | |
| | | // 首先检查是否从登录页返回 |
| | | if (this.getFromLogin()) { |
| | | console.log('initData: 检测到从登录页返回的标记,仅获取基本数据'); |
| | | console.log('initData: 检测到从登录页返回的标记,执行完整的用户数据获取'); |
| | | |
| | | // 即使从登录页返回,也尝试获取开阀列表以显示基本UI |
| | | // 但先检查是否有客户端ID可用 |
| | | if (!app.globalData.clientId) { |
| | | console.log('initData: 从登录页返回且无clientId,尝试从存储恢复'); |
| | | // 尝试从存储恢复clientId |
| | | storage.getItemSafe('clientId') |
| | | .then(clientId => { |
| | | if (clientId) { |
| | | console.log('initData: 从存储恢复clientId成功:', clientId); |
| | | app.globalData.clientId = clientId; |
| | | this.getOpenList(); |
| | | } else { |
| | | console.log('initData: 无法恢复clientId,显示空列表'); |
| | | this.setData({ |
| | | listData: [] |
| | | }); |
| | | } |
| | | }) |
| | | .catch(err => { |
| | | console.error('initData: 恢复clientId失败:', err); |
| | | this.setData({ |
| | | listData: [] |
| | | }); |
| | | }); |
| | | } else { |
| | | // 检查是否有sessionId和clientId,优先使用全局变量 |
| | | if (app.globalData.sessionId && app.globalData.clientId) { |
| | | console.log('initData: 全局变量中有登录信息,直接获取用户数据和开阀列表'); |
| | | this.getUserDataBySession(); |
| | | this.getOpenList(); |
| | | return; |
| | | } |
| | | |
| | | // 如果没有全局变量,尝试从本地存储中恢复 |
| | | Promise.all([ |
| | | storage.getItemSafe('userData'), |
| | | storage.getItemSafe('sessionId'), |
| | | storage.getItemSafe('clientId') |
| | | ]).then(([userData, sessionId, clientId]) => { |
| | | if (userData) { |
| | | try { |
| | | // 解析userData并设置全局变量 |
| | | let jsonObj = JSON.parse(userData); |
| | | app.globalData.sessionId = jsonObj.sessionId; |
| | | app.globalData.clientId = jsonObj.clientId || clientId; |
| | | app.globalData.tag = jsonObj.tag; |
| | | app.globalData.isLoggedIn = true; |
| | | |
| | | // 直接从userData设置用户信息 |
| | | if (jsonObj.clientName && jsonObj.phone) { |
| | | this.setData({ |
| | | userName: jsonObj.clientName, |
| | | userPhone: this.maskPhoneNumber(jsonObj.phone) |
| | | }); |
| | | } else { |
| | | // 如果userData中没有用户信息,调用接口获取 |
| | | this.getUserDataBySession(); |
| | | } |
| | | |
| | | console.log("userData已加载:", userData); |
| | | } catch (e) { |
| | | console.error('userData解析失败:', e); |
| | | if (sessionId && clientId) { |
| | | app.globalData.sessionId = sessionId; |
| | | app.globalData.clientId = clientId; |
| | | app.globalData.isLoggedIn = true; |
| | | this.getUserDataBySession(); |
| | | } |
| | | } |
| | | } else if (sessionId && clientId) { |
| | | // 如果没有userData但有session和client ID |
| | | app.globalData.sessionId = sessionId; |
| | | app.globalData.clientId = clientId; |
| | | app.globalData.isLoggedIn = true; |
| | | this.getUserDataBySession(); |
| | | } |
| | | |
| | | // 无论如何都尝试获取开阀列表 |
| | | this.getOpenList(); |
| | | }).catch(err => { |
| | | console.error('恢复登录状态失败:', err); |
| | | this.getOpenList(); |
| | | }); |
| | | |
| | | return; |
| | | } |
| | | |
| | |
| | | if (this.data.avatarTapCount >= 5) { |
| | | this.setData({ |
| | | showProjectDialog: true, |
| | | avatarTapCount: 0 |
| | | avatarTapCount: 0, |
| | | tempSelectedProject: this.data.selectedProject // 初始化临时选择为当前选择 |
| | | }); |
| | | } |
| | | }, |
| | |
| | | return; |
| | | } |
| | | this.setData({ |
| | | showProjectDialog: e.detail.visible |
| | | showProjectDialog: e.detail.visible, |
| | | // 当显示对话框时,初始化临时选择为当前选择 |
| | | tempSelectedProject: e.detail.visible ? this.data.selectedProject : '' |
| | | }); |
| | | }, |
| | | |
| | | // 处理项目选择变化 |
| | | onProjectChange(event) { |
| | | console.log('选择的项目:', event.detail.value); |
| | | // 不立即设置到state,而是存储到临时变量中 |
| | | this.setData({ |
| | | selectedProject: event.detail.value |
| | | tempSelectedProject: event.detail.value |
| | | }); |
| | | }, |
| | | |
| | | // 处理项目选择确认 |
| | | handleProjectConfirm() { |
| | | console.log('开始处理项目选择确认', this.data.selectedProject, this.data.projectList); |
| | | // 从临时变量获取选择的项目 |
| | | const selectedProject = this.data.tempSelectedProject || this.data.selectedProject; |
| | | console.log('开始处理项目选择确认', selectedProject, this.data.projectList); |
| | | |
| | | if (!this.data.selectedProject) { |
| | | if (!selectedProject) { |
| | | wx.showToast({ |
| | | title: '请选择项目', |
| | | icon: 'none' |
| | |
| | | |
| | | // 获取当前已选项目和新选择的项目 |
| | | const currentProject = getApp().globalData.selectedProject; |
| | | const newProject = this.data.selectedProject; |
| | | const newProject = selectedProject; |
| | | console.log('当前项目:', currentProject, '新选择项目:', newProject); |
| | | console.log('PROJECT_CONFIG 内容:', PROJECT_CONFIG); |
| | | |
| | |
| | | cancelText: '取消', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | // 用户确认选择后,更新状态并继续处理 |
| | | this.setData({ |
| | | selectedProject: newProject |
| | | }); |
| | | // 用户确认选择,继续处理 |
| | | this.processProjectSelection(currentProject, newProject, projectConfig, isProjectChanged); |
| | | } else { |
| | | // 用户取消,不进行任何操作 |
| | | console.log('用户取消了项目选择'); |
| | | // 恢复之前的选择状态 |
| | | this.setData({ |
| | | tempSelectedProject: this.data.selectedProject |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | |
| | | } |
| | | |
| | | // 如果当前已在登录页,不再跳转 |
| | | if (currentRoute === 'pages/login/login') { |
| | | if (currentRoute === 'pages/login/login' || currentRoute === 'pages/accountLogin/accountLogin') { |
| | | console.log('当前已在登录页,不再跳转'); |
| | | return; |
| | | } |
| | |
| | | wx.setStorageSync('_attempted_login_redirect', 'true'); |
| | | } catch (e) {} |
| | | |
| | | // wx.navigateTo({ |
| | | // url: `/pages/login/login?project=${this.data.selectedProject}`, |
| | | // success: () => console.log('成功跳转到登录页'), |
| | | // fail: (err) => console.error('跳转到登录页失败:', err) |
| | | // }); |
| | | // 根据项目配置的loginType决定跳转到哪个登录页面 |
| | | // 此处不做跳转,注释掉原有代码 |
| | | // const projectInfo = PROJECT_CONFIG[currentProject]; |
| | | // const loginType = projectInfo?.loginType || 'code'; // 默认使用验证码登录 |
| | | |
| | | // if (loginType === 'account') { |
| | | // // 账号密码登录 |
| | | // wx.navigateTo({ |
| | | // url: `/pages/accountLogin/accountLogin?project=${currentProject}`, |
| | | // success: () => console.log('成功跳转到账号密码登录页'), |
| | | // fail: (err) => console.error('跳转到账号密码登录页失败:', err) |
| | | // }); |
| | | // } else { |
| | | // // 验证码登录 |
| | | // wx.navigateTo({ |
| | | // url: `/pages/login/login?project=${currentProject}`, |
| | | // success: () => console.log('成功跳转到验证码登录页'), |
| | | // fail: (err) => console.error('跳转到验证码登录页失败:', err) |
| | | // }); |
| | | // } |
| | | } |
| | | }) |
| | | .catch(err => { |
| | |
| | | return; |
| | | } |
| | | |
| | | // 出错时也跳转到登录页 |
| | | // wx.navigateTo({ |
| | | // url: `/pages/login/login?project=${this.data.selectedProject}`, |
| | | // success: () => console.log('错误后成功跳转到登录页'), |
| | | // fail: (err) => console.error('错误后跳转到登录页失败:', err) |
| | | // }); |
| | | // 出错时也跳转到登录页,根据loginType决定跳转目标 |
| | | // 此处不做跳转,注释掉原有代码 |
| | | // const projectInfo = PROJECT_CONFIG[currentProject]; |
| | | // const loginType = projectInfo?.loginType || 'code'; // 默认使用验证码登录 |
| | | |
| | | // if (loginType === 'account') { |
| | | // // 账号密码登录 |
| | | // wx.navigateTo({ |
| | | // url: `/pages/accountLogin/accountLogin?project=${currentProject}`, |
| | | // success: () => console.log('错误后成功跳转到账号密码登录页'), |
| | | // fail: (err) => console.error('错误后跳转到账号密码登录页失败:', err) |
| | | // }); |
| | | // } else { |
| | | // // 验证码登录 |
| | | // wx.navigateTo({ |
| | | // url: `/pages/login/login?project=${currentProject}`, |
| | | // success: () => console.log('错误后成功跳转到验证码登录页'), |
| | | // fail: (err) => console.error('错误后跳转到验证码登录页失败:', err) |
| | | // }); |
| | | // } |
| | | }); |
| | | }, |
| | | |
| | |
| | | wx.hideLoading(); |
| | | if (response.code === "0001") { |
| | | if (response.content.client.clientId === "") { |
| | | // 未绑定账号,跳转到登录页面并传递当前项目信息 |
| | | // 未绑定账号,根据项目配置的loginType跳转到相应的登录页面 |
| | | const projectInfo = PROJECT_CONFIG[this.data.selectedProject]; |
| | | wx.navigateTo({ |
| | | url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` |
| | | }); |
| | | const loginType = projectInfo?.loginType || 'code'; // 默认使用验证码登录 |
| | | |
| | | if (loginType === 'account') { |
| | | // 账号密码登录 |
| | | wx.navigateTo({ |
| | | url: `/pages/accountLogin/accountLogin?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` |
| | | }); |
| | | } else { |
| | | // 验证码登录 |
| | | wx.navigateTo({ |
| | | url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` |
| | | }); |
| | | } |
| | | } else { |
| | | this.setData({ |
| | | userName: response.content.client.clientName, |
| | |
| | | |
| | | } |
| | | } else if (response.code === "1003") { |
| | | // 未绑定账号,跳转到登录页面并传递当前项目信息 |
| | | // 未绑定账号,根据项目配置的loginType跳转到相应的登录页面 |
| | | const projectInfo = PROJECT_CONFIG[this.data.selectedProject]; |
| | | wx.navigateTo({ |
| | | url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` |
| | | }); |
| | | const loginType = projectInfo?.loginType || 'code'; // 默认使用验证码登录 |
| | | |
| | | if (loginType === 'account') { |
| | | // 账号密码登录 |
| | | wx.navigateTo({ |
| | | url: `/pages/accountLogin/accountLogin?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` |
| | | }); |
| | | } else { |
| | | // 验证码登录 |
| | | wx.navigateTo({ |
| | | url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` |
| | | }); |
| | | } |
| | | } else { |
| | | wx.showToast({ |
| | | title: '登录失败', |
| | |
| | | wx.hideLoading(); |
| | | console.error('登录请求失败:', error); |
| | | if(error.code==="1003"){ |
| | | // 未绑定账号,跳转到登录页面并传递当前项目信息 |
| | | // 未绑定账号,根据项目配置的loginType跳转到相应的登录页面 |
| | | const projectInfo = PROJECT_CONFIG[this.data.selectedProject]; |
| | | wx.navigateTo({ |
| | | url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` |
| | | }); |
| | | const loginType = projectInfo?.loginType || 'code'; // 默认使用验证码登录 |
| | | |
| | | if (loginType === 'account') { |
| | | // 账号密码登录 |
| | | wx.navigateTo({ |
| | | url: `/pages/accountLogin/accountLogin?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` |
| | | }); |
| | | } else { |
| | | // 验证码登录 |
| | | wx.navigateTo({ |
| | | url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` |
| | | }); |
| | | } |
| | | }else{ |
| | | wx.showToast({ |
| | | title: '登录失败,请重试', |
| | |
| | | }, |
| | | |
| | | // 切换项目 |
| | | switchProject(e) { |
| | | const project = e.currentTarget.dataset.project; |
| | | |
| | | if (config.setBaseUrl(project)) { |
| | | this.setData({ |
| | | selectedProject: project |
| | | }); |
| | | |
| | | // 保存选择到本地存储 |
| | | try { |
| | | wx.setStorageSync('selectedProject', project); |
| | | } catch (e) { |
| | | console.error('保存项目选择失败:', e); |
| | | } |
| | | |
| | | // 更新全局变量 |
| | | const app = getApp(); |
| | | if (app && app.globalData) { |
| | | app.globalData.selectedProject = project; |
| | | |
| | | // 根据项目配置设置相关参数 |
| | | const projectConfig = PROJECT_CONFIG[project]; |
| | | if (projectConfig) { |
| | | app.globalData.tag = projectConfig.tag; |
| | | if (!projectConfig.needLogin) { |
| | | app.globalData.operator = projectConfig.operatorId; |
| | | app.globalData.clientId = projectConfig.operatorId; |
| | | app.globalData.isLoggedIn = true; |
| | | app.globalData.sessionId = projectConfig.operatorId; |
| | | // 如果有vcId,也设置 |
| | | if (projectConfig.vcId) { |
| | | app.globalData.vcId = projectConfig.vcId; |
| | | } |
| | | } |
| | | switchProject() { |
| | | // 显示二次确认弹窗 |
| | | wx.showModal({ |
| | | title: '切换项目', |
| | | content: '确定要切换项目吗?切换后需要重新登录。', |
| | | confirmText: '确认切换', |
| | | confirmColor: '#1890FF', |
| | | cancelText: '取消', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | // 用户点击确认,显示项目选择弹窗 |
| | | this.setData({ |
| | | showProjectDialog: true |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 重新加载页面数据 |
| | | this.initData(); |
| | | // 添加用户点击头像或用户名登录的处理逻辑 |
| | | handleUserTap() { |
| | | const app = getApp(); |
| | | // 如果已登录,不需要跳转到登录页面 |
| | | if (app.globalData.isLoggedIn) { |
| | | return; |
| | | } |
| | | |
| | | // 检查当前项目是否需要登录 |
| | | const currentProject = app.globalData.selectedProject; |
| | | if (currentProject && PROJECT_CONFIG[currentProject]) { |
| | | const projectConfig = PROJECT_CONFIG[currentProject]; |
| | | |
| | | if (!projectConfig.needLogin) { |
| | | console.log('handleUserTap: 当前项目不需要登录:', currentProject); |
| | | // 不需要登录的项目,显示项目名称 |
| | | this.setData({ |
| | | userName: projectConfig.displayName |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | // 根据项目配置的loginType决定跳转到哪个登录页面 |
| | | const loginType = projectConfig.loginType || 'code'; // 默认使用验证码登录 |
| | | |
| | | if (loginType === 'account') { |
| | | // 账号密码登录 |
| | | wx.navigateTo({ |
| | | url: `/pages/accountLogin/accountLogin?project=${currentProject}&projectName=${projectConfig.displayName}` |
| | | }); |
| | | } else { |
| | | // 验证码登录 |
| | | wx.navigateTo({ |
| | | url: `/pages/login/login?project=${currentProject}&projectName=${projectConfig.displayName}` |
| | | }); |
| | | } |
| | | } else { |
| | | wx.showToast({ |
| | | title: '切换项目失败', |
| | | icon: 'none' |
| | | // 如果没有当前项目配置,默认跳转到验证码登录 |
| | | wx.navigateTo({ |
| | | url: '/pages/login/login' |
| | | }); |
| | | } |
| | | }, |