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