From 61e89d748cc7f5456c20866e672a4bde153534f1 Mon Sep 17 00:00:00 2001 From: zuoxiao <zuoxiao> Date: 星期一, 21 四月 2025 17:18:53 +0800 Subject: [PATCH] 优化项目配置,重构项目URL管理逻辑,改为使用动态配置;更新灌溉组详情页面,添加详细信息展示和请求逻辑,提升用户体验;更新首页项目选择器,支持动态项目列表展示。 --- pages/groupDetail/groupDetail.js | 205 +++++++++++---- pages/home/home.js | 185 ++++++++++++- api/config.js | 34 -- pages/groupDetail/groupDetail.wxml | 22 + pages/groupDetail/groupDetail.wxss | 55 +++ pages/createIrrigation/createIrrigation.js | 23 + pages/home/home.wxml | 35 -- utils/projectConfig.js | 139 +++++++-- pages/home/home.wxss | 73 ++--- 9 files changed, 540 insertions(+), 231 deletions(-) diff --git a/api/config.js b/api/config.js index f3763c3..cf4a428 100644 --- a/api/config.js +++ b/api/config.js @@ -1,19 +1,8 @@ const { ENV } = require('./env') +const { PROJECT_CONFIG } = require('../utils/projectConfig') let BASEURL - -const PROJECT_URLS = { - JYG: 'https://irrigate.dayuyanjiuyuan.top/', // 鍢夊唱鍏抽」鐩� - MQ: 'https://shifanqu1.dayuyanjiuyuan.top/', // 姘戝嫟椤圭洰 - TEST: 'https://no253541tf71.vicp.fun/', // test椤圭洰 - SCHOOL: 'https://school.dayuyanjiuyuan.top/', // 瀛︽牎椤圭洰 - JC:'https://shifanqu1.dayuyanjiuyuan.top/', - GSCLT:'https://irrigate.dayuyanjiuyuan.top/'//鐢樿們鍐滅闄㈠磾榫欏ぉ - // TEST:'http://192.168.40.182:8087/'// test椤圭洰 - // MQ: 'https://no253541tf71.vicp.fun/' // 姘戝嫟椤圭洰 - // TEST: 'http://192.168.40.166:54321/' -} // 灏濊瘯浠庢湰鍦板瓨鍌ㄨ幏鍙栧凡閫夋嫨鐨勯」鐩� let selectedProject = 'JYG'; // 榛樿涓哄槈宄叧椤圭洰 @@ -41,31 +30,22 @@ console.error('鑾峰彇宸查�夋嫨椤圭洰澶辫触:', e); } -switch (ENV) { - case 'production': - BASEURL = PROJECT_URLS[selectedProject] || PROJECT_URLS.JYG; - break; - case 'test': - // BASEURL 灏嗘牴鎹敤鎴烽�夋嫨鐨勯」鐩姩鎬佽缃� - BASEURL = PROJECT_URLS[selectedProject] || PROJECT_URLS.JYG; - break; - default: - BASEURL = PROJECT_URLS[selectedProject] || PROJECT_URLS.JYG; - break; -} +// 鏍规嵁鐜鍜岄」鐩缃瓸ASEURL +BASEURL = PROJECT_CONFIG[selectedProject]?.serverUrl || PROJECT_CONFIG.JYG.serverUrl; // 瀵煎嚭鍔ㄦ�佽缃� BASEURL 鐨勫嚱鏁� function setBaseUrl(project) { - if (PROJECT_URLS[project]) { - BASEURL = PROJECT_URLS[project]; + const serverUrl = PROJECT_CONFIG[project]?.serverUrl; + if (serverUrl) { + BASEURL = serverUrl; console.log('鍔ㄦ�佽缃� BASEURL:', BASEURL); return true; } + console.error('椤圭洰閰嶇疆涓嶅瓨鍦ㄦ垨鏈缃湇鍔″櫒鍦板潃:', project); return false; } module.exports = { BASEURL, // 椤圭洰鎺ュ彛鍦板潃锛屾敮鎸佸鍩熷悕 - PROJECT_URLS, setBaseUrl } \ No newline at end of file diff --git a/pages/createIrrigation/createIrrigation.js b/pages/createIrrigation/createIrrigation.js index 6915e8f..14c2a4c 100644 --- a/pages/createIrrigation/createIrrigation.js +++ b/pages/createIrrigation/createIrrigation.js @@ -303,10 +303,25 @@ * 璺宠浆鍒拌疆鐏岀粍璇︽儏椤� */ navigateToGroupDetail: function (e) { - const { - groupIndex - } = e.currentTarget.dataset; - // TODO: 瀹炵幇璺宠浆閫昏緫 + const { groupIndex } = e.currentTarget.dataset; + const group = this.data.selectedProject.groups[groupIndex]; + + // 鏋勫缓URL鍙傛暟 + const params = { + projectName: this.data.selectedProject.name, + groupName: group.name, + groupId: group.id + }; + + // 鏋勫缓URL鏌ヨ瀛楃涓� + const queryString = Object.keys(params) + .map(key => `${key}=${encodeURIComponent(params[key])}`) + .join('&'); + + // 璺宠浆鍒拌疆鐏岀粍璇︽儏椤� + wx.navigateTo({ + url: `/pages/groupDetail/groupDetail?${queryString}` + }); }, /** diff --git a/pages/groupDetail/groupDetail.js b/pages/groupDetail/groupDetail.js index 3a75ef0..600a6b4 100644 --- a/pages/groupDetail/groupDetail.js +++ b/pages/groupDetail/groupDetail.js @@ -46,74 +46,157 @@ refreshing: true }); - console.log('鍔犺浇鍙栨按鍙f暟鎹紝鐏屾簤鐘舵��:', this.data.isIrrigating); + console.log('寮�濮嬪姞杞借疆鐏岀粍璇︽儏锛実roupId:', this.data.groupId); - // 妯℃嫙鏁版嵁 - let mockData = { - waterOutlets: [] - }; - - // 鐢熸垚鍙栨按鍙f暟鎹紝鎵�鏈夊彇姘村彛閮芥湁鍛戒护鐘舵�� - mockData.waterOutlets = [ - { - id: 1, - name: '鍙栨按鍙� A-1', - status: 'online', - commandStatus: 'sent' // 鍛戒护宸蹭笅鍙� - }, - { - id: 2, - name: '鍙栨按鍙� A-2', - status: 'online', - commandStatus: 'unsent' // 鍛戒护鏈笅鍙� - }, - { - id: 3, - name: '鍙栨按鍙� A-3', - status: 'offline', - commandStatus: 'unsent' // 鍛戒护鏈笅鍙� + // 妫�鏌piBaseUrl鏄惁瀛樺湪 + if (!app.globalData.apiBaseUrl) { + try { + // 浠巆onfig妯″潡鑾峰彇鍩虹URL + const config = require('../../api/config'); + const { PROJECT_CONFIG } = require('../../utils/projectConfig'); + + // 鑾峰彇褰撳墠閫変腑鐨勯」鐩爣璇� + const tag = wx.getStorageSync('projectTag') || app.globalData.tag || 'mq'; + + // 鏍规嵁tag鎵惧埌瀵瑰簲椤圭洰閰嶇疆 + let selectedProject = 'MQ'; // 榛樿涓烘皯鍕ら」鐩� + for (const key in PROJECT_CONFIG) { + if (PROJECT_CONFIG[key].tag === tag) { + selectedProject = key; + break; + } + } + + // 璁剧疆apiBaseUrl + app.globalData.apiBaseUrl = PROJECT_CONFIG[selectedProject].serverUrl; + console.log('浠庨厤缃腑鑾峰彇apiBaseUrl:', app.globalData.apiBaseUrl); + } catch (error) { + console.error('鑾峰彇apiBaseUrl澶辫触:', error); + // 浣跨敤璇锋眰搴撲腑鐨勬柟娉� + const { get } = require('../../api/request'); + + get({ + url: '/wx/irrigation/getGroupDetails', + data: { groupId: this.data.groupId }, + isShowLoding: true + }).then(res => { + if (res.success) { + this.handleGroupDetailsResponse(res); + } else { + wx.showToast({ + title: res.msg || '鑾峰彇鏁版嵁澶辫触', + icon: 'none' + }); + } + }).catch(err => { + console.error('璇锋眰澶辫触:', err); + wx.showToast({ + title: '缃戠粶閿欒', + icon: 'none' + }); + }).finally(() => { + this.setData({ + refreshing: false + }); + }); + + return; // 宸茬粡浣跨敤璇锋眰搴撳鐞嗭紝鐩存帴杩斿洖 } - ]; + } - // 妯℃嫙缃戠粶璇锋眰寤惰繜 - setTimeout(() => { + // 浣跨敤wx.request鍙戦�佽姹� + wx.request({ + url: `${app.globalData.apiBaseUrl}/wx/irrigation/getGroupDetails`, + method: 'GET', + data: { + groupId: this.data.groupId + }, + header: { + 'content-type': 'application/json', + 'Authorization': wx.getStorageSync('token') || '', + 'tag': wx.getStorageSync('projectTag') || app.globalData.tag || '', + 'appId': app.globalData.AppID || '' + }, + success: (res) => { + console.log('杞亴缁勮鎯呮帴鍙h繑鍥�:', res.data); + + if (res.data && res.data.success) { + this.handleGroupDetailsResponse(res.data); + } else { + wx.showToast({ + title: res.data.msg || '鑾峰彇鏁版嵁澶辫触', + icon: 'none' + }); + this.setData({ + refreshing: false + }); + } + }, + fail: (err) => { + console.error('璇锋眰澶辫触:', err); + // 灏濊瘯浣跨敤璇锋眰搴撻噸璇� + this.retryUsingRequestLib(); + } + }); + }, + + /** + * 浣跨敤璇锋眰搴撻噸璇曡幏鍙栨暟鎹� + */ + retryUsingRequestLib: function() { + console.log('浣跨敤璇锋眰搴撻噸璇曡幏鍙栨暟鎹�'); + const { get } = require('../../api/request'); + + get({ + url: '/wx/irrigation/getGroupDetails', + data: { groupId: this.data.groupId }, + isShowLoding: true + }).then(res => { + if (res.success) { + this.handleGroupDetailsResponse(res); + } else { + wx.showToast({ + title: res.msg || '鑾峰彇鏁版嵁澶辫触', + icon: 'none' + }); + } + }).catch(err => { + console.error('璇锋眰搴撻噸璇曞け璐�:', err); + wx.showToast({ + title: '缃戠粶閿欒', + icon: 'none' + }); + }).finally(() => { this.setData({ - waterOutletList: mockData.waterOutlets, refreshing: false }); - console.log('璁剧疆鍙栨按鍙f暟鎹畬鎴�:', this.data.waterOutletList); - }, 1000); + }); + }, + + /** + * 澶勭悊杞亴缁勮鎯呭搷搴旀暟鎹� + */ + handleGroupDetailsResponse: function(response) { + const data = response.content; - // 瀹為檯椤圭洰涓簲璇ヤ娇鐢╳x.request鑾峰彇鏁版嵁 - // wx.request({ - // url: `https://your-api-url/groups/${this.data.groupId}/waterOutlets`, - // method: 'GET', - // success: (res) => { - // if (res.data && res.data.code === 0) { - // this.setData({ - // waterOutletList: res.data.data.waterOutlets, - // refreshing: false - // }); - // } else { - // wx.showToast({ - // title: '鑾峰彇鏁版嵁澶辫触', - // icon: 'none' - // }); - // this.setData({ - // refreshing: false - // }); - // } - // }, - // fail: () => { - // wx.showToast({ - // title: '缃戠粶閿欒', - // icon: 'none' - // }); - // this.setData({ - // refreshing: false - // }); - // } - // }); + // 澶勭悊鍙栨按鍙f暟鎹� + const waterOutletList = data.intakes.map(item => { + return { + id: item.rtuAddr, // 浣跨敤rtuAddr浣滀负ID + name: item.intakeName, + rtuAddr: item.rtuAddr, + status: item.isOnLine ? 'online' : 'offline' + }; + }); + + this.setData({ + projectName: data.projectName || this.data.projectName, + groupName: data.groupName || this.data.groupName, + waterOutletList: waterOutletList, + refreshing: false + }); + + console.log('璁剧疆鍙栨按鍙f暟鎹畬鎴�:', this.data.waterOutletList); }, /** diff --git a/pages/groupDetail/groupDetail.wxml b/pages/groupDetail/groupDetail.wxml index 512385b..1619d88 100644 --- a/pages/groupDetail/groupDetail.wxml +++ b/pages/groupDetail/groupDetail.wxml @@ -3,7 +3,10 @@ <view class="page-header"> <view class="header-content"> <view class="project-info"> - <view class="project-name">{{projectName}}</view> + <view class="project-name"> + <text class="project-label">鎵�灞為」鐩細</text> + <text>{{projectName}}</text> + </view> <view class="group-name">{{groupName}}</view> </view> </view> @@ -32,15 +35,18 @@ <block wx:for="{{waterOutletList}}" wx:key="id"> <view class="valve-item"> <view class="valve-info"> - <view class="valve-name"> - <text>{{item.name}}</text> - <view class="valve-status-inline {{item.status === 'online' ? 'online' : 'offline'}}"> - {{item.status === 'online' ? '鍦ㄧ嚎' : '绂荤嚎'}} - </view> + <view class="valve-name-container"> + <text class="name-text">{{item.name}}</text> + </view> + <view class="valve-rtu-addr"> + <text class="rtu-label">璁惧鍦板潃: </text> + <text class="rtu-value">{{item.rtuAddr}}</text> </view> </view> - <view class="command-status {{item.commandStatus}}"> - {{item.commandStatus === 'sent' ? '鍛戒护宸蹭笅鍙�' : '鍛戒护鏈笅鍙�'}} + <view class="valve-status-container"> + <view class="valve-status-inline {{item.status === 'online' ? 'online' : 'offline'}}"> + {{item.status === 'online' ? '鍦ㄧ嚎' : '绂荤嚎'}} + </view> </view> </view> </block> diff --git a/pages/groupDetail/groupDetail.wxss b/pages/groupDetail/groupDetail.wxss index b614d46..78bdfba 100644 --- a/pages/groupDetail/groupDetail.wxss +++ b/pages/groupDetail/groupDetail.wxss @@ -27,6 +27,13 @@ font-size: 28rpx; color: #666666; margin-bottom: 10rpx; + display: flex; + align-items: center; +} + +.project-label { + color: #999999; + margin-right: 8rpx; } .group-name { @@ -61,21 +68,51 @@ .valve-info { flex: 1; + margin-right: 20rpx; + overflow: hidden; } -.valve-name { +.valve-name-container { font-size: 32rpx; font-weight: 500; color: #333333; + margin-bottom: 12rpx; + width: 100%; + overflow: hidden; +} + +.name-text { + display: inline-block; + max-width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.valve-rtu-addr { + font-size: 24rpx; + color: #666666; display: flex; align-items: center; - flex-wrap: wrap; +} + +.rtu-label { + color: #999999; + white-space: nowrap; +} + +.rtu-value { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } .valve-status-container { display: flex; flex-direction: column; align-items: flex-end; + justify-content: center; + min-width: 100rpx; } .valve-status { @@ -100,24 +137,28 @@ .valve-status-inline { font-size: 24rpx; font-weight: 500; - padding: 4rpx 12rpx; - border-radius: 20rpx; - margin-left: 12rpx; - display: inline-flex; + padding: 8rpx 20rpx; + border-radius: 30rpx; + display: flex; align-items: center; justify-content: center; - height: 32rpx; + height: 36rpx; line-height: 1; + min-width: 80rpx; + text-align: center; + white-space: nowrap; } .valve-status-inline.online { background-color: rgba(82, 196, 26, 0.1); color: #52C41A; + border: 1rpx solid rgba(82, 196, 26, 0.3); } .valve-status-inline.offline { background-color: rgba(245, 34, 45, 0.1); color: #F5222D; + border: 1rpx solid rgba(245, 34, 45, 0.3); } /* 鍛戒护鐘舵�佹牱寮� */ 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 diff --git a/pages/home/home.wxml b/pages/home/home.wxml index eab6ee6..327b1dd 100644 --- a/pages/home/home.wxml +++ b/pages/home/home.wxml @@ -98,33 +98,14 @@ <text class="project-modal-title">璇烽�夋嫨椤圭洰</text> </view> <view class="project-modal-body"> - - <radio-group class="project-radio-group" bindchange="onProjectChange"> - <label class="project-radio {{selectedProject === 'JYG' ? 'project-radio-selected' : ''}}"> - <radio value="JYG" checked="{{selectedProject === 'JYG'}}" color="#1890FF" /> - <text>鍢夊唱鍏抽」鐩�</text> - </label> - <label class="project-radio {{selectedProject === 'MQ' ? 'project-radio-selected' : ''}}"> - <radio value="MQ" checked="{{selectedProject === 'MQ'}}" color="#1890FF" /> - <text>姘戝嫟椤圭洰</text> - </label> - <label class="project-radio {{selectedProject === 'TEST' ? 'project-radio-selected' : ''}}"> - <radio value="TEST" checked="{{selectedProject === 'TEST'}}" color="#1890FF" /> - <text>娴嬭瘯椤圭洰</text> - </label> - <label class="project-radio {{selectedProject === 'SCHOOL' ? 'project-radio-selected' : ''}}"> - <radio value="SCHOOL" checked="{{selectedProject === 'SCHOOL'}}" color="#1890FF" /> - <text>瀛︽牎椤圭洰</text> - </label> - <label class="project-radio {{selectedProject === 'JC' ? 'project-radio-selected' : ''}}"> - <radio value="JC" checked="{{selectedProject === 'JC'}}" color="#1890FF" /> - <text>閲戞槍椤圭洰</text> - </label> - <label class="project-radio {{selectedProject === 'GSCLT' ? 'project-radio-selected' : ''}}"> - <radio value="GSCLT" checked="{{selectedProject === 'GSCLT'}}" color="#1890FF" /> - <text>鐢樿們鍐滅闄�-宕�</text> - </label> - </radio-group> + <scroll-view scroll-y class="project-scroll-view"> + <radio-group class="project-radio-group" bindchange="onProjectChange"> + <label wx:for="{{projectList}}" wx:key="index" class="project-radio {{selectedProject === item.key ? 'project-radio-selected' : ''}}"> + <radio value="{{item.key}}" checked="{{selectedProject === item.key}}" color="#1890FF" /> + <text>{{item.displayName}}</text> + </label> + </radio-group> + </scroll-view> </view> <view class="project-modal-footer"> <button class="project-modal-btn" disabled="{{!selectedProject}}" bindtap="handleProjectConfirm">纭</button> diff --git a/pages/home/home.wxss b/pages/home/home.wxss index 286f2f7..4f09e97 100644 --- a/pages/home/home.wxss +++ b/pages/home/home.wxss @@ -633,10 +633,7 @@ left: 0; right: 0; bottom: 0; - z-index: 9999; - display: flex; - align-items: center; - justify-content: center; + z-index: 999; } .project-modal-mask { @@ -645,12 +642,15 @@ left: 0; right: 0; bottom: 0; - background-color: rgba(0, 0, 0, 0.6); + background-color: rgba(0, 0, 0, 0.5); } .project-modal-content { - position: relative; - width: 80%; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 85%; max-width: 600rpx; background-color: #fff; border-radius: 16rpx; @@ -660,72 +660,67 @@ } .project-modal-header { - padding: 30rpx; + padding: 24rpx; text-align: center; - border-bottom: 1rpx solid #f0f0f0; -} - -.project-modal-title { - font-size: 36rpx; + font-size: 32rpx; font-weight: bold; - color: #333; + border-bottom: 1rpx solid #eee; } .project-modal-body { - padding: 30rpx; + padding: 0; + max-height: 60vh; } -.project-modal-tip { - display: block; - font-size: 28rpx; - color: #999; - margin-bottom: 30rpx; - text-align: center; +.project-scroll-view { + max-height: 55vh; /* 绋嶅井鍑忓皬楂樺害锛岀‘淇濆湪灏忓睆骞曚笂涔熻兘鐪嬪埌搴曢儴鎸夐挳 */ + height: auto; } .project-radio-group { display: flex; flex-direction: column; - gap: 20rpx; + width: 100%; } .project-radio { + padding: 24rpx; display: flex; align-items: center; - padding: 20rpx; - background-color: #f5f5f5; - border-radius: 8rpx; + border-bottom: 1rpx solid #f5f5f5; + width: 100%; + box-sizing: border-box; } -.project-radio-selected { - background-color: #e6f4ff; - border: 2rpx solid #1890FF; +.project-radio radio { + margin-right: 16rpx; } .project-radio text { - margin-left: 10rpx; - font-size: 32rpx; + font-size: 30rpx; + color: #333; +} + +.project-radio-selected { + background-color: #f0f9ff; } .project-modal-footer { - padding: 30rpx; - border-top: 1rpx solid #f0f0f0; + padding: 24rpx; + border-top: 1rpx solid #eee; } .project-modal-btn { - width: 100%; - height: 80rpx; - line-height: 80rpx; - text-align: center; background-color: #1890FF; - color: #fff; - font-size: 32rpx; + color: white; border-radius: 8rpx; + font-size: 28rpx; + padding: 16rpx 0; } .project-modal-btn[disabled] { background-color: #cccccc; - color: #ffffff; + color: #666666; } .info-img { diff --git a/utils/projectConfig.js b/utils/projectConfig.js index 83ca845..4c14689 100644 --- a/utils/projectConfig.js +++ b/utils/projectConfig.js @@ -1,44 +1,107 @@ // 椤圭洰閰嶇疆锛屽寘鍚悇椤圭洰鐨勪笓鏈夎缃� +// 鏈嶅姟鍣ㄥ湴鍧�閰嶇疆 +const SERVER_INFO = { + URL_233: 'https://sp.dayuyanjiuyuan.top/', + URL_55: 'https://irrigate.dayuyanjiuyuan.top/', + URL_166: 'https://no253541tf71.vicp.fun/', + URL_121: 'https://shifanqu1.dayuyanjiuyuan.top/' +}; + const PROJECT_CONFIG = { - JYG: { - tag: 'ym', - displayName: '鍢夊唱鍏抽」鐩�', - operatorId: '2025040415305200007', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId - needLogin: false // 涓嶉渶瑕佺櫥褰� - }, - MQ: { - tag: 'mq', - displayName: '姘戝嫟椤圭洰', - operatorId: '2025033115305200006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId - needLogin: false // 涓嶉渶瑕佺櫥褰� - }, - TEST: { - tag: 'ym', - displayName: '娴嬭瘯椤圭洰', - operatorId: '2024122617295800009', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId - vcId: '2024122617295800009', - needLogin: false // 涓嶉渶瑕佺櫥褰� - }, - SCHOOL: { - tag: 'XX', - displayName: '瀛︽牎椤圭洰', - operatorId: '2025040215305200006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId - needLogin: false // 涓嶉渶瑕佺櫥褰� - }, - JC: { - tag: 'jc', - displayName: '閲戞槍椤圭洰', - operatorId: '2025041710412400006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId - needLogin: false // 涓嶉渶瑕佺櫥褰� - }, - GSCLT:{ - tag: 'test', - displayName: '鐢樿們鍐滅闄�-宕�', - operatorId: '2025041912201400006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId - needLogin: false // 涓嶉渶瑕佺櫥褰� + JYG: { + tag: 'ym', + displayName: '鍢夊唱鍏抽」鐩�', + operatorId: '2025040415305200007', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId + needLogin: false, // 涓嶉渶瑕佺櫥褰� + serverId: '55', + get serverUrl() { + return SERVER_INFO.URL_55; } + }, + MQ: { + tag: 'mq', + displayName: '姘戝嫟椤圭洰', + operatorId: '2025033115305200006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId + needLogin: false, // 涓嶉渶瑕佺櫥褰� + serverId: '121', + get serverUrl() { + return SERVER_INFO.URL_121; + } + }, + TEST: { + tag: 'ym', + displayName: '娴嬭瘯椤圭洰', + operatorId: '2024122617295800009', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId + vcId: '2024122617295800009', + needLogin: false, // 涓嶉渶瑕佺櫥褰� + serverId: '166', + get serverUrl() { + return SERVER_INFO.URL_166; + } + }, + JC: { + tag: 'jc', + displayName: '閲戞槍椤圭洰', + operatorId: '2025041710412400006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId + needLogin: false, // 涓嶉渶瑕佺櫥褰� + serverId: '121', + get serverUrl() { + return SERVER_INFO.URL_121; + } + }, + GSCLT: { + tag: 'test', + displayName: '鐢樿們鍐滅闄�-宕旈緳澶�', + operatorId: '2025041912201400006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId + needLogin: false, // 涓嶉渶瑕佺櫥褰� + serverId: '233', + get serverUrl() { + return SERVER_INFO.URL_233; + } + }, + GSWJ: { + tag: 'test', + displayName: '鐢樿們鍐滅闄�-鐜嬪', + operatorId: '2025042115424500006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId + needLogin: false, // 涓嶉渶瑕佺櫥褰� + serverId: '233', + get serverUrl() { + return SERVER_INFO.URL_233; + } + }, + GSCLT2: { + tag: 'test', + displayName: '鐢樿們鍐滅闄�-鏅佺帀浜�', + operatorId: '2025042115452400006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId + needLogin: false, // 涓嶉渶瑕佺櫥褰� + serverId: '233', + get serverUrl() { + return SERVER_INFO.URL_233; + } + }, + GSCLT3: { + tag: 'test', + displayName: '鐢樿們鍐滅闄�-榛勮檸鐢�', + operatorId: '2025042115454100006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId + needLogin: false, // 涓嶉渶瑕佺櫥褰� + serverId: '233', + get serverUrl() { + return SERVER_INFO.URL_233; + } + }, + GSCLT4: { + tag: 'test', + displayName: '鐢樿們鍐滅闄�-鏈卞厗瀹�', + operatorId: '2025042115455900006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId + needLogin: false, // 涓嶉渶瑕佺櫥褰� + serverId: '233', + get serverUrl() { + return SERVER_INFO.URL_233; + } + } }; module.exports = { - PROJECT_CONFIG -}; \ No newline at end of file + PROJECT_CONFIG, + SERVER_INFO +}; \ No newline at end of file -- Gitblit v1.8.0