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