DynamicComponent.vue 733 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

<template>
  <component ref="compModel" :is="comp" :formData="formData" v-if="comp" @ok="callBackOk" @close="callBackClose"></component>
</template>
<script>
  export default {
    name: 'DynamicComponent',
    data () {
      return {
        compName: this.path
      }
    },
    computed: {
      comp: function () {
        return () => import(`@/views/${this.compName}.vue`)
      }
    },
    props: ['path','formData'],
    methods: {
      add () {
        this.$refs.compModel.add();
      },
      callBackClose () {
        this.$emit('close');
      },
      handleOk () {
        this.$refs.compModel.handleOk();
      },
      callBackOk(){
        this.$emit('ok');
        this.close();
      },
    }
  }
</script>