From 2c11814ecf148a5fe5a80d03e29481476e47f34d Mon Sep 17 00:00:00 2001
From: 付延余 <f-yanyu@outlook.com>
Date: 星期一, 19 十二月 2022 16:13:34 +0800
Subject: [PATCH] test push two

---
 pages/login/login.vue |  411 ++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 327 insertions(+), 84 deletions(-)

diff --git a/pages/login/login.vue b/pages/login/login.vue
index 35995e9..2b7adac 100644
--- a/pages/login/login.vue
+++ b/pages/login/login.vue
@@ -1,111 +1,354 @@
-<template>
+<!-- <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 class="login-container">
+			<view class="loginBtn"><u-button text="寰俊璐﹀彿蹇嵎鐧诲綍" type="success" shape="circle" icon="weixin-fill" @click="toGrantAuthorization"></u-button></view>
+			<view class="utils"><text @click="toBindPage">缁戝畾绯荤粺璐﹀彿</text></view>
+		</view>
+		<view class="loginBottom"><text>灏忕▼搴忎粎渚涘凡鎷ユ湁绯荤粺璐﹀彿鐗瑰畾鍐呴儴浜哄憳浣跨敤</text></view>
+		<u-modal
+			@confirm="wxLoginConfirm"
+			@cancel="wxLoginCancel"
+			@close="wxLoginClose"
+			:show="wxLoginModal.show"
+			:title="wxLoginModal.title"
+			:content="wxLoginModal.content"
+			:showCancelButton="true"
+		></u-modal>
+		<view class="toGrantAuthorization-container">
+			<u-popup :show="popupShow" mode="bottom" @close="closePopup" @open="openPopup" round="10" :safeAreaInsetBottom="true">
+				<view class="popup-warp">
+					<view class="body"><text>鏈皬绋嬪簭锛屼粎渚涘凡鎷ユ湁绯荤粺璐﹀彿鐗瑰畾鍐呴儴浜哄憳鐧诲綍浣跨敤锛岀偣鍑诲悓鎰忓嵆琛ㄧず鎮ㄥ凡鍚屾剰鐩稿簲淇℃伅鎺堟潈銆�</text></view>
+					<view class="btn">
+						<u-button @click="popupShow = false" type="error" text="涓嶅悓鎰�" shape="circle" :plain="true"></u-button>
+						<u-button @click="wxLogin" type="error" text="鍚屾剰" throttleTime="3000" shape="circle"></u-button>
+					</view>
+				</view>
+			</u-popup>
 		</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:'fyy',
-				password:'123456!@#'
-			}
+			wxcode: '', //寰俊code
+			wxLoginModal: {
+				show: false,
+				title: '鎻愮ず',
+				content: ''
+			},
+			popupShow: false
 		};
 	},
-	methods:{
-		loginSubmit(){
-			// 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);
-				}
-			}
+	onShow() {
+		// 娓呴櫎缂撳瓨
+		if (uni.getStorageSync('userInfo') || uni.getStorageSync('access_token') || uni.getStorageSync('refresh_token')) {
+			uni.clearStorageSync();
 		}
-		
+	},
+	methods: {
+		toGrantAuthorization() {
+			this.popupShow = true;
+		},
+		wxLogin() {
+			this.popupShow = false;
+			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('鏈粦瀹氱郴缁熻处鍙凤紝鍗冲皢璺宠浆缁戝畾椤甸潰锛�');
+									this.wxLoginModal.content = '鏈粦瀹氱郴缁熻处鍙凤紝鏄惁璺宠浆璐﹀彿缁戝畾椤甸潰锛�';
+									this.wxLoginModal.show = true;
+								} 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
+						});
+					}
+				}
+			});
+		},
+		toBindPage() {
+			uni.navigateTo({
+				url: '/pages/register/register'
+			});
+		},
+		// 妯℃�佹
+		wxLoginConfirm() {
+			uni.navigateTo({
+				url: '/pages/register/register'
+			});
+			this.wxLoginModal.show = false;
+		},
+		wxLoginCancel() {
+			this.wxLoginModal.show = false;
+		},
+		wxLoginClose() {
+			this.wxLoginModal.show = false;
+		},
+		// 寮瑰嚭妗�
+		openPopup() {
+			console.log('open');
+		},
+		closePopup() {
+			this.popupShow = false;
+			console.log('close');
+		}
 	}
 };
 </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);
