Promise,Promise.all 实现多个表单同步验证

/**
     * 保存或者修改
     */
    const saveOrUpdate = () => {
      const hisTableform = new Promise((resolve, reject) => {
        form.value.validate(valid => {
          if (valid) {
            resolve()
          } else {
            reject()
          }
        })
      })
      const hisFieldForm = new Promise((resolve, reject) => {
        hisFieldDialog.value.form.validate(valid => {
          if (valid) {
            resolve()
          } else {
            reject()
          }
        })
      })
      /** 同步验证 **/
      Promise.all([hisTableform, hisFieldForm]).then(() => {
        /** 验证通过在发送请求 **/
        saveData()
      }).catch((error) => {
        console.log(error)
      })
    }
    /** 保存数据 **/
    const saveData = async () => {
      try {
        let resData = null
        loadingTips.value = savePrompt.value
        initLoading.value = true
        const param = JSON.parse(JSON.stringify(formData.value))
        const hisKeyFieldList = hisFieldDialog.value.dynamicValidateForm.domains
        param.hisKeyFieldList = hisKeyFieldList
        delete param.version
        if (rowId.value) {
          resData = await updateHisTable(param)
        } else {
          resData = await saveHisTable(param)
        }
        if (resData.code === 0) {
          ElMessage.success(t('common.operationSuccessful'))
        } else {
          ElMessage.error(t('common.operationFailed') + resData.data)
        }
        initLoading.value = false
        emit('query')
      } catch {
        initLoading.value = false
      } finally {
        initLoading.value = false
      }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值