From 3008f0fcb87992077af811f9842793610fc52239 Mon Sep 17 00:00:00 2001
From: zuoxiao <zuoxiao>
Date: 星期二, 29 四月 2025 16:07:00 +0800
Subject: [PATCH] 优化首页项目切换逻辑,添加确认弹窗以提升用户体验;更新样式以增强项目选择的可视化效果。

---
 pages/home/home.js   |   58 +++++++---------------------
 pages/home/home.wxml |    3 +
 pages/home/home.wxss |   36 ++++++++++++------
 images/switch.svg    |    1 
 4 files changed, 43 insertions(+), 55 deletions(-)

diff --git a/images/switch.svg b/images/switch.svg
new file mode 100644
index 0000000..21068d7
--- /dev/null
+++ b/images/switch.svg
@@ -0,0 +1 @@
+<svg t="1745913691101" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2607" width="200" height="200"><path d="M900.4 424.87c19.47 0 37.03-11.73 44.49-29.73 7.46-17.98 3.33-38.7-10.43-52.48L713.97 122.19c-7.3-7.3-19.12-7.3-26.42 0l-41.69 41.69c-7.3 7.3-7.3 19.13 0 26.42l138.28 138.27H86.32c-10.19 0-18.46 8.26-18.46 18.46v59.39c0 10.19 8.26 18.46 18.46 18.46H900.4zM937.65 598.72H123.8c-19.47 0-37.03 11.73-44.49 29.73-7.46 17.98-3.33 38.7 10.43 52.48l220.49 220.48c7.3 7.3 19.12 7.3 26.42 0l41.69-41.69c7.3-7.3 7.3-19.13 0-26.42L240.06 695.02h697.59c10.32 0 18.68-8.37 18.68-18.68v-58.93c0-10.32-8.36-18.69-18.68-18.69z" p-id="2608" fill="#ffffff"></path></svg>
\ No newline at end of file
diff --git a/pages/home/home.js b/pages/home/home.js
index 1257aa1..6e1eda7 100644
--- a/pages/home/home.js
+++ b/pages/home/home.js
@@ -1815,50 +1815,22 @@
   },
 
   // 鍒囨崲椤圭洰
-  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();
-    } 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 611bf0d..c3df698 100644
--- a/pages/home/home.wxml
+++ b/pages/home/home.wxml
@@ -8,6 +8,9 @@
         <t-avatar class="avatar-example" image="{{image}}" size="120rpx" bind:tap="handleAvatarTap" />
          <view class="current-project">
           <text>{{ projectConfig[selectedProject].displayName }}</text>
+          <view class="switch-project" bind:tap="switchProject">
+            <image class="switch-icon" src="/images/switch.svg" />
+          </view>
         </view>
       </view>
       <view class="head-text-wrapper">
diff --git a/pages/home/home.wxss b/pages/home/home.wxss
index 71b6d7c..2be6c16 100644
--- a/pages/home/home.wxss
+++ b/pages/home/home.wxss
@@ -755,21 +755,33 @@
   }
   
 .current-project {
-  display: flex;
-  flex-direction: column;
-  justify-content: center;
-  margin-left: 20rpx;
-  margin-right: 10rpx;
-  margin-top: 10rpx;
+    display: flex;
+    align-items: center;
+    margin-left: 20rpx;
+margin-top: 10rpx;
+
 }
 
 .current-project text {
-  font-size: 28rpx;
-  color: #ffffff;
-  font-weight: bold;
-  background-color: rgba(255, 255, 255, 0.2);
-  border-radius: 15rpx;
-  padding: 6rpx 14rpx;
+    color: #fff;
+    font-size: 32rpx;
+    margin-right: 10rpx;
+}
+
+.switch-project {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    width: 40rpx;
+    height: 40rpx;
+    background-color: rgba(255, 255, 255, 0.2);
+    border-radius: 50%;
+    margin-left: 5rpx;
+}
+
+.switch-icon {
+    width: 24rpx;
+    height: 24rpx;
 }
 
 .avatar-project-container {

--
Gitblit v1.8.0