From 3008f0fcb87992077af811f9842793610fc52239 Mon Sep 17 00:00:00 2001 From: zuoxiao <zuoxiao> Date: 星期二, 29 四月 2025 16:07:00 +0800 Subject: [PATCH] 优化首页项目切换逻辑,添加确认弹窗以提升用户体验;更新样式以增强项目选择的可视化效果。 --- pages/login/login.js | 170 ++++++++++++++++++++++---------------------------------- 1 files changed, 66 insertions(+), 104 deletions(-) diff --git a/pages/login/login.js b/pages/login/login.js index f7edc39..f5c4db2 100644 --- a/pages/login/login.js +++ b/pages/login/login.js @@ -185,10 +185,11 @@ manualNavigate: false // 鏍囪鏄惁鏄�氳繃缂栫▼鏂瑰紡瀵艰埅鐨� }); - // 鑾峰彇閫夋嫨鐨勯」鐩� - 浼樺厛浣跨敤URL鍙傛暟 + // 浠嶶RL鍙傛暟鑾峰彇椤圭洰淇℃伅 if (options && options.project) { const project = options.project; - const projectName = project === 'JYG' ? '鍢夊唱鍏抽」鐩�' : '姘戝嫟椤圭洰'; + // 鐩存帴浣跨敤浼犲叆鐨勯」鐩悕绉帮紝涓嶅啀鎵嬪姩杞崲 + const projectName = options.projectName || '榛樿椤圭洰'; console.log(`浠嶶RL鍙傛暟鑾峰彇椤圭洰淇℃伅: ${project} (${projectName})`); @@ -216,28 +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' ? '鍢夊唱鍏抽」鐩�' : '姘戝嫟椤圭洰'; - console.log(`浠庡瓨鍌ㄨ幏鍙栭」鐩俊鎭�: ${project} (${projectName})`); - - this.setData({ - selectedProject: project, - projectName: projectName - }); - } else { - console.log('鏈壘鍒板凡閫夋嫨鐨勯」鐩紝浣跨敤榛樿椤圭洰'); - } - }).catch(err => { - console.error('鑾峰彇宸查�夋嫨椤圭洰澶辫触:', err); - }); + console.log('鏈粠URL鑾峰彇鍒伴」鐩俊鎭紝浣跨敤榛樿鍊�'); } }, @@ -300,42 +281,19 @@ if (!this.data.manualNavigate) { console.log('椤甸潰鍗歌浇鏃舵湭璁剧疆manualNavigate锛屽亣瀹氭槸杩斿洖鎸夐挳鎿嶄綔'); - // 绔嬪嵆鍐欏叆涓存椂鏍囪锛屼互渚块椤垫娴嬪埌 - try { - // 澶氱鏂瑰紡纭繚鍐欏叆鎴愬姛 - wx.setStorageSync('_temp_from_login', 'true'); - console.log('绔嬪嵆鍐欏叆_temp_from_login鏍囪涓簍rue'); - - // 鍒涘缓涓�涓叏灞�瀵硅薄锛屼綔涓哄鐢ㄦ柟妗� - if (!getApp().globalData) { - getApp().globalData = {}; - } - getApp().globalData._tempFromLogin = true; - console.log('鍚屾椂璁剧疆鍏ㄥ眬鍙橀噺_tempFromLogin=true'); - - // 妫�鏌ュ啓鍏ユ槸鍚︽垚鍔� - const check = wx.getStorageSync('_temp_from_login'); - console.log('妫�鏌ヤ复鏃舵爣璁版槸鍚﹀啓鍏ユ垚鍔�:', check); - } catch (e) { - console.error('鍐欏叆鏍囪澶辫触:', e); - // 澶囩敤鏂瑰紡鍐欏叆 - wx.setStorage({ - key: '_temp_from_login', - data: 'true' - }); - } - // 灏濊瘯浣跨敤wx.navigateBack杩斿洖涓婁竴椤碉紙濡傛灉鍙锛� const pages = getCurrentPages(); if (pages.length > 1) { 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 { @@ -348,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(); - } - }); - }, + /** * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔 @@ -490,9 +416,6 @@ getApp().globalData.clientId = String(data.content.clientId); storage.setItem("clientId", String(data.content.clientId)); - // 璁剧疆褰撳墠椤圭洰鐨則ag - const tag = this.data.selectedProject === 'JYG' ? 'ym' : 'mq'; - getApp().globalData.tag = tag; // 淇濆瓨鐢ㄦ埛淇℃伅 const userInfo = { @@ -500,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 }; // 淇濆瓨鍒板叏灞�鍙橀噺 @@ -518,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); }) @@ -559,12 +485,6 @@ // 璁剧疆鍏ㄥ眬鐧诲綍鐘舵�� getApp().globalData.isLoggedIn = true; - // 纭繚娓呴櫎涓存椂鏍囪 - try { - wx.removeStorageSync('_temp_from_login'); - } catch(e) { - console.warn('娓呴櫎涓存椂鏍囪澶辫触', e); - } wx.showToast({ title: '缁戝畾鎴愬姛', @@ -574,11 +494,53 @@ success: () => { // 寤惰繜璺宠浆锛岀‘淇漈oast鏄剧ず瀹屾垚 setTimeout(() => { - console.log('鐧诲綍鎴愬姛锛屽噯澶囪烦杞埌棣栭〉'); - // 璺宠浆鍒伴椤碉紝浣跨敤reLaunch鑰屼笉鏄痳edirectTo - wx.reLaunch({ - 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