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.attributes ? (
) : null}
);
}
}