From 90612989855f6849fd94b0665168c3bb7619ff32 Mon Sep 17 00:00:00 2001
From: zuoxiao <zuoxiao>
Date: 星期一, 07 四月 2025 18:08:01 +0800
Subject: [PATCH] 更新项目配置,添加多个项目的专有设置,包括登录需求和统一ID;优化用户数据获取逻辑,确保根据项目需求进行登录状态检查;调整界面显示项目名称和提示信息,增强用户体验。

---
 pages/home/home.js |  233 ++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 138 insertions(+), 95 deletions(-)

diff --git a/pages/home/home.js b/pages/home/home.js
index dd86186..ad54461 100644
--- a/pages/home/home.js
+++ b/pages/home/home.js
@@ -7,6 +7,35 @@
 const {
   PROJECT_URLS
 } = require('../../api/config.js');
+
+// 椤圭洰閰嶇疆锛屽寘鍚悇椤圭洰鐨勪笓鏈夎缃�
+const PROJECT_CONFIG = {
+  JYG: {
+    tag: 'ym',
+    displayName: '鍢夊唱鍏抽」鐩�',
+    needLogin: true // 闇�瑕佺櫥褰�
+  },
+  MQ: {
+    tag: 'mq',
+    displayName: '姘戝嫟椤圭洰',
+    operatorId: '2025033115305200006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId
+    needLogin: false // 涓嶉渶瑕佺櫥褰�
+  },
+  TEST: {
+    tag: 'ym',
+    displayName: '娴嬭瘯椤圭洰',
+    operatorId: '2025032411245000006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId
+    vcId: '2024122617295800009',
+    needLogin: false // 涓嶉渶瑕佺櫥褰�
+  },
+  SCHOOL: {
+    tag: 'XX',
+    displayName: '瀛︽牎椤圭洰',
+    operatorId: '2025040215305200006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId
+    needLogin: true // 涓嶉渶瑕佺櫥褰�
+  }
+};
+
 Page({
 
   /**
@@ -36,7 +65,8 @@
     selectedProject: '',
     avatarTapCount: 0,
     isFromLogin: false,
-    showTipDialog: ''
+    showTipDialog: '',
+    projectConfig: PROJECT_CONFIG // 娣诲姞椤圭洰閰嶇疆鍒癲ata涓�
   },
 
   openValve: function (e) {
@@ -153,44 +183,39 @@
           getApp().globalData.selectedProject = project;
 
           // 鏍规嵁椤圭洰璁剧疆瀵瑰簲鐨則ag
-          if (project === 'JYG') {
-            getApp().globalData.tag = 'ym'; // 鍢夊唱鍏抽」鐩搴攖ag涓簓m
+          const projectConfig = PROJECT_CONFIG[project];
+          if (projectConfig) {
+            getApp().globalData.tag = projectConfig.tag;
             this.setData({
-              userName: "鍢夊唱鍏抽」鐩�"
+              userName: projectConfig.displayName
             });
-          } else if (project === 'MQ') {
-            getApp().globalData.tag = 'mq'; // 姘戝嫟椤圭洰瀵瑰簲tag涓簃q
-            this.setData({
-              userName: "姘戝嫟椤圭洰"
-            });
-            // 鍔犺浇姘戝嫟椤圭洰鎸佷箙鍖栧弬鏁�
-            return storage.getItemSafe('MQ_params')
-              .then(params => {
-                if (params) {
-                  getApp().globalData.operator = params.operator;
-                  getApp().globalData.clientId = params.clientId;
-                  getApp().globalData.isLoggedIn = params.isLoggedIn;
-                  getApp().globalData.sessionId = params.sessionId;
-                }
-                return Promise.resolve();
-              });
-          } else if (project === 'TEST') {
-            getApp().globalData.tag = 'ym'; // 娴嬭瘯椤圭洰瀵瑰簲tag涓簍est
-            this.setData({
-              userName: "娴嬭瘯椤圭洰"
-            });
-            // 鍔犺浇娴嬭瘯椤圭洰鎸佷箙鍖栧弬鏁�
-            return storage.getItemSafe('TEST_params')
-              .then(params => {
-                if (params) {
-                  getApp().globalData.operator = params.operator;
-                  getApp().globalData.clientId = params.clientId;
-                  getApp().globalData.isLoggedIn = params.isLoggedIn;
-                  getApp().globalData.sessionId = params.sessionId;
-                  getApp().globalData.vcId = params.vcId;
-                }
-                return Promise.resolve();
-              });
+          }
+
+          // 鏍规嵁椤圭洰璁剧疆瀵瑰簲鐨刼perator鍜宑lientId
+          if (projectConfig && projectConfig.operatorId) {
+            getApp().globalData.operator = projectConfig.operatorId;
+            getApp().globalData.clientId = projectConfig.operatorId;
+            getApp().globalData.isLoggedIn = true;
+            getApp().globalData.sessionId = projectConfig.operatorId;
+
+            // 濡傛灉鏈塿cId锛屼篃璁剧疆
+            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);
           }
 
           // 缁х画鍒濆鍖栭〉闈�
@@ -219,7 +244,7 @@
         console.log('鑾峰彇瀛樺偍鏁版嵁涓柇:', error.message);
 
         // 濡傛灉鏄粠鐧诲綍椤佃繑鍥炴垨宸茬櫥褰曪紝涓嶅啀璺宠浆
-        if (fromLogin || getApp().globalData.isLoggedIn) {
+        if (fromLogin) {
           console.log('浠庣櫥褰曢〉杩斿洖鎴栧凡鐧诲綍锛岀户缁垵濮嬪寲椤甸潰');
           this.continueInitPage(options);
           return;
@@ -290,12 +315,6 @@
     // 鍐嶆纭鏄惁浠庣櫥褰曢〉杩斿洖
     if (this.getFromLogin()) {
       console.log('妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝涓嶈繘琛岀櫥褰曟鏌�');
-      return;
-    }
-
-    // 鍐嶆妫�鏌ュ叏灞�鐧诲綍鐘舵��
-    if (getApp().globalData.isLoggedIn) {
-      console.log('妫�娴嬪埌鍏ㄥ眬鐧诲綍鐘舵�侊紝涓嶈繘琛岀櫥褰曟鏌�');
       return;
     }
 
@@ -389,7 +408,6 @@
         icon: 'error'
       })
     }
-
   },
   //杞亴
   irrigation() {
@@ -905,9 +923,15 @@
     // 鑾峰彇褰撳墠宸查�夐」鐩拰鏂伴�夋嫨鐨勯」鐩�
     const currentProject = getApp().globalData.selectedProject;
     const newProject = this.data.selectedProject;
-    const projectName = newProject === 'JYG' ? '鍢夊唱鍏抽」鐩�' :
-      newProject === 'MQ' ? '姘戝嫟椤圭洰' :
-      newProject === 'TEST' ? '娴嬭瘯椤圭洰' : '鏈煡椤圭洰';
+    const projectConfig = PROJECT_CONFIG[newProject];
+    
+    if (!projectConfig) {
+      wx.showToast({
+        title: '椤圭洰閰嶇疆閿欒',
+        icon: 'none'
+      });
+      return;
+    }
 
     // 妫�鏌ユ槸鍚﹀垏鎹簡椤圭洰锛堝鏋滃綋鍓嶉」鐩笉鍚屼簬鏂伴�夋嫨鐨勯」鐩級
     const isProjectChanged = currentProject && currentProject !== newProject;
@@ -944,9 +968,6 @@
     // 淇濆瓨椤圭洰閫夋嫨鍒版湰鍦板瓨鍌�
     storage.setItem('selectedProject', newProject).then(() => {
       // 鏇存柊 BASEURL
-      const {
-        PROJECT_URLS
-      } = require('../../api/config.js');
       const baseUrl = PROJECT_URLS[newProject];
 
       // 鏇存柊鍏ㄥ眬鍙橀噺
@@ -954,49 +975,43 @@
       getApp().globalData.baseUrl = baseUrl;
       getApp().globalData.selectedProject = newProject;
 
-      // 鏍规嵁椤圭洰璁剧疆瀵瑰簲鐨則ag鍜宑lientId
-      if (newProject === 'JYG') {
-        getApp().globalData.tag = 'ym'; // 鍢夊唱鍏抽」鐩搴攖ag涓簓m
-        this.setData({
-          userName: "鍢夊唱鍏抽」鐩�"
-        });
-      } else if (newProject === 'MQ') {
-        getApp().globalData.tag = 'mq'; // 姘戝嫟椤圭洰瀵瑰簲tag涓簃q
-        getApp().globalData.operator = '2025033115305200006';
-        getApp().globalData.clientId = '2025033115305200006';
+      // 閫氳繃閰嶇疆瀵硅薄缁熶竴璁剧疆椤圭洰鍙傛暟
+      getApp().globalData.tag = projectConfig.tag;
+      
+      // 璁剧疆鐢ㄦ埛鐣岄潰鏄剧ず鐨勯」鐩悕绉�
+      this.setData({
+        userName: projectConfig.displayName
+      });
+      
+      // 瀵逛簬涓嶉渶瑕佺櫥褰曠殑椤圭洰锛岀洿鎺ヨ缃畂perator鍜宑lientId
+      if (!projectConfig.needLogin && projectConfig.operatorId) {
+        const operatorId = projectConfig.operatorId;
+        getApp().globalData.operator = operatorId;
+        getApp().globalData.clientId = operatorId;
         getApp().globalData.isLoggedIn = true;
-        getApp().globalData.sessionId = '2025033115305200006';
-        this.setData({
-          userName: "姘戝嫟椤圭洰"
-        });
-        // 鎸佷箙鍖栧瓨鍌ㄦ皯鍕ら」鐩弬鏁�
-        storage.setItem('MQ_params', {
-          operator: '2025033115305200006',
-          clientId: '2025033115305200006',
+        getApp().globalData.sessionId = operatorId;
+        
+        // 濡傛灉鏈塿cId锛屼篃璁剧疆
+        if (projectConfig.vcId) {
+          getApp().globalData.vcId = projectConfig.vcId;
+        }
+        
+        // 鎸佷箙鍖栧瓨鍌ㄩ」鐩弬鏁�
+        const params = {
+          operator: operatorId,
+          clientId: operatorId,
           isLoggedIn: true,
-          sessionId: '2025033115305200006'
-        });
-      } else if (newProject === 'TEST') {
-        getApp().globalData.tag = 'ym'; // 娴嬭瘯椤圭洰瀵瑰簲tag涓簍est
-        getApp().globalData.operator = '2025032411245000006';
-        getApp().globalData.clientId = '2025032411245000006';
-        getApp().globalData.isLoggedIn = true;
-        getApp().globalData.sessionId = '2025032411245000006';
-        getApp().globalData.vcId = '2024122617295800009';
-        this.setData({
-          userName: "娴嬭瘯椤圭洰"
-        });
-        // 鎸佷箙鍖栧瓨鍌ㄦ祴璇曢」鐩弬鏁�
-        storage.setItem('TEST_params', {
-          operator: '2025032411245000006',
-          clientId: '2025032411245000006',
-          isLoggedIn: true,
-          sessionId: '2025032411245000006',
-          vcId: '2024122617295800009'
-        });
+          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, '鍩熷悕:', baseUrl, 'tag:', getApp().globalData.tag);
 
       this.setData({
         showProjectDialog: false
@@ -1004,7 +1019,7 @@
 
       // 鏄剧ず鍒囨崲鎴愬姛鎻愮ず
       wx.showToast({
-        title: `宸查�夋嫨${projectName}`,
+        title: `宸查�夋嫨${projectConfig.displayName}`,
         icon: 'success',
         duration: 2000
       });
@@ -1037,6 +1052,13 @@
     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;
     }
 
@@ -1100,6 +1122,12 @@
             return;
           }
 
+          // 妫�鏌ラ」鐩槸鍚﹂渶瑕佺櫥褰�
+          if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) {
+            console.log('鏈�缁堟鏌�: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject);
+            return;
+          }
+
           console.log('纭闇�瑕佽烦杞埌鐧诲綍椤�');
 
           // 璺宠浆鍓嶅啀娆℃鏌ョ櫥褰曢〉闈复鏃舵爣璁�
@@ -1125,6 +1153,12 @@
         // 鍐嶆妫�鏌ユ槸鍚﹀凡浠庣櫥褰曢〉杩斿洖
         if (this.getFromLogin()) {
           console.log('閿欒澶勭悊: 宸蹭粠鐧诲綍椤佃繑鍥烇紝涓嶅啀璺宠浆');
+          return;
+        }
+
+        // 妫�鏌ラ」鐩槸鍚﹂渶瑕佺櫥褰�
+        if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) {
+          console.log('閿欒澶勭悊: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject);
           return;
         }
 
@@ -1213,6 +1247,13 @@
 
   // 寰俊鐧诲綍
   wxLogin() {
+    // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
+    const currentProject = getApp().globalData.selectedProject;
+    if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) {
+      console.log('wxLogin: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject);
+      return;
+    }
+    
     if (!getApp().globalData.isLoggedIn) {
       wx.showLoading({
         title: '姝e湪鐧诲綍璇风◢鍊�...',
@@ -1251,8 +1292,10 @@
                   getApp().globalData.isLoggedIn = true;
 
                   // 璁剧疆姝g‘鐨勯」鐩畉ag
-                  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);
@@ -1262,14 +1305,14 @@
                   // 淇濆瓨userData淇℃伅锛屽寘鍚玸essionId鍜宼ag
                   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 => {

--
Gitblit v1.8.0