<template>
    <div class="frame-box">
        <component :is="c"></component>
    </div>
</template>
<script>
import Vue from 'vue'
export default {
    props:{
        path:{
            type:String,
            default:''
        },
        name:{
            type:String,
            default:''
        },
        componentTemp:{
            type:Function
        },
        refer:{
            type:Number,
            default:0
        },
        value:{
            type:Array,
            default:null
        },
        type:{
            type:String,
            default:'d'
        },
        curIndex:{
            type:Number,
            default:0
        }
    },
    data () {
        return {
            hostory:[],
            c:'',
            z:0
        }
    },
    watch: {
        path:function(val,oldval){
            this.z++
            if(oldval!='' && this.type=='d'){
                this.value.push(val)
                this.$emit('input', this.value)
            }
            this.loadComp()
        },
        refer:function(val,oldval){
            this.z++
            this.loadComp()
        }
    },
    methods: {
        loadComp(){
            if(this.componentTemp){
                Vue.component(this.name+"_"+this.curIndex+"_"+this.z,this.componentTemp)
                this.c=this.name+"_"+this.curIndex+"_"+this.z
            }
        },
        pushPath(){
          this.value.push(this.path)
          this.$emit('input', this.value)
          this.MsgBus.$emit('forEachLoc')
        }
    },
    mounted () {
        this.loadComp()
        if(this.value.length==0)
            this.pushPath()
    }
}
</script>