From f47ce70afac05ce941b5eafb2d9114c7a017f774 Mon Sep 17 00:00:00 2001
From: 付延余 <f-yanyu@outlook.com>
Date: 星期二, 06 九月 2022 20:01:27 +0800
Subject: [PATCH] 新增微信账号快捷登录、账号绑定、换绑功能,及页面更新。

---
 pages/login/login.vue |  171 ++++++++++++++++++++++++--------------------------------
 1 files changed, 73 insertions(+), 98 deletions(-)

diff --git a/pages/login/login.vue b/pages/login/login.vue
index 4956eb1..5654590 100644
--- a/pages/login/login.vue
+++ b/pages/login/login.vue
@@ -1,125 +1,100 @@
 <template>
 	<view class="login">
 		<image src="@/static/login/banner.png" class="background"></image>
-		<view class="inputBox">
-			<view class="phone">
-				<image src="@/static/login/phone.png" mode="鍔犺浇閿欒"></image>
-				<input type="text" placeholder="璇疯緭鍏ョ敤鎴峰悕/鎵嬫満鍙�" v-model="formData.username" />
-			</view>
-			<view class="password">
-				<image src="@/static/login/lock.png" mode="鍔犺浇閿欒" />
-				<input type="password" placeholder="璇疯緭鍏ヨ处鍙峰瘑鐮�" v-model="formData.password" />
-			</view>
-			<view class="loginBtn"><button type="default" @click="loginSubmit">鐧诲綍</button></view>
-		</view>
+		<view class="loginBtn"><u-button throttleTime="3000" text="寰俊璐﹀彿蹇嵎鐧诲綍" type="success" shape="circle" icon="weixin-fill" @click="wxLogin"></u-button></view>
 	</view>
 </template>
 
 <script>
-import { setAccessToken,setTokenType,setRefreshToken,setClientId,setScope,redirectHome,redirectLogin } from '@/utils/status.js'
+import { setAccessToken, setTokenType, setRefreshToken, setClientId, setScope, redirectHome, redirectLogin } from '@/utils/status.js';
 export default {
-	name: 'login',
 	data() {
 		return {
-			formData:{
-				username:'',
-				password:''
-			}
+			wxcode: ''
 		};
 	},
-  onShow(){
-	  // 娓呴櫎缂撳瓨
-    if(uni.getStorageSync('userInfo')||uni.getStorageSync('access_token')||uni.getStorageSync('refresh_token')){
-      this.$u.toast('鎴愬姛杩涘叆鐧诲綍椤�');
-      uni.clearStorageSync();
-    }
-  },
-	methods:{
-		loginSubmit(){
-      console.log('鐐瑰嚮鐧诲綍');
-      // console.log('login');
-			uni.showLoading({
-				title:'鐧诲綍涓�...'
-			});
-			this.apiLogin(this.formData).then(this.saveUserInfo).catch(this.loginFail);
-		},
-		saveUserInfo(response){
-			uni.hideLoading();
-			if(response.statusCode === 200){
-				// console.log('res',response);
-				const { data } = response;
-				const { access_token,refresh_token,token_type,scope } = data;
-				try {
-					setAccessToken(access_token);
-					setTokenType(token_type);
-					setRefreshToken(refresh_token);
-					setScope(scope);
-					this.$store.dispatch('menus')
-					redirectHome();
-					uni.hideLoading();
-				} catch (e) {
-					// error
-					console.log(e);
-				}
-			} else{
-				uni.showToast({
-					title:response.data.msg,
-					icon:'error',
-					duration:2000
-				})
-			}
+	onShow() {
+		// 娓呴櫎缂撳瓨
+		if (uni.getStorageSync('userInfo') || uni.getStorageSync('access_token') || uni.getStorageSync('refresh_token')) {
+			uni.clearStorageSync();
 		}
-
+	},
+	methods: {
+		wxLogin() {
+			uni.showLoading({
+				title: '鍔犺浇涓�...'
+			});
+			uni.login({
+				success: res => {
+					console.log('鐧诲綍loginRes', res);
+					if (res.code) {
+						this.wxcode = res.code;
+						this.wxSmallLogin(this.wxcode)
+							.then(res => {
+								if (res.data.data == '鐢ㄦ埛涓嶅瓨鍦�') {
+									this.$u.toast('鏈粦瀹氱郴缁熻处鍙凤紝鍗冲皢璺宠浆缁戝畾椤甸潰锛�')
+									setTimeout(()=>{
+										uni.navigateTo({
+											url: '/pages/register/register'
+										});
+									},1000)
+								} else if (res.data.active && res.data.active == true) {
+									const { access_token, refresh_token, token_type, scope } = res.data;
+									try {
+										setAccessToken(access_token);
+										setTokenType(token_type);
+										setRefreshToken(refresh_token);
+										setScope(scope);
+										this.$store.dispatch('menus');
+										redirectHome();
+										uni.hideLoading();
+									} catch (e) {
+										// error
+										console.log(e);
+									}
+								}
+								console.log('寰俊鐧诲綍', res);
+							})
+							.catch(err => {
+								console.log('閿欒', err);
+							});
+					} else {
+						uni.showToast({
+							title: '寰俊鐧诲綍澶辫触锛�',
+							duration: 2000
+						});
+					}
+				}
+			});
+		}
 	}
 };
 </script>
 
 <style lang="scss" scoped>
-.login {
+::v-deep.login {
+	height: 100vh;
+
 	.background {
 		width: 100%;
-		height: vww(289);
+		// height: vww(289);
+		height: vww(246);
 	}
-	.inputBox {
-		width: vww(280);
-		margin: vww(40) auto;
-		input {
-			width: vww(240);
-			margin-left: vww(8);
-		}
-		.phone {
-			width: vww(280);
-			height: vww(36);
-			display: flex;
-			align-items: center;
-			border-bottom: vww(1) solid #cccccc;
-			image {
-				width: vww(20);
-				height: vww(20);
-			}
-		}
-		.password {
-			width: vww(280);
-			height: vww(36);
-			display: flex;
-			align-items: center;
-			margin-top: vww(40);
-			border-bottom: vww(1) solid #cccccc;
-			image {
-				width: vww(20);
-				height: vww(20);
-			}
-		}
-		.loginBtn {
-			margin-top: vww(80);
 
-			button {
-				background-color: #007aff;
-				color: #ffffff;
-				font-size: vww(16);
-				border-radius: vww(22);
+	.loginBtn {
+		margin: vww(60) auto;
+		width: 80%;
+		.u-button {
+			.u-icon {
+				.u-icon__icon {
+					font-size: vww(30) !important;
+				}
 			}
 		}
+
+		.u-button--success {
+			border-style: none;
+		}
 	}
 }
 </style>

--
Gitblit v1.9.1