跳到主要内容

宜搭子表单值重复校验

此案例由宜搭开发者Peng 提供

1.使用场景

在提交订单、入库等场景,需要在子表单多列选择组合是一样的时候去重,可参考本文档实现方式。

2.操作步骤

2.1表单设计

1.创建子表单,在里面添加自己要使用的列

这里我添加两个下拉单选做演示

2.2添加自定义校验规则

TIP:每一个参与组合校验的子表单组件都要设置自定义校验函数,同一份代码复制粘贴即可。

1.选中要参与组合校验的列组件,右下角勾选“自定义函数”,点击

按钮打开编辑框。

2.在编辑框粘贴下面的代码,并替换代码中的idListtableId为自己表单上的值。

function validateRule(value) {
// 要校验的子表单组件ID列表,可以添加多个,用英文逗号隔开
const idList = ['ID1', 'ID2', 'ID3']
// 子表单ID
const tableId = '子表单ID'

const tableData = this.$(tableId).getValue()
const tableValue = tableData.filter(row => {
// 行中有任意一个要校验的选项没有值则跳过校验
for (const v in row) {
if ('' + row[v] === '') {
return false
}
}
return true
}).map(row => {
//当前行要校验的值拼接一个字符串
let str = ''
idList.forEach(id => str += row[id])
return str
})
//利用Set去重
const valueSet = new Set(tableValue)
// console.log(tableValue)
// console.log(valueSet)
//如果长度相等则证明没有重复的
return tableValue.length === valueSet.size
}

3.效果展示

4. 在线试玩

Copyright © 2024钉钉(中国)信息技术有限公司和/或其关联公司浙ICP备18037475号-4