From 5db0b5a4ae6124624d197bcebff28b3a9ed46400 Mon Sep 17 00:00:00 2001 From: zuoxiao <zuoxiao> Date: 星期一, 12 五月 2025 16:48:53 +0800 Subject: [PATCH] 添加账号密码登录页面的跳转逻辑,优化登录方式选择;更新项目配置以支持不同登录方式,提升用户体验。 --- pages/home/home.js | 516 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 387 insertions(+), 129 deletions(-) diff --git a/pages/home/home.js b/pages/home/home.js index a997e2b..a7d4ac1 100644 --- a/pages/home/home.js +++ b/pages/home/home.js @@ -39,6 +39,7 @@ lastIntakeName: "", showProjectDialog: false, selectedProject: '', + tempSelectedProject: '', // 娣诲姞涓存椂閫夋嫨鍙橀噺锛岀敤浜庝繚瀛樼敤鎴峰湪瀵硅瘽妗嗕腑閫夋嫨浣嗗皻鏈‘璁ょ殑椤圭洰 avatarTapCount: 0, isFromLogin: false, showTipDialog: '', @@ -49,17 +50,45 @@ openValve: function (e) { const app = getApp(); - if (app.globalData.isLoggedIn) { - wx.navigateTo({ - url: '/pages/waterIntake/waterIntake', - }) - } else { - wx.showToast({ - title: '璇峰厛鐧诲綍', - icon: 'error' - }) + // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰� + const currentProject = app.globalData.selectedProject; + if (currentProject && PROJECT_CONFIG[currentProject] && PROJECT_CONFIG[currentProject].needLogin) { + // 闇�瑕佺櫥褰曠殑椤圭洰锛屾鏌ユ槸鍚﹀凡鐧诲綍 + if (!app.globalData.isLoggedIn) { + // 鏈櫥褰曪紝鏄剧ず鎻愮ず骞堕樆姝㈡搷浣� + wx.showToast({ + title: '璇峰厛鐧诲綍', + icon: 'error', + duration: 2000 + }); + + // 鑾峰彇椤圭洰閰嶇疆 + const projectConfig = PROJECT_CONFIG[currentProject]; + if (projectConfig) { + // 璇㈤棶鐢ㄦ埛鏄惁鍓嶅線鐧诲綍 + wx.showModal({ + title: '鎻愮ず', + content: '鎮ㄩ渶瑕佺櫥褰曞悗鎵嶈兘浣跨敤寮�闃�鍔熻兘锛屾槸鍚︾珛鍗崇櫥褰曪紵', + confirmText: '鍓嶅線鐧诲綍', + cancelText: '鍙栨秷', + success: (res) => { + if (res.confirm) { + // 鐢ㄦ埛鐐瑰嚮纭锛岀洿鎺ヨ皟鐢╳xLogin鏂规硶 + this.wxLogin(); + } + } + }); + } + return; + } } + + // 宸茬櫥褰曟垨涓嶉渶瑕佺櫥褰曠殑椤圭洰锛屾墽琛屽紑闃�鎿嶄綔 + wx.navigateTo({ + url: '/pages/waterIntake/waterIntake', + }) }, + // calculateScrollViewHeight: function () { // wx.createSelectorQuery().selectAll('.list-item').boundingClientRect((rects) => { // let totalHeight = rects.reduce((sum, rect) => sum + rect.height, 0); @@ -319,9 +348,34 @@ }); } + // 灏濊瘯鑾峰彇eventChannel锛岀敤浜庣洃鍚櫥褰曢〉闈㈠彂鍥炵殑娑堟伅 + try { + const eventChannel = currentPage.getOpenerEventChannel(); + if (eventChannel && eventChannel.on) { + eventChannel.on('fromLogin', (data) => { + console.log('onShow: 鎺ユ敹鍒扮櫥褰曢〉闈㈣繑鍥炵殑娑堟伅', data); + if (data && data.fromLogin) { + fromLogin = true; + this.setData({ + isFromLogin: true + }); + + // 鐧诲綍鎴愬姛鍚庡埛鏂版暟鎹� + console.log('鐧诲綍鎴愬姛鍚庡埛鏂版暟鎹�'); + this.initData(); + } + }); + } + } catch (e) { + console.error('鑾峰彇eventChannel澶辫触:', e); + } + // 鍒濆鍖栧鐞� if (fromLogin || this.data.isFromLogin) { console.log('onShow: 浠庣櫥褰曢〉杩斿洖锛屼笉杩涜鐧诲綍妫�鏌�'); + + // 濡傛灉鏄粠鐧诲綍椤佃繑鍥烇紝閲嶆柊鍔犺浇鏁版嵁 + this.initData(); } else { console.log('onShow: 姝e父鏄剧ず椤甸潰'); // 寤惰繜妫�鏌ョ櫥褰曠姸鎬侊紝纭繚鑳芥纭瘑鍒复鏃舵爣璁� @@ -398,16 +452,43 @@ }, openValveList() { const app = getApp(); - if (app.globalData.isLoggedIn) { - wx.navigateTo({ - url: '/pages/valveList/valveList', - }) - } else { - wx.showToast({ - title: '璇峰厛鐧诲綍', - icon: 'error' - }) + // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰� + const currentProject = app.globalData.selectedProject; + if (currentProject && PROJECT_CONFIG[currentProject] && PROJECT_CONFIG[currentProject].needLogin) { + // 闇�瑕佺櫥褰曠殑椤圭洰锛屾鏌ユ槸鍚﹀凡鐧诲綍 + if (!app.globalData.isLoggedIn) { + // 鏈櫥褰曪紝鏄剧ず鎻愮ず骞堕樆姝㈡搷浣� + wx.showToast({ + title: '璇峰厛鐧诲綍', + icon: 'error', + duration: 2000 + }); + + // 鑾峰彇椤圭洰閰嶇疆 + const projectConfig = PROJECT_CONFIG[currentProject]; + if (projectConfig) { + // 璇㈤棶鐢ㄦ埛鏄惁鍓嶅線鐧诲綍 + wx.showModal({ + title: '鎻愮ず', + content: '鎮ㄩ渶瑕佺櫥褰曞悗鎵嶈兘鏌ョ湅寮�鍏抽榾璁板綍锛屾槸鍚︾珛鍗崇櫥褰曪紵', + confirmText: '鍓嶅線鐧诲綍', + cancelText: '鍙栨秷', + success: (res) => { + if (res.confirm) { + // 鐢ㄦ埛鐐瑰嚮纭锛岀洿鎺ヨ皟鐢╳xLogin鏂规硶 + this.wxLogin(); + } + } + }); + } + return; + } } + + // 宸茬櫥褰曟垨涓嶉渶瑕佺櫥褰曠殑椤圭洰锛屾墽琛屾煡鐪嬭褰曟搷浣� + wx.navigateTo({ + url: '/pages/valveList/valveList', + }) }, feedBack() { wx.showToast({ @@ -461,18 +542,45 @@ }); } }, - //杞亴 irrigation() { - if (getApp().globalData.isLoggedIn) { - wx.navigateTo({ - url: '/pages/irrigation/irrigation', - }) - } else { - wx.showToast({ - title: '璇峰厛鐧诲綍', - icon: 'error' - }) + const app = getApp(); + // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰� + const currentProject = app.globalData.selectedProject; + if (currentProject && PROJECT_CONFIG[currentProject] && PROJECT_CONFIG[currentProject].needLogin) { + // 闇�瑕佺櫥褰曠殑椤圭洰锛屾鏌ユ槸鍚﹀凡鐧诲綍 + if (!app.globalData.isLoggedIn) { + // 鏈櫥褰曪紝鏄剧ず鎻愮ず骞堕樆姝㈡搷浣� + wx.showToast({ + title: '璇峰厛鐧诲綍', + icon: 'error', + duration: 2000 + }); + + // 鑾峰彇椤圭洰閰嶇疆 + const projectConfig = PROJECT_CONFIG[currentProject]; + if (projectConfig) { + // 璇㈤棶鐢ㄦ埛鏄惁鍓嶅線鐧诲綍 + wx.showModal({ + title: '鎻愮ず', + content: '鎮ㄩ渶瑕佺櫥褰曞悗鎵嶈兘浣跨敤杞亴鍔熻兘锛屾槸鍚︾珛鍗崇櫥褰曪紵', + confirmText: '鍓嶅線鐧诲綍', + cancelText: '鍙栨秷', + success: (res) => { + if (res.confirm) { + // 鐢ㄦ埛鐐瑰嚮纭锛岀洿鎺ヨ皟鐢╳xLogin鏂规硶 + this.wxLogin(); + } + } + }); + } + return; + } } + + // 宸茬櫥褰曟垨涓嶉渶瑕佺櫥褰曠殑椤圭洰锛屾墽琛岃疆鐏屾搷浣� + wx.navigateTo({ + url: '/pages/irrigation/irrigation', + }) }, handleChange(e) { const item = e.currentTarget.dataset.item; @@ -656,12 +764,6 @@ }, //鏍规嵁session鑾峰彇鍐滄埛淇℃伅 getUserDataBySession() { - // 鍏堟鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥� - if (this.getFromLogin()) { - console.log('getUserDataBySession: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝涓嶆墽琛孉PI璇锋眰'); - return; - } - const app = getApp(); // 妫�鏌ユ槸鍚︽湁sessionId @@ -727,6 +829,41 @@ * 鎵爜寮�闃� */ scenCode() { + const app = getApp(); + // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰� + const currentProject = app.globalData.selectedProject; + if (currentProject && PROJECT_CONFIG[currentProject] && PROJECT_CONFIG[currentProject].needLogin) { + // 闇�瑕佺櫥褰曠殑椤圭洰锛屾鏌ユ槸鍚﹀凡鐧诲綍 + if (!app.globalData.isLoggedIn) { + // 鏈櫥褰曪紝鏄剧ず鎻愮ず骞堕樆姝㈡壂鐮� + wx.showToast({ + title: '璇峰厛鐧诲綍', + icon: 'error', + duration: 2000 + }); + + // 鑾峰彇椤圭洰閰嶇疆 + const projectConfig = PROJECT_CONFIG[currentProject]; + if (projectConfig) { + // 璇㈤棶鐢ㄦ埛鏄惁鍓嶅線鐧诲綍 + wx.showModal({ + title: '鎻愮ず', + content: '鎮ㄩ渶瑕佺櫥褰曞悗鎵嶈兘浣跨敤鎵爜寮�闃�鍔熻兘锛屾槸鍚︾珛鍗崇櫥褰曪紵', + confirmText: '鍓嶅線鐧诲綍', + cancelText: '鍙栨秷', + success: (res) => { + if (res.confirm) { + // 鐢ㄦ埛鐐瑰嚮纭锛岀洿鎺ヨ皟鐢╳xLogin鏂规硶 + this.wxLogin(); + } + } + }); + } + return; + } + } + + // 宸茬櫥褰曟垨涓嶉渶瑕佺櫥褰曠殑椤圭洰锛屾墽琛屾壂鐮佹搷浣� const that = this; wx.scanCode({ success(res) { @@ -825,35 +962,67 @@ // 棣栧厛妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥� if (this.getFromLogin()) { - console.log('initData: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝浠呰幏鍙栧熀鏈暟鎹�'); + console.log('initData: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝鎵ц瀹屾暣鐨勭敤鎴锋暟鎹幏鍙�'); - // 鍗充娇浠庣櫥褰曢〉杩斿洖锛屼篃灏濊瘯鑾峰彇寮�闃�鍒楄〃浠ユ樉绀哄熀鏈琔I - // 浣嗗厛妫�鏌ユ槸鍚︽湁瀹㈡埛绔疘D鍙敤 - if (!app.globalData.clientId) { - console.log('initData: 浠庣櫥褰曢〉杩斿洖涓旀棤clientId锛屽皾璇曚粠瀛樺偍鎭㈠'); - // 灏濊瘯浠庡瓨鍌ㄦ仮澶峜lientId - storage.getItemSafe('clientId') - .then(clientId => { - if (clientId) { - console.log('initData: 浠庡瓨鍌ㄦ仮澶峜lientId鎴愬姛:', clientId); - app.globalData.clientId = clientId; - this.getOpenList(); - } else { - console.log('initData: 鏃犳硶鎭㈠clientId锛屾樉绀虹┖鍒楄〃'); - this.setData({ - listData: [] - }); - } - }) - .catch(err => { - console.error('initData: 鎭㈠clientId澶辫触:', err); - this.setData({ - listData: [] - }); - }); - } else { + // 妫�鏌ユ槸鍚︽湁sessionId鍜宑lientId锛屼紭鍏堜娇鐢ㄥ叏灞�鍙橀噺 + if (app.globalData.sessionId && app.globalData.clientId) { + console.log('initData: 鍏ㄥ眬鍙橀噺涓湁鐧诲綍淇℃伅锛岀洿鎺ヨ幏鍙栫敤鎴锋暟鎹拰寮�闃�鍒楄〃'); + this.getUserDataBySession(); this.getOpenList(); + return; } + + // 濡傛灉娌℃湁鍏ㄥ眬鍙橀噺锛屽皾璇曚粠鏈湴瀛樺偍涓仮澶� + Promise.all([ + storage.getItemSafe('userData'), + storage.getItemSafe('sessionId'), + storage.getItemSafe('clientId') + ]).then(([userData, sessionId, clientId]) => { + if (userData) { + try { + // 瑙f瀽userData骞惰缃叏灞�鍙橀噺 + let jsonObj = JSON.parse(userData); + app.globalData.sessionId = jsonObj.sessionId; + app.globalData.clientId = jsonObj.clientId || clientId; + app.globalData.tag = jsonObj.tag; + app.globalData.isLoggedIn = true; + + // 鐩存帴浠巙serData璁剧疆鐢ㄦ埛淇℃伅 + if (jsonObj.clientName && jsonObj.phone) { + this.setData({ + userName: jsonObj.clientName, + userPhone: this.maskPhoneNumber(jsonObj.phone) + }); + } else { + // 濡傛灉userData涓病鏈夌敤鎴蜂俊鎭紝璋冪敤鎺ュ彛鑾峰彇 + this.getUserDataBySession(); + } + + console.log("userData宸插姞杞�:", userData); + } catch (e) { + console.error('userData瑙f瀽澶辫触:', e); + if (sessionId && clientId) { + app.globalData.sessionId = sessionId; + app.globalData.clientId = clientId; + app.globalData.isLoggedIn = true; + this.getUserDataBySession(); + } + } + } else if (sessionId && clientId) { + // 濡傛灉娌℃湁userData浣嗘湁session鍜宑lient ID + app.globalData.sessionId = sessionId; + app.globalData.clientId = clientId; + app.globalData.isLoggedIn = true; + this.getUserDataBySession(); + } + + // 鏃犺濡備綍閮藉皾璇曡幏鍙栧紑闃�鍒楄〃 + this.getOpenList(); + }).catch(err => { + console.error('鎭㈠鐧诲綍鐘舵�佸け璐�:', err); + this.getOpenList(); + }); + return; } @@ -984,7 +1153,8 @@ if (this.data.avatarTapCount >= 5) { this.setData({ showProjectDialog: true, - avatarTapCount: 0 + avatarTapCount: 0, + tempSelectedProject: this.data.selectedProject // 鍒濆鍖栦复鏃堕�夋嫨涓哄綋鍓嶉�夋嫨 }); } }, @@ -996,23 +1166,28 @@ return; } this.setData({ - showProjectDialog: e.detail.visible + showProjectDialog: e.detail.visible, + // 褰撴樉绀哄璇濇鏃讹紝鍒濆鍖栦复鏃堕�夋嫨涓哄綋鍓嶉�夋嫨 + tempSelectedProject: e.detail.visible ? this.data.selectedProject : '' }); }, // 澶勭悊椤圭洰閫夋嫨鍙樺寲 onProjectChange(event) { console.log('閫夋嫨鐨勯」鐩細', event.detail.value); + // 涓嶇珛鍗宠缃埌state锛岃�屾槸瀛樺偍鍒颁复鏃跺彉閲忎腑 this.setData({ - selectedProject: event.detail.value + tempSelectedProject: event.detail.value }); }, // 澶勭悊椤圭洰閫夋嫨纭 handleProjectConfirm() { - console.log('寮�濮嬪鐞嗛」鐩�夋嫨纭', this.data.selectedProject, this.data.projectList); + // 浠庝复鏃跺彉閲忚幏鍙栭�夋嫨鐨勯」鐩� + const selectedProject = this.data.tempSelectedProject || this.data.selectedProject; + console.log('寮�濮嬪鐞嗛」鐩�夋嫨纭', selectedProject, this.data.projectList); - if (!this.data.selectedProject) { + if (!selectedProject) { wx.showToast({ title: '璇烽�夋嫨椤圭洰', icon: 'none' @@ -1022,7 +1197,7 @@ // 鑾峰彇褰撳墠宸查�夐」鐩拰鏂伴�夋嫨鐨勯」鐩� const currentProject = getApp().globalData.selectedProject; - const newProject = this.data.selectedProject; + const newProject = selectedProject; console.log('褰撳墠椤圭洰:', currentProject, '鏂伴�夋嫨椤圭洰:', newProject); console.log('PROJECT_CONFIG 鍐呭:', PROJECT_CONFIG); @@ -1052,11 +1227,19 @@ cancelText: '鍙栨秷', success: (res) => { if (res.confirm) { + // 鐢ㄦ埛纭閫夋嫨鍚庯紝鏇存柊鐘舵�佸苟缁х画澶勭悊 + this.setData({ + selectedProject: newProject + }); // 鐢ㄦ埛纭閫夋嫨锛岀户缁鐞� this.processProjectSelection(currentProject, newProject, projectConfig, isProjectChanged); } else { // 鐢ㄦ埛鍙栨秷锛屼笉杩涜浠讳綍鎿嶄綔 console.log('鐢ㄦ埛鍙栨秷浜嗛」鐩�夋嫨'); + // 鎭㈠涔嬪墠鐨勯�夋嫨鐘舵�� + this.setData({ + tempSelectedProject: this.data.selectedProject + }); } } }); @@ -1243,7 +1426,7 @@ } // 濡傛灉褰撳墠宸插湪鐧诲綍椤碉紝涓嶅啀璺宠浆 - if (currentRoute === 'pages/login/login') { + if (currentRoute === 'pages/login/login' || currentRoute === 'pages/accountLogin/accountLogin') { console.log('褰撳墠宸插湪鐧诲綍椤碉紝涓嶅啀璺宠浆'); return; } @@ -1298,11 +1481,26 @@ wx.setStorageSync('_attempted_login_redirect', 'true'); } catch (e) {} - // wx.navigateTo({ - // url: `/pages/login/login?project=${this.data.selectedProject}`, - // success: () => console.log('鎴愬姛璺宠浆鍒扮櫥褰曢〉'), - // fail: (err) => console.error('璺宠浆鍒扮櫥褰曢〉澶辫触:', err) - // }); + // 鏍规嵁椤圭洰閰嶇疆鐨刲oginType鍐冲畾璺宠浆鍒板摢涓櫥褰曢〉闈� + // 姝ゅ涓嶅仛璺宠浆锛屾敞閲婃帀鍘熸湁浠g爜 + // const projectInfo = PROJECT_CONFIG[currentProject]; + // const loginType = projectInfo?.loginType || 'code'; // 榛樿浣跨敤楠岃瘉鐮佺櫥褰� + + // if (loginType === 'account') { + // // 璐﹀彿瀵嗙爜鐧诲綍 + // wx.navigateTo({ + // url: `/pages/accountLogin/accountLogin?project=${currentProject}`, + // success: () => console.log('鎴愬姛璺宠浆鍒拌处鍙峰瘑鐮佺櫥褰曢〉'), + // fail: (err) => console.error('璺宠浆鍒拌处鍙峰瘑鐮佺櫥褰曢〉澶辫触:', err) + // }); + // } else { + // // 楠岃瘉鐮佺櫥褰� + // wx.navigateTo({ + // url: `/pages/login/login?project=${currentProject}`, + // success: () => console.log('鎴愬姛璺宠浆鍒伴獙璇佺爜鐧诲綍椤�'), + // fail: (err) => console.error('璺宠浆鍒伴獙璇佺爜鐧诲綍椤靛け璐�:', err) + // }); + // } } }) .catch(err => { @@ -1325,12 +1523,26 @@ return; } - // 鍑洪敊鏃朵篃璺宠浆鍒扮櫥褰曢〉 - // wx.navigateTo({ - // url: `/pages/login/login?project=${this.data.selectedProject}`, - // success: () => console.log('閿欒鍚庢垚鍔熻烦杞埌鐧诲綍椤�'), - // fail: (err) => console.error('閿欒鍚庤烦杞埌鐧诲綍椤靛け璐�:', err) - // }); + // 鍑洪敊鏃朵篃璺宠浆鍒扮櫥褰曢〉锛屾牴鎹甽oginType鍐冲畾璺宠浆鐩爣 + // 姝ゅ涓嶅仛璺宠浆锛屾敞閲婃帀鍘熸湁浠g爜 + // const projectInfo = PROJECT_CONFIG[currentProject]; + // const loginType = projectInfo?.loginType || 'code'; // 榛樿浣跨敤楠岃瘉鐮佺櫥褰� + + // if (loginType === 'account') { + // // 璐﹀彿瀵嗙爜鐧诲綍 + // wx.navigateTo({ + // url: `/pages/accountLogin/accountLogin?project=${currentProject}`, + // success: () => console.log('閿欒鍚庢垚鍔熻烦杞埌璐﹀彿瀵嗙爜鐧诲綍椤�'), + // fail: (err) => console.error('閿欒鍚庤烦杞埌璐﹀彿瀵嗙爜鐧诲綍椤靛け璐�:', err) + // }); + // } else { + // // 楠岃瘉鐮佺櫥褰� + // wx.navigateTo({ + // url: `/pages/login/login?project=${currentProject}`, + // success: () => console.log('閿欒鍚庢垚鍔熻烦杞埌楠岃瘉鐮佺櫥褰曢〉'), + // fail: (err) => console.error('閿欒鍚庤烦杞埌楠岃瘉鐮佺櫥褰曢〉澶辫触:', err) + // }); + // } }); }, @@ -1437,11 +1649,21 @@ wx.hideLoading(); if (response.code === "0001") { if (response.content.client.clientId === "") { - // 鏈粦瀹氳处鍙凤紝璺宠浆鍒扮櫥褰曢〉闈㈠苟浼犻�掑綋鍓嶉」鐩俊鎭� + // 鏈粦瀹氳处鍙凤紝鏍规嵁椤圭洰閰嶇疆鐨刲oginType璺宠浆鍒扮浉搴旂殑鐧诲綍椤甸潰 const projectInfo = PROJECT_CONFIG[this.data.selectedProject]; - wx.navigateTo({ - url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` - }); + const loginType = projectInfo?.loginType || 'code'; // 榛樿浣跨敤楠岃瘉鐮佺櫥褰� + + if (loginType === 'account') { + // 璐﹀彿瀵嗙爜鐧诲綍 + wx.navigateTo({ + url: `/pages/accountLogin/accountLogin?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` + }); + } else { + // 楠岃瘉鐮佺櫥褰� + wx.navigateTo({ + url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` + }); + } } else { this.setData({ userName: response.content.client.clientName, @@ -1487,11 +1709,21 @@ } } else if (response.code === "1003") { - // 鏈粦瀹氳处鍙凤紝璺宠浆鍒扮櫥褰曢〉闈㈠苟浼犻�掑綋鍓嶉」鐩俊鎭� + // 鏈粦瀹氳处鍙凤紝鏍规嵁椤圭洰閰嶇疆鐨刲oginType璺宠浆鍒扮浉搴旂殑鐧诲綍椤甸潰 const projectInfo = PROJECT_CONFIG[this.data.selectedProject]; - wx.navigateTo({ - url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` - }); + const loginType = projectInfo?.loginType || 'code'; // 榛樿浣跨敤楠岃瘉鐮佺櫥褰� + + if (loginType === 'account') { + // 璐﹀彿瀵嗙爜鐧诲綍 + wx.navigateTo({ + url: `/pages/accountLogin/accountLogin?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` + }); + } else { + // 楠岃瘉鐮佺櫥褰� + wx.navigateTo({ + url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` + }); + } } else { wx.showToast({ title: '鐧诲綍澶辫触', @@ -1503,11 +1735,21 @@ wx.hideLoading(); console.error('鐧诲綍璇锋眰澶辫触:', error); if(error.code==="1003"){ - // 鏈粦瀹氳处鍙凤紝璺宠浆鍒扮櫥褰曢〉闈㈠苟浼犻�掑綋鍓嶉」鐩俊鎭� + // 鏈粦瀹氳处鍙凤紝鏍规嵁椤圭洰閰嶇疆鐨刲oginType璺宠浆鍒扮浉搴旂殑鐧诲綍椤甸潰 const projectInfo = PROJECT_CONFIG[this.data.selectedProject]; - wx.navigateTo({ - url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` - }); + const loginType = projectInfo?.loginType || 'code'; // 榛樿浣跨敤楠岃瘉鐮佺櫥褰� + + if (loginType === 'account') { + // 璐﹀彿瀵嗙爜鐧诲綍 + wx.navigateTo({ + url: `/pages/accountLogin/accountLogin?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` + }); + } else { + // 楠岃瘉鐮佺櫥褰� + wx.navigateTo({ + url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}` + }); + } }else{ wx.showToast({ title: '鐧诲綍澶辫触锛岃閲嶈瘯', @@ -1749,49 +1991,65 @@ }, // 鍒囨崲椤圭洰 - switchProject(e) { - const project = e.currentTarget.dataset.project; - - if (config.setBaseUrl(project)) { - this.setData({ - selectedProject: project - }); - - // 淇濆瓨閫夋嫨鍒版湰鍦板瓨鍌� - try { - wx.setStorageSync('selectedProject', project); - } catch (e) { - console.error('淇濆瓨椤圭洰閫夋嫨澶辫触:', e); - } - - // 鏇存柊鍏ㄥ眬鍙橀噺 - const app = getApp(); - if (app && app.globalData) { - app.globalData.selectedProject = project; - - // 鏍规嵁椤圭洰閰嶇疆璁剧疆鐩稿叧鍙傛暟 - const projectConfig = PROJECT_CONFIG[project]; - if (projectConfig) { - app.globalData.tag = projectConfig.tag; - if (!projectConfig.needLogin) { - app.globalData.operator = projectConfig.operatorId; - app.globalData.clientId = projectConfig.operatorId; - app.globalData.isLoggedIn = true; - app.globalData.sessionId = projectConfig.operatorId; - // 濡傛灉鏈塿cId锛屼篃璁剧疆 - if (projectConfig.vcId) { - app.globalData.vcId = projectConfig.vcId; - } - } + switchProject() { + // 鏄剧ず浜屾纭寮圭獥 + wx.showModal({ + title: '鍒囨崲椤圭洰', + content: '纭畾瑕佸垏鎹㈤」鐩悧锛熷垏鎹㈠悗闇�瑕侀噸鏂扮櫥褰曘��', + confirmText: '纭鍒囨崲', + confirmColor: '#1890FF', + cancelText: '鍙栨秷', + success: (res) => { + if (res.confirm) { + // 鐢ㄦ埛鐐瑰嚮纭锛屾樉绀洪」鐩�夋嫨寮圭獥 + this.setData({ + showProjectDialog: true + }); } } + }); + }, - // 閲嶆柊鍔犺浇椤甸潰鏁版嵁 - this.initData(); + // 娣诲姞鐢ㄦ埛鐐瑰嚮澶村儚鎴栫敤鎴峰悕鐧诲綍鐨勫鐞嗛�昏緫 + handleUserTap() { + const app = getApp(); + // 濡傛灉宸茬櫥褰曪紝涓嶉渶瑕佽烦杞埌鐧诲綍椤甸潰 + if (app.globalData.isLoggedIn) { + return; + } + + // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰� + const currentProject = app.globalData.selectedProject; + if (currentProject && PROJECT_CONFIG[currentProject]) { + const projectConfig = PROJECT_CONFIG[currentProject]; + + if (!projectConfig.needLogin) { + console.log('handleUserTap: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject); + // 涓嶉渶瑕佺櫥褰曠殑椤圭洰锛屾樉绀洪」鐩悕绉� + this.setData({ + userName: projectConfig.displayName + }); + return; + } + + // 鏍规嵁椤圭洰閰嶇疆鐨刲oginType鍐冲畾璺宠浆鍒板摢涓櫥褰曢〉闈� + const loginType = projectConfig.loginType || 'code'; // 榛樿浣跨敤楠岃瘉鐮佺櫥褰� + + if (loginType === 'account') { + // 璐﹀彿瀵嗙爜鐧诲綍 + wx.navigateTo({ + url: `/pages/accountLogin/accountLogin?project=${currentProject}&projectName=${projectConfig.displayName}` + }); + } else { + // 楠岃瘉鐮佺櫥褰� + wx.navigateTo({ + url: `/pages/login/login?project=${currentProject}&projectName=${projectConfig.displayName}` + }); + } } else { - wx.showToast({ - title: '鍒囨崲椤圭洰澶辫触', - icon: 'none' + // 濡傛灉娌℃湁褰撳墠椤圭洰閰嶇疆锛岄粯璁よ烦杞埌楠岃瘉鐮佺櫥褰� + wx.navigateTo({ + url: '/pages/login/login' }); } }, -- Gitblit v1.8.0