| | |
| | | get, |
| | | post |
| | | } = require('../../api/request.js'); |
| | | const { |
| | | PROJECT_URLS |
| | | } = require('../../api/config.js'); |
| | | const config = require('../../api/config.js'); |
| | | const { |
| | | PROJECT_CONFIG |
| | | } = require('../../utils/projectConfig.js'); |
| | | const { |
| | | ENV |
| | | } = require('../../api/env.js'); |
| | | |
| | | Page({ |
| | | |
| | |
| | | isFromLogin: false, |
| | | showTipDialog: '', |
| | | projectConfig: PROJECT_CONFIG, // 添加项目配置到data中 |
| | | showInfoDialog: false |
| | | showInfoDialog: false, |
| | | projectList: [] |
| | | }, |
| | | |
| | | openValve: function (e) { |
| | |
| | | */ |
| | | onLoad(options) { |
| | | console.log('home页面onLoad开始,参数:', options); |
| | | |
| | | // 初始化项目列表数据 |
| | | this.initProjectList(); |
| | | |
| | | //当开阀成功后调用刷新 |
| | | if (options.param === "1" || options.param === "2") { |
| | | this.setData({ |
| | |
| | | }, 100); |
| | | }, |
| | | |
| | | // 初始化项目列表数据 |
| | | initProjectList() { |
| | | // 将PROJECT_CONFIG对象转换为数组,方便在视图中遍历 |
| | | const projectList = Object.entries(PROJECT_CONFIG).map(([key, config]) => ({ |
| | | key: key, // 使用key作为项目标识(JYG、MQ等) |
| | | tag: config.tag, // 保留tag字段(原配置中已有的标识,如ym、mq等) |
| | | displayName: config.displayName, // 显示名称 |
| | | ...config // 其他配置属性 |
| | | })); |
| | | |
| | | // 获取当前已选择的项目,默认为JYG |
| | | let currentSelectedProject = 'JYG'; |
| | | |
| | | // 尝试从全局变量获取 |
| | | const app = getApp(); |
| | | if (app && app.globalData && app.globalData.selectedProject) { |
| | | currentSelectedProject = app.globalData.selectedProject; |
| | | } else { |
| | | // 尝试从本地存储获取 |
| | | try { |
| | | const savedProject = wx.getStorageSync('selectedProject'); |
| | | if (savedProject) { |
| | | currentSelectedProject = savedProject; |
| | | } |
| | | } catch (e) { |
| | | console.error('从本地存储获取项目失败:', e); |
| | | } |
| | | } |
| | | |
| | | // 设置到页面数据中 |
| | | this.setData({ |
| | | projectList, |
| | | selectedProject: currentSelectedProject |
| | | }); |
| | | |
| | | console.log('项目列表已初始化:', projectList, '当前选中项目:', currentSelectedProject); |
| | | }, |
| | | |
| | | // 新增的初始化页面辅助函数,分离出onLoad中的逻辑以便延迟执行 |
| | | initializePage(options, fromLogin) { |
| | | // 检查是否已选择项目 |
| | |
| | | }); |
| | | |
| | | // 设置 baseUrl |
| | | const baseUrl = PROJECT_URLS[project]; |
| | | getApp().globalData.baseUrl = baseUrl; |
| | | getApp().globalData.selectedProject = project; |
| | | const serverUrl = PROJECT_CONFIG[project]?.serverUrl; |
| | | if (serverUrl) { |
| | | getApp().globalData.baseUrl = serverUrl; |
| | | getApp().globalData.selectedProject = project; |
| | | console.log('设置baseUrl:', serverUrl); |
| | | } |
| | | |
| | | // 根据项目设置对应的tag |
| | | const projectConfig = PROJECT_CONFIG[project]; |
| | |
| | | const currentProject = getApp().globalData.selectedProject; |
| | | const projectConfig = PROJECT_CONFIG[currentProject]; |
| | | |
| | | // 如果当前项目配置为不需要登录,则提示用户不可解绑 |
| | | // 如果当前项目配置为不需要登录,则提示用户并打开项目选择弹窗 |
| | | if (projectConfig && !projectConfig.needLogin) { |
| | | wx.showToast({ |
| | | title: '当前用户不可解绑', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | wx.showModal({ |
| | | title: '切换项目', |
| | | content: '是否确定解绑?', |
| | | confirmText: '确认', |
| | | cancelText: '取消', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | // 显示项目选择弹窗 |
| | | this.setData({ |
| | | showProjectDialog: true |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | // 如果已登录,显示解绑确认对话框 |
| | | if (getApp().globalData.isLoggedIn) { |
| | | wx.showModal({ |
| | | title: '解绑确认', |
| | | content: '确定要解绑当前账号吗?', |
| | | content: '确定要解绑当前账号吗?解绑后将无法使用相关功能,需重新绑定。', |
| | | confirmText: '确认解绑', |
| | | confirmColor: '#e34d59', |
| | | cancelText: '取消', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | this.unBindPost() |
| | | this.unBindPost(); |
| | | } |
| | | } |
| | | }); |
| | |
| | | wx.showToast({ |
| | | title: '还未绑定', |
| | | icon: 'error' |
| | | }) |
| | | }); |
| | | } |
| | | }, |
| | | //轮灌 |
| | |
| | | |
| | | // 处理项目选择确认 |
| | | handleProjectConfirm() { |
| | | console.log('开始处理项目选择确认', this.data.selectedProject, this.data.projectList); |
| | | |
| | | if (!this.data.selectedProject) { |
| | | wx.showToast({ |
| | | title: '请选择项目', |
| | |
| | | // 获取当前已选项目和新选择的项目 |
| | | const currentProject = getApp().globalData.selectedProject; |
| | | const newProject = this.data.selectedProject; |
| | | console.log('当前项目:', currentProject, '新选择项目:', newProject); |
| | | console.log('PROJECT_CONFIG 内容:', PROJECT_CONFIG); |
| | | |
| | | const projectConfig = PROJECT_CONFIG[newProject]; |
| | | console.log('选择的项目配置:', projectConfig); |
| | | |
| | | if (!projectConfig) { |
| | | wx.showToast({ |
| | |
| | | // 检查是否切换了项目(如果当前项目不同于新选择的项目) |
| | | const isProjectChanged = currentProject && currentProject !== newProject; |
| | | |
| | | // 添加二次确认 |
| | | const confirmText = isProjectChanged |
| | | ? `确定要将项目从"${PROJECT_CONFIG[currentProject]?.displayName || '当前项目'}"切换到"${projectConfig.displayName}"吗?` |
| | | : `确定选择"${projectConfig.displayName}"项目吗?`; |
| | | |
| | | wx.showModal({ |
| | | title: isProjectChanged ? '确认切换项目' : '确认选择项目', |
| | | content: confirmText, |
| | | confirmText: isProjectChanged ? '确认切换' : '确认', |
| | | cancelText: '取消', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | // 用户确认选择,继续处理 |
| | | this.processProjectSelection(currentProject, newProject, projectConfig, isProjectChanged); |
| | | } else { |
| | | // 用户取消,不进行任何操作 |
| | | console.log('用户取消了项目选择'); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 处理项目选择的后续操作 |
| | | processProjectSelection(currentProject, newProject, projectConfig, isProjectChanged) { |
| | | // 如果切换了项目,先清除登录状态 |
| | | if (isProjectChanged) { |
| | | console.log(`正在从项目 ${currentProject} 切换到 ${newProject},将清除登录状态`); |
| | |
| | | |
| | | // 保存项目选择到本地存储 |
| | | storage.setItem('selectedProject', newProject).then(() => { |
| | | // 更新 BASEURL |
| | | const baseUrl = PROJECT_URLS[newProject]; |
| | | |
| | | // 调用setBaseUrl来更新基础URL |
| | | try { |
| | | console.log('尝试设置基础URL,项目:', newProject); |
| | | const result = config.setBaseUrl(newProject); |
| | | console.log('设置基础URL结果:', result); |
| | | } catch (error) { |
| | | console.error('设置基础URL出错:', error); |
| | | // 继续执行,不中断流程 |
| | | } |
| | | |
| | | // 更新全局变量 |
| | | getApp().globalData = getApp().globalData || {}; |
| | | getApp().globalData.baseUrl = baseUrl; |
| | | getApp().globalData.selectedProject = newProject; |
| | | getApp().globalData.baseUrl = projectConfig.serverUrl; |
| | | getApp().globalData.serverId = projectConfig.serverId; |
| | | |
| | | // 通过配置对象统一设置项目参数 |
| | | getApp().globalData.tag = projectConfig.tag; |
| | |
| | | storage.setItem(`${newProject}_params`, params); |
| | | } |
| | | |
| | | console.log('已切换到项目:', projectConfig.displayName, '域名:', baseUrl, 'tag:', getApp().globalData.tag); |
| | | console.log('已切换到项目:', projectConfig.displayName, '服务器:', projectConfig.serverId, 'tag:', getApp().globalData.tag); |
| | | |
| | | this.setData({ |
| | | showProjectDialog: false |
| | |
| | | return `${hours}:${minutes}:${seconds}`; |
| | | }, |
| | | |
| | | // 切换项目 |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 重新加载页面数据 |
| | | this.initData(); |
| | | } else { |
| | | wx.showToast({ |
| | | title: '切换项目失败', |
| | | icon: 'none' |
| | | }); |
| | | } |
| | | }, |
| | | }) |