| | |
| | | showProjectDialog: false, |
| | | selectedProject: '', |
| | | avatarTapCount: 0, |
| | | isFromLogin: false |
| | | isFromLogin: false, |
| | | showTipDialog:'' |
| | | }, |
| | | |
| | | openValve: function (e) { |
| | |
| | | */ |
| | | onLoad(options) { |
| | | console.log('home页面onLoad开始,参数:', options); |
| | | |
| | | //当开阀成功后调用刷新 |
| | | if (options.param === "1" || options.param === "2") { |
| | | this.setData({ |
| | | options: options |
| | | }) |
| | | } |
| | | // 检查是否从登录页面返回 |
| | | let fromLogin = false; |
| | | |
| | |
| | | // 根据项目设置对应的tag |
| | | if (project === 'JYG') { |
| | | getApp().globalData.tag = 'ym'; // 嘉峪关项目对应tag为ym |
| | | this.setData({ |
| | | userName: "嘉峪关项目" |
| | | }); |
| | | } else if (project === 'MQ') { |
| | | getApp().globalData.tag = 'mq'; // 民勤项目对应tag为mq |
| | | this.setData({ |
| | | userName: "民勤项目" |
| | | }); |
| | | // 加载民勤项目持久化参数 |
| | | return storage.getItemSafe('MQ_params') |
| | | .then(params => { |
| | | if (params) { |
| | | getApp().globalData.operator = params.operator; |
| | | getApp().globalData.clientId = params.clientId; |
| | | getApp().globalData.isLoggedIn = params.isLoggedIn; |
| | | getApp().globalData.sessionId = params.sessionId; |
| | | } |
| | | return Promise.resolve(); |
| | | }); |
| | | } else if (project === 'TEST') { |
| | | getApp().globalData.tag = 'ym'; // 测试项目对应tag为test |
| | | this.setData({ |
| | | userName: "测试项目" |
| | | }); |
| | | // 加载测试项目持久化参数 |
| | | return storage.getItemSafe('TEST_params') |
| | | .then(params => { |
| | | if (params) { |
| | | getApp().globalData.operator = params.operator; |
| | | getApp().globalData.clientId = params.clientId; |
| | | getApp().globalData.isLoggedIn = params.isLoggedIn; |
| | | getApp().globalData.sessionId = params.sessionId; |
| | | getApp().globalData.vcId = params.vcId; |
| | | } |
| | | return Promise.resolve(); |
| | | }); |
| | | } |
| | | |
| | | console.log('加载已保存的项目:', project, '域名:', baseUrl, 'tag:', getApp().globalData.tag); |
| | | |
| | | // 检查sessionId是否存在 |
| | | return storage.getItemSafe('sessionId'); |
| | | // 继续初始化页面 |
| | | this.continueInitPage(options); |
| | | } else { |
| | | // 首次进入,显示项目选择弹窗 |
| | | this.setData({ |
| | |
| | | }); // 终止后续处理 |
| | | } |
| | | }) |
| | | .then(sessionId => { |
| | | if (sessionId) { |
| | | // 如果sessionId存在,设置全局登录状态 |
| | | getApp().globalData.sessionId = sessionId; |
| | | getApp().globalData.isLoggedIn = true; |
| | | |
| | | // 尝试获取clientId |
| | | return storage.getItemSafe('clientId'); |
| | | } else { |
| | | return Promise.reject({ |
| | | type: 'session_not_found', |
| | | message: '未找到sessionId' |
| | | }); |
| | | } |
| | | }) |
| | | .then(clientId => { |
| | | if (clientId) { |
| | | getApp().globalData.clientId = clientId; |
| | | } |
| | | |
| | | .then(() => { |
| | | // 继续初始化页面 |
| | | this.continueInitPage(options); |
| | | }) |
| | |
| | | return; |
| | | } |
| | | |
| | | // 处理未找到sessionId的情况 |
| | | if (error.type === 'session_not_found' && this.data.selectedProject) { |
| | | // 检查是否已从登录页返回 |
| | | const isReturning = this.getFromLogin(); |
| | | console.log('未找到sessionId,是否从登录页返回:', isReturning); |
| | | |
| | | // 如果已经是从登录页返回的,不要再跳回去 |
| | | if (isReturning) { |
| | | console.log('已经从登录页返回,不再跳转回去'); |
| | | this.continueInitPage(options); |
| | | return; |
| | | } |
| | | |
| | | console.log('未找到sessionId,跳转到登录页'); |
| | | wx.redirectTo({ |
| | | url: `/pages/login/login?project=${this.data.selectedProject}` |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | // 其他未知错误,尝试继续初始化页面 |
| | | console.warn('未知错误,尝试继续初始化页面:', error); |
| | | this.continueInitPage(options); |
| | |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | */ |
| | | onReady() { |
| | | |
| | | if (this.data.options.param === "1") { |
| | | this.setData({ |
| | | showTipDialog: true, |
| | | tipData: "开阀命令下发成功,因开阀需要时间,约20-60秒后可刷新快速关阀列表查看执行结果。" |
| | | }) |
| | | setTimeout(() => { |
| | | this.getOpenList(); |
| | | }, 20000) |
| | | |
| | | } else if (this.data.options.param === "2") { |
| | | this.setData({ |
| | | showTipDialog: true, |
| | | tipData: "预约开阀命令下发成功,当到达预约时间并且成功开阀后快速关阀列表会显示未关阀记录" |
| | | }) |
| | | this.getOpenList(); |
| | | } |
| | | }, |
| | | |
| | | /** |
| | |
| | | // 获取当前已选项目和新选择的项目 |
| | | const currentProject = getApp().globalData.selectedProject; |
| | | const newProject = this.data.selectedProject; |
| | | const projectName = newProject === 'JYG' ? '嘉峪关项目' : '民勤项目'; |
| | | const projectName = newProject === 'JYG' ? '嘉峪关项目' : |
| | | newProject === 'MQ' ? '民勤项目' : |
| | | newProject === 'TEST' ? '测试项目' : '未知项目'; |
| | | |
| | | // 检查是否切换了项目(如果当前项目不同于新选择的项目) |
| | | const isProjectChanged = currentProject && currentProject !== newProject; |
| | |
| | | getApp().globalData.baseUrl = baseUrl; |
| | | getApp().globalData.selectedProject = newProject; |
| | | |
| | | // 根据项目设置对应的tag |
| | | // 根据项目设置对应的tag和clientId |
| | | if (newProject === 'JYG') { |
| | | getApp().globalData.tag = 'ym'; // 嘉峪关项目对应tag为ym |
| | | this.setData({ |
| | | userName: "嘉峪关项目" |
| | | }); |
| | | } else if (newProject === 'MQ') { |
| | | getApp().globalData.tag = 'mq'; // 民勤项目对应tag为mq |
| | | getApp().globalData.operator = '2025030517095000006'; |
| | | getApp().globalData.clientId = '2025030517095000006'; |
| | | getApp().globalData.isLoggedIn = true; |
| | | getApp().globalData.sessionId = '2025030517095000006'; |
| | | this.setData({ |
| | | userName: "民勤项目" |
| | | }); |
| | | // 持久化存储民勤项目参数 |
| | | storage.setItem('MQ_params', { |
| | | operator: '2025030517095000006', |
| | | clientId: '2025030517095000006', |
| | | isLoggedIn: true, |
| | | sessionId: '2025030517095000006' |
| | | }); |
| | | } else if (newProject === 'TEST') { |
| | | getApp().globalData.tag = 'ym'; // 测试项目对应tag为test |
| | | getApp().globalData.operator = '2025032411245000006'; |
| | | getApp().globalData.clientId = '2025032411245000006'; |
| | | getApp().globalData.isLoggedIn = true; |
| | | getApp().globalData.sessionId = '2025032411245000006'; |
| | | getApp().globalData.vcId = '2024122617295800009'; |
| | | this.setData({ |
| | | userName: "测试项目" |
| | | }); |
| | | // 持久化存储测试项目参数 |
| | | storage.setItem('TEST_params', { |
| | | operator: '2025032411245000006', |
| | | clientId: '2025032411245000006', |
| | | isLoggedIn: true, |
| | | sessionId: '2025032411245000006', |
| | | vcId: '2024122617295800009' |
| | | }); |
| | | } |
| | | |
| | | console.log('已切换到项目:', projectName, '域名:', baseUrl, 'tag:', getApp().globalData.tag); |
| | |
| | | |
| | | // 显示切换成功提示 |
| | | wx.showToast({ |
| | | title: isProjectChanged ? `已切换至${projectName},请重新登录` : `已选择${projectName}`, |
| | | title: `已选择${projectName}`, |
| | | icon: 'success', |
| | | duration: 2000 |
| | | }); |
| | | |
| | | // 如果切换了项目,延迟跳转到登录页面 |
| | | if (isProjectChanged) { |
| | | setTimeout(() => { |
| | | console.log('项目已切换,正在跳转到登录页面'); |
| | | wx.redirectTo({ |
| | | url: `/pages/login/login?project=${newProject}`, |
| | | success: () => console.log('成功跳转到登录页'), |
| | | fail: (err) => console.error('跳转到登录页失败:', err) |
| | | }); |
| | | }, 2000); |
| | | } |
| | | // 直接初始化数据 |
| | | setTimeout(() => { |
| | | console.log('项目已切换,正在初始化数据'); |
| | | this.initData(); |
| | | }, 1000); |
| | | }).catch(err => { |
| | | console.error('保存项目选择失败:', err); |
| | | wx.showToast({ |