From 5ce48fcdd2af18dce669a67d6c7c75f78d9babdb Mon Sep 17 00:00:00 2001 From: zjl Date: Mon, 16 Dec 2024 14:53:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=99=BB=E5=BD=95=E3=80=81?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/login/LoginForm.vue | 31 +++++++++++++++++++---- src/views/login/PhoneForm.vue | 42 ++++++++++++++++++++------------ src/views/login/RegisterForm.vue | 20 +++++++++++++-- src/views/login/index.vue | 25 +++++++++++++++++-- 4 files changed, 94 insertions(+), 24 deletions(-) diff --git a/src/views/login/LoginForm.vue b/src/views/login/LoginForm.vue index a90ba79..e27a005 100644 --- a/src/views/login/LoginForm.vue +++ b/src/views/login/LoginForm.vue @@ -106,6 +106,9 @@ const captchaImg = ref(''); // 动态加载滑块验证码组件 + /** + * 定义表单参数 + */ interface FormState { username: string; password: string; @@ -113,13 +116,18 @@ key: string; } + /** + * 定义参数 + */ const emit = defineEmits(['backLogin']); const formRef = ref(); - const loading = ref(false); const autoLogin = ref(true); const LOGIN_NAME = PageEnum.BASE_LOGIN_NAME; + /** + * 定义表单参数 + */ const formInline = reactive({ username: '', password: '', @@ -127,22 +135,26 @@ key: '', }); + /** + * 定义验证规则 + */ const rules = { username: { required: true, message: '请输入登录账号', trigger: 'blur' }, password: { required: true, message: '请输入密码', trigger: 'blur' }, code: { required: true, message: '请输入验证码', trigger: 'blur' }, }; - const userStore = useUserStore(); + /** + * 执行提交表单 + */ + const userStore = useUserStore(); const router = useRouter(); const route = useRoute(); - const handleSubmit = () => { if (!formRef.value) return; formRef.value.validate(async (valid) => { if (valid) { loading.value = true; - const params: FormState = { username: formInline.username, password: formInline.password, @@ -150,7 +162,6 @@ key: formInline.key, // grant_type:"password" }; - try { const { code, msg } = await userStore.login(params); if (code == ResultEnum.SUCCESS) { @@ -175,15 +186,25 @@ }); }; + /** + * 获取验证码 + */ const getCaptcha = async () => { let { key, captcha } = await getInfoCaptcha(); formInline.key = key; captchaImg.value = captcha; }; + + /** + * 定义去注册 + */ const goRegister = () => { emit('backLogin', false); }; + /** + * 调用获取验证码方法 + */ getCaptcha(); diff --git a/src/views/login/PhoneForm.vue b/src/views/login/PhoneForm.vue index bd92173..e872412 100644 --- a/src/views/login/PhoneForm.vue +++ b/src/views/login/PhoneForm.vue @@ -56,35 +56,51 @@ const captchaImg = ref(''); // 动态加载滑块验证码组件 + /** + * 定义表单接口 + */ interface FormState { - username: string; - password: string; + mobile: string; code: string; key: string; } + /** + * 定义参数 + */ const formRef = ref(); - const loading = ref(false); - const codeMsg: any = ref('获取验证码'); const isGetCode = ref(false); const LOGIN_NAME = PageEnum.BASE_LOGIN_NAME; + /** + * 定义表单参数 + */ const formInline = reactive({ mobile: '', code: '', key: '', }); + /** + * 定义验证规则 + */ const rules = { mobile: { required: true, message: '请输入手机号码', trigger: 'blur' }, code: { required: true, message: '请输入验证码', trigger: 'blur' }, }; - const userStore = useUserStore(); + /** + * 定义参数 + */ + const userStore = useUserStore(); const router = useRouter(); const route = useRoute(); + + /** + * 获取手机验证码 + */ async function getCode() { if (!formInline.mobile) { formRef.value.validateField('mobile'); @@ -102,15 +118,19 @@ } }, 1000); } + + /** + * 执行提交表单 + */ const handleSubmit = () => { if (!formRef.value) return; formRef.value.validate(async (valid) => { if (valid) { loading.value = true; + // 提交参数 const params: FormState = { - username: formInline.username, - password: formInline.password, + mobile: formInline.mobile, code: formInline.code, key: formInline.key, }; @@ -137,14 +157,6 @@ } }); }; - - const getCaptcha = async () => { - let { key, captcha } = await getInfoCaptcha(); - formInline.key = key; - captchaImg.value = captcha; - }; - - getCaptcha();