From 6676a35122fd9c97d1b1679c211bc8a9b97f08f2 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期二, 24 三月 2026 23:17:37 +0800
Subject: [PATCH] feat: 增加日志记录历史消息

---
 app/pages/login.vue |  124 +++++++++++++++++++++++++++++++++++++++--
 1 files changed, 118 insertions(+), 6 deletions(-)

diff --git a/app/pages/login.vue b/app/pages/login.vue
index f95977e..5f94b25 100644
--- a/app/pages/login.vue
+++ b/app/pages/login.vue
@@ -21,7 +21,7 @@
           <image :src="codeUrl" @click="getCode" class="login-code-img" mode="aspectFit"></image>
         </view>
       </view>
-      <view class="agreement-checkbox">
+      <view class="agreement-checkbox" :class="{ 'agreement-highlight': highlightAgreement }">
         <checkbox-group @change="onAgreementChange">
           <label class="checkbox-label">
             <checkbox :checked="agreedToPolicy" value="agreed" color="#007AFF" class="round-checkbox" style="margin-top: 0;" />
@@ -47,8 +47,18 @@
           <text class="cuIcon-wechat" style="margin-right: 10rpx;"></text>
         鎵嬫満鍙风爜蹇嵎鐧诲綍
         </button>
+        <!-- 鏈悓鎰忓崗璁椂锛屾樉绀烘櫘閫氭寜閽紝鐐瑰嚮鍚庡脊鎻愮ず -->
         <button 
-          v-else-if="isWechat"
+          v-else-if="isWechat && !agreedToPolicy"
+          @click="checkAgreementBeforePhone"
+          class="wechat-login-btn cu-btn block bg-green lg round"
+          style="margin-top: 20rpx;">
+          <text class="cuIcon-wechat" style="margin-right: 10rpx;"></text>
+          鎵嬫満鍙风爜蹇嵎鐧诲綍
+        </button>
+        <!-- 宸插悓鎰忓崗璁椂锛屾樉绀虹湡瀹炴巿鏉冩寜閽� -->
+        <button 
+          v-else-if="isWechat && agreedToPolicy"
           open-type="getPhoneNumber" 
           @getphonenumber="onGetPhoneNumber"
           class="wechat-login-btn cu-btn block bg-green lg round"
@@ -64,6 +74,7 @@
 
 <script>
   import { getCodeImg, loginByOpenId, loginByWechatPhone } from '@/api/login'
+  import { isWxWorkEnvironment,redirectToQyLogin } from '@/utils/wechat'
 
   export default {
     data() {
@@ -81,11 +92,26 @@
           code: "",
           uuid: ''
         },
+        // 鍗忚鍖哄煙楂樹寒鎻愮ず鐘舵��
+        highlightAgreement: false,
         // 寰俊涓�閿櫥褰曠浉鍏�
         isWechat: false, // 鏄惁涓哄井淇″皬绋嬪簭鐜
         wechatOpenId: '', // 寰俊OpenID
         wechatUnionId: '', // 寰俊UnionID
+        // 椤甸潰鍙傛暟
+        pageOptions: {}
       }
+    },
+    onLoad(options) {
+      // 淇濆瓨椤甸潰鍙傛暟
+      this.pageOptions = options || {}
+      isWxWorkEnvironment().then(res=>{
+        if(res){
+          // console.log("浼佷笟寰俊鐜 login.vue....")
+          redirectToQyLogin(options,this.$tab);
+        }
+      });
+      
     },
     created() {
       this.getCode()
@@ -153,7 +179,8 @@
         this.$store.dispatch('GetInfo').then(res => {
           // 瑙﹀彂鐧诲綍鎴愬姛浜嬩欢锛屽惎鍔ㄦ秷鎭疆璇�
           uni.$emit('user-login')
-          this.$tab.reLaunch('/pages/index')
+          // 澶勭悊鑷姩璺宠浆閫昏緫
+          this.redirectAfterLogin()
         })
       },
       
@@ -170,6 +197,8 @@
         this.isWechat = false
         console.log('褰撳墠鐜:闈炲井淇″皬绋嬪簭')
         // #endif
+      
+
       },
       
       // 灏濊瘯鑷姩鐧诲綍(妫�鏌ユ湰鍦版槸鍚︽湁淇濆瓨鐨凮penID)
@@ -181,7 +210,7 @@
         // 浠庢湰鍦板瓨鍌ㄤ腑鑾峰彇OpenID鍜孶nionID
         const savedOpenId = uni.getStorageSync('wechat_openid')
         const savedUnionId = uni.getStorageSync('wechat_unionid')
-        const autoLogin=false;
+        const autoLogin=true;
         
         if (savedOpenId && autoLogin) {
           console.log('妫�娴嬪埌宸蹭繚瀛樼殑OpenID锛屽皾璇曡嚜鍔ㄧ櫥褰�')
@@ -189,6 +218,16 @@
           this.wechatUnionId = savedUnionId // 鍙兘涓簄ull
           this.loginByOpenId()
         }
