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