管灌系统农户端微信小程序(嘉峪关应用)
pages/home/home.js
@@ -197,9 +197,19 @@
                    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: "请点击登录"
              });
            }
                    }
                    // 根据项目设置对应的operator和clientId
@@ -696,13 +706,6 @@
                        duration: 3000
                    });
                }
            } else {
                // 其他错误,显示错误信息
                wx.showToast({
                    title: err.msg || '获取用户信息失败',
                    icon: 'none',
                    duration: 3000
                });
            }
        });
    },
@@ -858,6 +861,14 @@
        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 {
@@ -1030,9 +1041,9 @@
        const isProjectChanged = currentProject && currentProject !== newProject;
        // 添加二次确认
        const confirmText = isProjectChanged
            ? `确定要将项目从"${PROJECT_CONFIG[currentProject]?.displayName || '当前项目'}"切换到"${projectConfig.displayName}"吗?`
            : `确定选择"${projectConfig.displayName}"项目吗?`;
    const confirmText = isProjectChanged ?
      `确定要将项目从"${PROJECT_CONFIG[currentProject]?.displayName || '当前项目'}"切换到"${projectConfig.displayName}"吗?` :
      `确定选择"${projectConfig.displayName}"项目吗?`;
            
        wx.showModal({
            title: isProjectChanged ? '确认切换项目' : '确认选择项目',
@@ -1062,24 +1073,46 @@
            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显示状态
      if (projectConfig.needLogin === false) {
        // 不需要登录的项目,显示项目名称作为userName
            this.setData({
                userName: "请登录",
          userName: projectConfig.displayName,
                userPhone: "",
                listData: []
            });
      } else {
        // 需要登录的项目,显示"请点击登录"
        this.setData({
          userName: "请点击登录",
          userPhone: "",
          listData: []
        });
      }
        }
        // 保存项目选择到本地存储
@@ -1102,11 +1135,6 @@
            // 通过配置对象统一设置项目参数
            getApp().globalData.tag = projectConfig.tag;
            // 设置用户界面显示的项目名称
            this.setData({
                userName: projectConfig.displayName
            });
            // 对于不需要登录的项目,直接设置operator和clientId
            if (!projectConfig.needLogin && projectConfig.operatorId) {
@@ -1150,6 +1178,16 @@
            });
            setTimeout(() => {
                console.log('项目已切换,正在初始化数据');
        // 确保显示正确的用户名
        if (!projectConfig.needLogin) {
          this.setData({
            userName: projectConfig.displayName
          });
        } else {
          this.setData({
            userName: "请点击登录"
          });
        }
                this.initData();
            }, 1000);
@@ -1367,9 +1405,17 @@
    wxLogin() {
        // 检查当前项目是否需要登录
        const currentProject = getApp().globalData.selectedProject;
        if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) {
    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) {
@@ -1391,10 +1437,11 @@
                            wx.hideLoading();
                            if (response.code === "0001") {
                                if (response.content.client.clientId === "") {
                                    // 未绑定账号,跳转到登录页面
                                    // wx.navigateTo({
                                    //   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({
                                        userName: response.content.client.clientName,
@@ -1439,26 +1486,34 @@
                                        });
                                }
              } 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.navigateTo({
                                //   url: `/pages/login/login?project=${this.data.selectedProject}`
                                // });
                            }
                        }).catch(error => {
                            wx.hideLoading();
                            console.error('登录请求失败:', error);
              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'
                            });
                            // wx.redirectTo({
                            //   url: `/pages/login/login?project=${this.data.selectedProject}`
                            // });
              }
                        });
                    } else {
                        wx.hideLoading();