From 57ef6e56360f0b84b6adb53220e4f556405cdce3 Mon Sep 17 00:00:00 2001
From: yangyin <1850366751@qq.com>
Date: 星期四, 31 十月 2024 11:26:47 +0800
Subject: [PATCH] 添加手机号登录

---
 src/views/login/component/mobile.vue |   82 +++++++++++++++++++++++++++++++----------
 1 files changed, 62 insertions(+), 20 deletions(-)

diff --git a/src/views/login/component/mobile.vue b/src/views/login/component/mobile.vue
index a01289a..82787cb 100644
--- a/src/views/login/component/mobile.vue
+++ b/src/views/login/component/mobile.vue
@@ -24,11 +24,13 @@
 			</el-col>
 			<el-col :span="1"></el-col>
 			<el-col :span="8">
-				<el-button  v-waves class="login-content-code" @click="sendSMS">{{ sendCodeMsg }}</el-button>
+				<el-button v-waves class="login-content-code" @click="sendSMS" :disabled="state.ruleForm.countNum > 0">{{
+					state.ruleForm.countNum > 0 ? `${state.ruleForm.countNum}绉掑悗閲嶈瘯` : '鑾峰彇楠岃瘉鐮�'
+				}}</el-button>
 			</el-col>
 		</el-form-item>
 		<el-form-item class="login-animation3">
-			<el-button round type="primary" v-waves class="login-content-submit">
+			<el-button round type="primary" v-waves class="login-content-submit" @click="onSignIn">
 				<span>{{ $t('message.mobile.btnText') }}</span>
 			</el-button>
 		</el-form-item>
@@ -39,10 +41,9 @@
 <script setup lang="ts" name="loginMobile">
 import { FormInstance, FormRules } from 'element-plus';
 import { reactive, ref } from 'vue';
-import { verifyPhone } from '/@/utils/toolsValidate';
-import { loginVerifyMessage } from '/@/api/ai/user';
-import { computed } from 'vue';
-
+import { PostPhoneLogin, loginVerifyMessage } from '/@/api/ai/user';
+import { accessSessionKey } from '/@/utils/request';
+import { Local } from '/@/utils/storage';
 // 瀹氫箟鍙橀噺鍐呭
 const state = reactive({
 	ruleForm: {
@@ -53,27 +54,19 @@
 	},
 });
 
-const validatePhoneNum = (_rule: any, value: any, callback: any) => {
-	if (!value) {
-		callback('璇疯緭鍏ユ墜鏈哄彿');
-	} else if (!verifyPhone(value)) {
-		callback(new Error('璇疯緭鍏ユ纭殑鎵嬫満鍙�'));
-	} else {
-		callback();
-	}
-};
 const formRules = ref<FormRules>({
 	code: [{ required: true, message: '璇疯緭鍏ラ獙璇佺爜', trigger: 'blur' }],
-	userName: [{ required: true, validator: validatePhoneNum, trigger: 'blur' }],
+	userName: [
+		{ required: true, message: '璇疯緭鍏ユ墜鏈哄彿鐮�', trigger: 'blur' },
+		{ pattern: /^1\d{10}$/, message: '璇疯緭鍏ユ纭殑鎵嬫満鍙风爜', trigger: 'blur' },
+	],
 });
 function stopCount() {
 	state.ruleForm.countNum = null;
 	clearInterval(state.ruleForm.countTimer);
 }
 
-const hasSended = computed(() => state.ruleForm.countNum !== null);
-const sendCodeMsg = computed(() => (hasSended ? '鑾峰彇楠岃瘉鐮�' : `${state.ruleForm.countNum} 绉掑悗閲嶈瘯`));
-function startCount() {
+const startCount = () => {
 	stopCount();
 	state.ruleForm.countNum = 60;
 	state.ruleForm.countTimer = setInterval(() => {
@@ -84,7 +77,7 @@
 		}
 		state.ruleForm.countNum--;
 	}, 1000);
-}
+};
 
 const dialogFormRef = ref<FormInstance>(null);
 
@@ -107,6 +100,53 @@
 	);
 
 	startCount();
+};
+const LOGIN_CLIENT = '鍚庡彴绠$悊';
+// 鐧诲綍
+const onSignIn = async () => {
+	dialogFormRef.value.validate(async (valid) => {
+		if (!valid) return false;
+		let params = {
+			phone: state.ruleForm.userName,
+			code: state.ruleForm.code,
+			client: LOGIN_CLIENT,
+		};
+		const res = await PostPhoneLogin(params, {
+			noAuth: true,
+			loading: false,
+		});
+
+		Local.set(accessSessionKey, res.hswatersession);
+		return
+		await useUserInfo().setUserInfos({
+			userName: ruleForm.value.account,
+			phoneNumber: '',
+			photo: profileMan,
+		}); //缂撳瓨鐢ㄦ埛淇℃伅
+		state.loading.signIn = true;
+		if (!themeConfig.value.isRequestRoutes) {
+			// 鍓嶇鎺у埗璺敱锛�2銆佽娉ㄦ剰鎵ц椤哄簭
+			const isNoPower = await initFrontEndControlRoutes();
+			// console.log(isNoPower,172)
+			signInSuccess(isNoPower);
+		} else {
+			// 妯℃嫙鍚庣鎺у埗璺敱锛宨sRequestRoutes 涓� true锛屽垯寮�鍚悗绔帶鍒惰矾鐢�
+			// 娣诲姞瀹屽姩鎬佽矾鐢憋紝鍐嶈繘琛� router 璺宠浆锛屽惁鍒欏彲鑳芥姤閿� No match found for location with path "/"
+			const isNoPower = await initBackEndControlRoutes();
+			// 鎵ц瀹� initBackEndControlRoutes锛屽啀鎵ц signInSuccess
+			// console.log(isNoPower,178)
+			signInSuccess(isNoPower);
+		}
+
+		// 鐧诲綍鏍¢獙
+		// await apiSysAuthLoginPost(params)
+		// 	.then(async (res: any) => {
+
+		// 	})
+		// 	.catch((err: any) => {
+		// 		console.log(err);
+		// 	});
+	});
 };
 </script>
 
@@ -137,3 +177,5 @@
 	}
 }
 </style>
+import { initBackEndControlRoutes } from '/@/router/backEnd'; import { initFrontEndControlRoutes } from '/@/router/frontEnd'; import {
+useUserInfo } from '/@/stores/userInfo';

--
Gitblit v1.9.3