• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

el-table树形表格表单验证(列表生成序号)

vue 搞代码 4年前 (2022-01-08) 29次浏览 已收录 0个评论

这篇文章主要介绍了el-table树形表格表单验证(列表生成序号),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

树形表格表单验证预览

树形列表生成序号

首先需要生成一个序号用来确定表单验证的目标row,通过广度优先遍历,以1,1.1,1.1.1的规则对树形列表生成确定唯一值的索引,因为列表自身可以做CURD,因此需要每次列表的item增加或减少时重新调用生成索引的方法。

 setIndex = (data) => { let que<p style="color:transparent">本文来源gao!daima.com搞$代!码网</p>ue = [...data]; let loop = 0; while (queue.length > 0) { loop++ [...queue].forEach((child, i) => { queue.shift() if (loop == 1) { child.customIndex = i + 1 + ""; child.currentIndex = i; } if (child.children && child.children.length > 0) { child.dataType = 1 for (let ci = 0; ci <child.children.length; ci++) { child.children[ci].currentIndex = ci child.children[ci].customIndex = child.customIndex + "." + (ci + 1) } queue.push(...child.children) } else { child.dataType = 2 } }) } } const rows = [ { id: "1", date: "2016-05-02", name: "王小虎1", address: "上海市普陀区金沙江路 1518 弄", children: [ { name: "233", customIndex: "1.1", children: [{name: "9"}] }, { name: "7771", customIndex: "1.2", children: [ { name: "9" }, { name: "9", }] } ] }, { id: "2", date: "2016-05-04", name: "王小虎2", address: "上海市普陀区金沙江路 1517 弄", children: [] }, ] setIndex(rows)    

表单校验

要想实现对表格的表单验证,需要用form-item将整个表格包裹,然后在以子集的方式将每一列用form-item包裹。

    
   {{`rows${getPathByKey(row.customIndex,"customIndex",form.rows)}.name`}}  

实现方式,表单校验本质是对于目标数据的路径查找,当el-form-item 上的prop匹配不到正确的目标是的时候就不能正常触发校验

因此,需要记录每一个row上面的属性路径,即实现记录每一行中属性(name,address)路径的方法。

 getPathByKey = (value, key, arr) => { let temppath = []; let realPath = "" try { function getNodePath(node) { temppath.push(node.currentIndex); //找到符合条件的节点,通过throw终止掉递归 if (node[key] === value) { temppath.forEach((v, i) => { if (i == 0) { realPath += "." + v } else { realPath += `.children.${v}` } }) // temppath = temppath.join(",") throw ("GOT IT!"); // return; } if (node.children && node.children.length > 0) { for (var i = 0; i <node.children.length; i++) { getNodePath(node.children[i]); } //当前节点的子节点遍历完依旧没找到,则删除路径中的该节点 temppath.pop(); } else { //找到叶子节点时,删除路径当中的该叶子节点 temppath.pop(); } } for (let i = 0; i 

将每一列需要验证的item,路径查找好之后,form就可以具体监控到所有的表格输入,并触发正确的验证了,如图:

demo参考

以上就是el-table树形表格表单验证(列表生成序号)的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:el-table树形表格表单验证(列表生成序号)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址