首页 > 其他分享 >joi 自定义错误提示

joi 自定义错误提示

时间:2023-09-20 13:57:45浏览次数:41  
标签:200 string 自定义 min 提示 max error joi

<template>
  <div>
    <div class="bg-white rounded-lg font-light w-96 shadow p-4">
      <div class="text-center text-lg mb-4">后台管理系统</div>
      <form @submit.prevent="(e) => {}">
        <label for="username" class="sr-only">username</label>
        <div class="relative mb-4">
          <div class="absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none">
            <el-icon :size="24" color="#cccccc"><User /></el-icon>
          </div>
          <input
            id="username"
            type="text"
            class="block border w-full rounded-lg border-gray-300 h-12 pl-10 focus:ring-1"
            v-model="form.username"
          />
          <div class="abosulate"></div>
        </div>
        <label for="password" class="sr-only">password</label>
        <div class="relative mb-4">
          <div class="absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none">
            <el-icon :size="24" color="#cccccc"><Lock /></el-icon>
          </div>
          <input
            id="password"
            type="text"
            class="block border w-full rounded-lg border-gray-300 h-12 pl-10 focus:ring-1"
            v-model="form.password"
          />
          <div class="abosulate"></div>
        </div>
        <div class="text-right text-gray-500 my-4">忘记账号/密码?</div>
        <button
          class="block w-full bg-blue-500 text-white h-12 text-center rounded-lg hover:bg-blue-800"
          @click="submit"
        >
          登录
        </button>
      </form>
    </div>
  </div>
</template>

<script>
import joi from 'joi';
import { ElMessage } from 'element-plus';

export default {
  data() {
    return {
      form: {
        username: '',
        password: '',
      },
    };
  },
  created() {},
  mounted() {},
  methods: {
    handleLogin() {
      this.$router.push('/dashboard');
    },
    submit() {
      const schema = joi.object({
        username: joi.string().min(3).max(200).required().label('用户名').messages({
          'string.empty': '用户名是必填字段。',
          'string.min': '用户名必须至少包含 3 个字符。',
          'string.max': '用户名不能超过 200 个字符。',
        }),
        password: joi.string().min(3).max(200).required().label('密码').messages({
          'string.empty': '密码是必填字段。',
          'string.min': '密码必须至少包含 3 个字符。',
          'string.max': '密码不能超过 200 个字符。',
        }),
      });
      const { error } = schema.validate(this.form, { abortEarly: false });
      if (error) {
        for (let i = 0; i < error.details.length; i++) {
          ElMessage.warning(error.details[i].message);
        }
      } else {
        this.handleLogin();
      }
    },
  },
  unmounted() {},
};
</script>

<style scoped></style>

标签:200,string,自定义,min,提示,max,error,joi
From: https://www.cnblogs.com/luckstart/p/17717134.html

相关文章

  • 微前端启动子应用出现的eslint提示
    前言在管理较大的多人协同开发项目时,为了规范大家的代码书写习惯,我们往往都会用eslint来约束,但这也导致我们在拉项目时以及开发时都增加了不少麻烦,本文着重讲解微服务启动不同子项目时常规报错的解决方式。步骤一:在package.json将 "lint":"vue-cli-servicelint"......
  • Excel单元格自定义格式技巧总结
      Excel单元格自定义格式技巧总结  第一部分Excel中的单元格格式是一个最基本但是又很高级的技能,说它基本是因为我们几乎天天都会用到它,会用它来设置一些简单的格式,比如日期,文本等等;高级是因为利用Excel单元格的自定义格式我们可以实现一些看起来非常神奇和有用的效......
  • 实现mapreduce多文件自定义输出
     普通maprduce中通常是有map和reduce两个阶段,在不做设置的情况下,计算结果会以part-000*输出成多个文件,并且输出的文件数量和reduce数量一样,文件内容格式也不能随心所欲。这样不利于后续结果处理。如果只是想做到输出结果的文件名可控,实现自己的LogNameMultipleTextOutputFormat类,......
  • Jmeter5.4参数化上传文件提示系统找不到指定的文件的解决方法
    问题:java.io.FileNotFoundException:D:\A_JFKJ\A_a项目资料\1_20230906国家教育考试指挥系统V2.10\测试数据\报名_编排_考场对应\${username}-报名.xlsx(系统找不到指定的文件。) 解决方法:在文件路径${}参数化内容前方加反斜杠“\”即可解决  ......
  • el-table中自定义悬浮提示结构,添加复制功能
    效果展示:代码:代码copyText(text){navigator.clipboard.writeText(text).then(()=>{this.$message.success("文本复制成功");}).catch(()=>{this.$message.error("文本复制失败");......
  • 表格的自定义排序 编辑 拖拽 缩放
    终于能闲下来做点自己想做的事情了.. 简单表格排序  可以双击编辑自定义编辑后的规则 可拖动列进行列替换 可推动边框进行列宽度的缩放  ie6下中文不自动换行 非ie下字母和数字也不自动换行确实让人恼火 chrome浏览器下点击运行好像问题很大 拿到本地测试会比较好<!......
  • macOS 运行xxx.command文件提示”无法执行,因为您没有正确的访问权限“解决方法
    使用苹果mac电脑运行.command文件时,是否遇到弹出”无法执行,因为您没有正确的访问权限“的窗口?遇到这种问题怎么解决呢?这里小编为大家带来了详细的解决方法,一起来看看吧!解决方法:方法一:打开终端工具,输入以下命令:sudosh注意后面有空格然后再把.command文件直接拖入终端按回车键即可......
  • 第05章-自定义函数和JSON数据解析
    目录5.1实现自定义UDF25.2实现自定义UDTF35.3实现自定义UDAF45.4解析JSON数据65.4.1解析OBJECT数据65.4.2解析ARRAY数据75.4.3禁止使用get_json_object函数8第05章自定义函数和JSON数据解析自定义函数简介有一些sql很难处理的逻辑,我们可以使用自定义函数去处理。比......
  • uniapp项目实践总结(十八)自定义多列瀑布流组件
    导语:有时候展示图片等内容,会遇到图片高度不一致的情况,这时候就不能使用等高双列或多列展示了,这时候会用到瀑布流的页面布局,下面就一起探讨一下瀑布流的实现方法。目录准备工作原理分析实战演练案例展示准备工作在pages/index文件夹下面新建一个waterfall.vue的组件;按......
  • 在C#中如何自定义配置上周和本周起始日来查询业务数据?
    作者:西瓜程序猿主页传送门:https://blog.51cto.com/kimiliucn前言在做某个报表管理功能时,有一个需求:需要根据自定义配置的[周起始日]来统计上周、本周的订单数据。在C#中并没有封装的方法根据我们需要来直接获取上一周某天到某天、本周某天到某天,所以需要我们自己封装方法来实现(我们......