From bb4170bb6bf4af9cd76f976b1460ea76d33b3bb9 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期四, 31 十月 2024 16:28:14 +0800
Subject: [PATCH] 对话日志

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

diff --git a/src/views/login/component/mobile.vue b/src/views/login/component/mobile.vue
index a01289a..75592b4 100644
--- a/src/views/login/component/mobile.vue
+++ b/src/views/login/component/mobile.vue
@@ -24,11 +24,11 @@
 			</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="hasSended">{{ sendCodeMsg }}</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>
@@ -38,11 +38,11 @@
 
 <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 { computed, reactive, ref } from 'vue';
+import { PostPhoneLogin, loginVerifyMessage } from '/@/api/ai/user';
+import { formatAxis } from '/@/utils/formatTime';
 
+const emit = defineEmits(['login']);
 // 瀹氫箟鍙橀噺鍐呭
 const state = reactive({
 	ruleForm: {
@@ -53,27 +53,26 @@
 	},
 });
 
-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' },
+	],
+});
+
+const hasSended = computed(() => {
+	return state.ruleForm.countNum !== null;
+});
+const sendCodeMsg = computed(() => {
+	return !hasSended.value ? '鑾峰彇楠岃瘉鐮�' : `${state.ruleForm.countNum} 绉掑悗閲嶈瘯`;
 });
 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 +83,7 @@
 		}
 		state.ruleForm.countNum--;
 	}, 1000);
-}
+};
 
 const dialogFormRef = ref<FormInstance>(null);
 
@@ -103,10 +102,35 @@
 		},
 		{
 			noAuth: true,
+			loading: false,
 		}
 	);
 
 	startCount();
+};
+
+const currentTime = computed(() => {
+	return formatAxis(new Date());
+});
+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,
+		});
+
+		// state.loading.signIn = true;
+		await emit('login', res, currentTime.value);
+		// state.loading.signIn = false;
+	});
 };
 </script>
 
@@ -137,3 +161,5 @@
 	}
 }
 </style>
+import { initBackEndControlRoutes } from '/@/router/backEnd'; import { initFrontEndControlRoutes } from '/@/router/frontEnd'; import {
+useUserInfo } from '/@/stores/userInfo';

--
Gitblit v1.9.3