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 | 129 ++++++++++++++++++++++++++++++++++++++++--
1 files changed, 121 insertions(+), 8 deletions(-)
diff --git a/app/pages/login.vue b/app/pages/login.vue
index 3f67b74..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;" />
@@ -45,16 +45,26 @@
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"
+ 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"
style="margin-top: 20rpx;">
<text class="cuIcon-wechat" style="margin-right: 10rpx;"></text>
- 寰俊涓�閿櫥褰�
+ 鎵嬫満鍙风爜蹇嵎鐧诲綍
</button>
<!-- #endif -->
</view>
@@ -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,13 +210,24 @@
// 浠庢湰鍦板瓨鍌ㄤ腑鑾峰彇OpenID鍜孶nionID
const savedOpenId = uni.getStorageSync('wechat_openid')
const savedUnionId = uni.getStorageSync('wechat_unionid')
+ const autoLogin=true;
- if (savedOpenId) {
+ if (savedOpenId && autoLogin) {
console.log('妫�娴嬪埌宸蹭繚瀛樼殑OpenID锛屽皾璇曡嚜鍔ㄧ櫥褰�')
this.wechatOpenId = savedOpenId
this.wechatUnionId = savedUnionId // 鍙兘涓簄ull
this.loginByOpenId()
}
+ },
+
+ // 鏈悓鎰忓崗璁椂鐐瑰嚮鎵嬫満鍙峰揩鎹风櫥褰曠殑澶勭悊
+ checkAgreementBeforePhone() {
+ this.$modal.msgError("璇峰厛闃呰骞跺悓鎰忕敤鎴峰崗璁拰闅愮鏀跨瓥")
+ // 婊氬姩鍒板崗璁尯鍩燂紙楂樹寒鎻愮ず锛�
+ this.highlightAgreement = true
+ setTimeout(() => {
+ this.highlightAgreement = false
+ }, 2000)
},
// 澶勭悊鑾峰彇鎵嬫満鍙风殑鍥炶皟
@@ -236,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 || '鐧诲綍澶辫触')
}
@@ -274,7 +317,10 @@
const { setToken } = require('@/utils/auth')
setToken(token)
- this.loginSuccess()
+ // 鑾峰彇鐢ㄦ埛淇℃伅骞跺鐞嗚嚜鍔ㄨ烦杞�昏緫
+ this.$store.dispatch('GetInfo').then(() => {
+ this.redirectAfterLogin()
+ });
} else {
// OpenID鏈粦瀹氭垨楠岃瘉澶辫触锛岄渶瑕佽幏鍙栨墜鏈哄彿缁戝畾
console.log('璇penID灏氭湭缁戝畾鎴栭獙璇佸け璐ワ紝闇�瑕佽幏鍙栨墜鏈哄彿')
@@ -286,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');
+ }
}
}
}
@@ -426,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