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 @@