diff --git a/packages/editor/src/layouts/sidebar/code-block/CodeBlockEditor.vue b/packages/editor/src/layouts/sidebar/code-block/CodeBlockEditor.vue index 8e67ce92..3d62630c 100644 --- a/packages/editor/src/layouts/sidebar/code-block/CodeBlockEditor.vue +++ b/packages/editor/src/layouts/sidebar/code-block/CodeBlockEditor.vue @@ -1,6 +1,6 @@ diff --git a/packages/editor/src/layouts/sidebar/code-block/CodeBlockList.vue b/packages/editor/src/layouts/sidebar/code-block/CodeBlockList.vue index 54bd21eb..e7041295 100644 --- a/packages/editor/src/layouts/sidebar/code-block/CodeBlockList.vue +++ b/packages/editor/src/layouts/sidebar/code-block/CodeBlockList.vue @@ -7,15 +7,78 @@ -
+
+
+
+
{{ value.name }}({{ key }})
+ + + +
+
+
- + diff --git a/packages/editor/src/layouts/sidebar/code-block/useCodeBlock.ts b/packages/editor/src/layouts/sidebar/code-block/useCodeBlock.ts deleted file mode 100644 index 56f582ac..00000000 --- a/packages/editor/src/layouts/sidebar/code-block/useCodeBlock.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { reactive } from 'vue'; - -import { CodeBlockConfig } from '../../../type'; -interface State { - /** 是否展示代码块编辑区 */ - isShowCodeBlockEditor: boolean; - /** 代码块配置 */ - codeConfig: CodeBlockConfig | null; -} - -const state = reactive({ - isShowCodeBlockEditor: false, - codeConfig: null, -}); - -const getUniqueId = () => Date.now().toString(36) + Math.random().toString(36).substring(2); - -// 关闭代码块面板 -const closePanel = () => (state.isShowCodeBlockEditor = false); - -// 新增代码块 -const createCodeBlock = () => { - // todo 如果已有代码块打开,需要先保存关闭 - closePanel(); - state.isShowCodeBlockEditor = true; - state.codeConfig = { - id: getUniqueId(), - name: '代码块', - content: `(app) => {\n // place your code here\n}`, - }; -}; - -export default () => ({ - state, - closePanel, - createCodeBlock, -}); diff --git a/packages/editor/src/theme/code-block.scss b/packages/editor/src/theme/code-block.scss index 9db3faaa..6f80abf8 100644 --- a/packages/editor/src/theme/code-block.scss +++ b/packages/editor/src/theme/code-block.scss @@ -7,7 +7,30 @@ } .divider { - margin: 20px 0; + margin: 10px 0 0 0; + } + + .list-container { + width: 100%; + overflow: hidden; + .list-item { + display: flex; + align-items: center; + .edit-icon { + position: absolute; + right: 15px; + padding-left: 5px; + background-color: #fff; + } + .code-name { + font-size: 14px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + padding: 10px 15px; + margin-right: 15px; + } + } } } .m-editor-code-block-editor-panel { diff --git a/packages/editor/src/type.ts b/packages/editor/src/type.ts index b179fb87..03bd8602 100644 --- a/packages/editor/src/type.ts +++ b/packages/editor/src/type.ts @@ -314,3 +314,22 @@ export interface CodeBlockConfig { /** 代码块内容 */ content: string; } + +export interface CodeBlockMap { + [id: string]: CodeBlockContent; +} + +export interface CodeBlockContent { + /** 代码块名称 */ + name: string; + /** 代码块内容 */ + content: string; +} +export type State = { + /** 是否展示代码块编辑区 */ + isShowCodeBlockEditor: boolean; + /** 代码块配置 */ + codeConfig: CodeBlockConfig | null; + /** 代码块列表 */ + codeBlockMap: CodeBlockMap | null; +};