当前位置: 首页 > article >正文

element-puls封装表单验证

项目场景:

提示:这里简述项目相关背景:

在做项目中会有一些简单的表单非空验证,这些验证比较简单,就是代码看着有点多,做起来浪费时间,所以我们可以将这个方法封装起来,然后挂载全局,这样使用起来就方便多了(由于是挂载全局,所以用的时候都不用二次引入了)


分析:

提示:这里填写问题的分析:

要在全局挂载,vue3提供了一个方法app.config.globalProperties,这个方法可以将封装的方法挂载到全局

import formRules from '@/hooks/FormRules';//引入 封装好的方法  --表单验证的封装方法

const app = createApp(App)
app.config.globalProperties.formRules=formRules;//全局挂载方法

具体方案:

提示:这里填写该问题的具体解决方案:

1:封装表单验证的方法 ts文件

FormRules.ts

/*
  type 1 输入框 2 选择框
*/ 
export default function formRules (name:string,type :string|number=1) {
  if(type==1){
    return [
      {required: true, message:name+'不能为空', trigger: 'blur'},
      {required: true, message:name+'不能为空', trigger: 'change'},
    ]
  }else if(type==2){
    return [
      {required: true, message:'请选择'+name, trigger: 'change'},
    ]
  }
}

2:全局挂载

import formRules from '@/hooks/FormRules';//引入 封装好的方法  --表单验证的封装方法

const app = createApp(App)
app.config.globalProperties.formRules=formRules;//全局挂载方法

3:使用

1:表单使用
<el-form-item
    label="是否合格"
    prop="isQualified"
    :rules="formRules('是否合格',2)"
    >
    <el-select
        v-model="formData.isQualified"
        placeholder="请选择是否合格">
        <el-option
            v-for="item in standardOption"
            :key="item.value"
            :label="item.label"
            :value="item.value"/>
     </el-select>
</el-form-item>
<el-form-item 
    label="供货单号" 
    prop="supplyOrderNumber" 
    :rules="formRules('供货单号')">
    <el-input 
        v-model="formData.supplyOrderNumber" 
        placeholder="请输入供货单号"/>                        
</el-form-item>
2:表格使用
<el-table-column label="供应商代码" prop="supplierCode" min-width="180">
        <template #header v-if="props.tableList.length>0">
          <div >
            <span style="color:red">*</span>供应商代码
          </div>
        </template>
        <template #default="scope">
          <el-form-item 
            :prop="'tableList['+scope.$index+'].supplierCode'" 
            :rules="formRules('供应商代码',2)">
            <div style="display:flex">
              <el-input 
                    v-model="scope.row.supplierCode" 
                    placeholder="请选择供应商代码" disabled/>
              <el-button
                v-if="!disabled"
                link type="primary"
                @click="suppSelect(scope.row,scope.$index)">选择</el-button>
            </div>
          </el-form-item>
        </template>
      </el-table-column>


http://www.kler.cn/a/451617.html

相关文章:

  • Redis 安装部署[主从、哨兵、集群](linux版)
  • Linux之ARM(MX6U)裸机篇----2.汇编LED驱动实验
  • Y3地图制作1:水果缤纷乐、密室逃脱
  • Vue零基础必学教程(16) 计算属性
  • information_schema是什么?
  • 简单了解函数递归
  • python中使用selenium执行组合快捷键ctrl+v不生效问题
  • C++ 的大括号的用法合集
  • Hive与HBase的区别有哪些
  • 商城小程序开发有哪些流程?传统商家如何抓住小程序的流量!
  • 【Python 图片下载器】一款专门为爬虫制作的图片下载器,多线程下载,速度快,支持续传/图片缩放/图片压缩/图片转换
  • 项目练习:element-ui的valid表单验证功能用法
  • 常见API
  • 【Rust自学】6.2. Option枚举
  • Log4j1.27配置日志输出级别不起效
  • 《C++设计模式》工厂模式
  • 抖音视频下载去水印工具推荐
  • DATAHUB FRONTEND 开发测试:
  • WebGIS实战开源项目:智慧机场三维可视化(学习笔记)
  • “开启智能新时代”——机器连接与边缘计算
  • 微信小程序:解决顶部被遮挡的问题
  • Python8-写一些小作业
  • QT的错误记录:同文件的的两个QThread子类信号槽关联
  • MySQL for update skip locked 与 for update nowait
  • vue前端编译报错解决方法
  • 007-spring-bean的相关配置(重要)