From 97d88adcdfa7e13b2203c8716c02866fae087704 Mon Sep 17 00:00:00 2001
From: qingyiay <2386314947@qq.com>
Date: 星期二, 26 九月 2023 09:38:47 +0800
Subject: [PATCH] 修改磅房忙碌问题及其他问题

---
 pages/login/login.vue |  483 ++++++++++++++++++++++++++++++++--------------------
 1 files changed, 295 insertions(+), 188 deletions(-)

diff --git a/pages/login/login.vue b/pages/login/login.vue
index d7fe141..f2af9b5 100644
--- a/pages/login/login.vue
+++ b/pages/login/login.vue
@@ -1,215 +1,322 @@
 <template>
 	<view class="login">
-		<!-- <view class="loginBtn">
-      <u-button text="寰俊涓�閿櫥褰�" type="success" shape="circle" icon="weixin-fill" @click="apiLogin"></u-button>
-    </view> -->
-
-		<!--鍥介檯鍖�-->
-		<js-lang title="login.title" :showBtn="false"></js-lang>
 		<view class="logo">鏃犱汉鍊煎畧</view>
-		<!-- 绉熸埛鍒楄〃 -->
-		<!-- <view class="tenantList">
-			<u-input v-model="tenantId" placeholder="璇疯緭鍏ュ唴瀹�" type="select" border="true" @click="show = true" />
-			<u-action-sheet :list="tenantList" v-model="show" @click="selectTenant"></u-action-sheet>
-		</view> -->
 		<!--鐢ㄦ埛鍚嶅瘑鐮佺櫥褰�-->
-		<user-password />
-
-		<!-- #ifdef MP -->
-		<view class="loginBtn"><u-button class="button" @click.stop="getUserProfile" :disabled="btnLoading" :loading="btnLoading" type="primary" text="寰俊涓�閿櫥褰�"></u-button></view>
-		<view class="register" @click="registerClick"><text>娉ㄥ唽</text></view>
-		<!-- #endif -->
-		<view class="login-bottom-box"><view class="copyright">2023鍐�涓兘婧愭棤浜哄�煎畧寰俊灏忕▼搴�</view></view>
+		<user-password :btnText="0" />
+		<!-- 寰俊openid鐧诲綍 -->
+		<view class="loginBtn">
+			<u-button class="button"
+				@click.stop="beforeLoginEvent"
+				:disabled="btnLoading"
+				:loading="btnLoading"
+				type="primary"
+				text="寰俊涓�閿櫥褰�"></u-button>
+		</view>
+		<!-- <view class="loginBtn">
+			<u-button @click.stop="jumpBindBack"
+				type="primary"
+				text="涓�閿粦瀹氭祴璇�"></u-button>
+		</view> -->
+		<view class="register"
+			@click="PrivacyAgreementHandle"><text>娉ㄥ唽</text></view>
+		<view class="login-bottom-box">
+			<view class="copyright">鍐�涓兘婧愭棤浜哄�煎畧寰俊灏忕▼搴�</view>
+			<view class="copyright">灏忕▼搴忎粎渚涘凡鎷ユ湁绯荤粺璐﹀彿鐗瑰畾鍐呴儴浜哄憳浣跨敤</view>
+		</view>
+		<!-- 寰俊鎺堟潈鍓嶇殑寮规 -->
+		<view class="loginPopup">
+			<u-popup :show="loginPopupShow"
+				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="loginPopupShow = 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 class="bindWxModel">
+			<u-modal :show="bindWxModelShow"
+				:title="bindWxModelTitle"
+				showCancelButton
+				:content="bindWxContent"
+				@confirm="bindWxConfirm"
+				@cancel="bindWxCancel"></u-modal>
+		</view>
 	</view>
 </template>
 
 <script>
