From 3fdd98a390cc91d36c85edd1ca236ca3d748824c Mon Sep 17 00:00:00 2001 From: zongyangleo Date: Tue, 6 Feb 2024 07:32:03 +0000 Subject: [PATCH] =?UTF-8?q?!99=20feat:=20DBMS=E6=96=B0=E5=A2=9EkingbaseES?= =?UTF-8?q?=E3=80=81vastbase=EF=BC=8C=E8=BF=98=E6=9C=89=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20*=20refactor:=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E6=9C=BA=E5=99=A8=E5=88=97=E8=A1=A8=E5=B1=95=E7=A4=BA=20*=20fi?= =?UTF-8?q?x=EF=BC=9A=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=BE=91=E8=A1=A8?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20*=20refactor:=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=E5=AE=9E=E4=BE=8B=E6=98=BE=E7=A4=BA=20*=20fe?= =?UTF-8?q?at:=20DBMS=E6=96=B0=E5=A2=9EkingbaseES(=E5=B7=B2=E6=B5=8B?= =?UTF-8?q?=E8=AF=95postgres=E3=80=81oracle=E5=85=BC=E5=AE=B9=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F)=20=E3=80=81vastbase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mayfly_go_web/src/assets/iconfont/iconfont.js | 2 +- .../src/assets/iconfont/iconfont.json | 14 + .../src/components/pagetable/PageTable.vue | 11 +- .../src/views/ops/component/TagTree.vue | 6 +- .../ops/component/TagTreeResourceSelect.vue | 5 +- mayfly_go_web/src/views/ops/component/tag.ts | 3 + .../src/views/ops/db/InstanceList.vue | 2 +- .../src/views/ops/db/SyncTaskEdit.vue | 23 +- .../views/ops/db/component/DbSelectTree.vue | 11 +- .../ops/db/component/table/DbTableOp.vue | 40 +- .../src/views/ops/db/dialect/index.ts | 12 +- .../ops/db/dialect/kingbaseES_dialect.ts | 18 + .../views/ops/db/dialect/postgres_dialect.ts | 17 +- .../views/ops/db/dialect/vastbase_dialect.ts | 18 + .../src/views/ops/machine/MachineList.vue | 387 ++++++++++-------- server/internal/db/application/db.go | 2 +- server/internal/db/dbm/dbi/db_type.go | 34 +- .../db/dbm/dbi/metasql/mssql_meta.sql | 2 - .../db/dbm/dbi/metasql/oracle_meta.sql | 18 +- server/internal/db/dbm/mssql/meta.go | 11 +- server/internal/db/dbm/oracle/dialect.go | 2 +- server/internal/db/dbm/postgres/dialect.go | 2 +- server/internal/db/dbm/postgres/meta.go | 28 +- 23 files changed, 416 insertions(+), 252 deletions(-) create mode 100644 mayfly_go_web/src/views/ops/db/dialect/kingbaseES_dialect.ts create mode 100644 mayfly_go_web/src/views/ops/db/dialect/vastbase_dialect.ts diff --git a/mayfly_go_web/src/assets/iconfont/iconfont.js b/mayfly_go_web/src/assets/iconfont/iconfont.js index a5702aac..d3bb9224 100644 --- a/mayfly_go_web/src/assets/iconfont/iconfont.js +++ b/mayfly_go_web/src/assets/iconfont/iconfont.js @@ -1,5 +1,5 @@ (window._iconfont_svg_string_3953964 = - ''), + ''), (function (c) { var t = (t = document.getElementsByTagName('script'))[t.length - 1], a = t.getAttribute('data-injectcss'), diff --git a/mayfly_go_web/src/assets/iconfont/iconfont.json b/mayfly_go_web/src/assets/iconfont/iconfont.json index 2df2c56f..f2f09cd6 100644 --- a/mayfly_go_web/src/assets/iconfont/iconfont.json +++ b/mayfly_go_web/src/assets/iconfont/iconfont.json @@ -88,6 +88,20 @@ "font_class": "gauss", "unicode": "e683", "unicode_decimal": 59011 + }, + { + "icon_id": "34836637", + "name": "kingbase", + "font_class": "kingbase", + "unicode": "e882", + "unicode_decimal": 59522 + }, + { + "icon_id": "33047500", + "name": "vastbase", + "font_class": "vastbase", + "unicode": "e62b", + "unicode_decimal": 58923 } ] } diff --git a/mayfly_go_web/src/components/pagetable/PageTable.vue b/mayfly_go_web/src/components/pagetable/PageTable.vue index 61e167f1..af848d74 100644 --- a/mayfly_go_web/src/components/pagetable/PageTable.vue +++ b/mayfly_go_web/src/components/pagetable/PageTable.vue @@ -189,7 +189,7 @@ const emit = defineEmits(['update:queryForm', 'update:selectionData', 'pageChang export interface PageTableProps { size?: string; - pageApi: Api; // 请求表格数据的 api + pageApi?: Api; // 请求表格数据的 api columns: TableColumn[]; // 列配置项 ==> 必传 showSelection?: boolean; selectable?: (row: any) => boolean; // 是否可选 @@ -257,7 +257,7 @@ const changeSimpleFormItem = (searchItem: SearchItem) => { nowSearchItem.value = searchItem; }; -const { tableData, total, loading, search, reset, getTableData, handlePageNumChange, handlePageSizeChange } = usePageTable( +let { tableData, total, loading, search, reset, getTableData, handlePageNumChange, handlePageSizeChange } = usePageTable( props.pageable, props.pageApi, queryForm, @@ -288,6 +288,13 @@ watch(isShowSearch, () => { calcuTableHeight(); }); +watch( + () => props.data, + (newValue: any) => { + tableData = newValue; + } +); + onMounted(async () => { calcuTableHeight(); useEventListener(window, 'resize', calcuTableHeight); diff --git a/mayfly_go_web/src/views/ops/component/TagTree.vue b/mayfly_go_web/src/views/ops/component/TagTree.vue index da7768ee..0ccbb3df 100644 --- a/mayfly_go_web/src/views/ops/component/TagTree.vue +++ b/mayfly_go_web/src/views/ops/component/TagTree.vue @@ -104,7 +104,11 @@ const loadTags = async () => { const tags = await tagApi.getResourceTagPaths.request({ resourceType: props.resourceType }); const tagNodes = []; for (let tagPath of tags) { - tagNodes.push(new TagTreeNode(tagPath, tagPath, props.tagPathNodeType)); + let isLeaf = false; + if (!props.tagPathNodeType?.hasLoadNodesFunc) { + isLeaf = true; + } + tagNodes.push(new TagTreeNode(tagPath, tagPath, props.tagPathNodeType).withIsLeaf(isLeaf)); } return tagNodes; }; diff --git a/mayfly_go_web/src/views/ops/component/TagTreeResourceSelect.vue b/mayfly_go_web/src/views/ops/component/TagTreeResourceSelect.vue index bbb5b12e..0c87f86c 100644 --- a/mayfly_go_web/src/views/ops/component/TagTreeResourceSelect.vue +++ b/mayfly_go_web/src/views/ops/component/TagTreeResourceSelect.vue @@ -14,6 +14,9 @@ v-model="modelValue" @change="changeNode" > +