feat(editor): 添加layer-panel/component-list-panel slot

This commit is contained in:
roymondchen 2022-07-07 19:42:26 +08:00 committed by jia000
parent 8d5eab0ef8
commit 49c9e87d6e
6 changed files with 32 additions and 5 deletions

View File

@ -6,7 +6,15 @@
<template #sidebar>
<slot name="sidebar" :editorService="editorService">
<sidebar :data="sidebar"></sidebar>
<sidebar :data="sidebar">
<template #layer-panel>
<slot name="layer-panel"></slot>
</template>
<template #component-list-panel>
<slot name="component-list-panel"></slot>
</template>
</sidebar>
</slot>
</template>
@ -20,8 +28,8 @@
</slot>
</template>
<template #propsPanel>
<slot name="propsPanel">
<template #props-panel>
<slot name="props-panel">
<props-panel ref="propsPanel" @mounted="(instance) => $emit('props-panel-mounted', instance)"></props-panel>
</slot>
</template>

View File

@ -26,7 +26,7 @@
<div class="m-editor-framework-right" :style="`width: ${columnWidth?.right}px`">
<el-scrollbar>
<slot name="propsPanel"></slot>
<slot name="props-panel"></slot>
</el-scrollbar>
</div>
</template>

View File

@ -1,5 +1,6 @@
<template>
<el-scrollbar>
<slot name="component-list-panel"></slot>
<el-collapse class="ui-component-panel" :model-value="collapseValue">
<el-input
prefix-icon="el-icon-search"

View File

@ -1,5 +1,7 @@
<template>
<el-scrollbar class="magic-editor-layer-panel">
<slot name="layer-panel"></slot>
<el-input
class="filterInput"
size="small"

View File

@ -6,7 +6,15 @@
type="card"
tab-position="left"
>
<tab-pane v-for="(item, index) in data.items" :key="index" :data="item"></tab-pane>
<tab-pane v-for="(item, index) in data.items" :key="index" :data="item">
<template #layer-panel v-if="item === 'layer'">
<slot name="layer-panel"></slot>
</template>
<template #component-list-panel v-if="item === 'component-list'">
<slot name="component-list-panel"></slot>
</template>
</tab-pane>
</el-tabs>
</template>

View File

@ -8,6 +8,14 @@
</template>
<component :is="config.component" v-bind="config.props || {}" v-on="config?.listeners || {}">
<template #layer-panel v-if="data === 'layer'">
<slot name="layer-panel"></slot>
</template>
<template #component-list-panel v-if="data === 'component-list'">
<slot name="component-list-panel"></slot>
</template>
<template #layer-node-content="{ data, node }" v-if="config.slots?.layerNodeContent">
<component :is="config.slots?.layerNodeContent" :data="data" :node="node" />
</template>