import { Vue, Component, Prop } from 'vue-property-decorator'; import './design-container.less'; /** * 设计界面呈现容器 * * @export * @class DesignContainer * @extends {Vue} */ @Component({}) export class DesignContainer extends Vue { @Prop({ default: () => true }) showMaterial!: boolean; activeKeys = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10']; renderContent(): any { const lefts = this.$slots.material || []; return lefts.length > 0 ? (
{lefts.length === 1 ? (
{lefts}
) : ( {lefts.map((item, i) => { if (item.key === 'search') { return item; } return ( {item} ); })} )}
) : null; } /** * 绘制结构树 * * @return {*} {*} * @memberof DesignContainer */ renderStructureTree(): any { return
{this.$slots.structureTree}
; } /** * 绘制素材列表 * * @memberof DesignContainer */ renderMaterialList() { return
{this.$slots.materialList}
; } /** * 绘制容器区左侧 * * @return {*} {*} * @memberof DesignContainer */ renderLeft(): any { const { material, structureTree, materialList } = this.$slots; if (material && structureTree && materialList) { return ( {this.renderContent()} {this.renderStructureTree()} {this.renderMaterialList()} ); } else if (material && structureTree) { return ( {this.renderContent()} {this.renderStructureTree()} ); } else if (material && materialList) { return ( {this.renderContent()} {this.renderMaterialList()} ); } else if (material && material.length > 0) { return this.renderContent(); } else if (structureTree && structureTree.length > 0) { return this.renderStructureTree(); } else if (materialList && materialList.length > 0) { return this.renderMaterialList(); } } render() { return (
{this.renderLeft()} {this.$slots.content ? (
{this.$slots.content}
) : (
暂未提供默认布局模型预览
)} {this.$slots.attributes ? (
{this.$slots.attributes}
) : null}
); } }