vue elementui validate異步校驗改成同步校驗返回結果

 

異步的校驗

 

<script>
import {
  defineComponent,
  ref
} from 'vue'
export default defineComponent({
 methods: {
     getFormDataStatus() {
      let result=  ref(false)
       this.ruleForm.validate((valid)=>{
            if (valid) {
              let params = this.form
              if (this.layer.operationType == 'edit') {
                this.updateForm(params)
              } else if (this.layer.operationType == 'add') {
                this.addForm(params)
              }else if (this.layer.operationType =='viewadd') {
                this.viewAddForm(params)
              }else if (this.layer.operationType == 'viewedit') {
                this.viewUpdateForm(params)
              } 
              result= true
            } else {
              // ElNotification({
              //   type: 'warning',
              //   message: this.$tm('message.sett.common.settInsAcctFormNotNull')
              // })
              result=  false;
            }
          })
          return result;
    },
    getStatus(){
       let  status=   this.getFormDataStatus()
       console.log(status)
    }
 }
})
</script>

查看官網, 可以用function,也可以返回Promise,那就把function改成同步的

 

 

改成同步的校驗的代碼如下,就是加入async和await,進行同步執行

<script>
import {
  defineComponent,
  ref
} from 'vue'
export default defineComponent({
 methods: {
    async getFormDataStatus() {
      let result=  ref(false)
      await this.ruleForm.validate(async(valid)=>{
            if (valid) {
              let params = this.form
              if (this.layer.operationType == 'edit') {
                this.updateForm(params)
              } else if (this.layer.operationType == 'add') {
                this.addForm(params)
              }else if (this.layer.operationType =='viewadd') {
                this.viewAddForm(params)
              }else if (this.layer.operationType == 'viewedit') {
                this.viewUpdateForm(params)
              } 
              result= true
            } else {
              // ElNotification({
              //   type: 'warning',
              //   message: this.$tm('message.sett.common.settInsAcctFormNotNull')
              // })
              result=  false;
            }
          })
          return result;
    },
    getStatus(){
       let  status=   this.getFormDataStatus()
       console.log(status)
    }
 }
})
</script>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章