Vue3+antDesignVue实现表单校验的方法

 更新时间:2024年01月19日 09:43:23   作者:m87里的光  
这篇文章主要为大家详细介绍了基于Vue3和antDesignVue实现表单校验的方法,文中的示例代码讲解详细,具有一定的参考价值,需要的小伙伴可以了解下

<a-form
      ref="form"
      :model="form"
      :rules="rules"
      :label-col="{ md: { span: 6 }, sm: { span: 24 } }"
      :wrapper-col="{ md: { span: 18 }, sm: { span: 24 } }"
    >
      <!--      <a-form-item label='创建人:' name='createdBy'>-->
      <!--        <a-input-number v-model:value='form.createdBy' placeholder='请输入创建人' allow-clear autocomplete='off' style="width: 100%" />-->
      <!--      </a-form-item>-->
 
      <a-form-item label="项目编号:" name="projectCode">
        <a-input v-model:value="form.projectCode" placeholder="请输入项目编号" style="width: 50%" allow-clear autocomplete="off" />
      </a-form-item>
      <a-form-item label="项目名称:" name="projectName">
        <a-input v-model:value="form.projectName" placeholder="请输入项目名称" style="width: 50%" allow-clear autocomplete="off" />
      </a-form-item>
      <a-form-item label="项目承担单位:" name="company">
        <a-input v-model:value="form.company" placeholder="请输入项目承担单位" style="width: 50%" allow-clear autocomplete="off" />
      </a-form-item>
      <a-form-item label="项目目的和意义:" name="purpose">
        <a-textarea v-model:value="form.purpose" placeholder="请输入项目目的和意义" style="width: 50%" allow-clear autocomplete="off" />
      </a-form-item>
      <a-form-item label="技术水平:" name="level">
        <a-select
          ref="select"
          v-model:value="form.level"
          style="width: 40%"
          placeholder="请选择技术水平"
          @focus="focus"
          @change="handleChange"
        >
          <a-select-option value="国际先进">国际先进</a-select-option>
          <a-select-option value="国际领先">国际领先</a-select-option>
          <a-select-option value="国内先进">国内先进</a-select-option>
          <a-select-option value="国内领先">国内领先</a-select-option>
        </a-select>
      </a-form-item>
      <a-form-item label="项目类型:" name="projectType">
        <a-select
          ref="select"
          v-model:value="form.projectType"
          placeholder="请选择项目类型"
          style="width: 40%"
          @focus="focus"
          @change="handleChange"
        >
          <a-select-option value="产学研合作">产学研合作</a-select-option>
          <a-select-option value="自主研发">自主研发</a-select-option>
          <a-select-option value="其他">其他</a-select-option>
        </a-select>
      </a-form-item>
      <a-form-item label="项目主要内容:" name="content">
        <a-textarea v-model:value="form.content" placeholder="请输入项目主要内容" style="width: 50%" allow-clear autocomplete="off" />
      </a-form-item>
      <a-form-item label="项目前期准备工作、调研计划:" name="plan">
        <a-textarea
          v-model:value="form.plan"
          placeholder="请输入项目前期准备工作、调研计划"
          style="width: 50%"
          allow-clear
          autocomplete="off"
        />
      </a-form-item>
      <a-form-item label="项目预计科技投入总额:" name="investment">
        <a-input-number
          v-model:value="form.investment"
          placeholder="请输入项目预计科技投入总额"
          style="width: 50%"
          allow-clear
          autocomplete="off"
          addon-before="RMB"
          addon-after="万元"
        />
      </a-form-item>
      <a-form-item label="前期准备工作进展、项目调研进展:" name="progress">
        <a-textarea
          v-model:value="form.progress"
          placeholder="请输入前期准备工作进展、项目调研进展"
          style="width: 50%"
          allow-clear
          autocomplete="off"
        />
      </a-form-item>
      <a-form-item label="已累计投入总额:" name="spent">
        <a-input-number
          v-model:value="form.spent"
          placeholder="请输入已累计投入总额"
          style="width: 50%"
          allow-clear
          autocomplete="off"
          addon-before="RMB"
          addon-after="万元"
        />
      </a-form-item>
      <a-form-item label="项目调研报告(或总结):" name="report">
        <a-upload
          name="file"
          ref="uploadRef"
          class="upload-list"
          v-model:file-list="fileList"
          :multiple="false"
          :action="FileUploadUrl"
          :headers="headers"
          :before-upload="beforeUpload"
          :custom-request="customRequest"
          @change="handleChange"
          @remove="handleRemove"
        >
          <a-button v-if="fileList.length < 1">
            <template #icon>
              <CloudUploadOutlined />
            </template>
            <span>选择文件</span>
          </a-button>
        </a-upload>
      </a-form-item>
    </a-form>

 data() {
    return {
      fileList: [],
 
      // 表单数据
      form: Object.assign({}, this.data),
      // 表单验证规则
      rules: {
        createdBy: [{ required: true, message: '请输入创建人', type: 'number', trigger: 'blur' }],
        projectName: [{ required: true, message: '请输入项目名称', type: 'string', trigger: 'blur' }],
        company: [{ required: true, message: '请输入项目承担单位', type: 'string', trigger: 'blur' }],
        purpose: [{ required: true, message: '请输入项目目的和意义', type: 'string', trigger: 'blur' }],
        level: [{ required: true, message: '请输入技术水平', type: 'string', trigger: 'blur' }],
        projectType: [{ required: true, message: '请输入项目类型', type: 'string', trigger: 'blur' }],
        content: [{ required: true, message: '请输入项目主要内容', type: 'string', trigger: 'blur' }],
        plan: [{ required: true, message: '请输入项目前期准备工作、调研计划', type: 'string', trigger: 'blur' }],
        investment: [{ required: true, message: '请输入项目预计科技投入总额', type: 'number', trigger: 'blur' }],
        postTime: [{ required: true, message: '请输入', type: 'string', trigger: 'blur' }],
        status: [{ required: true, message: '请输入', type: 'string', trigger: 'blur' }],
        progress: [{ required: true, message: '请输入前期准备工作进展、项目调研进展', type: 'string', trigger: 'blur' }],
        report: [{ required: true, message: '请输入项目调研报告(或总结)', type: 'change', trigger: 'blur' }],
        projectCode: [{ required: true, message: '请输入项目编号', type: 'string', trigger: 'blur' }],
        spent: [{ required: true, message: '请输入已累计投入总额', type: 'number', trigger: 'blur' }]
      },
      // 提交状态
      loading: false,
      headers: {
        Authorization: getToken()
      },
      // 是否是修改
      isUpdate: false
    };
  },

