iview 表单提交之前验证是否符合条件

在表单提交之前 调用接口校验用户输入是否符合条件
符合则通过, 不符合 不让提交

 
      
更换
请上传200K以内的PNG格式图片,尺寸为750x750
export default {
  data () {
   const validateFile = (rule, value, callback) => {
      if (!this.photo && !this.editFormData.file) {
        callback(new Error('请上传图片'))
      } else {
        callback()
      }
    }
    // 校验商品条码
    const valideBarCode = (rule, value, callback) => {
      var reg = /^[0-9]+$/i
      if (!reg.test(value)) return callback()
      let id
      if (this.actionType === 'add') {
        id = 0
      } else {
        id = this.$route.params['id']
      }
      const data = {
        type: 1,
        code: value,
        id: id
      }
      checkGoods(data).then(res => {
        const {
          data: { data }
        } = res
        if (data) {
          callback(new Error('商品条码重复,请重新输入'))
        } else {
          callback()
        }
      }, err => {
        // 接口错误
        console.log(err)
      }).catch(err => {
        // 处理逻辑出错
        console.log(err)
      })
    }
    // 校验品目条码
    const valideItemCode = (rule, value, callback) => {
      console.log(value)
      let id
      if (this.actionType === 'add') {
        id = 0
      } else {
        id = this.$route.params['id']
      }
      const data = {
        type: 2,
        code: value,
        id: id
      }
      checkGoods(data).then(res => {
        const {
          data: { data }
        } = res
        if (data) {
          callback(new Error('商品条码重复,请重新输入'))
        } else {
          callback()
        }
      }, err => {
        // 接口错误
        console.log(err)
      }).catch(err => {
        // 处理逻辑出错
        console.log(err)
      })
    }
  }
}

 return {
  barCode: [
          { required: true, message: '请输入数字条码', trigger: 'change' },
          { validator: valideBarCode, trigger: 'blur' },
          { message: '请输入20字以内的数字条码', trigger: 'change', pattern: /^[0-9]+$/i }
        ],
        itemCode: [
          { required: false, message: '请输入品目编码', trigger: 'change' },
          { message: '请输入50字以内 数字和字母的品目编码', trigger: 'change', pattern: /^[A-Za-z0-9]+$/ },
          { validator: valideItemCode, trigger: 'blur' }
        ],
}

submitForm () {
// 提交
}

你可能感兴趣的:(iview)