/**
 * pro-data-component
 * @author niewei
 */
import ProDataTable from 'element-ui/packages/pro-data-table';
import ProDataTree from 'element-ui/packages/pro-data-tree';
import omit from 'mars-pro/src/pro/omit';
export default {
    name: 'ProDataComponent',
    componentName: 'ProDataComponent',
    inject: ['PRO_CONFIG_PROVIDE_CONTEXT'],
    props:{
        uiType:{
            type:String,
            default:'table'
        }
    },  
    methods: {
        renderSlots(){
            const slots = omit(this.$slots || {}, ['default'])
            return Object.keys(slots).map(item => (
                <template slot={item}>{ slots[item] }</template>
            ))
        },
        renderData(type){
            const _prodata = {
                attrs:this.$attrs,
                on:this.$listeners,
                'class':{
                    'pro-data-component':true
                },
                scopedSlots:this.$scopedSlots
            }
            if(type === 'tree'){
                return <ProDataTree {..._prodata}>{this.renderSlots()}</ProDataTree>
            }else{
                return <ProDataTable {..._prodata}>{this.renderSlots()}</ProDataTable>
            }
        }
    },
    render() {
        return this.renderData(this.uiType)
    }
}