Vue3.2+TypeScript管理模块记录1-登录模块

这篇具有很好参考价值的文章主要介绍了Vue3.2+TypeScript管理模块记录1-登录模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.登录模块效验

rules:规则对象属性:
  required,代表这个字段务必要校验的
  min:文本长度至少多少位
  max:文本长度最多多少位
  message:错误的提示信息
  trigger:触发校验表单的时机 change->文本发生变化触发校验,blur:失去焦点的时候触发校验规则 

  //保证全部表单相校验通过再发请求

   await loginForms.value.validate();

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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TypeScript系列, 通过vue3实例说说declare module语法怎么用[模块声明篇]

    本系列文章是我20年开始写的, 这个模块声明也是本系列的最后一课, 中间因为时间安排间隔了1年, 当时答应大家要补充的, 现在来还债😊. 中间的时间我写了vue3的入门教程, 现在写了一半了吧, 带视频的, 如果有需要的小伙伴可以去看看. https://www.yuque.com/books/share/c0ab3348-87ab-4

    2023年04月22日
    浏览(34)
  • 【项目实战】基于Vue3+TypeScript+Pinia的后台管理系统(coderwhy)

    是基于Vue3、Pinia、VueRouter、Vite、ElementPlus、TypeScript、Echarts等后台系统 https://documenter.getpostman.com/view/12387168/TzzDKb12 baseURL = ‘http://codercba.com:5000’ postman详细使用可以自己搜 也可以使用其他接口管理的工具 给项目添加 环境变量 baseURL https://gitee.com/yangyang993/vue3_ts_cms_admin.git 登录

    2024年02月07日
    浏览(69)
  • 记录--vue3问题:如何实现微信扫码授权登录?

    一、需求 微信扫码授权,如果允许授权,则登录成功,跳转到首页。 二、问题 1、微信扫码授权有几种实现方式? 2、说一下这几种实现方式的原理是什么? 3、vue中的微信扫码授权登录,与uniapp和原生小程序的微信授权登录,它们之间有共同点吗? TWO 解决问题,答案速览

    2024年02月13日
    浏览(52)
  • Vite4+Typescript+Vue3+Pinia 从零搭建(6) - 状态管理pina

    项目代码同步至码云 weiz-vue3-template pina 是 vue3 官方推荐的状态管理库,由 Vue 核心团队维护,旨在替代 vuex。pina 的更多介绍,可从 pina官网 查看 更简洁直接的 API,提供组合式风格的 API 支持模块热更新和服务端渲染 对TS支持更为友好 src目录下新建store文件夹,并新建index.t

    2024年02月05日
    浏览(81)
  • vue3-实战-11-管理后台-权限管理之角色管理模块

    目录 1-角色列表 1.1-原型需求分析 1.2-接口封装和数据类型定义 1.3-请求服务器端获取列表页面数据 1.4-组件页面动态渲染数据 2-角色新增和编辑 2.1-需求原型分析 2.2-页面结构以及功能实现 3-角色的删除 4-分配权限 4.1-原型需求分析 4.2-获取服务器数据渲染数据 4.3-分配权限  

    2024年02月09日
    浏览(46)
  • 【vue3-element-admin 】基于 Vue3 + Vite4 + TypeScript + Element-Plus 从0到1搭建后台管理系统(前后端开源)

    vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 + Element Plus 版本的后台管理前端解决方案,技术栈为 Vue3 + Vite4 + TypeScript + Element Plus + Pinia + Vue Router 等当前主流框架。 相较于其他管理前端框架,vue3-element-admin 的优势在于 一有一无 (有配套后端、无复杂封装): 配套完整 Java 后

    2023年04月26日
    浏览(80)
  • 【vue3-element-admin 】基于 Vue3 + Vite4 + TypeScript + Element-Plus 从0到1搭建后台管理系统(前后端开源@有来开源组织)

    vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 + Element Plus 版本的后台管理前端解决方案,技术栈为 Vue3 + Vite4 + TypeScript + Element Plus + Pinia + Vue Router 等当前主流框架。 相较于其他管理前端框架,vue3-element-admin 的优势在于 一有一无 ( 有 配套后端、 无 复杂封装): 配套完整 J

    2023年04月21日
    浏览(257)
  • 【vue3-element-admin 】基于 Vue3 + Vite4 + TypeScript5+ Element-Plus 从0到1搭建企业级后台管理系统(前后端开源)

    vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 + Element Plus 版本的后台管理前端解决方案,技术栈为 Vue3 + Vite4 + TypeScript + Element Plus + Pinia + Vue Router 等当前主流框架。 相较于其他管理前端框架,vue3-element-admin 的优势在于 一有一无 (有配套后端、无复杂封装): 配套完整 Java 后

    2024年02月07日
    浏览(215)
  • vue3-实战-12-管理后台-权限管理之菜单管理模块-首页-主题颜色-暗黑模式

    目录 1-列表页面功能开发 1.1-需求原型分析 1.2-接口和数据类型定义 1.3-获取服务端数据渲染页面 2-新增编辑菜单 2.1-原型需求分析 2.2-表单数据收集和页面结构开发 2.3-提交或者取消 3-删除菜单 4-首页开发 5-暗黑模式的切换和主题颜色 5.1-暗黑模式 5.2-主题颜色切换       我们

    2024年02月10日
    浏览(55)
  • Vue3 + Vite + TypeScript + Element-Plus:从零到一构建企业级后台管理系统(前后端开源)

    vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 + Element Plus 版本的后台管理前端解决方案,技术栈为 Vue3 + Vite4 + TypeScript + Element Plus + Pinia + Vue Router 等当前主流框架。 相较于其他管理前端框架,vue3-element-admin 的优势在于 一有一无 (有配套后端、无复杂封装): 配套完整 Java 后

    2024年02月05日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包