| | |
| | | get, |
| | | post |
| | | } = require('../../api/request.js'); |
| | | const config = require('../../api/config.js'); |
| | | const { |
| | | PROJECT_URLS |
| | | } = require('../../api/config.js'); |
| | | PROJECT_CONFIG |
| | | } = require('../../utils/projectConfig.js'); |
| | | const { |
| | | ENV |
| | | } = require('../../api/env.js'); |
| | | |
| | | Page({ |
| | | |
| | | /** |
| | |
| | | showProjectDialog: false, |
| | | selectedProject: '', |
| | | avatarTapCount: 0, |
| | | isFromLogin: false |
| | | isFromLogin: false, |
| | | showTipDialog: '', |
| | | projectConfig: PROJECT_CONFIG, // 添加项目配置到data中 |
| | | showInfoDialog: false, |
| | | projectList: [] |
| | | }, |
| | | |
| | | openValve: function (e) { |
| | |
| | | }) |
| | | } |
| | | }, |
| | | calculateScrollViewHeight: function () { |
| | | wx.createSelectorQuery().selectAll('.list-item').boundingClientRect((rects) => { |
| | | let totalHeight = rects.reduce((sum, rect) => sum + rect.height, 0); |
| | | this.setData({ |
| | | scrollViewHeight: totalHeight, |
| | | }); |
| | | }).exec(); |
| | | }, |
| | | // calculateScrollViewHeight: function () { |
| | | // wx.createSelectorQuery().selectAll('.list-item').boundingClientRect((rects) => { |
| | | // let totalHeight = rects.reduce((sum, rect) => sum + rect.height, 0); |
| | | // this.setData({ |
| | | // scrollViewHeight: totalHeight, |
| | | // }); |
| | | // }).exec(); |
| | | // }, |
| | | startPullDownRefresh() { |
| | | if (!this.data.isWXRefreshing) { |
| | | var self = this; |
| | | console.log(this.data.isRefreshing); |
| | | this.setData({ |
| | | isRefreshing: true |
| | | }); |
| | | this.getOpenList(); |
| | | |
| | | if (getApp().globalData.isLoggedIn) { |
| | | if (!this.data.isWXRefreshing) { |
| | | var self = this; |
| | | console.log(this.data.isRefreshing); |
| | | this.setData({ |
| | | isRefreshing: true |
| | | }); |
| | | this.getOpenList(); |
| | | } |
| | | } else { |
| | | wx.showToast({ |
| | | title: '请先登录', |
| | | icon: 'error' |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | //获取用户数据 |
| | | getUserData() { |
| | | get('/items') |
| | | .then((data) => { |
| | | this.setData({ |
| | | items: data |
| | | }); |
| | | }) |
| | | .catch((error) => { |
| | | console.error('Failed to fetch data:', error); |
| | | }); |
| | | |
| | | }, |
| | | |
| | | |
| | |
| | | onLoad(options) { |
| | | console.log('home页面onLoad开始,参数:', options); |
| | | |
| | | // 初始化项目列表数据 |
| | | this.initProjectList(); |
| | | |
| | | //当开阀成功后调用刷新 |
| | | if (options.param === "1" || options.param === "2") { |
| | | this.setData({ |
| | | options: options |
| | | }) |
| | | } |
| | | // 检查是否从登录页面返回 |
| | | let fromLogin = false; |
| | | |
| | |
| | | if (options && options.fromLogin === 'true') { |
| | | console.log('检测到URL参数fromLogin=true'); |
| | | fromLogin = true; |
| | | } |
| | | |
| | | // 检查是否有临时标记 |
| | | try { |
| | | const tempFromLogin = wx.getStorageSync('_temp_from_login'); |
| | | console.log('读取到的临时标记值:', tempFromLogin); |
| | | |
| | | if (tempFromLogin === 'true') { |
| | | console.log('检测到临时fromLogin标记'); |
| | | fromLogin = true; |
| | | |
| | | // 延迟清除临时标记,确保其他地方有足够时间读取 |
| | | setTimeout(() => { |
| | | try { |
| | | wx.removeStorageSync('_temp_from_login'); |
| | | console.log('自动清除临时fromLogin标记'); |
| | | } catch (e) { |
| | | console.error('清除临时标记失败:', e); |
| | | } |
| | | }, 10000); // 延长到10秒 |
| | | } |
| | | } catch (e) { |
| | | console.error('读取临时标记失败:', e); |
| | | } |
| | | |
| | | console.log('home页面加载,fromLogin:', fromLogin, '参数:', options); |
| | |
| | | setTimeout(() => { |
| | | this.initializePage(options, fromLogin); |
| | | }, 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中的逻辑以便延迟执行 |
| | |
| | | }); |
| | | |
| | | // 设置 baseUrl |
| | | const baseUrl = PROJECT_URLS[project]; |
| | | getApp().globalData.baseUrl = baseUrl; |
| | | getApp().globalData.selectedProject = project; |
| | | |
| | | // 根据项目设置对应的tag |
| | | if (project === 'JYG') { |
| | | getApp().globalData.tag = 'ym'; // 嘉峪关项目对应tag为ym |
| | | } else if (project === 'MQ') { |
| | | getApp().globalData.tag = 'mq'; // 民勤项目对应tag为mq |
| | | const serverUrl = PROJECT_CONFIG[project]?.serverUrl; |
| | | if (serverUrl) { |
| | | getApp().globalData.baseUrl = serverUrl; |
| | | getApp().globalData.selectedProject = project; |
| | | console.log('设置baseUrl:', serverUrl); |
| | | } |
| | | |
| | | console.log('加载已保存的项目:', project, '域名:', baseUrl, 'tag:', getApp().globalData.tag); |
| | | // 根据项目设置对应的tag |
| | | const projectConfig = PROJECT_CONFIG[project]; |
| | | if (projectConfig) { |
| | | getApp().globalData.tag = projectConfig.tag; |
| | | |
| | | // 根据项目是否需要登录,设置不同的userName |
| | | if (projectConfig.needLogin === false) { |
| | | // 不需要登录的项目,显示项目名称 |
| | | this.setData({ |
| | | userName: projectConfig.displayName |
| | | }); |
| | | } else { |
| | | // 需要登录的项目,显示"请点击登录" |
| | | this.setData({ |
| | | userName: "请点击登录" |
| | | }); |
| | | } |
| | | } |
| | | |
| | | // 检查sessionId是否存在 |
| | | return storage.getItemSafe('sessionId'); |
| | | // 根据项目设置对应的operator和clientId |
| | | if (projectConfig && projectConfig.operatorId) { |
| | | getApp().globalData.operator = projectConfig.operatorId; |
| | | getApp().globalData.clientId = projectConfig.operatorId; |
| | | getApp().globalData.isLoggedIn = true; |
| | | getApp().globalData.sessionId = projectConfig.operatorId; |
| | | |
| | | // 如果有vcId,也设置 |
| | | if (projectConfig.vcId) { |
| | | getApp().globalData.vcId = projectConfig.vcId; |
| | | } |
| | | |
| | | // 持久化存储项目参数 |
| | | const params = { |
| | | operator: projectConfig.operatorId, |
| | | clientId: projectConfig.operatorId, |
| | | isLoggedIn: true, |
| | | sessionId: projectConfig.operatorId |
| | | }; |
| | | |
| | | if (projectConfig.vcId) { |
| | | params.vcId = projectConfig.vcId; |
| | | } |
| | | |
| | | storage.setItem(`${project}_params`, params); |
| | | } |
| | | |
| | | // 继续初始化页面 |
| | | 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); |
| | | }) |
| | |
| | | console.log('获取存储数据中断:', error.message); |
| | | |
| | | // 如果是从登录页返回或已登录,不再跳转 |
| | | if (fromLogin || getApp().globalData.isLoggedIn) { |
| | | if (fromLogin) { |
| | | console.log('从登录页返回或已登录,继续初始化页面'); |
| | | this.continueInitPage(options); |
| | | return; |
| | |
| | | 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() { |
| | | |
| | | // 检查是否有options和param |
| | | if (this.data.options && this.data.options.param) { |
| | | if (this.data.options.param === "1" || this.data.options.param === "2") { |
| | | this.getOpenList(); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | /** |
| | |
| | | }); |
| | | } |
| | | |
| | | // 检查是否有临时标记 |
| | | try { |
| | | const tempFromLogin = wx.getStorageSync('_temp_from_login'); |
| | | console.log('onShow: 读取到的临时标记值:', tempFromLogin); |
| | | |
| | | if (tempFromLogin === 'true') { |
| | | console.log('onShow: 检测到临时fromLogin标记'); |
| | | fromLogin = true; |
| | | this.setData({ |
| | | isFromLogin: true |
| | | }); |
| | | } |
| | | } catch (e) { |
| | | console.error('onShow: 读取临时标记失败:', e); |
| | | } |
| | | |
| | | // 初始化处理 |
| | | if (fromLogin || this.data.isFromLogin) { |
| | | console.log('onShow: 从登录页返回,不进行登录检查'); |
| | |
| | | // 再次确认是否从登录页返回 |
| | | if (this.getFromLogin()) { |
| | | console.log('检测到从登录页返回的标记,不进行登录检查'); |
| | | return; |
| | | } |
| | | |
| | | // 再次检查全局登录状态 |
| | | if (getApp().globalData.isLoggedIn) { |
| | | console.log('检测到全局登录状态,不进行登录检查'); |
| | | return; |
| | | } |
| | | |
| | |
| | | }) |
| | | }, |
| | | openValveList() { |
| | | // wx.navigateTo({ |
| | | // url: '/pages/valveList/valveList', |
| | | // }) |
| | | wx.showToast({ |
| | | title: '暂未开放', |
| | | icon: 'none' |
| | | }) |
| | | const app = getApp(); |
| | | if (app.globalData.isLoggedIn) { |
| | | wx.navigateTo({ |
| | | url: '/pages/valveList/valveList', |
| | | }) |
| | | } else { |
| | | wx.showToast({ |
| | | title: '请先登录', |
| | | icon: 'error' |
| | | }) |
| | | } |
| | | }, |
| | | feedBack() { |
| | | wx.showToast({ |
| | |
| | | }, |
| | | //解绑用户 |
| | | unbind() { |
| | | wx.showModal({ |
| | | title: '解绑确认', |
| | | content: '确定要解绑当前账号吗?', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | this.unBindPost() |
| | | // 检查当前项目是否需要登录 |
| | | const currentProject = getApp().globalData.selectedProject; |
| | | const projectConfig = PROJECT_CONFIG[currentProject]; |
| | | |
| | | // 如果当前项目配置为不需要登录,则提示用户并打开项目选择弹窗 |
| | | if (projectConfig && !projectConfig.needLogin) { |
| | | wx.showModal({ |
| | | title: '切换项目', |
| | | content: '是否确定解绑?', |
| | | confirmText: '确认', |
| | | cancelText: '取消', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | // 显示项目选择弹窗 |
| | | this.setData({ |
| | | showProjectDialog: true |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | // 如果已登录,显示解绑确认对话框 |
| | | if (getApp().globalData.isLoggedIn) { |
| | | wx.showModal({ |
| | | title: '解绑确认', |
| | | content: '确定要解绑当前账号吗?解绑后将无法使用相关功能,需重新绑定。', |
| | | confirmText: '确认解绑', |
| | | confirmColor: '#e34d59', |
| | | cancelText: '取消', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | this.unBindPost(); |
| | | } |
| | | } |
| | | }); |
| | | } else { |
| | | wx.showToast({ |
| | | title: '还未绑定', |
| | | icon: 'error' |
| | | }); |
| | | } |
| | | }, |
| | | //轮灌 |
| | | irrigation() { |
| | | wx.navigateTo({ |
| | | url: '/pages/irrigation/irrigation', |
| | | }) |
| | | if (getApp().globalData.isLoggedIn) { |
| | | wx.navigateTo({ |
| | | url: '/pages/irrigation/irrigation', |
| | | }) |
| | | } else { |
| | | wx.showToast({ |
| | | title: '请先登录', |
| | | icon: 'error' |
| | | }) |
| | | } |
| | | }, |
| | | handleChange(e) { |
| | | const item = e.currentTarget.dataset.item; |
| | |
| | | }) |
| | | }).catch(error => { |
| | | wx.hideLoading(); |
| | | this.setData({ |
| | | showErrorDialog: true, |
| | | errorData: error.msg, |
| | | errorDialogTitle: "关阀错误" |
| | | }) |
| | | // 处理错误响应 |
| | | console.error('请求失败:', error); |
| | | |
| | | if (error.code === "ECONNABORTED" || error.message?.includes('timeout')) { |
| | | // 处理超时错误 |
| | | this.setData({ |
| | | showErrorDialog: true, |
| | | errorData: "通信超时,请稍后再试", |
| | | errorDialogTitle: "关阀错误" |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | showErrorDialog: true, |
| | | errorData: error.msg, |
| | | errorDialogTitle: "关阀错误" |
| | | }) |
| | | } |
| | | }); |
| | | }, |
| | | /** |
| | |
| | | */ |
| | | getOpenList() { |
| | | const app = getApp(); |
| | | |
| | | if (!getApp().globalData.isLoggedIn) { |
| | | wx.showToast({ |
| | | title: '请先登录', |
| | | icon: 'error' |
| | | }) |
| | | this.setData({ |
| | | isRefreshing: false, // 将triggered属性设置为false,表示下拉刷新已完成 |
| | | isWXRefreshing: false, // 将triggered属性设置为false,表示下拉刷新已完成 |
| | | }); |
| | | return; |
| | | } |
| | | // 检查是否从登录页返回 |
| | | const fromLogin = this.getFromLogin(); |
| | | |
| | |
| | | isRefreshing: false, // 将triggered属性设置为false,表示下拉刷新已完成 |
| | | isWXRefreshing: false, // 将triggered属性设置为false,表示下拉刷新已完成 |
| | | }); |
| | | this.updateDisplayText(); |
| | | |
| | | // 成功获取数据后刷新UI高度 |
| | | setTimeout(() => { |
| | | this.calculateScrollViewHeight(); |
| | | }, 200); |
| | | }).catch(err => { |
| | | console.error('获取列表数据失败:', err); |
| | | // 错误回调 |
| | |
| | | duration: 3000 |
| | | }); |
| | | } |
| | | } else { |
| | | // 其他错误,显示错误信息 |
| | | wx.showToast({ |
| | | title: err.msg || '获取用户信息失败', |
| | | icon: 'none', |
| | | duration: 3000 |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | |
| | | return; |
| | | } |
| | | |
| | | // 检查当前项目是否需要登录 |
| | | const currentProject = app.globalData.selectedProject; |
| | | const projectConfig = PROJECT_CONFIG[currentProject]; |
| | | const needLogin = projectConfig && projectConfig.needLogin; |
| | | |
| | | // 根据项目是否需要登录,设置不同的userName |
| | | if (projectConfig && projectConfig.needLogin === false) { |
| | | // 不需要登录的项目,显示项目名称 |
| | | this.setData({ |
| | | userName: projectConfig.displayName |
| | | }); |
| | | } |
| | | |
| | | // 尝试获取用户数据和已开阀记录 |
| | | try { |
| | | // 优先检查全局变量中是否有sessionId |
| | | if (app.globalData.sessionId) { |
| | | console.log('initData: 使用全局sessionId获取数据'); |
| | | this.getUserDataBySession(); |
| | | |
| | | // 只有需要登录的项目才调用getUserDataBySession |
| | | if (needLogin) { |
| | | console.log('initData: 当前项目需要登录,获取用户数据'); |
| | | this.getUserDataBySession(); |
| | | } else { |
| | | console.log('initData: 当前项目不需要登录,跳过获取用户数据'); |
| | | } |
| | | |
| | | this.getOpenList(); |
| | | return; |
| | | } |
| | |
| | | console.error('userData解析失败:', e); |
| | | } |
| | | } |
| | | // 无论如何都尝试获取用户信息和开阀列表 |
| | | this.getUserDataBySession(); |
| | | |
| | | // 只有需要登录的项目才调用getUserDataBySession |
| | | if (needLogin) { |
| | | console.log('initData: 当前项目需要登录,获取用户数据'); |
| | | this.getUserDataBySession(); |
| | | } else { |
| | | console.log('initData: 当前项目不需要登录,跳过获取用户数据'); |
| | | } |
| | | |
| | | this.getOpenList(); |
| | | }) |
| | | .catch((err) => { |
| | |
| | | console.log('initData:catch: 检测到从登录页返回的标记,只获取开阀列表'); |
| | | this.getOpenList(); |
| | | } else { |
| | | this.getUserDataBySession(); |
| | | // 只有需要登录的项目才调用getUserDataBySession |
| | | if (needLogin) { |
| | | console.log('initData:catch: 当前项目需要登录,获取用户数据'); |
| | | this.getUserDataBySession(); |
| | | } else { |
| | | console.log('initData:catch: 当前项目不需要登录,跳过获取用户数据'); |
| | | } |
| | | |
| | | this.getOpenList(); |
| | | } |
| | | }); |
| | |
| | | console.log('initData:else: 检测到从登录页返回的标记,只获取开阀列表'); |
| | | this.getOpenList(); |
| | | } else { |
| | | this.getUserDataBySession(); |
| | | // 只有需要登录的项目才调用getUserDataBySession |
| | | if (needLogin) { |
| | | console.log('initData:else: 当前项目需要登录,获取用户数据'); |
| | | this.getUserDataBySession(); |
| | | } else { |
| | | console.log('initData:else: 当前项目不需要登录,跳过获取用户数据'); |
| | | } |
| | | |
| | | this.getOpenList(); |
| | | } |
| | | } |
| | |
| | | console.log('initData:error: 检测到从登录页返回的标记,只获取开阀列表'); |
| | | this.getOpenList(); |
| | | } else { |
| | | // 出错时仍尝试获取数据 |
| | | this.getUserDataBySession(); |
| | | // 只有需要登录的项目才调用getUserDataBySession |
| | | if (needLogin) { |
| | | console.log('initData:error: 当前项目需要登录,获取用户数据'); |
| | | this.getUserDataBySession(); |
| | | } else { |
| | | console.log('initData:error: 当前项目不需要登录,跳过获取用户数据'); |
| | | } |
| | | |
| | | this.getOpenList(); |
| | | } |
| | | } |
| | |
| | | |
| | | // 处理项目选择确认 |
| | | 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; |
| | | const projectName = newProject === 'JYG' ? '嘉峪关项目' : '民勤项目'; |
| | | console.log('当前项目:', currentProject, '新选择项目:', newProject); |
| | | console.log('PROJECT_CONFIG 内容:', PROJECT_CONFIG); |
| | | |
| | | const projectConfig = PROJECT_CONFIG[newProject]; |
| | | console.log('选择的项目配置:', projectConfig); |
| | | |
| | | if (!projectConfig) { |
| | | wx.showToast({ |
| | | title: '项目配置错误', |
| | | icon: 'none' |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | // 检查是否切换了项目(如果当前项目不同于新选择的项目) |
| | | 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},将清除登录状态`); |
| | |
| | | getApp().globalData.clientId = ''; |
| | | getApp().globalData.isLoggedIn = false; |
| | | getApp().globalData.userInfo = null; |
| | | getApp().globalData.vcId = ''; |
| | | getApp().globalData.operator = ''; |
| | | |
| | | // 清除存储中的登录状态 |
| | | try { |
| | | // 清除基本登录数据 |
| | | wx.removeStorageSync('sessionId'); |
| | | wx.removeStorageSync('clientId'); |
| | | wx.removeStorageSync('userData'); |
| | | wx.removeStorageSync('isLoggedIn'); |
| | | |
| | | // 清除之前项目的特定数据 |
| | | if (currentProject) { |
| | | wx.removeStorageSync(`${currentProject}_params`); |
| | | } |
| | | |
| | | // 清除其他可能的缓存数据 |
| | | wx.removeStorageSync('_attempted_login_redirect'); |
| | | |
| | | console.log('已清除登录相关的存储数据'); |
| | | } catch (e) { |
| | | console.error('清除存储数据失败:', e); |
| | | } |
| | | |
| | | // 重置UI显示状态 |
| | | this.setData({ |
| | | userName: "请登录", |
| | | userPhone: "", |
| | | listData: [] |
| | | }); |
| | | if (projectConfig.needLogin === false) { |
| | | // 不需要登录的项目,显示项目名称作为userName |
| | | this.setData({ |
| | | userName: projectConfig.displayName, |
| | | userPhone: "", |
| | | listData: [] |
| | | }); |
| | | } else { |
| | | // 需要登录的项目,显示"请点击登录" |
| | | this.setData({ |
| | | userName: "请点击登录", |
| | | userPhone: "", |
| | | listData: [] |
| | | }); |
| | | } |
| | | } |
| | | |
| | | // 保存项目选择到本地存储 |
| | | storage.setItem('selectedProject', newProject).then(() => { |
| | | // 更新 BASEURL |
| | | const { |
| | | PROJECT_URLS |
| | | } = require('../../api/config.js'); |
| | | 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; |
| | | |
| | | // 根据项目设置对应的tag |
| | | if (newProject === 'JYG') { |
| | | getApp().globalData.tag = 'ym'; // 嘉峪关项目对应tag为ym |
| | | } else if (newProject === 'MQ') { |
| | | getApp().globalData.tag = 'mq'; // 民勤项目对应tag为mq |
| | | // 通过配置对象统一设置项目参数 |
| | | getApp().globalData.tag = projectConfig.tag; |
| | | |
| | | // 对于不需要登录的项目,直接设置operator和clientId |
| | | if (!projectConfig.needLogin && projectConfig.operatorId) { |
| | | const operatorId = projectConfig.operatorId; |
| | | getApp().globalData.operator = operatorId; |
| | | getApp().globalData.clientId = operatorId; |
| | | getApp().globalData.isLoggedIn = true; |
| | | getApp().globalData.sessionId = operatorId; |
| | | |
| | | // 如果有vcId,也设置 |
| | | if (projectConfig.vcId) { |
| | | getApp().globalData.vcId = projectConfig.vcId; |
| | | } |
| | | |
| | | // 持久化存储项目参数 |
| | | const params = { |
| | | operator: operatorId, |
| | | clientId: operatorId, |
| | | isLoggedIn: true, |
| | | sessionId: operatorId |
| | | }; |
| | | |
| | | if (projectConfig.vcId) { |
| | | params.vcId = projectConfig.vcId; |
| | | } |
| | | |
| | | storage.setItem(`${newProject}_params`, params); |
| | | } |
| | | |
| | | console.log('已切换到项目:', projectName, '域名:', baseUrl, 'tag:', getApp().globalData.tag); |
| | | console.log('已切换到项目:', projectConfig.displayName, '服务器:', projectConfig.serverId, 'tag:', getApp().globalData.tag); |
| | | |
| | | this.setData({ |
| | | showProjectDialog: false |
| | |
| | | |
| | | // 显示切换成功提示 |
| | | wx.showToast({ |
| | | title: isProjectChanged ? `已切换至${projectName},请重新登录` : `已选择${projectName}`, |
| | | title: `已选择${projectConfig.displayName}`, |
| | | 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) |
| | | setTimeout(() => { |
| | | console.log('项目已切换,正在初始化数据'); |
| | | // 确保显示正确的用户名 |
| | | if (!projectConfig.needLogin) { |
| | | this.setData({ |
| | | userName: projectConfig.displayName |
| | | }); |
| | | }, 2000); |
| | | } |
| | | } else { |
| | | this.setData({ |
| | | userName: "请点击登录" |
| | | }); |
| | | } |
| | | this.initData(); |
| | | }, 1000); |
| | | |
| | | }).catch(err => { |
| | | console.error('保存项目选择失败:', err); |
| | | wx.showToast({ |
| | |
| | | checkLoginStatus() { |
| | | const app = getApp(); |
| | | |
| | | // 首先,强制再次检查是否从登录页返回 |
| | | try { |
| | | const tempFromLogin = wx.getStorageSync('_temp_from_login'); |
| | | if (tempFromLogin === 'true') { |
| | | console.log('checkLoginStatus: 检测到临时存储_temp_from_login=true,不执行跳转'); |
| | | this.setData({ |
| | | isFromLogin: true |
| | | }); |
| | | return; |
| | | } |
| | | } catch (e) { |
| | | console.error('checkLoginStatus: 读取临时标记失败:', e); |
| | | } |
| | | |
| | | // 检查是否已登录 |
| | | if (app.globalData.isLoggedIn && app.globalData.sessionId) { |
| | | console.log('已从全局变量检测到登录状态'); |
| | |
| | | const fromLogin = this.getFromLogin(); |
| | | if (fromLogin) { |
| | | console.log('从登录页返回,不再重定向'); |
| | | return; |
| | | } |
| | | |
| | | // 检查当前项目是否需要登录 |
| | | const currentProject = app.globalData.selectedProject; |
| | | if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) { |
| | | console.log('当前项目不需要登录:', currentProject); |
| | | return; |
| | | } |
| | | |
| | |
| | | storage.getItemSafe('isLoggedIn') |
| | | ]) |
| | | .then(([sessionId, clientId, isLoggedIn]) => { |
| | | // 最后一次检查临时标记 |
| | | try { |
| | | const tempFromLogin = wx.getStorageSync('_temp_from_login'); |
| | | if (tempFromLogin === 'true') { |
| | | console.log('Promise内部: 检测到临时存储_temp_from_login=true,不执行跳转'); |
| | | this.setData({ |
| | | isFromLogin: true |
| | | }); |
| | | return; |
| | | } |
| | | } catch (e) {} |
| | | |
| | | if (sessionId) { |
| | | // 从存储中恢复登录状态 |
| | | app.globalData.sessionId = sessionId; |
| | |
| | | return; |
| | | } |
| | | |
| | | // 检查项目是否需要登录 |
| | | if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) { |
| | | console.log('最终检查: 当前项目不需要登录:', currentProject); |
| | | return; |
| | | } |
| | | |
| | | console.log('确认需要跳转到登录页'); |
| | | |
| | | // 跳转前再次检查登录页面临时标记 |
| | |
| | | wx.setStorageSync('_attempted_login_redirect', 'true'); |
| | | } catch (e) {} |
| | | |
| | | wx.redirectTo({ |
| | | url: `/pages/login/login?project=${this.data.selectedProject}`, |
| | | success: () => console.log('成功跳转到登录页'), |
| | | fail: (err) => console.error('跳转到登录页失败:', err) |
| | | }); |
| | | // wx.navigateTo({ |
| | | // url: `/pages/login/login?project=${this.data.selectedProject}`, |
| | | // success: () => console.log('成功跳转到登录页'), |
| | | // fail: (err) => console.error('跳转到登录页失败:', err) |
| | | // }); |
| | | } |
| | | }) |
| | | .catch(err => { |
| | |
| | | return; |
| | | } |
| | | |
| | | // 检查项目是否需要登录 |
| | | if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) { |
| | | console.log('错误处理: 当前项目不需要登录:', currentProject); |
| | | return; |
| | | } |
| | | |
| | | // 出错时也跳转到登录页 |
| | | wx.redirectTo({ |
| | | url: `/pages/login/login?project=${this.data.selectedProject}`, |
| | | success: () => console.log('错误后成功跳转到登录页'), |
| | | fail: (err) => console.error('错误后跳转到登录页失败:', err) |
| | | }); |
| | | // wx.navigateTo({ |
| | | // url: `/pages/login/login?project=${this.data.selectedProject}`, |
| | | // success: () => console.log('错误后成功跳转到登录页'), |
| | | // fail: (err) => console.error('错误后跳转到登录页失败:', err) |
| | | // }); |
| | | }); |
| | | }, |
| | | |
| | | // 辅助函数:检查是否从登录页返回 |
| | | getFromLogin() { |
| | | // 先检查全局变量(作为备用方案) |
| | | if (getApp().globalData && getApp().globalData._tempFromLogin === true) { |
| | | console.log('getFromLogin: 检测到全局变量_tempFromLogin=true'); |
| | | // 设置标志,确保下次检查时能识别 |
| | | this.setData({ |
| | | isFromLogin: true |
| | | }); |
| | | |
| | | // 清除全局标记,防止重复识别 |
| | | setTimeout(() => { |
| | | getApp().globalData._tempFromLogin = false; |
| | | console.log('已清除全局变量_tempFromLogin标记'); |
| | | }, 100); |
| | | |
| | | return true; |
| | | } |
| | | |
| | | // 检查是否有设置fromLogin标志 |
| | | if (this.data.isFromLogin) { |
| | | console.log('getFromLogin: 检测到this.data.isFromLogin=true'); |
| | | return true; |
| | | } |
| | | |
| | | // 检查当前页面的options |
| | | const pages = getCurrentPages(); |
| | | const currentPage = pages[pages.length - 1]; |
| | |
| | | }); |
| | | return true; |
| | | } |
| | | |
| | | // 检查临时标记 |
| | | try { |
| | | const tempFromLogin = wx.getStorageSync('_temp_from_login'); |
| | | console.log('getFromLogin: 读取到的临时标记值:', tempFromLogin); |
| | | |
| | | if (tempFromLogin === 'true') { |
| | | console.log('getFromLogin: 检测到临时存储_temp_from_login=true'); |
| | | // 设置标志,确保下次检查时能识别 |
| | | this.setData({ |
| | | isFromLogin: true |
| | | }); |
| | | return true; |
| | | } |
| | | } catch (e) { |
| | | console.error('getFromLogin: 读取临时标记失败:', e); |
| | | } |
| | | |
| | | console.log('getFromLogin: 未检测到从登录页返回的标记'); |
| | | return false; |
| | | }, |
| | |
| | | }); |
| | | } |
| | | |
| | | // 从临时标记中检查 |
| | | try { |
| | | const tempFromLogin = wx.getStorageSync('_temp_from_login'); |
| | | if (tempFromLogin === 'true') { |
| | | console.log('continueInitPage: 检测到临时标记_temp_from_login=true'); |
| | | fromLogin = true; |
| | | this.setData({ |
| | | isFromLogin: true |
| | | }); |
| | | } |
| | | } catch (e) { |
| | | console.error('continueInitPage: 读取临时标记失败:', e); |
| | | } |
| | | |
| | | // 从页面数据中检查 |
| | | if (this.data.isFromLogin) { |
| | | console.log('continueInitPage: 从页面数据中检测到isFromLogin=true'); |
| | | fromLogin = true; |
| | | } |
| | | |
| | | // 判断本地是否保存sessionId |
| | | // 使用 wx.nextTick 等待页面渲染完成 |
| | | wx.nextTick(() => { |
| | | this.calculateScrollViewHeight(); |
| | | }); |
| | | |
| | | // 当开阀成功后调用刷新 |
| | | if (options && options.param) { |
| | | console.log("开阀成功参数:", options.param); |
| | |
| | | if (!fromLogin) { |
| | | console.log('不是从登录页返回,延迟检查登录状态'); |
| | | setTimeout(() => { |
| | | // 再次检查是否已从登录页返回(可能在初始化过程中状态已变) |
| | | if (this.getFromLogin()) { |
| | | console.log('延迟检查:检测到从登录页返回的标记,不再检查登录状态'); |
| | | return; |
| | | } |
| | | |
| | | // 仅在未登录且不是从登录页返回时检查登录状态 |
| | | if (!getApp().globalData.isLoggedIn) { |
| | | console.log('延迟检查:未登录且不是从登录页返回,执行登录状态检查'); |
| | |
| | | |
| | | // 微信登录 |
| | | wxLogin() { |
| | | // 检查当前项目是否需要登录 |
| | | const currentProject = getApp().globalData.selectedProject; |
| | | if (currentProject && PROJECT_CONFIG[currentProject]) { |
| | | const projectConfig = PROJECT_CONFIG[currentProject]; |
| | | |
| | | if (!projectConfig.needLogin) { |
| | | console.log('wxLogin: 当前项目不需要登录:', currentProject); |
| | | // 不需要登录的项目,显示项目名称 |
| | | this.setData({ |
| | | userName: projectConfig.displayName |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | if (!getApp().globalData.isLoggedIn) { |
| | | wx.showLoading({ |
| | | title: '正在登录请稍候...', |
| | |
| | | wx.hideLoading(); |
| | | if (response.code === "0001") { |
| | | if (response.content.client.clientId === "") { |
| | | // 未绑定账号,跳转到登录页面 |
| | | wx.redirectTo({ |
| | | url: `/pages/login/login?project=${this.data.selectedProject}` |
| | | // 未绑定账号,跳转到登录页面并传递当前项目信息 |
| | | const projectInfo = PROJECT_CONFIG[this.data.selectedProject]; |
| | | wx.navigateTo({ |
| | | url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` |
| | | }); |
| | | } else { |
| | | this.setData({ |
| | |
| | | getApp().globalData.isLoggedIn = true; |
| | | |
| | | // 设置正确的项目tag |
| | | const tag = this.data.selectedProject === 'JYG' ? 'ym' : 'mq'; |
| | | getApp().globalData.tag = tag; |
| | | const projectConfig = PROJECT_CONFIG[this.data.selectedProject]; |
| | | if (projectConfig) { |
| | | getApp().globalData.tag = projectConfig.tag; |
| | | } |
| | | |
| | | // 保存到存储 |
| | | storage.setItem("sessionId", sessionId); |
| | |
| | | // 保存userData信息,包含sessionId和tag |
| | | const userData = JSON.stringify({ |
| | | sessionId: sessionId, |
| | | tag: tag, |
| | | tag: projectConfig ? projectConfig.tag : 'ym', |
| | | project: this.data.selectedProject, |
| | | userName: response.content.client.clientName, |
| | | userPhone: response.content.client.userPhone |
| | | }); |
| | | storage.setItem("userData", userData) |
| | | .then(() => { |
| | | console.log('用户数据保存成功,包含项目信息:', this.data.selectedProject, 'tag:', tag); |
| | | console.log('用户数据保存成功,包含项目信息:', this.data.selectedProject, 'tag:', projectConfig ? projectConfig.tag : 'ym'); |
| | | this.initData(); |
| | | }) |
| | | .catch(err => { |
| | |
| | | }); |
| | | |
| | | } |
| | | } else if (response.code === "1003") { |
| | | // 未绑定账号,跳转到登录页面并传递当前项目信息 |
| | | const projectInfo = PROJECT_CONFIG[this.data.selectedProject]; |
| | | wx.navigateTo({ |
| | | url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` |
| | | }); |
| | | } else { |
| | | wx.showToast({ |
| | | title: '登录失败', |
| | | icon: 'error', |
| | | duration: 2000 |
| | | }); |
| | | wx.redirectTo({ |
| | | url: `/pages/login/login?project=${this.data.selectedProject}` |
| | | }); |
| | | } |
| | | }).catch(error => { |
| | | wx.hideLoading(); |
| | | console.error('登录请求失败:', error); |
| | | wx.showToast({ |
| | | title: '登录失败,请重试', |
| | | icon: 'none' |
| | | }); |
| | | wx.redirectTo({ |
| | | url: `/pages/login/login?project=${this.data.selectedProject}` |
| | | }); |
| | | if(error.code==="1003"){ |
| | | // 未绑定账号,跳转到登录页面并传递当前项目信息 |
| | | const projectInfo = PROJECT_CONFIG[this.data.selectedProject]; |
| | | wx.navigateTo({ |
| | | url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` |
| | | }); |
| | | }else{ |
| | | wx.showToast({ |
| | | title: '登录失败,请重试', |
| | | icon: 'none' |
| | | }); |
| | | } |
| | | }); |
| | | } else { |
| | | wx.hideLoading(); |
| | |
| | | cleanupTempMarkers() { |
| | | // 只有在isFromLogin为true时才进行清理 |
| | | if (this.data.isFromLogin) { |
| | | console.log('清理临时标记'); |
| | | |
| | | // 清理存储标记 |
| | | try { |
| | | wx.removeStorageSync('_temp_from_login'); |
| | | } catch (e) { |
| | | console.error('清理存储标记失败:', e); |
| | | } |
| | | |
| | | // 清理全局变量标记 |
| | | if (getApp().globalData) { |
| | | getApp().globalData._tempFromLogin = false; |
| | | } |
| | | |
| | | // 重设isFromLogin为false,但添加延迟,避免影响当前页面的返回逻辑 |
| | | setTimeout(() => { |
| | |
| | | }) |
| | | }); |
| | | }, |
| | | onShareAppMessage: function (options) { |
| | | // 设置分享内容 |
| | | return { |
| | | title: '大禹灌溉助手', // 分享标题 |
| | | path: '/pages/home/home', // 分享路径,该路径需要是当前小程序存在的页面路径 |
| | | imageUrl: '/images/logo2.jpg', // 分享图标,可以是网络图片路径或本地图片路径 |
| | | success: function (res) { |
| | | // 分享成功的回调函数 |
| | | }, |
| | | fail: function (res) { |
| | | // 分享失败的回调函数 |
| | | } |
| | | }; |
| | | }, |
| | | //点击提示按钮 |
| | | infoShow() { |
| | | this.setData({ |
| | | showInfoDialog: true |
| | | }) |
| | | }, |
| | | //提示窗确认按钮 |
| | | confirmBtnInfoDialog() { |
| | | this.setData({ |
| | | showInfoDialog: false |
| | | }) |
| | | }, |
| | | //强制删除 |
| | | onDelete(e) { |
| | | const item = e.currentTarget.dataset.item; |
| | | const that = this; |
| | | |
| | | if (this.data.useTestData) { |
| | | // 测试数据模式下,模拟删除操作 |
| | | wx.showLoading({ |
| | | title: '正在强制删除请稍候...', |
| | | mask: true |
| | | }); |
| | | |
| | | // 模拟请求延迟 |
| | | setTimeout(() => { |
| | | wx.hideLoading(); |
| | | |
| | | // 从列表中移除被删除的项 |
| | | const updatedList = this.data.listData.filter(listItem => |
| | | listItem.orderNo !== item.orderNo |
| | | ); |
| | | |
| | | this.setData({ |
| | | listData: updatedList |
| | | }); |
| | | |
| | | wx.showToast({ |
| | | title: '删除成功', |
| | | icon: 'success', |
| | | duration: 2000 |
| | | }); |
| | | }, 1500); |
| | | return; |
| | | } |
| | | |
| | | wx.showLoading({ |
| | | title: '正在强制删除请稍候...', // 加载提示文字 |
| | | mask: true // 是否显示透明蒙层,防止触摸穿透,默认为 false |
| | | }); |
| | | const data = { |
| | | vcNum: item.vcNum, //取水口ID |
| | | rtuAddr: item.rtuAddr, //阀控器地址 |
| | | }; |
| | | post({ |
| | | url: "wx/valve/deleteUnclosed", |
| | | data: data, |
| | | timeout: 180000 |
| | | }).then(response => { |
| | | // 处理成功响应 |
| | | console.log('请求成功:', response); |
| | | // 加载完成后隐藏加载动画 |
| | | wx.hideLoading(); |
| | | //重新获取列表刷新数据 |
| | | this.getOpenList(); |
| | | }).catch(error => { |
| | | // 加载完成后隐藏加载动画 |
| | | wx.hideLoading(); |
| | | // 处理错误响应 |
| | | console.error('请求失败:', error); |
| | | }); |
| | | }, |
| | | //修改按钮文字 |
| | | updateDisplayText() { |
| | | const updatedList = this.data.listData.map(item => { |
| | | let displayText = ''; |
| | | if (item.planned) { |
| | | displayText = '取消'; |
| | | } else { |
| | | displayText = "关阀" |
| | | } |
| | | let deleteText = "删除" |
| | | let time; |
| | | if (!item.dt) { |
| | | time = "暂无" |
| | | } else { |
| | | time = this.extractTime(item.dt) |
| | | } |
| | | if (item.waterInstant === null) { |
| | | item.waterInstant = "暂无" |
| | | } |
| | | |
| | | return { |
| | | ...item, |
| | | displayText, |
| | | deleteText, |
| | | time |
| | | }; // 保留所有其他字段,并添加 displayText 字段 |
| | | }); |
| | | // 更新列表数据 |
| | | this.setData({ |
| | | listData: updatedList |
| | | }); |
| | | }, |
| | | //处理时间去掉年月日 |
| | | extractTime(datetimeString) { |
| | | const formattedDate = datetimeString.replace(" ", "T"); |
| | | const date = new Date(formattedDate); |
| | | // 获取小时、分钟和秒 |
| | | const hours = date.getHours().toString().padStart(2, '0'); |
| | | const minutes = date.getMinutes().toString().padStart(2, '0'); |
| | | const seconds = date.getSeconds().toString().padStart(2, '0'); |
| | | 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' |
| | | }); |
| | | } |
| | | }, |
| | | }) |