管灌系统农户端微信小程序(嘉峪关应用)
pages/home/home.js
@@ -109,18 +109,6 @@
  },
  //获取用户数据
  getUserData() {
    get('/items')
      .then((data) => {
        this.setData({
          items: data
        });
      })
      .catch((error) => {
        console.error('Failed to fetch data:', error);
      });
  },
@@ -392,6 +380,20 @@
  },
  //解绑用户
  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: '解绑确认',
@@ -651,11 +653,11 @@
        }
      } else {
        // 其他错误,显示错误信息
        // wx.showToast({
        //   title: err.msg || '获取用户信息失败',
        //   icon: 'none',
        //   duration: 3000
        // });
        wx.showToast({
          title: err.msg || '获取用户信息失败',
          icon: 'none',
          duration: 3000
        });
      }
    });
  },
@@ -807,12 +809,25 @@
      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;
      }
@@ -835,8 +850,15 @@
                console.error('userData解析失败:', e);
              }
            }
            // 无论如何都尝试获取用户信息和开阀列表
            this.getUserDataBySession();
            // 只有需要登录的项目才调用getUserDataBySession
            if (needLogin) {
              console.log('initData: 当前项目需要登录,获取用户数据');
              this.getUserDataBySession();
            } else {
              console.log('initData: 当前项目不需要登录,跳过获取用户数据');
            }
            this.getOpenList();
          })
          .catch((err) => {
@@ -847,7 +869,14 @@
              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();
            }
          });
@@ -859,7 +888,14 @@
          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();
        }
      }
@@ -871,8 +907,14 @@
        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();
      }
    }