<template>  
 | 
<div>  
 | 
    <component v-for="(formitem,index) in properties"  
 | 
    :key="index"  
 | 
    :is="createWidgets(formitem)"  
 | 
    :formitem="formitem"></component>  
 | 
</div>  
 | 
</template>  
 | 
  
 | 
<style lang="less">  
 | 
  
 | 
</style>  
 | 
  
 | 
<script  lang="tsx">  
 | 
import { Component, Prop, Vue } from 'vue-property-decorator';  
 | 
import { State, Mutation, namespace } from 'vuex-class';  
 | 
  
 | 
import registry from './WidgetRegistry';  
 | 
  
 | 
@Component({  
 | 
    components: {},  
 | 
})  
 | 
export default class DyFormitem extends Vue {  
 | 
  
 | 
    @Prop({type: Array, default() {  
 | 
        return [];  
 | 
    }})  
 | 
    private properties!: any[];  
 | 
  
 | 
    /**  
 | 
     * 从 组件工厂中获取组件并显示  
 | 
     */  
 | 
    private createWidgets(foritem: any): any {  
 | 
        const key = `df-${foritem.type}`;  
 | 
        const comp = registry.getType(key);  
 | 
        return comp;  
 | 
    }  
 | 
  
 | 
}  
 | 
</script> 
 |