element表单和vxe表单联动校验的实现

vxetable表单编辑列全局校验 表单的结构如下

js 复制代码
<el-form
        :model="ruleForm"
        :disabled="method == 'view'"
        :loading="loading"
        ref="ruleForm"
        class="info-form"
        size="mini"
      >
        <vxe-table
          style="width: 100%"
          border
          align="center"
          resizable
          show-overflow
          :data="ruleForm.planRoadfList"
          :edit-config="{
            trigger: 'dblclick',
            mode: 'row',
            beforeEditMethod: () => method != 'view',
            showStatus: true,  // 显示校验报错
          }"
          ref="rev_vxeTable1"
          :edit-rules="{ // 对表格中的编辑数据进行校验
            name: [
              { required: true, message: '名字必须填写' },
            ],

          }"
        >
        
        </vxe-table></el-form
      >

父组件内调用提交按钮时进行校验:

js 复制代码
this.$refs["form" + this.currentNodeId].$refs["ruleForm"].validate(
        async (valid1) => {
          console.log('valid1', valid1)
          if (valid1) {
            console.log('第一层校验通过')
            if(this.currentNodeId == '23'){ 
            // rev_vxeTable1被ruleForm包裹需要手动触发vxe校验 
              const errMap = await this.$refs["form" + this.currentNodeId].$refs["rev_vxeTable1"].validate(true)
              // 设置为true是校验整个表格的所有行、所有字段,vxe表单内全局校验
              // 会遍历data中的每一行,
              // 对每一行中配置了 `editRules` 的字段都执行校验。
              console.log('errMap', errMap, Object.prototype.toString.call(errMap))
              // 可以查看未通过校验的信息和errMap结构
              if (errMap) {
                console.error('信息没填完')
                return this.$message.warning('请完善填写信息');

              } else {
                console.log('vxe校验通过')
                提交逻辑
相关推荐
_AaronWong10 小时前
Electron 实现仿豆包划词取词功能:从 AI 生成到落地踩坑记
前端·javascript·vue.js
wuhen_n11 小时前
双端 Diff 算法详解
前端·javascript·vue.js
爱勇宝11 小时前
别再混用了!import.meta.env 与 process.env 的本质差异一次讲透
前端·javascript·vue.js
从文处安1 天前
「九九八十一难」组合式函数到底有什么用?
前端·vue.js
用户11489669441051 天前
VUE3响应式原理——从零解析
vue.js
用户83040713057011 天前
SPA 首屏加载速度慢怎么解决?
vue.js·webpack
一枚前端小姐姐1 天前
低代码平台表单设计系统技术分析(实战三)
前端·vue.js·低代码
SuperEugene1 天前
从 Vue2 到 Vue3:语法差异与迁移时最容易懵的点
前端·vue.js·面试
Leon1 天前
新手引导 intro.js 的使用
前端·javascript·vue.js
Forever7_1 天前
仅用一个技巧,让 JavaScript 性能提速 500%!
前端·vue.js