From ab8b53407a4d2213b1b3cdaf3cf649ef6c457dae Mon Sep 17 00:00:00 2001
From: zuoxiao <zuoxiao>
Date: 星期一, 28 四月 2025 15:52:19 +0800
Subject: [PATCH] 优化首页项目选择逻辑,添加临时选择变量以支持未确认的项目选择;更新登录页面逻辑,确保从登录页返回时正确刷新数据并处理项目选择确认,提升用户体验。

---
 pages/login/login.js |  145 ++++++++++++++++++++++--------------------------
 1 files changed, 66 insertions(+), 79 deletions(-)

diff --git a/pages/login/login.js b/pages/login/login.js
index 6d237be..f5c4db2 100644
--- a/pages/login/login.js
+++ b/pages/login/login.js
@@ -185,12 +185,11 @@
       manualNavigate: false // 鏍囪鏄惁鏄�氳繃缂栫▼鏂瑰紡瀵艰埅鐨�
     });
     
-    // 鑾峰彇閫夋嫨鐨勯」鐩� - 浼樺厛浣跨敤URL鍙傛暟
+    // 浠嶶RL鍙傛暟鑾峰彇椤圭洰淇℃伅
     if (options && options.project) {
       const project = options.project;
-      const projectName = project === 'JYG' ? '鍢夊唱鍏抽」鐩�' : 
-                         project === 'MQ' ? '姘戝嫟椤圭洰' : 
-                         project === 'TEST' ? '娴嬭瘯椤圭洰' : '鏈煡椤圭洰';
+      // 鐩存帴浣跨敤浼犲叆鐨勯」鐩悕绉帮紝涓嶅啀鎵嬪姩杞崲
+      const projectName = options.projectName || '榛樿椤圭洰';
       
       console.log(`浠嶶RL鍙傛暟鑾峰彇椤圭洰淇℃伅: ${project} (${projectName})`);
       
@@ -218,30 +217,8 @@
           console.error('璁剧疆baseUrl澶辫触:', e);
         }
       }
-      
-      // 淇濆瓨椤圭洰閫夋嫨鍒版湰鍦板瓨鍌紝纭繚椤圭洰淇℃伅涓�鑷�
-      storage.setItem('selectedProject', project)
-        .then(() => console.log('鎴愬姛淇濆瓨椤圭洰閫夋嫨鍒板瓨鍌�'))
-        .catch(err => console.error('淇濆瓨椤圭洰閫夋嫨鍒板瓨鍌ㄥけ璐�:', err));
     } else {
-      // 浠庢湰鍦板瓨鍌ㄨ幏鍙栧凡閫夋嫨鐨勯」鐩�
-      storage.getItemSafe('selectedProject').then(project => {
-        if (project) {
-          const projectName = project === 'JYG' ? '鍢夊唱鍏抽」鐩�' : 
-                            project === 'MQ' ? '姘戝嫟椤圭洰' : 
-                            project === 'TEST' ? '娴嬭瘯椤圭洰' : '鏈煡椤圭洰';
-          console.log(`浠庡瓨鍌ㄨ幏鍙栭」鐩俊鎭�: ${project} (${projectName})`);
-          
-          this.setData({
-            selectedProject: project,
-            projectName: projectName
-          });
-        } else {
-          console.log('鏈壘鍒板凡閫夋嫨鐨勯」鐩紝浣跨敤榛樿椤圭洰');
-        }
-      }).catch(err => {
-        console.error('鑾峰彇宸查�夋嫨椤圭洰澶辫触:', err);
-      });
+      console.log('鏈粠URL鑾峰彇鍒伴」鐩俊鎭紝浣跨敤榛樿鍊�');
     }
   },
 
@@ -310,11 +287,13 @@
         console.log('妫�娴嬪埌鏈変笂涓�椤碉紝浣跨敤navigateBack杩斿洖');
         wx.navigateBack({
           delta: 1,
-          success: () => console.log('navigateBack鎴愬姛'),
-          fail: (err) => {
-            console.error('navigateBack澶辫触:', err);
-            // 濡傛灉navigateBack澶辫触锛屽皾璇時eLaunch
-            this.backupReturnToHome();
+          success: () => {
+            // 閫氳繃eventChannel鍚戜笂涓�涓〉闈紶閫掓暟鎹�
+            const eventChannel = pages[pages.length - 2].getOpenerEventChannel();
+            if (eventChannel && eventChannel.emit) {
+              eventChannel.emit('fromLogin', { fromLogin: true });
+            }
+            console.log('宸叉垚鍔熻繑鍥炲埌涓婁竴椤甸潰');
           }
         });
       } else {
@@ -327,41 +306,9 @@
     }
   },
   
