|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | //获取用户数据 | 
|---|
|  |  |  | getUserData() { | 
|---|
|  |  |  | get('/items') | 
|---|
|  |  |  | .then((data) => { | 
|---|
|  |  |  | this.setData({ | 
|---|
|  |  |  | items: data | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | .catch((error) => { | 
|---|
|  |  |  | console.error('Failed to fetch data:', error); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | //解绑用户 | 
|---|
|  |  |  | unbind() { | 
|---|
|  |  |  | // 检查当前项目是否需要登录 | 
|---|
|  |  |  | const currentProject = getApp().globalData.selectedProject; | 
|---|
|  |  |  | const projectConfig = PROJECT_CONFIG[currentProject]; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 如果当前项目配置为不需要登录,则提示用户不可解绑 | 
|---|
|  |  |  | if (projectConfig && !projectConfig.needLogin) { | 
|---|
|  |  |  | wx.showToast({ | 
|---|
|  |  |  | title: '当前用户不可解绑', | 
|---|
|  |  |  | icon: 'none', | 
|---|
|  |  |  | duration: 2000 | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (getApp().globalData.isLoggedIn) { | 
|---|
|  |  |  | wx.showModal({ | 
|---|
|  |  |  | title: '解绑确认', | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | // 其他错误,显示错误信息 | 
|---|
|  |  |  | // wx.showToast({ | 
|---|
|  |  |  | //   title: err.msg || '获取用户信息失败', | 
|---|
|  |  |  | //   icon: 'none', | 
|---|
|  |  |  | //   duration: 3000 | 
|---|
|  |  |  | // }); | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 尝试获取用户数据和已开阀记录 | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|