Element 父子组件调用弹窗eldialog或抽屉eldrawer

父组件:

<template>
  <comfirm-charge :is-active="drawerVisible" :userid="userId" :sid="sid" :sname="sname" @Visible="showDrawerChange" @comfirm="resetForm" />
</template>
<script>
import ComfirmCharge from './confirm-charge-drawer.vue'
export default {
  components: {
    ComfirmCharge
  },
  data() {
    return {
      drawerVisible: false,
      userId: '', // 用户id
      sid: '',
      sname: ''
    }
  },
  methods: {
    showDrawerChange(data) {
      if (data == 'false') {
        this.drawerVisible = false
      } else {
        this.drawerVisible = true
      }
    },
    resetForm(fromname) {
      this.queryParams.pageIndex = 1
      this.getTableData()
    }
  }
}
</script>

 子组件:

<template>
  <el-drawer title="信息" :visible.sync="drawerVisible" size="60%" :wrapper-closable="false" @close="closeDrawer">
    <div>测试测试</div>
  </el-drawer>
</template>
<script>
export default {
  name: 'ComfirmCharge',
  props: {
    isActive: {
      type: Boolean,
      default: false
    },
    userid: { // 学生id //查询用户信息用
      type: String,
      default: ''
    },
    sid: { // 学生id 查询减免费用用
      type: String,
      default: ''
    },
    sname: { // 学生姓名
      type: String,
      default: ''
    }

  },
  data() {
    return {
      drawerVisible: false,
      searchFeeForm: {
        user_Id: '',
        sid: '',
        sname: ''
      }
    }
  },
  watch: {
    // 监听 改变
    isActive: {
      handler: function(val, oldVal) {
        this.drawerVisible = val
      },
      immediate: true
    },
    userid: {
      handler: function(newValue, oldVal) {
        this.searchFeeForm.user_Id = newValue
        if (newValue) {
          this.getUserById()
        }
      },
      immediate: true
    },
    sid: {
      handler: function(newValue, oldVal) {
        this.searchFeeForm.sid = newValue
      },
      immediate: true
    },
    sname: {
      handler: function(newValue, oldVal) {
        this.searchFeeForm.sname = newValue
      },
      immediate: true
    }
  },
  methods: {
    // 获取用户信息
    getUserById() { },
    // 关闭抽屉,清除数据
    closeDrawer() {
      this.drawerVisible = false
      this.$emit('Visible', 'false')
    }
  }
}
</script>

  

原文地址:https://www.cnblogs.com/lemonmoney/p/15767139.html