DeeDynamicCom.vue 1.18 KB
<template>
  <component :is="allComps[comItem.configName]" :ref="comItem.configName" :basic-data="basicData" v-bind="configParams" />
</template>

<script>
import allComps from '../asyncBusinessCompontents/index'

export default {
  name: 'DeeDynamicCom',
  components: { },
  props: {
    basicData: {
      type: Object,
      default: function() {
        return {}
      }
    },
    participantData: {
      type: Object,
      default: function() {
        return {}
      }
    },
    comItem: {
      type: Object,
      default: function() {
        return {}
      }
    }
  },
  data() {
    return {
      allComps,
      configParams: null
    }
  },
  computed: {
  },
  watch: {
    comItem: {
      immediate: true,
      deep: true,
      handler: function(val) {
        this.configParams = val && val.configParams ? JSON.parse(val.configParams) : null
      }
    }
  },
  created() {
  },
  mounted() {
  },
  methods: {
    validate() {
      if (this.$refs[this.comItem.configName] && this.$refs[this.comItem.configName].hasOwnProperty('validate')) {
        return this.$refs[this.comItem.configName].validate()
      }
    }
  },
  filter: {}
}
</script>

<style lang="scss">

</style>