子组件等父组件的接口请求完成之后做操作

说明:通过、保存、作废、环境申请同意按钮是写在子组件中,在上面的页面中引入使用的

子组件中的按钮代码:

<a-button type="primary" @click="visible = true">环境申请同意</a-button>
<a-modal
      title="环境申请同意"
      :visible="visible"
      :confirm-loading="confirmLoading"
      okText="确定"
      cancelText="取消"
      @ok="OkBtn"
      @cancel="visible = false"
    >
      <a-form-model
        :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
        :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }">
        <a-form-model-item label="移交:">
          <a-select v-model="transfer" placeholder="请选择">
            <a-select-option value="forward">前进</a-select-option>
            <a-select-option value="backward">回退</a-select-option>
            <a-select-option value="cancel">作废</a-select-option>
          </a-select>
        </a-form-model-item>
      </a-form-model>
    </a-modal>
<!-- confirmLoading 是控制按钮loading状态的 confirmLoading是通过父组件中的请求接口完成来控制的 transfer是传给父组件请求接口时传参 OkBtn事件发生就会触发父组件中的函数-->
OkBtn(){
    this.confirmLoading = true; // 控制按钮loading状态 防止重复点击
    this.$emit('agree', this.transfer, val => { // val是父组件请求接口返回的数据
      this.confirmLoading = false;
      this.visible = false;
    })
  }

父组件中的代码:

import ProcessNavigator from '@/components/Process/ProcessNavigator.vue' // 引入子组件
components:{ProcessNavigator} //生命组件
// 在html中使用
<process-button-group
          v-model="this.wrapper.Process"
          :key="processButtonsKey"
          @moveTo="handleMoveTo"
          @save="handleSave"
          @return="handleReturn"
          @agree="handleAgree"
        />
// agree就是在子组件中this.$emit穿的第一个参数,绑定的方法传值,handleAgree则是用在父组件中的方法
   handleAgree(data, callback) { // data时子组件中transfer,callback是比较重要的,就是通过这个把父组件请求接口完成的信息传到子组件的,wrapper是请求接口返回的值
     replyFreeAsync( // 接口
       Id,
       {
         'type': '2',
         'transfer': data,
         'Comment': '',
       }, // Id和Id后面的对象都是传给接口的参数
       (wrapper: any) => { // 接口请求成功之后
         this.$router.go(-1)
         callback(wrapper)
       }
     )
  }

这样写就可以在父组件中请求接口,并通过接口请求完成通过callback带回数据,从而在this.$emit的第三个参数callback中进行相应的逻辑编写。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值