项目中有如下需求:

可以添加一个列表 => 添加弹框 => 里面可以添加多个产品(产品里面可以添加多个对接人跟政策),所以数据结构应该如下ruleForm: {companyName: '', // 公司名称financialProduct: [// 产品数组{productName: '', // 产品名称dockingPerson: [// 对接人{dockingName: '', // 联系人}],financialPolicy: [// 返利政策{makeWay: '', // 计提条件}]}]},

但是在提交表单的时候验证不了,rule不起作用,因为数据是循环出来的,所以不起作用,解决办法如下

<template><div class="addProduct_wrapper"><!-- 中间内容区域 --><div class="center_content"><el-formref="ruleForm":model="ruleForm"label-width="80px":rules="rules"><!-- 上方的列表 --><div class="basic_info"><div class="info_box"><el-form-item label="公司名称" prop="companyName"><el-input placeholder="请输入公司的名称" v-model="ruleForm.companyName"></el-input></el-form-item></div><!-- 产品盒子 --><div class="product_box" v-for="(item, index) in ruleForm.financialProduct" :key="index"><!-- 关闭按钮 --><span class="closeBtn" @click="delateProduct(index)" v-if="index !== 0">X</span><!-- 产品详情 --><div class="product_detail"><el-form-item label="产品详情"></el-form-item><!-- name盒子 --><div class="name_box"><div style="width: 300px;"><el-form-item label="产品名称":prop="`financialProduct.${index}.productName`":rules="financialProductRules.productName"><el-input placeholder="请输入产品名称" v-model="item.productName"></el-input></el-form-item></div></div></div><!-- 对接人 --><div class="pickPeople"><el-form-item label="对接人" label-width="95px"></el-form-item><div class="people_wrapper" v-for="(items, indexs) in ruleForm.financialProduct[index].dockingPerson" :key="indexs"><div><el-form-item label="对接人":prop="`financialProduct.${index}.dockingPerson.${indexs}.dockingName`":rules="dockingPerson.dockingName"><el-input placeholder="请输入联系人姓名" v-model="items.dockingName"></el-input></el-form-item></div></div><el-button type="primary" style="margin-left: 10px;" @click="addPickPeople(index)">添加对接人</el-button></div><!-- 政策 --><div class="rebatePolicy"><el-form-item label="政策"></el-form-item><div class="rebate_box" v-for="(homes, indexHomes) in item.financialPolicy" :key="indexHomes"><div><el-form-item label="政策":prop="`financialProduct.${index}.financialPolicy.${indexHomes}.makeWay`":rules="dockingPerson.makeWay"><el-input placeholder="政策" v-model="homes.makeWay"></el-input></el-form-item></div><div><el-form-item label=""><el-button type="primary" @click="delateRebatePolicy(item.financialPolicy, indexHomes)" v-if="editStatus !== 3">删除</el-button></el-form-item></div></div><el-button type="primary" style="margin-left: 10px;" @click="addRebatePolicy(index)" v-if="editStatus !== 3">添加政策</el-button></div></div><!-- 添加产品 --><el-button type="primary" style="margin: 20px 0px 30px 32px;" @click="addProduct()" v-if="editStatus !== 3">添加产品</el-button><div class="btn_submit" v-if="editStatus !== 3"><el-form-item><el-button type="primary" @click="onSubmit(ruleForm)">确认保存</el-button><el-button @click="closeLayers">取消</el-button></el-form-item></div></el-form></div></div>
</template>
<script>
export default {data() {return {ruleForm: {companyName: '', // 公司名称financialProduct: [// 产品数组{productName: '', // 产品名称dockingPerson: [// 对接人{dockingName: '', // 联系人}],financialPolicy: [// 返利政策{makeWay: '', // 计提条件}]}]},rules: {companyName: [{ required: true, message: '请输入活动名称', trigger: 'blur' }],},financialProductRules: {productName: [{ required: true, message: '请输入产品名称', trigger: 'blur' }]},dockingPerson: {dockingName: [{ required: true, message: '请输入联系人姓名', trigger: 'blur' }],makeWay: [{ required: true, message: '请输入计提条件', trigger: 'blur' }]}};},methods: {onSubmit(formName) {this.$refs['ruleForm'].validate(valid => {if (valid) {console.log(this.ruleForm, '提交的表单');} else {return false;}});},},
};
</script>
<style scoped lang="scss"></style>

element-ui中的多层表单循环验证处理相关推荐

  1. 修改element ui中form表单的 label 颜色样式

    此时,emement ui的form表单的label(年龄二字)是黑色的. 原代码: <template><el-form :model="numberValidateFo ...

  2. 使用xlsx 下载 element ui 中的表格

    原文链接: 使用xlsx 下载 element ui 中的表格 上一篇: MongoDB 聚合 下一篇: vue router 路由守卫 登录验证 https://github.com/SheetJS ...

  3. Web前端笔记-修改element ui中表格样式(透明、去横纵线等含修改思路)

    官方效果是这样的: 此处改成了这样的效果: 此处是可以进行滑动的,就是去除了滑动条,仍能滑动的效果. 下面说下修改样式,找到使用el-table的vue组建: 在style中贴上: <style ...

  4. react hooks使用_我如何使用React Hooks在约100行代码中构建异步表单验证库

    react hooks使用 by Austin Malerba 奥斯汀·马勒巴(Austin Malerba) 我如何使用React Hooks在约100行代码中构建异步表单验证库 (How I bu ...

  5. element ui 中 el-checkbox-group 点击一个全部选中的问题

    element ui 中 el-checkbox-group 点击一个全部选中的问题 原因是:checkbox-group中的v-modle要单独一个数组对象,不能作为表单对象,ruleForm中的一 ...

  6. Web前端笔记-element ui中table中某列添加a便签进行跳转

    效果是这样的: 这里的文章标题和查看都可以进行跳转. 其中对应的代码如下: <template style="height: 100%"><el-table:da ...

  7. 关于Element UI中select组件中遇到的问题

    问题一:在使用select组件设置多选功能后,窗口抖动问题? 详细描述:在我使用select做多选的功能时出现了窗口抖动的问题,测试的时候发现,在有些人的电脑上抖动,有些人的电脑上不抖,找了很多文档, ...

  8. 关于Element UI中页面样式小问题

    一,修改组件dialog窗口的大小 二,在我使用upload组件上传一张美女图片时,发现当预览图片时,图片是灰色的,点击一下才会变亮,这种效果使我很不舒服,于是我通过添加下面的一条样式,问题解决了(可 ...

  9. Element UI中Steps 步骤条description描述换行展示

    突然要求加了个显示字段,之前的代码只能显示一行,于是乎找到了解决办法,代码如下:其中的属性自行到官网查看释义吧:Element UI官网传送门 <el-table><!-- 可展开的 ...

最新文章

  1. 聚类效果评估、内部指标(Jaccard系数、FM指数、Rand指数)、外部指标(DB指数、Dunn指数)、轮廓系数(Silhouette Coefficient)
  2. FPGA之道(61)时空变换之时间换空间
  3. git创建、切换、合并、删除分支
  4. Java enum枚举类型
  5. 高版本(3.9版本)python在anaconda安装opencv库及skimage库(scikit_image库)诸多问题解决办法
  6. 北京的林书豪,像一把小李飞刀
  7. php图片案例,web开发N例-案例2:PHP绘制图片、绘制中文
  8. js三级分类菜单导航
  9. Windows自动关机设置
  10. HTML实现个人简历
  11. PMBOK(第六版) PMP笔记——《六》第六章(项目进度管理)
  12. 龙芯源码编译mysql_使用源码包在龙芯2F上安装mysql
  13. matlab欧式期权定价公式,[转载]期权定价的Matlab实现(以欧式看涨期权为例)
  14. 基于Outline构建团队的知识库 (上篇)
  15. 软件自动化测试的的设计标准和适用范围
  16. BitLocker解锁之后加锁
  17. Monkey King(左偏树 可并堆)
  18. 8.shell 分支判断 if else
  19. K3 CLOUD服务与费用类物料
  20. 如何设计一个API接口

热门文章

  1. 我,在日本开密室逃脱,钱还没赚,人进“橘子”了……
  2. 皓月酒店管理系统: Jquery + Servlet + Mybatis
  3. 《恒盛策略》外资巨头突然出手!又有炒股软件罢工
  4. IDC企业为何热衷进军宽带接入网领域?
  5. 方舟手游服务器设置文件翻译,方舟生存进化手游界面中文翻译 语言不通不发愁...
  6. 笔记本电脑触屏鼠标突然失灵怎么办?
  7. 2022华为机试真题 C++ 实现 【字符串子序列II】
  8. #455 科技乱炖:看完《流浪地球2》,我们为行星发动机设计了网络架构
  9. API(15)——打印系统开发(52)——WinForm开发(62)——C#通过调用WinApi打印PDF文档类,服务器PDF打印、IIS PDF打印
  10. 关于网络游戏《诛仙》中9级铁玉赠送任务的思考