到此这篇关于Vue3+antDesignVue实现表单校验的方法的文章就介绍到这了,更多相关Vue3 antDesignVue表单校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue proxyTable的跨域中pathRewrite配置方式

    vue proxyTable的跨域中pathRewrite配置方式

    这篇文章主要介绍了vue proxyTable的跨域中pathRewrite配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue 指定文字高亮的实现示例

    vue 指定文字高亮的实现示例

    在做文字处理的项目时经常会遇到搜索文字并高亮的需求,本文就来介绍vue 指定文字高亮的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • 深入探讨如何在Vue中使用EventBus实现组件间的高效通信

    深入探讨如何在Vue中使用EventBus实现组件间的高效通信

    在现代前端开发中,Vue.js 作为一种流行的渐进式框架,广泛应用于各类 Web 项目的构建中,本文将深入探讨如何在 Vue 中使用 EventBus,实现组件间的高效通信,需要的可以了解下
    2024-11-11
  • vite vue3 规范化与Git Hooks详解

    vite vue3 规范化与Git Hooks详解

    这篇文章主要介绍了vite vue3 规范化与Git Hooks,本文重点讨论 git 提交规范,结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • 基于Vue + Node.js自动发布服务脚本的完整流程

    基于Vue + Node.js自动发布服务脚本的完整流程

    在当今快节奏的软件开发环境中,前端项目的快速迭代与高效部署成为了提升竞争力的关键,这篇文章主要介绍了基于Vue+Node.js自动发布服务脚本的完整流程,需要的朋友可以参考下
    2026-03-03
  • Vue自定义指令的使用详细介绍

    Vue自定义指令的使用详细介绍

    我们看到的v-开头的行内属性,都是指令,不同的指令可以完成或实现不同的功能,对普通 DOM元素进行底层操作,这时候就会用到自定义指令。除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令
    2022-09-09
  • Vue版本演进之Vue3、Vue2.7与Vue2全面详细对比

    Vue版本演进之Vue3、Vue2.7与Vue2全面详细对比

    随着前端技术的不断发展,各种框架应运而生,而Vue.js凭借其简洁、灵活的特性,成为了许多开发者的首选,这篇文章主要介绍了Vue版本演进之Vue3、Vue2.7与Vue2全面详细对比的相关资料,需要的朋友可以参考下
    2026-03-03
  • vue中el-tree动态初始默认选中和全选实现方法

    vue中el-tree动态初始默认选中和全选实现方法

    这篇文章主要给大家介绍了关于vue中el-tree动态初始默认选中和全选实现的相关资料,eltree默认选中eltree是一种常用的树形控件,通常用于在网页上呈现树形结构的数据,例如文件夹、目录、组织结构等,需要的朋友可以参考下
    2023-09-09
  • Vue中防抖与节流实现方法详解

    Vue中防抖与节流实现方法详解

    防抖、节流是为了在某个事件频繁发生时,不把这个频繁的事件内的操作也这么频繁的触发,这篇文章主要介绍了Vue中防抖与节流实现方法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-03-03
  • vue3中引入class类的写法代码示例

    vue3中引入class类的写法代码示例

    最近一直在做vue项目,从网上搜索到的资料不太多,这篇文章主要给大家介绍了关于vue3中引入class类的写法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-05-05

最新评论