动态校验列表数据方案

背景:当select 选择A 的时候是必填,选B的时候是非必填

那么我们需要监听 selec 变化时候对 列表的 :edit-rules="validRulesList" 进行重新赋值必填校验的true, (跟对列表内上传文件,对列表文件进行赋值名字一样道理,通过获取对应的校验值,或者列表对应的字段进行赋值)

Rules列表

复制代码
validRules: {
warrantyManualDescr:[{ required: false, message: this.$t('test') }],
warrantyManualUpload:[{ required: false, message: this.$t('test') }],
 }

通过获取对应的校验值进行赋值,注意在改变的时候,会因为列表是数组,最下面的值的改变会影响到其他数据的必填值,所以需要else 对整个表进行查询处理,查到就 return 节约时间

复制代码
async ptypeChangeEvent (row, id) {
 this.validRulesList.warrantyManualDescr[0].required = (id.value === 'a')?true:false
 this.validRulesList.warrantyManualUpload[0].required = (id.value === 'a')?true:false
 if(id.value === 'a') {
     this.validRulesList.warrantyManualDescr[0].required = true
     const $table = this.$refs.sublistTableData;
     const errMap = await $table.validate(true)
 }else {
   for(let i=0; i<this.sublistTableData.length; i++) {
       let e = this.sublistTableData[i]
       if(e.warrantyManualNorm == 'UNSWD') {
           this.validRulesList.warrantyManualDescr[0].required = true
           const $table = this.$refs.sublistTableData;
           const errMap = await $table.validate(row.row)
           return
       }
   }
 }
},

提交 submit 按钮的时候操作

对存在 必填字段的值查到 就 return 防止循环到下一个不是必填的字段(注意我们是在列表中进行判断,循环不做 return 会 继续到最后,出现 校验弹框 又被覆盖的情况)

通过对是否存在要校验的列表进行收集,对以后的计算进行拦截

复制代码
/*字表校验操作*/
const $table = this.$refs.sublistTableData;
let arr = []
for(let i=0; i<this.sublistTableData.length; i++) {
    let e = this.sublistTableData[i]
    if(e.warrantyManualNorm == 'a') {
        const errMap = await $table.validate(e)
        if(errMap) {
          arr.push(errMap)
          return
        }
    }
}
if(arr.length>0) {
    return false
}
相关推荐
gwcgwcjava5 分钟前
[时序数据库-iotdb]时序数据库iotdb的安装部署
数据库·时序数据库·iotdb
问道飞鱼16 分钟前
【移动端知识】移动端多 WebView 互访方案:Android、iOS 与鸿蒙实现
android·ios·harmonyos·多webview互访
SHUIPING_YANG19 分钟前
根据用户id自动切换表查询
java·服务器·数据库
爱吃烤鸡翅的酸菜鱼32 分钟前
IDEA高效开发:Database Navigator插件安装与核心使用指南
java·开发语言·数据库·编辑器·intellij-idea·database
超奇电子36 分钟前
阿里云OSS预签名URL上传与临时凭证上传的技术对比分析
数据库·阿里云·云计算
神仙别闹1 小时前
基于C#+SQL Server实现(Web)学生选课管理系统
前端·数据库·c#
aningxiaoxixi1 小时前
Android 之 audiotrack
android
枷锁—sha1 小时前
【DVWA系列】——CSRF——Medium详细教程
android·服务器·前端·web安全·网络安全·csrf
m0_653031361 小时前
PostgreSQL技术大讲堂 - 第97讲:PG数据库编码和区域(locale)答疑解惑
数据库·postgresql
会编程的林俊杰1 小时前
MySQL中的锁有哪些
数据库·mysql