+      },
+      
+      // 鏈悓鎰忓崗璁椂鐐瑰嚮鎵嬫満鍙峰揩鎹风櫥褰曠殑澶勭悊
+      checkAgreementBeforePhone() {
+        this.$modal.msgError("璇峰厛闃呰骞跺悓鎰忕敤鎴峰崗璁拰闅愮鏀跨瓥")
+        // 婊氬姩鍒板崗璁尯鍩燂紙楂樹寒鎻愮ず锛�
+        this.highlightAgreement = true
+        setTimeout(() => {
+          this.highlightAgreement = false
+        }, 2000)
       },
       
       // 澶勭悊鑾峰彇鎵嬫満鍙风殑鍥炶皟
@@ -237,7 +276,10 @@
                   const { setToken } = require('@/utils/auth')
                   setToken(token)
                   
-                  this.loginSuccess()
+                  // 鑾峰彇鐢ㄦ埛淇℃伅骞跺鐞嗚嚜鍔ㄨ烦杞�昏緫
+                  this.$store.dispatch('GetInfo').then(() => {
+                    this.redirectAfterLogin()
+                  });
                 } else {
                   this.$modal.msgError(response.msg || '鐧诲綍澶辫触')
                 }
@@ -275,7 +317,10 @@
             const { setToken } = require('@/utils/auth')
             setToken(token)
             
-            this.loginSuccess()
+            // 鑾峰彇鐢ㄦ埛淇℃伅骞跺鐞嗚嚜鍔ㄨ烦杞�昏緫
+            this.$store.dispatch('GetInfo').then(() => {
+              this.redirectAfterLogin()
+            });
           } else {
             // OpenID鏈粦瀹氭垨楠岃瘉澶辫触锛岄渶瑕佽幏鍙栨墜鏈哄彿缁戝畾
             console.log('璇penID灏氭湭缁戝畾鎴栭獙璇佸け璐ワ紝闇�瑕佽幏鍙栨墜鏈哄彿')
@@ -287,6 +332,57 @@
           console.error('鐧诲綍澶辫触:', error)
           this.$modal.msgError('鐧诲綍澶辫触锛岃閲嶈瘯')
         })
+      },
+      
+      /**
+       * 鑾峰彇URL鍙傛暟
+       */
+      getUrlParam(name) {
+        // #ifdef H5
+        const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+        const r = window.location.search.substr(1).match(reg);
+        if (r != null) return decodeURIComponent(r[2]);
+        // #endif
+
+        // #ifdef MP-WEIXIN
+        // 鍦ㄥ皬绋嬪簭涓紝鍙傛暟閫氳繃onLoad鐨刼ptions浼犻��
+        if (this.pageOptions && this.pageOptions[name]) {
+          return decodeURIComponent(this.pageOptions[name]);
+        }
+        // #endif
+
+        return null;
+      },
+      
+      /**
+       * 鐧诲綍鎴愬姛鍚庣殑璺宠浆澶勭悊
+       */
+      redirectAfterLogin() {
+        try {
+          // 妫�鏌ユ槸鍚︽湁redirect鍙傛暟鎸囧畾璺宠浆椤甸潰
+          let redirectUrl = this.getUrlParam("redirect");
+          
+          // 濡傛灉娌℃湁redirect鍙傛暟锛屾鏌ユ槸鍚︽湁淇濆瓨鐨勭洰鏍囬〉闈�
+          if (!redirectUrl) {
+            const { getTargetUrl } = require('@/utils/auth')
+            redirectUrl = getTargetUrl()
+          }
+          
+          if (redirectUrl) {
+            // 瑙g爜redirect鍙傛暟
+            redirectUrl = decodeURIComponent(redirectUrl);
+            console.log("鑷姩璺宠浆鍒版寚瀹氶〉闈�:", redirectUrl);
+            this.$tab.reLaunch(redirectUrl);
+          } else {
+            // 榛樿璺宠浆鍒伴椤�
+            console.log("璺宠浆鍒伴椤�");
+            this.$tab.reLaunch('/pages/index');
+          }
+        } catch (e) {
+          console.error("璺宠浆澶辫触锛屼娇鐢ㄩ粯璁よ烦杞�:", e);
+          // 鍑虹幇寮傚父鏃讹紝榛樿璺宠浆鍒伴椤�
+          this.$tab.reLaunch('/pages/index');
+        }
       }
     }
   }
@@ -427,6 +523,22 @@
         }
       }
       
+      .agreement-highlight {
+        animation: highlight-shake 0.5s ease-in-out;
+        background-color: #fff3cd;
+        border-radius: 16rpx;
+        border: 2rpx solid #ffc107;
+      }
+      
+      @keyframes highlight-shake {
+        0% { transform: translateX(0); }
+        20% { transform: translateX(-8rpx); }
+        40% { transform: translateX(8rpx); }
+        60% { transform: translateX(-8rpx); }
+        80% { transform: translateX(8rpx); }
+        100% { transform: translateX(0); }
+      }
+      
       .agreement-checkbox {
         margin: 50rpx 0 30rpx 0;
         padding: 20rpx;

--
Gitblit v1.9.1