From 54a0f0b3c762bc788b8c9ca043e7c072bcd7db51 Mon Sep 17 00:00:00 2001 From: "meilin.huang" <954537473@qq.com> Date: Fri, 22 Dec 2023 00:47:01 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E8=99=9A=E6=8B=9Ftable=E5=8D=A1=E9=A1=BF=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/contextmenu/index.vue | 2 +- .../components/monaco/MonacoEditorDialog.ts | 37 ++++++++ .../monaco/MonacoEditorDialogComp.vue} | 87 +++++++++---------- .../src/views/ops/component/TagTree.vue | 2 +- mayfly_go_web/src/views/ops/component/tag.ts | 10 +++ mayfly_go_web/src/views/ops/db/SqlExec.vue | 9 +- .../ops/db/component/sqleditor/SqlExecBox.ts | 43 ++++----- .../db/component/sqleditor/SqlExecDialog.vue | 2 +- .../ops/db/component/table/DbTableData.vue | 71 ++++++--------- .../table/DbTableDataEditorDialog.ts | 45 ---------- .../ops/db/component/table/DbTableDataOp.vue | 5 +- 11 files changed, 139 insertions(+), 174 deletions(-) create mode 100644 mayfly_go_web/src/components/monaco/MonacoEditorDialog.ts rename mayfly_go_web/src/{views/ops/db/component/table/DbTableDataEditorDialog.vue => components/monaco/MonacoEditorDialogComp.vue} (54%) delete mode 100644 mayfly_go_web/src/views/ops/db/component/table/DbTableDataEditorDialog.ts diff --git a/mayfly_go_web/src/components/contextmenu/index.vue b/mayfly_go_web/src/components/contextmenu/index.vue index 3e1b5455..e2b9e4a1 100644 --- a/mayfly_go_web/src/components/contextmenu/index.vue +++ b/mayfly_go_web/src/components/contextmenu/index.vue @@ -185,7 +185,7 @@ defineExpose({ position: fixed; .el-dropdown-menu__item { - padding: 5px 10px; + padding: 5px 12px; } .el-dropdown-menu__item { diff --git a/mayfly_go_web/src/components/monaco/MonacoEditorDialog.ts b/mayfly_go_web/src/components/monaco/MonacoEditorDialog.ts new file mode 100644 index 00000000..d0df4c3c --- /dev/null +++ b/mayfly_go_web/src/components/monaco/MonacoEditorDialog.ts @@ -0,0 +1,37 @@ +import { VNode, h, render } from 'vue'; +import MonacoEditorDialogComp from './MonacoEditorDialogComp.vue'; + +export type MonacoEditorDialogProps = { + content: string; + title: string; + language: string; + height?: string; + width?: string; + confirmFn?: Function; + cancelFn?: Function; +}; + +const boxId = 'monaco-editor-dialog-id'; + +let boxInstance: VNode; + +const MonacoEditorDialog = (props: MonacoEditorDialogProps): void => { + if (!boxInstance) { + const container = document.createElement('div'); + container.id = boxId; + // 创建 虚拟dom + boxInstance = h(MonacoEditorDialogComp); + // 将虚拟dom渲染到 container dom 上 + render(boxInstance, container); + // 最后将 container 追加到 body 上 + document.body.appendChild(container); + } + + const boxVue = boxInstance.component; + if (boxVue) { + // 调用open方法显示弹框,注意不能使用boxVue.ctx来调用组件函数(build打包后ctx会获取不到) + boxVue.exposed?.open(props); + } +}; + +export default MonacoEditorDialog; diff --git a/mayfly_go_web/src/views/ops/db/component/table/DbTableDataEditorDialog.vue b/mayfly_go_web/src/components/monaco/MonacoEditorDialogComp.vue similarity index 54% rename from mayfly_go_web/src/views/ops/db/component/table/DbTableDataEditorDialog.vue rename to mayfly_go_web/src/components/monaco/MonacoEditorDialogComp.vue index f97496de..9e424491 100644 --- a/mayfly_go_web/src/views/ops/db/component/table/DbTableDataEditorDialog.vue +++ b/mayfly_go_web/src/components/monaco/MonacoEditorDialogComp.vue @@ -1,11 +1,11 @@ - diff --git a/mayfly_go_web/src/views/ops/db/component/table/DbTableDataEditorDialog.ts b/mayfly_go_web/src/views/ops/db/component/table/DbTableDataEditorDialog.ts deleted file mode 100644 index 1e04d619..00000000 --- a/mayfly_go_web/src/views/ops/db/component/table/DbTableDataEditorDialog.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { h, render, VNode } from 'vue'; -import SqlExecDialog from './DbTableDataEditorDialog.vue'; - -export type TableDataEditorProps = { - content: string; - title: string; - language: string; - runSuccessCallback?: Function; - cancelCallback?: Function; -}; - -const boxId = 'table-data-editor-id'; - -const renderBox = (): VNode => { - const props: TableDataEditorProps = { - content: '', - title: '', - language: '', - }; - const container = document.createElement('div'); - container.id = boxId; - // 创建 虚拟dom - const boxVNode = h(SqlExecDialog, props); - // 将虚拟dom渲染到 container dom 上 - render(boxVNode, container); - // 最后将 container 追加到 body 上 - document.body.appendChild(container); - - return boxVNode; -}; - -let boxInstance: any; - -const TableDataEditorBox = (props: TableDataEditorProps): void => { - if (boxInstance) { - const boxVue = boxInstance.component; - // 调用open方法显示弹框,注意不能使用boxVue.ctx来调用组件函数(build打包后ctx会获取不到) - boxVue.exposed.open(props); - } else { - boxInstance = renderBox(); - TableDataEditorBox(props); - } -}; - -export default TableDataEditorBox; diff --git a/mayfly_go_web/src/views/ops/db/component/table/DbTableDataOp.vue b/mayfly_go_web/src/views/ops/db/component/table/DbTableDataOp.vue index 92a6e42a..1ca801e2 100644 --- a/mayfly_go_web/src/views/ops/db/component/table/DbTableDataOp.vue +++ b/mayfly_go_web/src/views/ops/db/component/table/DbTableDataOp.vue @@ -38,9 +38,10 @@