-			}
-		}
+	.login-container {
+		margin: vww(60) auto;
+		width: 80%;
 		.loginBtn {
-			margin-top: vww(80);
-			
-			button {
-				background-color: #007aff;
-				color: #ffffff;
-				font-size: vww(16);
-				border-radius: vww(22);
+			.u-button {
+				.u-icon {
+					.u-icon__icon {
+						font-size: vww(30) !important;
+					}
+				}
+				.u-button__text {
+					font-size: vww(17) !important;
+					font-weight: 530;
+				}
+			}
+
+			.u-button--success {
+				border-style: none;
+				background-color: #3ebc17;
+			}
+		}
+
+		.utils {
+			font-size: vww(14);
+			margin-top: vww(20);
+			text-align: center;
+			color: #346a9d;
+		}
+	}
+
+	.loginBottom {
+		color: #aaaaaa;
+		margin-top: vww(180);
+		font-size: vww(14);
+		text-align: center;
+	}
+
+	// 寮瑰嚭妗�
+	.toGrantAuthorization-container {
+		.u-popup {
+			.u-transition {
+				.u-popup__content {
+					.popup-warp {
+						height: vww(200);
+						padding: vww(10) vww(20);
+						.body {
+							width: 100%;
+							height: 70%;
+						}
+						.btn {
+							display: flex;
+							justify-content: space-between;
+							.u-button {
+								width: 40%;
+							}
+						}
+					}
+				}
 			}
 		}
 	}
 }
 </style>
+ -->
+ 
+ <template>
+ 	<view class="login">
+		<u-overlay :show="show" @click="show = false"></u-overlay>
+ 		<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>
+ </template>
+ 
+ <script>
+ import { setAccessToken, setTokenType, setRefreshToken, setClientId, setScope, redirectHome, redirectLogin } from '@/utils/status.js';
+ export default {
+ 	name: 'login',
+ 	data() {
+ 		return {
+			show:false,
+ 			formData: {
+ 				// username: 'zhangjialiang',
+ 				// password: '123456aaa',
+				// username: 'gequan',
+				// password: 'gequan!@#$',
+				username: '',
+				password: ''
+ 			},
+ 			bindData: {
+ 				state: 'MINI',
+ 				code: ''
+ 			}
+ 		};
+ 	},
+	onShow() {
+		// 娓呴櫎缂撳瓨
+		if (uni.getStorageSync('userInfo') || uni.getStorageSync('access_token') || uni.getStorageSync('refresh_token')) {
+			uni.clearStorageSync();
+		}
+	},
+ 	methods: {
+ 		loginSubmit() {
+			if(this.formData.username == ''){
+				uni.showToast({
+					title:'璇疯緭鍏ョ敤鎴峰悕锛�',
+					icon:'none'
+				})
+			} else if(this.formData.password == ''){
+				uni.showToast({
+					title:'璇疯緭鍏ュ瘑鐮侊紒',
+					icon:'none'
+				})
+			} else {
+				this.show = true;
+				uni.showLoading({
+					title: '鐧诲綍涓�...'
+				});
+				this.apiLogin(this.formData)
+					.then(this.saveUserInfo)
+					.catch(this.loginFail);
+			}
+ 		},
+ 		saveUserInfo(response) {
+ 			uni.hideLoading();
+			this.show = false;
+ 			if (response.statusCode === 200) {
+ 				const { access_token, refresh_token, token_type, scope } = response.data;
+ 				try {
+ 					setAccessToken(access_token);
+ 					setTokenType(token_type);
+ 					setRefreshToken(refresh_token);
+ 					setScope(scope);
+ 					this.$store.dispatch('menus');
+ 					uni.hideLoading();
+ 					redirectHome();
+ 				} catch (e) {
+ 					console.log('妫�娴嬪埌閿欒',e);
+ 				}
+ 			} else {
+ 				uni.showToast({
+ 					title: response.data.msg,
+ 					icon:'none',
+ 					duration: 2000
+ 				});
+ 			}
+ 		},
+ 		loginFail(err) {
+			this.show = false;
+ 			console.log('鐧诲綍鎺ュ彛閿欒', err);
+ 		}
+ 	}
+ };
+ </script>
+ 
+ <style lang="scss" scoped>
+ .login {
+ 	.background {
+ 		width: 100%;
+ 		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);
+ 			}
+ 		}
+ 	}
+ }
+ </style>
+ 
\ No newline at end of file

--
Gitblit v1.9.1