-  // 澶囩敤鐨勮繑鍥為椤垫柟娉�
-  backupReturnToHome() {
-    console.log('浣跨敤澶囩敤鏂规硶杩斿洖棣栭〉');
+  
     
-    // 灏濊瘯浣跨敤switchTab锛堝鏋滈椤靛湪tabBar涓級
-    const useReLaunch = () => {
-      console.log('浣跨敤reLaunch杩斿洖棣栭〉');
-      wx.reLaunch({
-        url: '/pages/home/home?fromLogin=true',
-        success: () => console.log('reLaunch鎴愬姛杩斿洖棣栭〉'),
-        fail: (err) => {
-          console.error('reLaunch杩斿洖棣栭〉澶辫触:', err);
-          // 鏈�鍚庣殑澶囩敤鏂规锛氫娇鐢╮edirectTo
-          setTimeout(() => {
-            console.log('寤惰繜浣跨敤redirectTo灏濊瘯杩斿洖棣栭〉');
-            wx.redirectTo({
-              url: '/pages/home/home?fromLogin=true',
-              success: () => console.log('redirectTo鎴愬姛杩斿洖棣栭〉'),
-              fail: (err) => console.error('鎵�鏈夎繑鍥炴柟娉曢兘澶辫触:', err)
-            });
-          }, 100);
-        }
-      });
-    };
-    
-    // 鍏堝皾璇曚娇鐢╯witchTab锛堟煇浜涚増鏈彲鑳藉皢棣栭〉璁剧疆涓簍abBar锛�
-    wx.switchTab({
-      url: '/pages/home/home',
-      success: () => console.log('switchTab鎴愬姛杩斿洖棣栭〉'),
-      fail: (err) => {
-        console.log('switchTab澶辫触锛堝彲鑳介椤典笉鍦╰abBar涓級:', err);
-        useReLaunch();
-      }
-    });
-  },
+
 
   /**
    * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
@@ -469,11 +416,6 @@
         getApp().globalData.clientId = String(data.content.clientId);
         storage.setItem("clientId", String(data.content.clientId));
         
-        // 璁剧疆褰撳墠椤圭洰鐨則ag
-        const tag = this.data.selectedProject === 'JYG' ? 'ym' : 
-                   this.data.selectedProject === 'MQ' ? 'mq' : 
-                   this.data.selectedProject === 'TEST' ? 'test' : 'unknown';
-        getApp().globalData.tag = tag;
         
         // 淇濆瓨鐢ㄦ埛淇℃伅
         const userInfo = {
@@ -481,8 +423,7 @@
           clientId: String(data.content.clientId),
           phone: this.data.phone,
           token: data.content.token || '',
-          project: this.data.selectedProject,
-          tag: tag
+          project: this.data.selectedProject
         };
         
         // 淇濆瓨鍒板叏灞�鍙橀噺
@@ -499,7 +440,11 @@
             // 淇濆瓨userData淇℃伅锛屽寘鍚玸essionId鍜宼ag
             const userData = JSON.stringify({
               sessionId: String(data.content.sessionId),
-              tag: tag
+              tag: this.data.selectedProject === 'JYG' ? 'ym' : (this.data.selectedProject === 'MQ' ? 'mq' : 'ym'),
+              project: this.data.selectedProject,
+              phone: this.data.phone,
+              clientName: data.content.clientName || '',
+              clientId: String(data.content.clientId)
             });
             return storage.setItem("userData", userData);
           })
@@ -549,11 +494,53 @@
       success: () => {
         // 寤惰繜璺宠浆锛岀‘淇漈oast鏄剧ず瀹屾垚
         setTimeout(() => {
-          console.log('鐧诲綍鎴愬姛锛屽噯澶囪烦杞埌棣栭〉');
-          // 璺宠浆鍒伴椤碉紝浣跨敤reLaunch鑰屼笉鏄痳edirectTo
-          wx.redirectTo({
-            url: '/pages/home/home'
-          });
+          console.log('鐧诲綍鎴愬姛锛屽噯澶囪繑鍥炲埌棣栭〉');
+          
+          // 鑾峰彇褰撳墠椤甸潰鏍�
+          const pages = getCurrentPages();
+          
+          // 妫�鏌ユ槸鍚︽湁涓婁竴涓〉闈㈠彲杩斿洖
+          if (pages.length > 1) {
+            // 搴旂敤涓�涓妧宸э紝鍏堣缃墠涓�涓〉闈㈢殑鍙傛暟
+            try {
+              if (pages.length > 1) {
+                const prevPage = pages[pages.length - 2];
+                if (prevPage && prevPage.options) {
+                  // 璁剧疆 fromLogin 鍙傛暟
+                  prevPage.options.fromLogin = 'true';
+                  
+                  // 濡傛灉椤甸潰鏈塷nLoad鏂规硶锛屽垯鍙兘闇�瑕佷紶閫掑弬鏁�
+                  if (typeof prevPage.onLoad === 'function') {
+                    let newOptions = {...prevPage.options};
+                    newOptions.fromLogin = 'true';
+                    prevPage.onLoad(newOptions);
+                  }
+                }
+              }
+            } catch (e) {
+              console.error('璁剧疆鍓嶄竴椤靛弬鏁板け璐�:', e);
+            }
+            
+            // 杩斿洖鍒颁笂涓�涓〉闈�
+            wx.navigateBack({
+              delta: 1,
+              success: () => {
+                console.log('宸叉垚鍔熻繑鍥炲埌涓婁竴椤甸潰');
+              },
+              fail: (err) => {
+                console.error('navigateBack澶辫触:', err);
+                // 濡傛灉杩斿洖澶辫触锛屼娇鐢ㄩ噸瀹氬悜
+                wx.redirectTo({
+                  url: '/pages/home/home?fromLogin=true'
+                });
+              }
+            });
+          } else {
+            // 濡傛灉娌℃湁涓婁竴涓〉闈紝鍒欓噸鏂版墦寮�home椤甸潰
+            wx.redirectTo({
+              url: '/pages/home/home?fromLogin=true'
+            });
+          }
         }, 1500);
       }
     });

--
Gitblit v1.8.0