From e7b0b34176549cfec809c6b89c4cab0999e488b9 Mon Sep 17 00:00:00 2001
From: qingyiay <2386314947@qq.com>
Date: 星期二, 28 三月 2023 16:40:56 +0800
Subject: [PATCH] 修改大部分问题

---
 pages/login/login.vue |  186 ++++++++++++++++++++++++++++++----------------
 1 files changed, 122 insertions(+), 64 deletions(-)

diff --git a/pages/login/login.vue b/pages/login/login.vue
index d7fe141..c362e72 100644
--- a/pages/login/login.vue
+++ b/pages/login/login.vue
@@ -1,49 +1,50 @@
 <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>
+		<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="register" @click="registerClick"><text>娉ㄥ唽</text></view>
-		<!-- #endif -->
-		<view class="login-bottom-box"><view class="copyright">2023鍐�涓兘婧愭棤浜哄�煎畧寰俊灏忕▼搴�</view></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 { 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 {
-			// 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: []
+			loginPopupShow: false,
+			// 缁戝畾寰俊妯℃�佹
+			bindWxModelShow: false,
+			bindWxModelTitle: '鎻愮ず',
+			bindWxContent: '濡傛灉宸叉嫢鏈夌郴缁熻处鍙凤紝鍙互鐩存帴璺宠浆缁戝畾寰俊椤甸潰'
 		};
 	},
 	components: {
@@ -52,51 +53,91 @@
 	methods: {
 		...mapMutations(['setUserTabbar']),
 		// 璁块棶wx.login,鑾峰彇code
-		login() {
-			// let _this = this;
+		beforeLoginEvent() {
+			this.loginPopupShow = true;
+		},
+		wxLogin() {
 			// 鑾峰彇鐧诲綍鐢ㄦ埛code
 			uni.login({
 				success: res => {
-					console.log('鐧诲綍loginRes', res);
 					if (res.code) {
-						this.wxcode = res.code;
+						uni.setStorageSync('code', res.code);
+						this.apiLogin(res.code);
 					} else {
 						uni.showToast({
 							title: '寰俊鐧诲綍澶辫触锛�',
 							duration: 2000
 						});
 					}
-					// this.apiLogin();
 				}
 			});
 		},
 		// 鐧诲綍鎺ュ彛
-		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}`
+		apiLogin(code) {
+			/**
+			 * @openid
+			 * 鑾峰彇寰俊鐢ㄦ埛openid,寰俊涓�閿櫥褰曟殏鏃犵浉鍏虫帴鍙o紝鐢ㄤ簬娴嬭瘯鍛煎彨瀹㈡湇鍔熻兘
+			 */
+			uni.showLoading({
+				title: '鍔犺浇涓�...'
+			});
+			// wx.request({
+			// 	url: `https://api.weixin.qq.com/sns/jscode2session?appid=wx4a62fc1684c429a9&secret=ee90afe376cdcec2fdd947c0a4db961a&js_code=${code}&grant_type=authorization_code`,
+			// 	success(res) {
+			// 		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('鐧诲綍鎴愬姛');
+						// 鐧婚檰鎴愬姛锛屽瓨鍌ㄧ浉鍏充俊鎭�
+						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);
+							setCustomerId(res.data.customerid);
+							uni.hideLoading();
+							//璺宠浆椤甸潰
+							this.$nextTick(() => {
+								redirectHome();
+							});
 						});
+					} else {
+						this.$u.toast(res.msg);
+						this.bindWxModelShow = true;
 					}
-					if (res.msg == '鐧诲綍鎴愬姛') {
-						uni.setStorageSync('userInfo', res.data);
-						this.setUserTabbar(res.data.type);
-						uni.switchTab({
-							url: '/pages/tabbar-page/index-tabbar/index-tabbar'
-						});
-					}
-				})
-				.catch(err => {
-					console.log('閿欒', err);
 				});
+			});
+			this.loginPopupShow = false;
 		},
-		registerClick(){
+		bindWxConfirm() {
 			uni.navigateTo({
-				url:"/pages/register/register"
-			})
+				url: `/pages/login/wxLogin?code=${uni.getStorageSync('code')}`
+			});
+			this.bindWxModelShow = false;
+		},
+		bindWxCancel() {
+			this.bindWxModelShow = false;
+		},
+		// 寮瑰嚭灞傛椂闂�
+		closePopup() {
+			this.loginPopupShow = false;
+		},
+		openPopup() {
+			console.log('鎵撳紑浜�');
+		},
+		registerClick() {
+			uni.navigateTo({
+				url: '/pages/register/register'
+			});
 		}
 	}
 };
@@ -135,7 +176,7 @@
 		width: 80%;
 		font-size: 64rpx;
 		color: #497bff;
-		margin: 50rpx auto 0;
+		margin: vww(100) auto 0;
 		text-align: center;
 	}
 
@@ -204,12 +245,29 @@
 		padding: 0 70rpx;
 	}
 
-	.tenantList {
-		font-size: 32rpx;
-		width: 80%;
-		height: 80rpx;
-		text-align: center;
-		margin: 50rpx auto 0;
+	// 寮瑰嚭妗�
+	.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%;
+							}
+						}
+					}
+				}
+			}
+		}
 	}
 }
 </style>

--
Gitblit v1.9.1