From 61e89d748cc7f5456c20866e672a4bde153534f1 Mon Sep 17 00:00:00 2001 From: zuoxiao <zuoxiao> Date: 星期一, 21 四月 2025 17:18:53 +0800 Subject: [PATCH] 优化项目配置,重构项目URL管理逻辑,改为使用动态配置;更新灌溉组详情页面,添加详细信息展示和请求逻辑,提升用户体验;更新首页项目选择器,支持动态项目列表展示。 --- pages/home/home.js | 185 +++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 165 insertions(+), 20 deletions(-) diff --git a/pages/home/home.js b/pages/home/home.js index 02da0b4..9f9c353 100644 --- a/pages/home/home.js +++ b/pages/home/home.js @@ -4,12 +4,13 @@ get, post } = require('../../api/request.js'); -const { - PROJECT_URLS -} = require('../../api/config.js'); +const config = require('../../api/config.js'); const { PROJECT_CONFIG } = require('../../utils/projectConfig.js'); +const { + ENV +} = require('../../api/env.js'); Page({ @@ -42,7 +43,8 @@ isFromLogin: false, showTipDialog: '', projectConfig: PROJECT_CONFIG, // 娣诲姞椤圭洰閰嶇疆鍒癲ata涓� - showInfoDialog: false + showInfoDialog: false, + projectList: [] }, openValve: function (e) { @@ -93,6 +95,10 @@ */ onLoad(options) { console.log('home椤甸潰onLoad寮�濮嬶紝鍙傛暟:', options); + + // 鍒濆鍖栭」鐩垪琛ㄦ暟鎹� + this.initProjectList(); + //褰撳紑闃�鎴愬姛鍚庤皟鐢ㄥ埛鏂� if (options.param === "1" || options.param === "2") { this.setData({ @@ -124,6 +130,44 @@ }, 100); }, + // 鍒濆鍖栭」鐩垪琛ㄦ暟鎹� + initProjectList() { + // 灏哖ROJECT_CONFIG瀵硅薄杞崲涓烘暟缁勶紝鏂逛究鍦ㄨ鍥句腑閬嶅巻 + const projectList = Object.entries(PROJECT_CONFIG).map(([key, config]) => ({ + key: key, // 浣跨敤key浣滀负椤圭洰鏍囪瘑(JYG銆丮Q绛�) + tag: config.tag, // 淇濈暀tag瀛楁锛堝師閰嶇疆涓凡鏈夌殑鏍囪瘑锛屽ym銆乵q绛夛級 + displayName: config.displayName, // 鏄剧ず鍚嶇О + ...config // 鍏朵粬閰嶇疆灞炴�� + })); + + // 鑾峰彇褰撳墠宸查�夋嫨鐨勯」鐩紝榛樿涓篔YG + let currentSelectedProject = 'JYG'; + + // 灏濊瘯浠庡叏灞�鍙橀噺鑾峰彇 + const app = getApp(); + if (app && app.globalData && app.globalData.selectedProject) { + currentSelectedProject = app.globalData.selectedProject; + } else { + // 灏濊瘯浠庢湰鍦板瓨鍌ㄨ幏鍙� + try { + const savedProject = wx.getStorageSync('selectedProject'); + if (savedProject) { + currentSelectedProject = savedProject; + } + } catch (e) { + console.error('浠庢湰鍦板瓨鍌ㄨ幏鍙栭」鐩け璐�:', e); + } + } + + // 璁剧疆鍒伴〉闈㈡暟鎹腑 + this.setData({ + projectList, + selectedProject: currentSelectedProject + }); + + console.log('椤圭洰鍒楄〃宸插垵濮嬪寲:', projectList, '褰撳墠閫変腑椤圭洰:', currentSelectedProject); + }, + // 鏂板鐨勫垵濮嬪寲椤甸潰杈呭姪鍑芥暟锛屽垎绂诲嚭onLoad涓殑閫昏緫浠ヤ究寤惰繜鎵ц initializePage(options, fromLogin) { // 妫�鏌ユ槸鍚﹀凡閫夋嫨椤圭洰 @@ -142,9 +186,12 @@ }); // 璁剧疆 baseUrl - const baseUrl = PROJECT_URLS[project]; - getApp().globalData.baseUrl = baseUrl; - getApp().globalData.selectedProject = project; + const serverUrl = PROJECT_CONFIG[project]?.serverUrl; + if (serverUrl) { + getApp().globalData.baseUrl = serverUrl; + getApp().globalData.selectedProject = project; + console.log('璁剧疆baseUrl:', serverUrl); + } // 鏍规嵁椤圭洰璁剧疆瀵瑰簲鐨則ag const projectConfig = PROJECT_CONFIG[project]; @@ -364,23 +411,36 @@ const currentProject = getApp().globalData.selectedProject; const projectConfig = PROJECT_CONFIG[currentProject]; - // 濡傛灉褰撳墠椤圭洰閰嶇疆涓轰笉闇�瑕佺櫥褰曪紝鍒欐彁绀虹敤鎴蜂笉鍙В缁� + // 濡傛灉褰撳墠椤圭洰閰嶇疆涓轰笉闇�瑕佺櫥褰曪紝鍒欐彁绀虹敤鎴峰苟鎵撳紑椤圭洰閫夋嫨寮圭獥 if (projectConfig && !projectConfig.needLogin) { - wx.showToast({ - title: '褰撳墠鐢ㄦ埛涓嶅彲瑙g粦', - icon: 'none', - duration: 2000 + wx.showModal({ + title: '鍒囨崲椤圭洰', + content: '鏄惁纭畾瑙g粦锛�', + confirmText: '纭', + cancelText: '鍙栨秷', + success: (res) => { + if (res.confirm) { + // 鏄剧ず椤圭洰閫夋嫨寮圭獥 + this.setData({ + showProjectDialog: true + }); + } + } }); return; } + // 濡傛灉宸茬櫥褰曪紝鏄剧ず瑙g粦纭瀵硅瘽妗� if (getApp().globalData.isLoggedIn) { wx.showModal({ title: '瑙g粦纭', - content: '纭畾瑕佽В缁戝綋鍓嶈处鍙峰悧锛�', + content: '纭畾瑕佽В缁戝綋鍓嶈处鍙峰悧锛熻В缁戝悗灏嗘棤娉曚娇鐢ㄧ浉鍏冲姛鑳斤紝闇�閲嶆柊缁戝畾銆�', + confirmText: '纭瑙g粦', + confirmColor: '#e34d59', + cancelText: '鍙栨秷', success: (res) => { if (res.confirm) { - this.unBindPost() + this.unBindPost(); } } }); @@ -388,7 +448,7 @@ wx.showToast({ title: '杩樻湭缁戝畾', icon: 'error' - }) + }); } }, //杞亴 @@ -939,6 +999,8 @@ // 澶勭悊椤圭洰閫夋嫨纭 handleProjectConfirm() { + console.log('寮�濮嬪鐞嗛」鐩�夋嫨纭', this.data.selectedProject, this.data.projectList); + if (!this.data.selectedProject) { wx.showToast({ title: '璇烽�夋嫨椤圭洰', @@ -950,7 +1012,11 @@ // 鑾峰彇褰撳墠宸查�夐」鐩拰鏂伴�夋嫨鐨勯」鐩� const currentProject = getApp().globalData.selectedProject; const newProject = this.data.selectedProject; + console.log('褰撳墠椤圭洰:', currentProject, '鏂伴�夋嫨椤圭洰:', newProject); + console.log('PROJECT_CONFIG 鍐呭:', PROJECT_CONFIG); + const projectConfig = PROJECT_CONFIG[newProject]; + console.log('閫夋嫨鐨勯」鐩厤缃�:', projectConfig); if (!projectConfig) { wx.showToast({ @@ -963,6 +1029,30 @@ // 妫�鏌ユ槸鍚﹀垏鎹簡椤圭洰锛堝鏋滃綋鍓嶉」鐩笉鍚屼簬鏂伴�夋嫨鐨勯」鐩級 const isProjectChanged = currentProject && currentProject !== newProject; + // 娣诲姞浜屾纭 + const confirmText = isProjectChanged + ? `纭畾瑕佸皢椤圭洰浠�"${PROJECT_CONFIG[currentProject]?.displayName || '褰撳墠椤圭洰'}"鍒囨崲鍒�"${projectConfig.displayName}"鍚楋紵` + : `纭畾閫夋嫨"${projectConfig.displayName}"椤圭洰鍚楋紵`; + + wx.showModal({ + title: isProjectChanged ? '纭鍒囨崲椤圭洰' : '纭閫夋嫨椤圭洰', + content: confirmText, + confirmText: isProjectChanged ? '纭鍒囨崲' : '纭', + cancelText: '鍙栨秷', + success: (res) => { + if (res.confirm) { + // 鐢ㄦ埛纭閫夋嫨锛岀户缁鐞� + this.processProjectSelection(currentProject, newProject, projectConfig, isProjectChanged); + } else { + // 鐢ㄦ埛鍙栨秷锛屼笉杩涜浠讳綍鎿嶄綔 + console.log('鐢ㄦ埛鍙栨秷浜嗛」鐩�夋嫨'); + } + } + }); + }, + + // 澶勭悊椤圭洰閫夋嫨鐨勫悗缁搷浣� + processProjectSelection(currentProject, newProject, projectConfig, isProjectChanged) { // 濡傛灉鍒囨崲浜嗛」鐩紝鍏堟竻闄ょ櫥褰曠姸鎬� if (isProjectChanged) { console.log(`姝e湪浠庨」鐩� ${currentProject} 鍒囨崲鍒� ${newProject}锛屽皢娓呴櫎鐧诲綍鐘舵�乣); @@ -994,13 +1084,21 @@ // 淇濆瓨椤圭洰閫夋嫨鍒版湰鍦板瓨鍌� storage.setItem('selectedProject', newProject).then(() => { - // 鏇存柊 BASEURL - const baseUrl = PROJECT_URLS[newProject]; - + // 璋冪敤setBaseUrl鏉ユ洿鏂板熀纭�URL + try { + console.log('灏濊瘯璁剧疆鍩虹URL锛岄」鐩�:', newProject); + const result = config.setBaseUrl(newProject); + console.log('璁剧疆鍩虹URL缁撴灉:', result); + } catch (error) { + console.error('璁剧疆鍩虹URL鍑洪敊:', error); + // 缁х画鎵ц锛屼笉涓柇娴佺▼ + } + // 鏇存柊鍏ㄥ眬鍙橀噺 getApp().globalData = getApp().globalData || {}; - getApp().globalData.baseUrl = baseUrl; getApp().globalData.selectedProject = newProject; + getApp().globalData.baseUrl = projectConfig.serverUrl; + getApp().globalData.serverId = projectConfig.serverId; // 閫氳繃閰嶇疆瀵硅薄缁熶竴璁剧疆椤圭洰鍙傛暟 getApp().globalData.tag = projectConfig.tag; @@ -1038,7 +1136,7 @@ storage.setItem(`${newProject}_params`, params); } - console.log('宸插垏鎹㈠埌椤圭洰:', projectConfig.displayName, '鍩熷悕:', baseUrl, 'tag:', getApp().globalData.tag); + console.log('宸插垏鎹㈠埌椤圭洰:', projectConfig.displayName, '鏈嶅姟鍣�:', projectConfig.serverId, 'tag:', getApp().globalData.tag); this.setData({ showProjectDialog: false @@ -1595,4 +1693,51 @@ return `${hours}:${minutes}:${seconds}`; }, + // 鍒囨崲椤圭洰 + 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; + } + } + } + } + + // 閲嶆柊鍔犺浇椤甸潰鏁版嵁 + this.initData(); + } else { + wx.showToast({ + title: '鍒囨崲椤圭洰澶辫触', + icon: 'none' + }); + } + }, }) \ No newline at end of file -- Gitblit v1.8.0