jeecg-boot:表单校验数据库是否已经存储该值

对应表中的某字段,要求不能与数据库中的数据重复,那么如何做呢,jeecg-boot已经为我们封装好了,

场景:设备类型表,的设备类型编码不能重复,typeCode 

表名:sui_base_device_type_info

字段:type_code

排除本记录的ID的数据

 

1:表单代码

 <a-input placeholder="请输入设备类型编码" v-decorator="['typeCode', validatorRules.typeCode ]" v-model="typeCode" />

2:js区域定义校验规则:

validatorRules: {
          typeCode: {
            rules:
              [
                {
                  required: true,
                  message: '请输入设备类型编码!'
                },
                {validator: this.validateTypeCode}

                ]
          },
}

3:引入APIdupicateCheck方法

  import {duplicateCheck} from '@/api/api'

4:在数据域创建typeId保存ID

typeId:"",

5:如果是编辑,那么在进入编辑界面的时候将该记录的ID保存到typeId

 /** 调用完edit()方法之后会自动调用此方法 */
      editAfter() {
        this.$nextTick(() => {
          this.form.setFieldsValue(pick(this.model, 'typeCode', 'typeName', 'deviceModal', 'factoryId', 'deviceBigTypeId', 'databaseTable', 'pluginName', 'pluginHandler', 'pluginUrl', 'pluginVersion', 'protocoType', 'controllable', 'sortOrder', 'remark', ))
          // 时间格式化
        })
        // 加载子表数据
        if (this.model.id) {
          //将ID赋值到typeId
          this.typeId = this.model.id;

          let params = { id: this.model.id }
          this.requestSubTableData(this.url.deviceTypeItem.list, params, this.deviceTypeItemTable)
        }

6:method区域的validateTypeCode方法

 validateTypeCode(rule, value, callback){
        if(!value){
          callback();
        }else{
            var params = {
              tableName: 'sui_base_device_type_info',
              fieldName: 'type_code',
              fieldVal: value,
              dataId: this.typeId
            };
            duplicateCheck(params).then((res) => {
              if (res.success) {
                callback();
              } else {
                callback("设备类型编码已存在!")
              }
            })

        }
      },

效果:

成功!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值