mirror of
https://github.com/Tencent/tmagic-editor.git
synced 2025-04-06 03:57:56 +08:00
feat(editor): 代码块功能新增slot
This commit is contained in:
parent
2a8cfe58c4
commit
452c80d829
@ -26,6 +26,10 @@
|
||||
<template #code-block-panel-header>
|
||||
<slot name="code-block-panel-header"></slot>
|
||||
</template>
|
||||
|
||||
<template #code-block-panel-tool>
|
||||
<slot name="code-block-panel-tool"></slot>
|
||||
</template>
|
||||
</sidebar>
|
||||
</slot>
|
||||
</template>
|
||||
|
@ -26,6 +26,10 @@
|
||||
<template #code-block-panel-header v-if="item === 'code-block'">
|
||||
<slot name="code-block-panel-header"></slot>
|
||||
</template>
|
||||
|
||||
<template #code-block-panel-tool v-if="item === 'code-block'">
|
||||
<slot name="code-block-panel-tool"></slot>
|
||||
</template>
|
||||
</tab-pane>
|
||||
</el-tabs>
|
||||
</template>
|
||||
|
@ -35,6 +35,11 @@
|
||||
<component v-else-if="config.slots?.codeBlockPanelHeader" :is="config.slots.codeBlockPanelHeader" />
|
||||
</template>
|
||||
|
||||
<template #code-block-panel-tool v-if="data === 'code-block' || config.slots?.codeBlockPanelTool">
|
||||
<slot v-if="data === 'code-block'" name="code-block-panel-tool"></slot>
|
||||
<component v-else-if="config.slots?.codeBlockPanelTool" :is="config.slots.codeBlockPanelTool" />
|
||||
</template>
|
||||
|
||||
<template
|
||||
#layer-node-content="{ data: nodeData, node }"
|
||||
v-if="data === 'layer' || config.slots?.layerNodeContent"
|
||||
|
@ -1,19 +1,23 @@
|
||||
<template>
|
||||
<div class="m-editor-code-block-list">
|
||||
<slot name="code-block-panel-header"></slot>
|
||||
<div class="create-code-button">
|
||||
<el-button type="primary" size="small" @click="createCodeBlock">新增代码块</el-button>
|
||||
</div>
|
||||
<el-divider class="divider" />
|
||||
<slot name="code-block-panel-header">
|
||||
<div class="create-code-button">
|
||||
<el-button type="primary" size="small" @click="createCodeBlock">新增代码块</el-button>
|
||||
</div>
|
||||
<el-divider class="divider" />
|
||||
</slot>
|
||||
|
||||
<!-- 代码块列表 -->
|
||||
<div class="list-container" v-if="state.codeBlockMap">
|
||||
<div v-for="(value, key) in state.codeBlockMap" :key="key">
|
||||
<div class="list-item">
|
||||
<div class="code-name">{{ value.name }}({{ key }})</div>
|
||||
<el-tooltip class="box-item" effect="dark" content="编辑代码" placement="top">
|
||||
<el-icon class="edit-icon" @click="editCode(key)"><EditPen /></el-icon>
|
||||
</el-tooltip>
|
||||
<div class="right-tool">
|
||||
<el-tooltip effect="dark" content="编辑代码" placement="top">
|
||||
<el-icon class="edit-icon" @click="editCode(key)"><Edit /></el-icon>
|
||||
</el-tooltip>
|
||||
<slot name="code-block-panel-tool"></slot>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -25,7 +29,7 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { inject, reactive, watchEffect } from 'vue';
|
||||
import { EditPen } from '@element-plus/icons-vue';
|
||||
import { Edit } from '@element-plus/icons-vue';
|
||||
|
||||
import type { CodeBlockConfig, Services, State } from '../../../type';
|
||||
|
||||
|
@ -16,11 +16,16 @@
|
||||
.list-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.edit-icon {
|
||||
.right-tool {
|
||||
position: absolute;
|
||||
right: 15px;
|
||||
padding-left: 5px;
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.edit-icon {
|
||||
padding: 0 5px;
|
||||
}
|
||||
}
|
||||
.code-name {
|
||||
font-size: 14px;
|
||||
@ -28,7 +33,7 @@
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
padding: 10px 15px;
|
||||
margin-right: 15px;
|
||||
margin-right: 60px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user