1.登录模块效验
rules:规则对象属性:
required,代表这个字段务必要校验的
min:文本长度至少多少位
max:文本长度最多多少位
message:错误的提示信息
trigger:触发校验表单的时机 change->文本发生变化触发校验,blur:失去焦点的时候触发校验规则
//保证全部表单相校验通过再发请求
await loginForms.value.validate();文章来源:https://www.toymoban.com/news/detail-708751.html
1<template>
<div class="login_container">
<!-- xs表示设备小于等于768的时候 占多少份-->
<el-row>
<el-col :span="12" :xs="0"></el-col>
<el-col :span="12" :xs="24">
<el-form class="login-form" :model="loginForm" :rules="rules" ref="loginForms">
<h1>Hello</h1>
<h2>欢迎来到赤火管理系统</h2>
<!-- 账号-->
<el-form-item prop="username">
<el-input :prefix-icon="User" v-model="loginForm.username"></el-input>
</el-form-item>
<!-- 密码-->
<el-form-item prop="password">
<el-input class="login_brn" type="password" :prefix-icon="Lock" v-model="loginForm.password"
show-password></el-input>
</el-form-item>
<el-form-item>
<el-button :loading="loading" class="login_brn" type="primary" size="default"
@click="login">登录</el-button>
</el-form-item>
</el-form>
</el-col>
</el-row>
</div>
</template>
<script setup lang="ts">
import { User, Lock } from '@element-plus/icons-vue';
import { reactive, ref } from 'vue';
import { useRouter } from 'vue-router';
import { ElNotification } from 'element-plus';
//引入用户相关的仓库
import useUserStore from "@/store/modules/user";
//引入获取当前时间的函数
import { getTime } from '@/utils/time';
//获取el-form组件
let loginForms=ref();
let useStore = useUserStore();
//获取路由器
let $router = useRouter();
//定义变量控制按钮加载效果
let loading = ref(false);
//收集账号与密码的数据
let loginForm = reactive({ username: 'admin', password: '111111' })
//点击登录按钮回调
const login = async () => {
//保证全部表单相校验通过再发请求
await loginForms.value.validate();
//效果加载
loading.value = true;
//点击登录按钮以后干什么
//通知仓库发登录请求
//请求成功=》首页数据展示的地方
//请求失败-》弹出登录失败信息
try {
//保证登录成功
await useStore.userLogin(loginForm);
//编程式导航跳转到首页
$router.push('/');
//登录成功的提示信息
ElNotification({
type: 'success',
message: '登录成功',
title: `Hi 欢迎回家${getTime()}好`
})
loading.value = false;
} catch (error) {
//登录失败 加载效果 消失
loading.value = false
//登录失败的提示信息
ElNotification({
type: 'error',
message: (error as Error).message
})
}
}
//定义表单效验需要的配置对象
const rules = {
//规则对象属性:
//required,代表这个字段务必要校验的
//min:文本长度至少多少位
//max:文本长度最多多少位
//message:错误的提示信息
//trigger:触发校验表单的时机 change->文本发生变化触发校验,blur:失去焦点的时候触发校验规则
username: [
{ required: true, message: '用户名不能为空', trigger: 'blur' },
{ required: true, min: 6, max: 10, message: '账号长度至少6位', trigger: 'change' },
],
password: [
{ required: true, min: 6, max: 15, message: '密码长度至少6位', trigger: 'change' },
]
}
</script>
2.自定义效验规则文章来源地址https://www.toymoban.com/news/detail-708751.html
//自定义效验规则函数
const validatorUserName=(rule:any,value:any,callback:any)=>{
//rule:即为校验规则对象
//value:即为表单元素文本内容
//函数:如果符合条件callBack放行通过即为
//如果不符合条件callBack方法,注入错误提示信息
if (value.length >= 5) {
callback();
} else {
callback(new Error('账号长度至少五位'));
}
}
const validatorPassword = (rule: any, value: any, callback: any) => {
if (value.length >= 6) {
callback();
} else {
callback(new Error('密码长度至少六位'));
}
}
//定义表单效验需要的配置对象
const rules = {
//规则对象属性:
//required,代表这个字段务必要校验的
//min:文本长度至少多少位
//max:文本长度最多多少位
//message:错误的提示信息
//trigger:触发校验表单的时机 change->文本发生变化触发校验,blur:失去焦点的时候触发校验规则
username: [
// { required: true, message: '用户名不能为空', trigger: 'blur' },
// { required: true, min: 6, max: 10, message: '账号长度至少6位', trigger: 'change' },
{trigger:'change',validator:validatorUserName}
],
password: [
// { required: true, min: 6, max: 15, message: '密码长度至少6位', trigger: 'change' },
{trigger:'change',validator:validatorPassword}
]
}
到了这里,关于Vue3.2+TypeScript管理模块记录1-登录模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!