-import { apiLogin, apiLogin2, apiLoginPassword } from '@/api/publicInterface.js';
-import { mapMutations } from 'vuex';
-import userPassword from './userPassword.vue';
-
-export default {
-	data() {
-		return {
-			// wxcode: '31363631363534303739323636', // 瀹㈡埛
-			// wxcode: '31363631363534303700000000', // 璐т唬1
-			// wxcode: '31363631363534303700000004', // 璐т唬2
-			wxcode: '31363631363534303700000001', // 鍙告満1
-			// wxcode: '31363631363534303700000005', // 鍙告満2
-			// wxcode: '', // 瀹㈡埛
-			openid: '',
-			roleId: 0,
-
-			tenantId: undefined,
-			btnLoading: false,
-			show: false,
-			tenantList: []
-		};
-	},
-	components: {
-		userPassword
-	},
-	methods: {
-		...mapMutations(['setUserTabbar']),
-		// 璁块棶wx.login,鑾峰彇code
-		login() {
-			// let _this = this;
-			// 鑾峰彇鐧诲綍鐢ㄦ埛code
-			uni.login({
-				success: res => {
-					console.log('鐧诲綍loginRes', res);
-					if (res.code) {
-						this.wxcode = res.code;
-					} else {
-						uni.showToast({
-							title: '寰俊鐧诲綍澶辫触锛�',
-							duration: 2000
-						});
-					}
-					// this.apiLogin();
-				}
-			});
+	import { apiLoginWx, apiLoginPassword } from '@/api/publicInterface.js';
+	import { mapMutations } from 'vuex';
+	import userPassword from './userPassword.vue';
+	import { setToken, setRefreshToken, setUsernameKey, setCustomerId, redirectHome } from '@/utils/status.js';
+	export default {
+		data() {
+			return {
+				btnLoading: false,
+				loginPopupShow: false,
+				// 缁戝畾寰俊妯℃�佹
+				bindWxModelShow: false,
+				bindWxModelTitle: '鎻愮ず',
+				bindWxContent: '濡傛灉宸叉嫢鏈夌郴缁熻处鍙凤紝鍙互鐩存帴璺宠浆缁戝畾寰俊椤甸潰',
+				appid: "",
+				secret: "",
+			};
 		},
-		// 鐧诲綍鎺ュ彛
-		apiLogin() {
-			// console.log(this.$uStoreKey.roleType);
-			apiLogin2({ code: this.wxcode })
-				.then(res => {
-					console.log('璇锋眰鐧诲綍', res);
-					if (res.msg == '闇�缁戝畾') {
-						uni.navigateTo({
-							url: `/pages/register/register?code=${res.data}`
-						});
-					}
-					if (res.msg == '鐧诲綍鎴愬姛') {
-						uni.setStorageSync('userInfo', res.data);
-						this.setUserTabbar(res.data.type);
-						uni.switchTab({
-							url: '/pages/tabbar-page/index-tabbar/index-tabbar'
-						});
-					}
+		components: {
+			userPassword
+		},
+		methods: {
+			...mapMutations(['setUserTabbar', 'changeisLogin']),
+			getAppidAndSercet() {
+				this.$reqGet('getAppidAndSercet').then(res => {
+					this.appid = res.data.appid;
+					this.secret = res.data.secret
 				})
-				.catch(err => {
-					console.log('閿欒', err);
+			},
+			// 璁块棶wx.login,鑾峰彇code
+			beforeLoginEvent() {
+				this.loginPopupShow = true;
+				this.getAppidAndSercet();
+			},
+			wxLogin() {
+				// 鑾峰彇鐧诲綍鐢ㄦ埛code
+				uni.login({
+					success: res => {
+						if (res.code) {
+							uni.setStorageSync('code', res.code);
+							this.apiLogin(res.code);
+						} else {
+							uni.showToast({
+								title: '寰俊鐧诲綍澶辫触锛�',
+								duration: 2000
+							});
+						}
+					}
 				});
-		},
-		registerClick(){
-			uni.navigateTo({
-				url:"/pages/register/register"
-			})
+			},
+			// 鐧诲綍鎺ュ彛
+			apiLogin(code) {
+				// 鑾峰彇寰俊鐢ㄦ埛openid,寰俊涓�閿櫥褰曟殏鏃犵浉鍏虫帴鍙o紝鐢ㄤ簬娴嬭瘯鍛煎彨瀹㈡湇鍔熻兘
+				uni.showLoading({
+					title: '鍔犺浇涓�...'
+				});
+				wx.request({
+					url: `https://api.weixin.qq.com/sns/jscode2session?appid=${this.appid}&secret=${this.secret}&js_code=${code}&grant_type=authorization_code`,
+					success(res) {
+						console.log(res, 'openid');
+						uni.setStorageSync('openid', res.data.openid);
+						// uni.showToast({
+						// 	title: '鎴愬姛鑾峰彇娴嬭瘯openid',
+						// 	icon: 'none'
+						// });
+					}
+				});
+				this.$nextTick(() => {
+					apiLoginWx({ code: code }).then(res => {
+						if (res.code != 1) {
+							this.$u.toast('鐧诲綍鎴愬姛');
+							this.changeisLogin(true);
+							// 鐧婚檰鎴愬姛锛屽瓨鍌ㄧ浉鍏充俊鎭�
+							setToken(res.access_token);
+							setRefreshToken(res.refresh_token);
+							setUsernameKey(res.username);
+							//鏌ヨ鐢ㄦ埛璇︾粏淇℃伅骞跺偍瀛�
+							this.$reqGet('getUserEntity').then(res => {
+								this.setUserTabbar(res.data.type);
+								uni.setStorageSync('roleType', res.data.type);
+								uni.setStorageSync("userId", res.data.userId)
+								uni.setStorageSync("carNo", res.data.carNo)
+								setCustomerId(res.data.customerid);
+								uni.hideLoading();
+								//璺宠浆椤甸潰
+								this.$nextTick(() => {
+									redirectHome();
+								});
+							});
+						} else {
+							this.$u.toast(res.msg);
+							this.bindWxModelShow = true;
+						}
+					});
+				});
+				this.loginPopupShow = false;
+			},
+			bindWxConfirm() {
+				uni.navigateTo({
+					url: `/pages/login/wxLogin?code=${uni.getStorageSync('code')}`
+				});
+				this.bindWxModelShow = false;
+			},
+			bindWxCancel() {
+				this.bindWxModelShow = false;
+			},
+			// 寮瑰嚭灞傛椂闂�
+			closePopup() {
+				this.loginPopupShow = false;
+			},
+			openPopup() {
+				console.log('鎵撳紑浜�');
+			},
+			PrivacyAgreementHandle() {
+				uni.navigateTo({
+					url: '/pages/login/PrivacyAgreementText/PrivacyAgreementText'
+				})
+			},
 		}
-	}
-};
+	};
 </script>
 
 <style lang="scss">
-@import 'index.scss';
-.login {
-	// height: 100vh;
-	// display: flex;
-	// align-items: center;
+	@import 'index.scss';
 
-	// .loginBtn {
-	//   margin: 0 auto;
-	//   width: 80%;
+	.PrivacyAgreement {
+		color: rgb(60, 156, 255)
+	}
 
-	//   .u-button {
-	//     .u-icon {
-	//       .u-icon__icon {
-	//         font-size: vww(20) !important;
-	//       }
-	//     }
-	//   }
+	.login {
+		// height: 100vh;
+		// display: flex;
+		// align-items: center;
 
-	//   .u-button--success {
-	//     border-style: none;
-	//   }
-	// }
-	.loginBtn {
-		margin-top: vww(20);
-		.u-button {
+		// .loginBtn {
+		//   margin: 0 auto;
+		//   width: 80%;
+
+		//   .u-button {
+		//     .u-icon {
+		//       .u-icon__icon {
+		//         font-size: vww(20) !important;
+		//       }
+		//     }
+		//   }
+
+		//   .u-button--success {
+		//     border-style: none;
+		//   }
+		// }
+		.loginBtn {
+			margin-top: vww(20);
+
+			.u-button {
+				width: 80%;
+			}
+		}
+
+		.logo {
 			width: 80%;
-		}
-	}
-	.logo {
-		width: 80%;
-		font-size: 64rpx;
-		color: #497bff;
-		margin: 50rpx auto 0;
-		text-align: center;
-	}
-
-	.list-call-icon {
-		color: #ff0000;
-	}
-
-	.currentPhone-box {
-		text-align: center;
-		padding: 40rpx 80rpx;
-
-		.number-text {
-			color: #000000;
-			font-size: 60rpx;
+			font-size: 64rpx;
+			color: #497bff;
+			margin: vww(100) auto 0;
+			text-align: center;
 		}
 
-		.other-text {
-			color: #999999;
-			font-size: 26rpx;
-			padding: 20rpx 0;
+		.list-call-icon {
+			color: #ff0000;
 		}
 
-		.u-btn {
-			margin: 30rpx auto;
+		.currentPhone-box {
+			text-align: center;
+			padding: 40rpx 80rpx;
+
+			.number-text {
+				color: #000000;
+				font-size: 60rpx;
+			}
+
+			.other-text {
+				color: #999999;
+				font-size: 26rpx;
+				padding: 20rpx 0;
+			}
+
+			.u-btn {
+				margin: 30rpx auto;
+			}
+
+			.u-hairline-border {
+				border: 1px solid #fff;
+			}
 		}
 
-		.u-hairline-border {
-			border: 1px solid #fff;
+		.register {
+			color: #497bff;
+			height: 40rpx;
+			line-height: 40rpx;
+			font-size: 28rpx;
+			position: fixed;
+			bottom: vww(70);
+			text-align: center;
+			width: 100%;
+		}
+
+		.register-link {
+			float: right;
+			padding: 0 16rpx;
+		}
+
+		.reg-link {
+			display: inline-block;
+			color: #497bff;
+		}
+
+		.oauth2 {
+			display: flex;
+			flex-direction: row;
+			justify-content: space-around;
+			margin: 0rpx 100rpx 30rpx;
+
+			image {
+				height: 80rpx;
+				width: 80rpx;
+			}
+		}
+
+		.u-tabs {
+			padding: 0 70rpx;
+		}
+
+		// 寮瑰嚭妗�
+		.loginPopup {
+			.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%;
+								}
+							}
+						}
+					}
+				}
+			}
 		}
 	}
-
-	.register {
-		color: #497bff;
-		height: 40rpx;
-		line-height: 40rpx;
-		font-size: 28rpx;
-		position: fixed;
-		bottom: vww(70);
-		text-align: center;
-		width: 100%;
-	}
-
-	.register-link {
-		float: right;
-		padding: 0 16rpx;
-	}
-
-	.reg-link {
-		display: inline-block;
-		color: #497bff;
-	}
-
-	.oauth2 {
-		display: flex;
-		flex-direction: row;
-		justify-content: space-around;
-		margin: 0rpx 100rpx 30rpx;
-
-		image {
-			height: 80rpx;
-			width: 80rpx;
-		}
-	}
-
-	.u-tabs {
-		padding: 0 70rpx;
-	}
-
-	.tenantList {
-		font-size: 32rpx;
-		width: 80%;
-		height: 80rpx;
-		text-align: center;
-		margin: 50rpx auto 0;
-	}
-}
-</style>
+</style>
\ No newline at end of file

--
Gitblit v1.9.1