fdb2 1.0.13 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -2
- package/bin/docker/.env +4 -0
- package/package.json +26 -18
- package/public/favicon.ico +0 -0
- package/public/favicon.png +0 -0
- package/view/modules/header.tpl +1 -1
- package/.dockerignore +0 -21
- package/.editorconfig +0 -11
- package/.eslintrc.cjs +0 -14
- package/.eslintrc.json +0 -7
- package/.prettierrc.js +0 -3
- package/.tpl.env +0 -22
- package/.vscodeignore +0 -45
- package/dist/package.json +0 -115
- package/dist/pnpm-lock.yaml +0 -8135
- package/dist/public/.vite/manifest.json +0 -82
- package/dist/public/bootstrap-icons.woff +0 -0
- package/dist/public/bootstrap-icons.woff2 +0 -0
- package/dist/public/bootstrap.css +0 -14152
- package/dist/public/bootstrap.js +0 -5038
- package/dist/public/explorer.css +0 -2379
- package/dist/public/explorer.js +0 -50586
- package/dist/public/index.css +0 -1099
- package/dist/public/index.js +0 -12862
- package/dist/public/layout.css +0 -318
- package/dist/public/layout.js +0 -25
- package/dist/public/vue.css +0 -1
- package/dist/public/vue.js +0 -9110
- package/dist/scripts/preinstall.js +0 -112
- package/dist/server/index.d.ts +0 -2
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/index.js +0 -601
- package/dist/server/index.js.map +0 -1
- package/dist/server/index.ts +0 -681
- package/dist/server/model/connection.entity.d.ts +0 -55
- package/dist/server/model/connection.entity.d.ts.map +0 -1
- package/dist/server/model/connection.entity.js +0 -59
- package/dist/server/model/connection.entity.js.map +0 -1
- package/dist/server/model/connection.entity.ts +0 -66
- package/dist/server/model/database.entity.d.ts +0 -203
- package/dist/server/model/database.entity.d.ts.map +0 -1
- package/dist/server/model/database.entity.js +0 -211
- package/dist/server/model/database.entity.js.map +0 -1
- package/dist/server/model/database.entity.ts +0 -246
- package/dist/server/service/connection.service.d.ts +0 -84
- package/dist/server/service/connection.service.d.ts.map +0 -1
- package/dist/server/service/connection.service.js +0 -369
- package/dist/server/service/connection.service.js.map +0 -1
- package/dist/server/service/connection.service.ts +0 -359
- package/dist/server/service/database/base.service.d.ts +0 -183
- package/dist/server/service/database/base.service.d.ts.map +0 -1
- package/dist/server/service/database/base.service.js +0 -253
- package/dist/server/service/database/base.service.js.map +0 -1
- package/dist/server/service/database/base.service.ts +0 -407
- package/dist/server/service/database/cockroachdb.service.d.ts +0 -116
- package/dist/server/service/database/cockroachdb.service.d.ts.map +0 -1
- package/dist/server/service/database/cockroachdb.service.js +0 -812
- package/dist/server/service/database/cockroachdb.service.js.map +0 -1
- package/dist/server/service/database/cockroachdb.service.ts +0 -871
- package/dist/server/service/database/database.service.d.ts +0 -495
- package/dist/server/service/database/database.service.d.ts.map +0 -1
- package/dist/server/service/database/database.service.js +0 -711
- package/dist/server/service/database/database.service.js.map +0 -1
- package/dist/server/service/database/database.service.ts +0 -776
- package/dist/server/service/database/index.d.ts +0 -8
- package/dist/server/service/database/index.d.ts.map +0 -1
- package/dist/server/service/database/index.js +0 -18
- package/dist/server/service/database/index.js.map +0 -1
- package/dist/server/service/database/index.ts +0 -7
- package/dist/server/service/database/mongodb.service.d.ts +0 -121
- package/dist/server/service/database/mongodb.service.d.ts.map +0 -1
- package/dist/server/service/database/mongodb.service.js +0 -502
- package/dist/server/service/database/mongodb.service.js.map +0 -1
- package/dist/server/service/database/mongodb.service.ts +0 -501
- package/dist/server/service/database/mssql.service.d.ts +0 -118
- package/dist/server/service/database/mssql.service.d.ts.map +0 -1
- package/dist/server/service/database/mssql.service.js +0 -871
- package/dist/server/service/database/mssql.service.js.map +0 -1
- package/dist/server/service/database/mssql.service.ts +0 -932
- package/dist/server/service/database/mysql.service.d.ts +0 -114
- package/dist/server/service/database/mysql.service.d.ts.map +0 -1
- package/dist/server/service/database/mysql.service.js +0 -960
- package/dist/server/service/database/mysql.service.js.map +0 -1
- package/dist/server/service/database/mysql.service.ts +0 -1026
- package/dist/server/service/database/oracle.service.d.ts +0 -126
- package/dist/server/service/database/oracle.service.d.ts.map +0 -1
- package/dist/server/service/database/oracle.service.js +0 -963
- package/dist/server/service/database/oracle.service.js.map +0 -1
- package/dist/server/service/database/oracle.service.ts +0 -1036
- package/dist/server/service/database/postgres.service.d.ts +0 -122
- package/dist/server/service/database/postgres.service.d.ts.map +0 -1
- package/dist/server/service/database/postgres.service.js +0 -882
- package/dist/server/service/database/postgres.service.js.map +0 -1
- package/dist/server/service/database/postgres.service.ts +0 -961
- package/dist/server/service/database/sap.service.d.ts +0 -115
- package/dist/server/service/database/sap.service.d.ts.map +0 -1
- package/dist/server/service/database/sap.service.js +0 -868
- package/dist/server/service/database/sap.service.js.map +0 -1
- package/dist/server/service/database/sap.service.ts +0 -922
- package/dist/server/service/database/sqlite.service.d.ts +0 -112
- package/dist/server/service/database/sqlite.service.d.ts.map +0 -1
- package/dist/server/service/database/sqlite.service.js +0 -723
- package/dist/server/service/database/sqlite.service.js.map +0 -1
- package/dist/server/service/database/sqlite.service.ts +0 -787
- package/dist/server/service/session.service.ts +0 -158
- package/dist/view/index.html +0 -45
- package/env.d.ts +0 -1
- package/packages/vscode/.vscodeignore +0 -44
- package/packages/vscode/README.md +0 -62
- package/packages/vscode/out/database-services/base.service.js +0 -236
- package/packages/vscode/out/database-services/base.service.js.map +0 -1
- package/packages/vscode/out/database-services/cockroachdb.service.js +0 -634
- package/packages/vscode/out/database-services/cockroachdb.service.js.map +0 -1
- package/packages/vscode/out/database-services/connection.service.js +0 -346
- package/packages/vscode/out/database-services/connection.service.js.map +0 -1
- package/packages/vscode/out/database-services/database.service.js +0 -571
- package/packages/vscode/out/database-services/database.service.js.map +0 -1
- package/packages/vscode/out/database-services/index.js +0 -18
- package/packages/vscode/out/database-services/index.js.map +0 -1
- package/packages/vscode/out/database-services/model/connection.entity.js +0 -11
- package/packages/vscode/out/database-services/model/connection.entity.js.map +0 -1
- package/packages/vscode/out/database-services/model/database.entity.js +0 -35
- package/packages/vscode/out/database-services/model/database.entity.js.map +0 -1
- package/packages/vscode/out/database-services/mongodb.service.js +0 -458
- package/packages/vscode/out/database-services/mongodb.service.js.map +0 -1
- package/packages/vscode/out/database-services/mssql.service.js +0 -694
- package/packages/vscode/out/database-services/mssql.service.js.map +0 -1
- package/packages/vscode/out/database-services/mysql.service.js +0 -735
- package/packages/vscode/out/database-services/mysql.service.js.map +0 -1
- package/packages/vscode/out/database-services/oracle.service.js +0 -787
- package/packages/vscode/out/database-services/oracle.service.js.map +0 -1
- package/packages/vscode/out/database-services/postgres.service.js +0 -696
- package/packages/vscode/out/database-services/postgres.service.js.map +0 -1
- package/packages/vscode/out/database-services/sap.service.js +0 -695
- package/packages/vscode/out/database-services/sap.service.js.map +0 -1
- package/packages/vscode/out/database-services/sqlite.service.js +0 -532
- package/packages/vscode/out/database-services/sqlite.service.js.map +0 -1
- package/packages/vscode/out/extension.js +0 -93
- package/packages/vscode/out/extension.js.map +0 -1
- package/packages/vscode/out/provider/DatabaseTreeProvider.js +0 -159
- package/packages/vscode/out/provider/DatabaseTreeProvider.js.map +0 -1
- package/packages/vscode/out/provider/WebViewProvider.js +0 -259
- package/packages/vscode/out/provider/WebViewProvider.js.map +0 -1
- package/packages/vscode/out/service/ConnectionManager.js +0 -105
- package/packages/vscode/out/service/ConnectionManager.js.map +0 -1
- package/packages/vscode/out/service/DatabaseServiceBridge.js +0 -395
- package/packages/vscode/out/service/DatabaseServiceBridge.js.map +0 -1
- package/packages/vscode/out/typings/connection.js +0 -3
- package/packages/vscode/out/typings/connection.js.map +0 -1
- package/packages/vscode/package.json +0 -144
- package/packages/vscode/resources/icon.svg +0 -5
- package/packages/vscode/resources/webview/_plugin-vue_export-helper.js +0 -6529
- package/packages/vscode/resources/webview/_plugin-vue_export-helper.js.map +0 -1
- package/packages/vscode/resources/webview/connection.css +0 -69
- package/packages/vscode/resources/webview/connection.js +0 -228
- package/packages/vscode/resources/webview/connection.js.map +0 -1
- package/packages/vscode/resources/webview/database.css +0 -259
- package/packages/vscode/resources/webview/database.js +0 -275
- package/packages/vscode/resources/webview/database.js.map +0 -1
- package/packages/vscode/resources/webview/favicon.ico +0 -0
- package/packages/vscode/resources/webview/index.html +0 -9
- package/packages/vscode/resources/webview/modules/header.tpl +0 -14
- package/packages/vscode/resources/webview/modules/initial_state.tpl +0 -55
- package/packages/vscode/resources/webview/query.css +0 -162
- package/packages/vscode/resources/webview/query.js +0 -198
- package/packages/vscode/resources/webview/query.js.map +0 -1
- package/packages/vscode/src/database-services/base.service.js.map +0 -1
- package/packages/vscode/src/database-services/base.service.ts +0 -363
- package/packages/vscode/src/database-services/cockroachdb.service.js.map +0 -1
- package/packages/vscode/src/database-services/cockroachdb.service.ts +0 -659
- package/packages/vscode/src/database-services/connection.service.ts +0 -341
- package/packages/vscode/src/database-services/database.service.ts +0 -630
- package/packages/vscode/src/database-services/index.ts +0 -7
- package/packages/vscode/src/database-services/model/connection.entity.js +0 -11
- package/packages/vscode/src/database-services/model/connection.entity.js.map +0 -1
- package/packages/vscode/src/database-services/model/connection.entity.ts +0 -66
- package/packages/vscode/src/database-services/model/database.entity.js +0 -35
- package/packages/vscode/src/database-services/model/database.entity.js.map +0 -1
- package/packages/vscode/src/database-services/model/database.entity.ts +0 -246
- package/packages/vscode/src/database-services/mongodb.service.js.map +0 -1
- package/packages/vscode/src/database-services/mongodb.service.ts +0 -454
- package/packages/vscode/src/database-services/mssql.service.js.map +0 -1
- package/packages/vscode/src/database-services/mssql.service.ts +0 -723
- package/packages/vscode/src/database-services/mysql.service.js.map +0 -1
- package/packages/vscode/src/database-services/mysql.service.ts +0 -761
- package/packages/vscode/src/database-services/oracle.service.js.map +0 -1
- package/packages/vscode/src/database-services/oracle.service.ts +0 -832
- package/packages/vscode/src/database-services/postgres.service.js.map +0 -1
- package/packages/vscode/src/database-services/postgres.service.ts +0 -741
- package/packages/vscode/src/database-services/sap.service.js.map +0 -1
- package/packages/vscode/src/database-services/sap.service.ts +0 -713
- package/packages/vscode/src/database-services/sqlite.service.js.map +0 -1
- package/packages/vscode/src/database-services/sqlite.service.ts +0 -558
- package/packages/vscode/src/extension.ts +0 -76
- package/packages/vscode/src/provider/DatabaseTreeProvider.ts +0 -167
- package/packages/vscode/src/provider/WebViewProvider.ts +0 -277
- package/packages/vscode/src/service/DatabaseServiceBridge.ts +0 -414
- package/packages/vscode/src/typings/connection.ts +0 -90
- package/packages/vscode/tsconfig.json +0 -21
- package/scripts/preinstall.js +0 -112
- package/server/index.ts +0 -681
- package/server/model/connection.entity.js +0 -11
- package/server/model/connection.entity.js.map +0 -1
- package/server/model/connection.entity.ts +0 -66
- package/server/model/database.entity.js +0 -35
- package/server/model/database.entity.js.map +0 -1
- package/server/model/database.entity.ts +0 -246
- package/server/service/connection.service.ts +0 -359
- package/server/service/database/base.service.ts +0 -407
- package/server/service/database/cockroachdb.service.ts +0 -871
- package/server/service/database/database.service.ts +0 -776
- package/server/service/database/index.ts +0 -7
- package/server/service/database/mongodb.service.ts +0 -501
- package/server/service/database/mssql.service.ts +0 -932
- package/server/service/database/mysql.service.ts +0 -1026
- package/server/service/database/oracle.service.ts +0 -1036
- package/server/service/database/postgres.service.ts +0 -961
- package/server/service/database/sap.service.ts +0 -922
- package/server/service/database/sqlite.service.ts +0 -787
- package/server/service/session.service.ts +0 -158
- package/server/tsconfig.json +0 -20
- package/src/adapter/ajax.ts +0 -135
- package/src/assets/base.css +0 -1
- package/src/assets/database.css +0 -950
- package/src/assets/images/collapse.png +0 -0
- package/src/assets/images/no-login.png +0 -0
- package/src/assets/images/svg/illustrations/illustration-1.svg +0 -1
- package/src/assets/images/svg/illustrations/illustration-2.svg +0 -2
- package/src/assets/images/svg/illustrations/illustration-3.svg +0 -50
- package/src/assets/images/svg/illustrations/illustration-4.svg +0 -1
- package/src/assets/images/svg/illustrations/illustration-5.svg +0 -73
- package/src/assets/images/svg/illustrations/illustration-6.svg +0 -89
- package/src/assets/images/svg/illustrations/illustration-7.svg +0 -39
- package/src/assets/images/svg/illustrations/illustration-8.svg +0 -1
- package/src/assets/images/svg/separators/curve-2.svg +0 -3
- package/src/assets/images/svg/separators/curve.svg +0 -3
- package/src/assets/images/svg/separators/line.svg +0 -3
- package/src/assets/images/theme/light/screen-1-1000x800.jpg +0 -0
- package/src/assets/images/theme/light/screen-2-1000x800.jpg +0 -0
- package/src/assets/login/bg.jpg +0 -0
- package/src/assets/login/bg.png +0 -0
- package/src/assets/login/left.jpg +0 -0
- package/src/assets/logo.svg +0 -73
- package/src/assets/logo.webp +0 -0
- package/src/assets/main.css +0 -1
- package/src/base/config.ts +0 -20
- package/src/base/detect.ts +0 -134
- package/src/base/entity.ts +0 -92
- package/src/base/eventBus.ts +0 -37
- package/src/components/connection-editor/index.vue +0 -589
- package/src/components/dataGrid/index.vue +0 -163
- package/src/components/dataGrid/pagination.vue +0 -106
- package/src/components/loading/index.vue +0 -43
- package/src/components/modal/index.ts +0 -181
- package/src/components/modal/index.vue +0 -560
- package/src/components/toast/index.ts +0 -44
- package/src/components/toast/toast.vue +0 -58
- package/src/components/user/name.vue +0 -104
- package/src/components/user/selector.vue +0 -416
- package/src/domain/SysConfig.ts +0 -74
- package/src/platform/App.vue +0 -8
- package/src/platform/database/components/connection-detail.vue +0 -1153
- package/src/platform/database/components/data-editor.vue +0 -478
- package/src/platform/database/components/data-import-export.vue +0 -1602
- package/src/platform/database/components/database-detail.vue +0 -1199
- package/src/platform/database/components/database-monitor.vue +0 -1086
- package/src/platform/database/components/db-tools.vue +0 -1265
- package/src/platform/database/components/query-history.vue +0 -1349
- package/src/platform/database/components/sql-executor.vue +0 -738
- package/src/platform/database/components/sql-query-editor.vue +0 -1046
- package/src/platform/database/components/table-data-grid.vue +0 -273
- package/src/platform/database/components/table-detail.vue +0 -1173
- package/src/platform/database/components/table-editor.vue +0 -917
- package/src/platform/database/explorer.vue +0 -1840
- package/src/platform/database/index.vue +0 -1193
- package/src/platform/database/layout.vue +0 -367
- package/src/platform/database/router.ts +0 -37
- package/src/platform/database/styles/common.scss +0 -602
- package/src/platform/database/types/common.ts +0 -445
- package/src/platform/database/utils/export.ts +0 -232
- package/src/platform/database/utils/helpers.ts +0 -437
- package/src/platform/index.ts +0 -33
- package/src/platform/router.ts +0 -41
- package/src/platform/vscode/bridge.ts +0 -121
- package/src/platform/vscode/components/ConnectionPanel.vue +0 -272
- package/src/platform/vscode/components/DatabasePanel.vue +0 -532
- package/src/platform/vscode/components/QueryPanel.vue +0 -371
- package/src/platform/vscode/entry/connection.ts +0 -13
- package/src/platform/vscode/entry/database.ts +0 -13
- package/src/platform/vscode/entry/query.ts +0 -13
- package/src/platform/vscode/index.ts +0 -5
- package/src/service/base.ts +0 -134
- package/src/service/database.ts +0 -506
- package/src/service/login.ts +0 -121
- package/src/shims-vue.d.ts +0 -7
- package/src/stores/connection.ts +0 -266
- package/src/stores/session.ts +0 -87
- package/src/typings/database-types.ts +0 -413
- package/src/typings/database.ts +0 -364
- package/src/typings/global.d.ts +0 -58
- package/src/typings/pinia.d.ts +0 -8
- package/src/utils/clipboard.ts +0 -30
- package/src/utils/database-types.ts +0 -243
- package/src/utils/modal.ts +0 -124
- package/src/utils/request.ts +0 -55
- package/src/utils/sleep.ts +0 -4
- package/src/utils/toast.ts +0 -73
- package/src/utils/util.ts +0 -171
- package/src/utils/xlsx.ts +0 -228
- package/tsconfig.json +0 -33
- package/tsconfig.server.json +0 -19
- package/vite.config.ts +0 -424
- package/vite.config.vscode.ts +0 -47
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
import { d as defineComponent, g as getVSCodeBridge, o as onMounted, a as openBlock, c as createElementBlock, b as createBaseVNode, w as withDirectives, e as vModelSelect, F as Fragment, r as renderList, t as toDisplayString, n as normalizeClass, m as vShow, f as createCommentVNode, h as withModifiers, i as ref, _ as _export_sfc, k as createApp } from "./_plugin-vue_export-helper.js";
|
|
2
|
-
const _hoisted_1 = { class: "database-panel" };
|
|
3
|
-
const _hoisted_2 = { style: { "margin-bottom": "20px" } };
|
|
4
|
-
const _hoisted_3 = ["value"];
|
|
5
|
-
const _hoisted_4 = { id: "contentArea" };
|
|
6
|
-
const _hoisted_5 = {
|
|
7
|
-
key: 0,
|
|
8
|
-
class: "loading"
|
|
9
|
-
};
|
|
10
|
-
const _hoisted_6 = {
|
|
11
|
-
key: 1,
|
|
12
|
-
class: "empty-state"
|
|
13
|
-
};
|
|
14
|
-
const _hoisted_7 = { key: 2 };
|
|
15
|
-
const _hoisted_8 = { class: "tabs" };
|
|
16
|
-
const _hoisted_9 = ["onClick"];
|
|
17
|
-
const _hoisted_10 = { class: "tab-content active" };
|
|
18
|
-
const _hoisted_11 = { class: "database-grid" };
|
|
19
|
-
const _hoisted_12 = ["onClick"];
|
|
20
|
-
const _hoisted_13 = { class: "database-header" };
|
|
21
|
-
const _hoisted_14 = { class: "database-name" };
|
|
22
|
-
const _hoisted_15 = { class: "database-info" };
|
|
23
|
-
const _hoisted_16 = { class: "database-stat" };
|
|
24
|
-
const _hoisted_17 = { class: "database-stat" };
|
|
25
|
-
const _hoisted_18 = { class: "tab-content" };
|
|
26
|
-
const _hoisted_19 = { class: "database-grid" };
|
|
27
|
-
const _hoisted_20 = ["onClick"];
|
|
28
|
-
const _hoisted_21 = { class: "database-header" };
|
|
29
|
-
const _hoisted_22 = { class: "database-name" };
|
|
30
|
-
const _hoisted_23 = { class: "database-info" };
|
|
31
|
-
const _hoisted_24 = { class: "database-stat" };
|
|
32
|
-
const _hoisted_25 = { class: "database-stat" };
|
|
33
|
-
const _hoisted_26 = { class: "tab-content" };
|
|
34
|
-
const _hoisted_27 = { class: "table-list" };
|
|
35
|
-
const _hoisted_28 = { class: "table-icon" };
|
|
36
|
-
const _hoisted_29 = { class: "table-info" };
|
|
37
|
-
const _hoisted_30 = { class: "table-name" };
|
|
38
|
-
const _hoisted_31 = {
|
|
39
|
-
key: 0,
|
|
40
|
-
class: "table-comment"
|
|
41
|
-
};
|
|
42
|
-
const _hoisted_32 = {
|
|
43
|
-
key: 1,
|
|
44
|
-
class: "table-meta"
|
|
45
|
-
};
|
|
46
|
-
const _hoisted_33 = { class: "table-actions" };
|
|
47
|
-
const _hoisted_34 = ["onClick"];
|
|
48
|
-
const _hoisted_35 = ["onClick"];
|
|
49
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
50
|
-
__name: "DatabasePanel",
|
|
51
|
-
setup(__props) {
|
|
52
|
-
const vscode = getVSCodeBridge();
|
|
53
|
-
const connections = ref([]);
|
|
54
|
-
const selectedConnectionId = ref("");
|
|
55
|
-
const databases = ref([]);
|
|
56
|
-
const tables = ref([]);
|
|
57
|
-
const loading = ref(false);
|
|
58
|
-
const currentTab = ref("overview");
|
|
59
|
-
const tabs = [
|
|
60
|
-
{ id: "overview", name: "概览" },
|
|
61
|
-
{ id: "databases", name: "数据库" },
|
|
62
|
-
{ id: "tables", name: "表" }
|
|
63
|
-
];
|
|
64
|
-
onMounted(() => {
|
|
65
|
-
vscode.postMessage({ command: "getConnections" });
|
|
66
|
-
vscode.onMessage((message) => {
|
|
67
|
-
if (message.command === "connections") {
|
|
68
|
-
connections.value = message.data;
|
|
69
|
-
} else if (message.command === "selectConnection") {
|
|
70
|
-
selectConnection(message.data);
|
|
71
|
-
} else if (message.command === "databases") {
|
|
72
|
-
databases.value = message.data;
|
|
73
|
-
loading.value = false;
|
|
74
|
-
} else if (message.command === "tables") {
|
|
75
|
-
tables.value = message.data;
|
|
76
|
-
loading.value = false;
|
|
77
|
-
} else if (message.command === "error") {
|
|
78
|
-
handleError(message.data);
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
function handleAddConnection() {
|
|
83
|
-
vscode.postMessage({ command: "addConnection" });
|
|
84
|
-
}
|
|
85
|
-
function handleConnectionChange() {
|
|
86
|
-
if (selectedConnectionId.value) {
|
|
87
|
-
const connection = connections.value.find((c) => c.id === selectedConnectionId.value);
|
|
88
|
-
selectConnection(connection);
|
|
89
|
-
} else {
|
|
90
|
-
databases.value = [];
|
|
91
|
-
tables.value = [];
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
function selectConnection(connection) {
|
|
95
|
-
if (!connection) return;
|
|
96
|
-
selectedConnectionId.value = connection.id;
|
|
97
|
-
loading.value = true;
|
|
98
|
-
vscode.postMessage({
|
|
99
|
-
command: "getDatabases",
|
|
100
|
-
data: { connectionId: connection.id }
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
function selectDatabase(database) {
|
|
104
|
-
loading.value = true;
|
|
105
|
-
currentTab.value = "tables";
|
|
106
|
-
vscode.postMessage({
|
|
107
|
-
command: "getTables",
|
|
108
|
-
data: {
|
|
109
|
-
connectionId: selectedConnectionId.value,
|
|
110
|
-
databaseName: database.name
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
function handleViewData(table) {
|
|
115
|
-
vscode.postMessage({
|
|
116
|
-
command: "openTableData",
|
|
117
|
-
data: {
|
|
118
|
-
connectionId: selectedConnectionId.value,
|
|
119
|
-
tableName: table.name
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
function handleViewStructure(table) {
|
|
124
|
-
vscode.postMessage({
|
|
125
|
-
command: "openTableStructure",
|
|
126
|
-
data: {
|
|
127
|
-
connectionId: selectedConnectionId.value,
|
|
128
|
-
tableName: table.name
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
function handleError(error) {
|
|
133
|
-
loading.value = false;
|
|
134
|
-
console.error("Error:", error);
|
|
135
|
-
alert(`操作失败: ${error}`);
|
|
136
|
-
}
|
|
137
|
-
return (_ctx, _cache) => {
|
|
138
|
-
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
139
|
-
createBaseVNode("div", { class: "panel-header" }, [
|
|
140
|
-
_cache[1] || (_cache[1] = createBaseVNode("h1", { class: "panel-title" }, "数据库管理", -1)),
|
|
141
|
-
createBaseVNode("div", { class: "panel-actions" }, [
|
|
142
|
-
createBaseVNode("button", {
|
|
143
|
-
onClick: handleAddConnection,
|
|
144
|
-
class: "btn btn-secondary"
|
|
145
|
-
}, "添加连接")
|
|
146
|
-
])
|
|
147
|
-
]),
|
|
148
|
-
createBaseVNode("div", _hoisted_2, [
|
|
149
|
-
withDirectives(createBaseVNode("select", {
|
|
150
|
-
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedConnectionId.value = $event),
|
|
151
|
-
class: "connection-selector",
|
|
152
|
-
onChange: handleConnectionChange
|
|
153
|
-
}, [
|
|
154
|
-
_cache[2] || (_cache[2] = createBaseVNode("option", { value: "" }, "选择数据库连接", -1)),
|
|
155
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(connections.value, (conn) => {
|
|
156
|
-
return openBlock(), createElementBlock("option", {
|
|
157
|
-
key: conn.id,
|
|
158
|
-
value: conn.id
|
|
159
|
-
}, toDisplayString(conn.name) + " (" + toDisplayString(conn.host) + ":" + toDisplayString(conn.port) + ") ", 9, _hoisted_3);
|
|
160
|
-
}), 128))
|
|
161
|
-
], 544), [
|
|
162
|
-
[vModelSelect, selectedConnectionId.value]
|
|
163
|
-
])
|
|
164
|
-
]),
|
|
165
|
-
createBaseVNode("div", _hoisted_4, [
|
|
166
|
-
loading.value ? (openBlock(), createElementBlock("div", _hoisted_5, [..._cache[3] || (_cache[3] = [
|
|
167
|
-
createBaseVNode("div", { class: "spinner" }, null, -1),
|
|
168
|
-
createBaseVNode("div", null, "加载中...", -1)
|
|
169
|
-
])])) : !selectedConnectionId.value ? (openBlock(), createElementBlock("div", _hoisted_6, [..._cache[4] || (_cache[4] = [
|
|
170
|
-
createBaseVNode("div", { class: "empty-icon" }, "🗄️", -1),
|
|
171
|
-
createBaseVNode("div", { class: "empty-title" }, "未选择连接", -1),
|
|
172
|
-
createBaseVNode("div", { class: "empty-text" }, "请从下拉列表中选择一个数据库连接", -1)
|
|
173
|
-
])])) : (openBlock(), createElementBlock("div", _hoisted_7, [
|
|
174
|
-
createBaseVNode("div", _hoisted_8, [
|
|
175
|
-
(openBlock(), createElementBlock(Fragment, null, renderList(tabs, (tab) => {
|
|
176
|
-
return createBaseVNode("button", {
|
|
177
|
-
key: tab.id,
|
|
178
|
-
class: normalizeClass(["tab", { active: currentTab.value === tab.id }]),
|
|
179
|
-
onClick: ($event) => currentTab.value = tab.id
|
|
180
|
-
}, toDisplayString(tab.name), 11, _hoisted_9);
|
|
181
|
-
}), 64))
|
|
182
|
-
]),
|
|
183
|
-
withDirectives(createBaseVNode("div", _hoisted_10, [
|
|
184
|
-
_cache[6] || (_cache[6] = createBaseVNode("h3", { class: "section-title" }, "数据库概览", -1)),
|
|
185
|
-
createBaseVNode("div", _hoisted_11, [
|
|
186
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(databases.value, (db) => {
|
|
187
|
-
return openBlock(), createElementBlock("div", {
|
|
188
|
-
key: db.name,
|
|
189
|
-
class: "database-card",
|
|
190
|
-
onClick: ($event) => selectDatabase(db)
|
|
191
|
-
}, [
|
|
192
|
-
createBaseVNode("div", _hoisted_13, [
|
|
193
|
-
_cache[5] || (_cache[5] = createBaseVNode("div", { class: "database-icon" }, "🗄️", -1)),
|
|
194
|
-
createBaseVNode("div", _hoisted_14, toDisplayString(db.name), 1)
|
|
195
|
-
]),
|
|
196
|
-
createBaseVNode("div", _hoisted_15, [
|
|
197
|
-
createBaseVNode("span", _hoisted_16, "📊 " + toDisplayString(db.tables) + " 表", 1),
|
|
198
|
-
createBaseVNode("span", _hoisted_17, "💾 " + toDisplayString(db.size), 1)
|
|
199
|
-
])
|
|
200
|
-
], 8, _hoisted_12);
|
|
201
|
-
}), 128))
|
|
202
|
-
])
|
|
203
|
-
], 512), [
|
|
204
|
-
[vShow, currentTab.value === "overview"]
|
|
205
|
-
]),
|
|
206
|
-
withDirectives(createBaseVNode("div", _hoisted_18, [
|
|
207
|
-
_cache[8] || (_cache[8] = createBaseVNode("h3", { class: "section-title" }, "数据库列表", -1)),
|
|
208
|
-
createBaseVNode("div", _hoisted_19, [
|
|
209
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(databases.value, (db) => {
|
|
210
|
-
return openBlock(), createElementBlock("div", {
|
|
211
|
-
key: db.name,
|
|
212
|
-
class: "database-card",
|
|
213
|
-
onClick: ($event) => selectDatabase(db)
|
|
214
|
-
}, [
|
|
215
|
-
createBaseVNode("div", _hoisted_21, [
|
|
216
|
-
_cache[7] || (_cache[7] = createBaseVNode("div", { class: "database-icon" }, "🗄️", -1)),
|
|
217
|
-
createBaseVNode("div", _hoisted_22, toDisplayString(db.name), 1)
|
|
218
|
-
]),
|
|
219
|
-
createBaseVNode("div", _hoisted_23, [
|
|
220
|
-
createBaseVNode("span", _hoisted_24, "📊 " + toDisplayString(db.tables) + " 表", 1),
|
|
221
|
-
createBaseVNode("span", _hoisted_25, "💾 " + toDisplayString(db.size), 1)
|
|
222
|
-
])
|
|
223
|
-
], 8, _hoisted_20);
|
|
224
|
-
}), 128))
|
|
225
|
-
])
|
|
226
|
-
], 512), [
|
|
227
|
-
[vShow, currentTab.value === "databases"]
|
|
228
|
-
]),
|
|
229
|
-
withDirectives(createBaseVNode("div", _hoisted_26, [
|
|
230
|
-
_cache[9] || (_cache[9] = createBaseVNode("h3", { class: "section-title" }, "表列表", -1)),
|
|
231
|
-
createBaseVNode("div", _hoisted_27, [
|
|
232
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(tables.value, (table) => {
|
|
233
|
-
return openBlock(), createElementBlock("div", {
|
|
234
|
-
key: table.name,
|
|
235
|
-
class: "table-item"
|
|
236
|
-
}, [
|
|
237
|
-
createBaseVNode("div", _hoisted_28, toDisplayString(table.type === "table" ? "📋" : "👁️"), 1),
|
|
238
|
-
createBaseVNode("div", _hoisted_29, [
|
|
239
|
-
createBaseVNode("div", _hoisted_30, toDisplayString(table.name), 1),
|
|
240
|
-
table.comment ? (openBlock(), createElementBlock("div", _hoisted_31, toDisplayString(table.comment), 1)) : createCommentVNode("", true),
|
|
241
|
-
table.rows !== null ? (openBlock(), createElementBlock("div", _hoisted_32, [
|
|
242
|
-
createBaseVNode("span", null, toDisplayString(table.rows.toLocaleString()) + " 行", 1),
|
|
243
|
-
createBaseVNode("span", null, toDisplayString(table.engine || ""), 1),
|
|
244
|
-
createBaseVNode("span", null, toDisplayString(table.size || ""), 1)
|
|
245
|
-
])) : createCommentVNode("", true)
|
|
246
|
-
]),
|
|
247
|
-
createBaseVNode("span", {
|
|
248
|
-
class: normalizeClass(["table-type", table.type])
|
|
249
|
-
}, toDisplayString(table.type === "table" ? "TABLE" : "VIEW"), 3),
|
|
250
|
-
createBaseVNode("div", _hoisted_33, [
|
|
251
|
-
createBaseVNode("button", {
|
|
252
|
-
class: "action-btn",
|
|
253
|
-
onClick: withModifiers(($event) => handleViewData(table), ["stop"])
|
|
254
|
-
}, "数据", 8, _hoisted_34),
|
|
255
|
-
createBaseVNode("button", {
|
|
256
|
-
class: "action-btn",
|
|
257
|
-
onClick: withModifiers(($event) => handleViewStructure(table), ["stop"])
|
|
258
|
-
}, "结构", 8, _hoisted_35)
|
|
259
|
-
])
|
|
260
|
-
]);
|
|
261
|
-
}), 128))
|
|
262
|
-
])
|
|
263
|
-
], 512), [
|
|
264
|
-
[vShow, currentTab.value === "tables"]
|
|
265
|
-
])
|
|
266
|
-
]))
|
|
267
|
-
])
|
|
268
|
-
]);
|
|
269
|
-
};
|
|
270
|
-
}
|
|
271
|
-
});
|
|
272
|
-
const DatabasePanel = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-974a0a17"]]);
|
|
273
|
-
const app = createApp(DatabasePanel);
|
|
274
|
-
app.mount("#app");
|
|
275
|
-
//# sourceMappingURL=database.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sources":["../../../../src/platform/vscode/components/DatabasePanel.vue","../../../../src/platform/vscode/entry/database.ts"],"sourcesContent":["<template>\r\n <div class=\"database-panel\">\r\n <div class=\"panel-header\">\r\n <h1 class=\"panel-title\">数据库管理</h1>\r\n <div class=\"panel-actions\">\r\n <button @click=\"handleAddConnection\" class=\"btn btn-secondary\">添加连接</button>\r\n </div>\r\n </div>\r\n\r\n <div style=\"margin-bottom: 20px;\">\r\n <select v-model=\"selectedConnectionId\" class=\"connection-selector\" @change=\"handleConnectionChange\">\r\n <option value=\"\">选择数据库连接</option>\r\n <option v-for=\"conn in connections\" :key=\"conn.id\" :value=\"conn.id\">\r\n {{ conn.name }} ({{ conn.host }}:{{ conn.port }})\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div id=\"contentArea\">\r\n <div v-if=\"loading\" class=\"loading\">\r\n <div class=\"spinner\"></div>\r\n <div>加载中...</div>\r\n </div>\r\n <div v-else-if=\"!selectedConnectionId\" class=\"empty-state\">\r\n <div class=\"empty-icon\">🗄️</div>\r\n <div class=\"empty-title\">未选择连接</div>\r\n <div class=\"empty-text\">请从下拉列表中选择一个数据库连接</div>\r\n </div>\r\n <div v-else>\r\n <div class=\"tabs\">\r\n <button\r\n v-for=\"tab in tabs\"\r\n :key=\"tab.id\"\r\n :class=\"['tab', { active: currentTab === tab.id }]\"\r\n @click=\"currentTab = tab.id\"\r\n >\r\n {{ tab.name }}\r\n </button>\r\n </div>\r\n\r\n <div v-show=\"currentTab === 'overview'\" class=\"tab-content active\">\r\n <h3 class=\"section-title\">数据库概览</h3>\r\n <div class=\"database-grid\">\r\n <div\r\n v-for=\"db in databases\"\r\n :key=\"db.name\"\r\n class=\"database-card\"\r\n @click=\"selectDatabase(db)\"\r\n >\r\n <div class=\"database-header\">\r\n <div class=\"database-icon\">🗄️</div>\r\n <div class=\"database-name\">{{ db.name }}</div>\r\n </div>\r\n <div class=\"database-info\">\r\n <span class=\"database-stat\">📊 {{ db.tables }} 表</span>\r\n <span class=\"database-stat\">💾 {{ db.size }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div v-show=\"currentTab === 'databases'\" class=\"tab-content\">\r\n <h3 class=\"section-title\">数据库列表</h3>\r\n <div class=\"database-grid\">\r\n <div\r\n v-for=\"db in databases\"\r\n :key=\"db.name\"\r\n class=\"database-card\"\r\n @click=\"selectDatabase(db)\"\r\n >\r\n <div class=\"database-header\">\r\n <div class=\"database-icon\">🗄️</div>\r\n <div class=\"database-name\">{{ db.name }}</div>\r\n </div>\r\n <div class=\"database-info\">\r\n <span class=\"database-stat\">📊 {{ db.tables }} 表</span>\r\n <span class=\"database-stat\">💾 {{ db.size }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div v-show=\"currentTab === 'tables'\" class=\"tab-content\">\r\n <h3 class=\"section-title\">表列表</h3>\r\n <div class=\"table-list\">\r\n <div\r\n v-for=\"table in tables\"\r\n :key=\"table.name\"\r\n class=\"table-item\"\r\n >\r\n <div class=\"table-icon\">{{ table.type === 'table' ? '📋' : '👁️' }}</div>\r\n <div class=\"table-info\">\r\n <div class=\"table-name\">{{ table.name }}</div>\r\n <div v-if=\"table.comment\" class=\"table-comment\">{{ table.comment }}</div>\r\n <div v-if=\"table.rows !== null\" class=\"table-meta\">\r\n <span>{{ table.rows.toLocaleString() }} 行</span>\r\n <span>{{ table.engine || '' }}</span>\r\n <span>{{ table.size || '' }}</span>\r\n </div>\r\n </div>\r\n <span :class=\"['table-type', table.type]\">{{ table.type === 'table' ? 'TABLE' : 'VIEW' }}</span>\r\n <div class=\"table-actions\">\r\n <button class=\"action-btn\" @click.stop=\"handleViewData(table)\">数据</button>\r\n <button class=\"action-btn\" @click.stop=\"handleViewStructure(table)\">结构</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, reactive, computed, onMounted } from 'vue';\r\nimport { getVSCodeBridge } from '../bridge';\r\n\r\nconst vscode = getVSCodeBridge();\r\n\r\nconst connections = ref<any[]>([]);\r\nconst selectedConnectionId = ref('');\r\nconst databases = ref<any[]>([]);\r\nconst tables = ref<any[]>([]);\r\nconst loading = ref(false);\r\nconst currentTab = ref('overview');\r\n\r\nconst selectedConnection = computed(() => {\r\n return connections.value.find(c => c.id === selectedConnectionId.value);\r\n});\r\n\r\nconst tabs = [\r\n { id: 'overview', name: '概览' },\r\n { id: 'databases', name: '数据库' },\r\n { id: 'tables', name: '表' }\r\n];\r\n\r\nonMounted(() => {\r\n // 请求连接列表\r\n vscode.postMessage({ command: 'getConnections' });\r\n\r\n // 监听来自扩展的消息\r\n vscode.onMessage((message: any) => {\r\n if (message.command === 'connections') {\r\n connections.value = message.data;\r\n } else if (message.command === 'selectConnection') {\r\n selectConnection(message.data);\r\n } else if (message.command === 'databases') {\r\n databases.value = message.data;\r\n loading.value = false;\r\n } else if (message.command === 'tables') {\r\n tables.value = message.data;\r\n loading.value = false;\r\n } else if (message.command === 'error') {\r\n handleError(message.data);\r\n }\r\n });\r\n});\r\n\r\nfunction handleAddConnection() {\r\n vscode.postMessage({ command: 'addConnection' });\r\n}\r\n\r\nfunction handleConnectionChange() {\r\n if (selectedConnectionId.value) {\r\n const connection = connections.value.find(c => c.id === selectedConnectionId.value);\r\n selectConnection(connection);\r\n } else {\r\n databases.value = [];\r\n tables.value = [];\r\n }\r\n}\r\n\r\nfunction selectConnection(connection: any) {\r\n if (!connection) return;\r\n\r\n selectedConnectionId.value = connection.id;\r\n loading.value = true;\r\n\r\n // 请求数据库列表\r\n vscode.postMessage({\r\n command: 'getDatabases',\r\n data: { connectionId: connection.id }\r\n });\r\n}\r\n\r\nfunction selectDatabase(database: any) {\r\n loading.value = true;\r\n currentTab.value = 'tables';\r\n\r\n // 请求表列表\r\n vscode.postMessage({\r\n command: 'getTables',\r\n data: {\r\n connectionId: selectedConnectionId.value,\r\n databaseName: database.name\r\n }\r\n });\r\n}\r\n\r\nfunction handleViewData(table: any) {\r\n vscode.postMessage({\r\n command: 'openTableData',\r\n data: {\r\n connectionId: selectedConnectionId.value,\r\n tableName: table.name\r\n }\r\n });\r\n}\r\n\r\nfunction handleViewStructure(table: any) {\r\n vscode.postMessage({\r\n command: 'openTableStructure',\r\n data: {\r\n connectionId: selectedConnectionId.value,\r\n tableName: table.name\r\n }\r\n });\r\n}\r\n\r\nfunction handleError(error: string) {\r\n loading.value = false;\r\n console.error('Error:', error);\r\n alert(`操作失败: ${error}`);\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.database-panel {\r\n padding: 16px;\r\n height: 100vh;\r\n overflow: auto;\r\n}\r\n\r\n.panel-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 20px;\r\n padding-bottom: 16px;\r\n border-bottom: 1px solid var(--vscode-panel-border);\r\n}\r\n\r\n.panel-title {\r\n font-size: 18px;\r\n font-weight: 600;\r\n margin: 0;\r\n color: var(--vscode-foreground);\r\n}\r\n\r\n.panel-actions {\r\n display: flex;\r\n gap: 8px;\r\n}\r\n\r\n.connection-selector {\r\n width: 300px;\r\n padding: 6px 10px;\r\n border: 1px solid var(--vscode-input-border);\r\n background-color: var(--vscode-input-background);\r\n color: var(--vscode-input-foreground);\r\n border-radius: 4px;\r\n font-size: 13px;\r\n}\r\n\r\n.btn {\r\n padding: 6px 14px;\r\n border: none;\r\n border-radius: 4px;\r\n font-size: 13px;\r\n cursor: pointer;\r\n transition: background-color 0.2s;\r\n}\r\n\r\n.btn-primary {\r\n background-color: var(--vscode-button-background);\r\n color: var(--vscode-button-foreground);\r\n}\r\n\r\n.btn-primary:hover {\r\n background-color: var(--vscode-button-hoverBackground);\r\n}\r\n\r\n.btn-secondary {\r\n background-color: var(--vscode-button-secondaryBackground);\r\n color: var(--vscode-button-secondaryForeground);\r\n}\r\n\r\n.btn-secondary:hover {\r\n background-color: var(--vscode-button-secondaryHoverBackground);\r\n}\r\n\r\n.database-grid {\r\n display: grid;\r\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\r\n gap: 16px;\r\n}\r\n\r\n.database-card {\r\n padding: 16px;\r\n background-color: var(--vscode-editor-background);\r\n border: 1px solid var(--vscode-panel-border);\r\n border-radius: 8px;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n}\r\n\r\n.database-card:hover {\r\n border-color: var(--vscode-focusBorder);\r\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\r\n transform: translateY(-2px);\r\n}\r\n\r\n.database-header {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\r\n margin-bottom: 12px;\r\n}\r\n\r\n.database-icon {\r\n font-size: 28px;\r\n color: var(--vscode-textLink-foreground);\r\n}\r\n\r\n.database-name {\r\n flex: 1;\r\n font-size: 16px;\r\n font-weight: 600;\r\n color: var(--vscode-foreground);\r\n}\r\n\r\n.database-info {\r\n display: flex;\r\n gap: 16px;\r\n font-size: 12px;\r\n color: var(--vscode-descriptionForeground);\r\n}\r\n\r\n.database-stat {\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n}\r\n\r\n.section-title {\r\n font-size: 16px;\r\n font-weight: 600;\r\n margin: 24px 0 16px 0;\r\n padding-bottom: 8px;\r\n border-bottom: 1px solid var(--vscode-panel-border);\r\n color: var(--vscode-foreground);\r\n}\r\n\r\n.tabs {\r\n display: flex;\r\n gap: 4px;\r\n margin-bottom: 16px;\r\n border-bottom: 1px solid var(--vscode-panel-border);\r\n}\r\n\r\n.tab {\r\n padding: 8px 16px;\r\n border: none;\r\n background-color: transparent;\r\n color: var(--vscode-foreground);\r\n font-size: 13px;\r\n cursor: pointer;\r\n border-bottom: 2px solid transparent;\r\n transition: all 0.2s;\r\n}\r\n\r\n.tab:hover {\r\n background-color: var(--vscode-list-hoverBackground);\r\n}\r\n\r\n.tab.active {\r\n border-bottom-color: var(--vscode-focusBorder);\r\n color: var(--vscode-textLink-foreground);\r\n}\r\n\r\n.tab-content {\r\n display: none;\r\n}\r\n\r\n.tab-content.active {\r\n display: block;\r\n}\r\n\r\n.table-list {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 4px;\r\n}\r\n\r\n.table-item {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\r\n padding: 12px;\r\n border-radius: 6px;\r\n cursor: pointer;\r\n transition: background-color 0.2s;\r\n}\r\n\r\n.table-item:hover {\r\n background-color: var(--vscode-list-hoverBackground);\r\n}\r\n\r\n.table-icon {\r\n font-size: 20px;\r\n color: var(--vscode-textLink-foreground);\r\n width: 24px;\r\n text-align: center;\r\n}\r\n\r\n.table-info {\r\n flex: 1;\r\n}\r\n\r\n.table-name {\r\n font-size: 14px;\r\n font-weight: 500;\r\n margin-bottom: 2px;\r\n color: var(--vscode-foreground);\r\n}\r\n\r\n.table-comment {\r\n font-size: 12px;\r\n color: var(--vscode-descriptionForeground);\r\n}\r\n\r\n.table-meta {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\r\n font-size: 12px;\r\n color: var(--vscode-descriptionForeground);\r\n margin-top: 4px;\r\n}\r\n\r\n.table-type {\r\n padding: 2px 8px;\r\n border-radius: 12px;\r\n background-color: var(--vscode-badge-background);\r\n font-weight: 500;\r\n font-size: 12px;\r\n}\r\n\r\n.table-type.table {\r\n background-color: var(--vscode-badge-background);\r\n}\r\n\r\n.table-type.view {\r\n background-color: var(--vscode-gitDecorationModifiedResourceForeground);\r\n color: white;\r\n}\r\n\r\n.table-actions {\r\n display: flex;\r\n gap: 8px;\r\n opacity: 0;\r\n transition: opacity 0.2s;\r\n}\r\n\r\n.table-item:hover .table-actions {\r\n opacity: 1;\r\n}\r\n\r\n.action-btn {\r\n padding: 4px 8px;\r\n font-size: 12px;\r\n background-color: var(--vscode-button-secondaryBackground);\r\n color: var(--vscode-button-secondaryForeground);\r\n border: none;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n}\r\n\r\n.action-btn:hover {\r\n background-color: var(--vscode-button-secondaryHoverBackground);\r\n}\r\n\r\n.empty-state {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 80px 20px;\r\n text-align: center;\r\n}\r\n\r\n.empty-icon {\r\n font-size: 64px;\r\n margin-bottom: 16px;\r\n opacity: 0.3;\r\n}\r\n\r\n.empty-title {\r\n font-size: 16px;\r\n font-weight: 600;\r\n margin-bottom: 8px;\r\n color: var(--vscode-foreground);\r\n}\r\n\r\n.empty-text {\r\n font-size: 14px;\r\n color: var(--vscode-descriptionForeground);\r\n}\r\n\r\n.loading {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 40px;\r\n}\r\n\r\n.spinner {\r\n width: 32px;\r\n height: 32px;\r\n border: 3px solid var(--vscode-progressBar-background);\r\n border-top-color: var(--vscode-progressBar-foreground);\r\n border-radius: 50%;\r\n animation: spin 0.6s linear infinite;\r\n}\r\n\r\n@keyframes spin {\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n}\r\n</style>\r\n","/**\r\n * VSCode WebView - Database Entry Point\r\n * 数据库管理面板入口\r\n */\r\n\r\nimport { createApp } from 'vue';\r\nimport DatabasePanel from '../components/DatabasePanel.vue';\r\n\r\n// 创建 Vue 应用\r\nconst app = createApp(DatabasePanel);\r\n\r\n// 挂载\r\napp.mount('#app');\r\n"],"names":["_openBlock","_createElementBlock","_createElementVNode","_Fragment","_renderList","_toDisplayString","_normalizeClass","_withDirectives","_withModifiers"],"mappings":"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"}
|
|
Binary file
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
<head>
|
|
2
|
-
<meta charset="UTF-8" />
|
|
3
|
-
<base href="{{viteTarget}}" />
|
|
4
|
-
{% include "./initial_state.tpl" %}
|
|
5
|
-
<link rel="icon" href="{{prefix}}/public/favicon.png" />
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
-
<title>数据库管理</title>
|
|
8
|
-
<meta name="description" content="{{description}}">
|
|
9
|
-
<script>
|
|
10
|
-
window.addEventListener('vite:preloadError', function (event) {
|
|
11
|
-
console.error(event);
|
|
12
|
-
});
|
|
13
|
-
</script>
|
|
14
|
-
</head>
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
<script type="text/template" id="__INITIAL_STATE__">
|
|
2
|
-
{{ data | dump | safe }}
|
|
3
|
-
</script>
|
|
4
|
-
<script type="text/template" id="__DEFAULTINITIAL_STATE__">
|
|
5
|
-
{{ __DEFAULTINITIAL_STATE__ }}
|
|
6
|
-
</script>
|
|
7
|
-
<script>
|
|
8
|
-
function __get_templateJson(id) {
|
|
9
|
-
try {
|
|
10
|
-
var tag = document.getElementById(id);
|
|
11
|
-
var obj = JSON.parse(tag.innerHTML);
|
|
12
|
-
return obj;
|
|
13
|
-
}
|
|
14
|
-
catch (e) {
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
var __INITIAL_STATE__ = __get_templateJson('__INITIAL_STATE__');
|
|
19
|
-
if(!__INITIAL_STATE__) __INITIAL_STATE__ = __get_templateJson('__DEFAULTINITIAL_STATE__');
|
|
20
|
-
// 动态加载入口
|
|
21
|
-
function __vitejs_load_entry(url, type) {
|
|
22
|
-
if(!url) return;
|
|
23
|
-
if(url.indexOf('/') !== 0) url = '/' + url;
|
|
24
|
-
var prefix = (window.__INITIAL_STATE__ && window.__INITIAL_STATE__.config && window.__INITIAL_STATE__.config.prefix) || '';
|
|
25
|
-
if(prefix && url.indexOf(prefix) !== 0) {
|
|
26
|
-
url = prefix + url;
|
|
27
|
-
}
|
|
28
|
-
var nodeObj;
|
|
29
|
-
switch(type) {
|
|
30
|
-
case 'script': {
|
|
31
|
-
// 检查是否已加载过
|
|
32
|
-
var existing = document.querySelector(`script[src="${url}"]`);
|
|
33
|
-
if(existing) return;
|
|
34
|
-
nodeObj = document.createElement('script');
|
|
35
|
-
nodeObj.src = url;
|
|
36
|
-
nodeObj.type = 'module';
|
|
37
|
-
break;
|
|
38
|
-
}
|
|
39
|
-
case 'stylesheet':
|
|
40
|
-
case 'modulepreload':
|
|
41
|
-
case 'icon': {
|
|
42
|
-
// 检查是否已加载过
|
|
43
|
-
var existing = document.querySelector(`link[href="${url}"]`);
|
|
44
|
-
if(existing) return;
|
|
45
|
-
nodeObj = document.createElement('link');
|
|
46
|
-
nodeObj.href = url;
|
|
47
|
-
nodeObj.rel = type;
|
|
48
|
-
break;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
if(!nodeObj) return;
|
|
52
|
-
nodeObj.crossOrigin = 'crossorigin';
|
|
53
|
-
document.head.appendChild(nodeObj);
|
|
54
|
-
}
|
|
55
|
-
</script>
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
.query-panel[data-v-eaf4025e] {
|
|
3
|
-
display: flex;
|
|
4
|
-
flex-direction: column;
|
|
5
|
-
height: 100vh;
|
|
6
|
-
overflow: hidden;
|
|
7
|
-
}
|
|
8
|
-
.query-toolbar[data-v-eaf4025e] {
|
|
9
|
-
display: flex;
|
|
10
|
-
align-items: center;
|
|
11
|
-
gap: 12px;
|
|
12
|
-
padding: 12px;
|
|
13
|
-
background-color: var(--vscode-editorGroupHeader-tabsBackground);
|
|
14
|
-
border-bottom: 1px solid var(--vscode-panel-border);
|
|
15
|
-
}
|
|
16
|
-
.query-selector[data-v-eaf4025e] {
|
|
17
|
-
min-width: 200px;
|
|
18
|
-
padding: 6px 10px;
|
|
19
|
-
border: 1px solid var(--vscode-input-border);
|
|
20
|
-
background-color: var(--vscode-input-background);
|
|
21
|
-
color: var(--vscode-input-foreground);
|
|
22
|
-
border-radius: 4px;
|
|
23
|
-
}
|
|
24
|
-
.btn[data-v-eaf4025e] {
|
|
25
|
-
padding: 6px 14px;
|
|
26
|
-
border: none;
|
|
27
|
-
border-radius: 4px;
|
|
28
|
-
font-size: 13px;
|
|
29
|
-
cursor: pointer;
|
|
30
|
-
transition: background-color 0.2s;
|
|
31
|
-
}
|
|
32
|
-
.btn-primary[data-v-eaf4025e] {
|
|
33
|
-
background-color: var(--vscode-button-background);
|
|
34
|
-
color: var(--vscode-button-foreground);
|
|
35
|
-
}
|
|
36
|
-
.btn-primary[data-v-eaf4025e]:hover {
|
|
37
|
-
background-color: var(--vscode-button-hoverBackground);
|
|
38
|
-
}
|
|
39
|
-
.btn-secondary[data-v-eaf4025e] {
|
|
40
|
-
background-color: var(--vscode-button-secondaryBackground);
|
|
41
|
-
color: var(--vscode-button-secondaryForeground);
|
|
42
|
-
}
|
|
43
|
-
.btn-secondary[data-v-eaf4025e]:hover {
|
|
44
|
-
background-color: var(--vscode-button-secondaryHoverBackground);
|
|
45
|
-
}
|
|
46
|
-
.query-editor[data-v-eaf4025e] {
|
|
47
|
-
flex: 1;
|
|
48
|
-
display: flex;
|
|
49
|
-
flex-direction: column;
|
|
50
|
-
border-bottom: 1px solid var(--vscode-panel-border);
|
|
51
|
-
min-height: 200px;
|
|
52
|
-
}
|
|
53
|
-
.query-textarea[data-v-eaf4025e] {
|
|
54
|
-
flex: 1;
|
|
55
|
-
padding: 16px;
|
|
56
|
-
font-family: var(--vscode-editor-font-family, 'Consolas', 'Monaco', monospace);
|
|
57
|
-
font-size: 14px;
|
|
58
|
-
line-height: 1.6;
|
|
59
|
-
border: none;
|
|
60
|
-
resize: none;
|
|
61
|
-
background-color: var(--vscode-editor-background);
|
|
62
|
-
color: var(--vscode-editor-foreground);
|
|
63
|
-
}
|
|
64
|
-
.query-textarea[data-v-eaf4025e]:focus {
|
|
65
|
-
outline: none;
|
|
66
|
-
}
|
|
67
|
-
.query-results[data-v-eaf4025e] {
|
|
68
|
-
flex: 1;
|
|
69
|
-
overflow: auto;
|
|
70
|
-
padding: 12px;
|
|
71
|
-
}
|
|
72
|
-
.loading-state[data-v-eaf4025e] {
|
|
73
|
-
display: flex;
|
|
74
|
-
align-items: center;
|
|
75
|
-
justify-content: center;
|
|
76
|
-
padding: 40px;
|
|
77
|
-
gap: 12px;
|
|
78
|
-
}
|
|
79
|
-
.spinner[data-v-eaf4025e] {
|
|
80
|
-
width: 20px;
|
|
81
|
-
height: 20px;
|
|
82
|
-
border: 2px solid var(--vscode-progressBar-background);
|
|
83
|
-
border-top-color: var(--vscode-progressBar-foreground);
|
|
84
|
-
border-radius: 50%;
|
|
85
|
-
animation: spin-eaf4025e 0.6s linear infinite;
|
|
86
|
-
}
|
|
87
|
-
@keyframes spin-eaf4025e {
|
|
88
|
-
to {
|
|
89
|
-
transform: rotate(360deg);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
.results-header[data-v-eaf4025e] {
|
|
93
|
-
display: flex;
|
|
94
|
-
justify-content: space-between;
|
|
95
|
-
align-items: center;
|
|
96
|
-
margin-bottom: 12px;
|
|
97
|
-
padding: 8px 12px;
|
|
98
|
-
background-color: var(--vscode-editorGroupHeader-tabsBackground);
|
|
99
|
-
border-radius: 4px;
|
|
100
|
-
}
|
|
101
|
-
.results-title[data-v-eaf4025e] {
|
|
102
|
-
font-size: 14px;
|
|
103
|
-
font-weight: 600;
|
|
104
|
-
}
|
|
105
|
-
.results-meta[data-v-eaf4025e] {
|
|
106
|
-
font-size: 12px;
|
|
107
|
-
color: var(--vscode-descriptionForeground);
|
|
108
|
-
}
|
|
109
|
-
.data-table[data-v-eaf4025e] {
|
|
110
|
-
width: 100%;
|
|
111
|
-
border-collapse: collapse;
|
|
112
|
-
font-size: 13px;
|
|
113
|
-
}
|
|
114
|
-
.data-table th[data-v-eaf4025e],
|
|
115
|
-
.data-table td[data-v-eaf4025e] {
|
|
116
|
-
padding: 8px 12px;
|
|
117
|
-
text-align: left;
|
|
118
|
-
border-bottom: 1px solid var(--vscode-panel-border);
|
|
119
|
-
}
|
|
120
|
-
.data-table th[data-v-eaf4025e] {
|
|
121
|
-
background-color: var(--vscode-editorGroupHeader-tabsBackground);
|
|
122
|
-
font-weight: 600;
|
|
123
|
-
position: sticky;
|
|
124
|
-
top: 0;
|
|
125
|
-
}
|
|
126
|
-
.data-table tbody tr[data-v-eaf4025e]:hover {
|
|
127
|
-
background-color: var(--vscode-list-hoverBackground);
|
|
128
|
-
}
|
|
129
|
-
.empty-state[data-v-eaf4025e] {
|
|
130
|
-
display: flex;
|
|
131
|
-
flex-direction: column;
|
|
132
|
-
align-items: center;
|
|
133
|
-
justify-content: center;
|
|
134
|
-
padding: 60px 20px;
|
|
135
|
-
text-align: center;
|
|
136
|
-
}
|
|
137
|
-
.empty-icon[data-v-eaf4025e] {
|
|
138
|
-
font-size: 48px;
|
|
139
|
-
margin-bottom: 16px;
|
|
140
|
-
opacity: 0.5;
|
|
141
|
-
}
|
|
142
|
-
.empty-text[data-v-eaf4025e] {
|
|
143
|
-
font-size: 14px;
|
|
144
|
-
color: var(--vscode-descriptionForeground);
|
|
145
|
-
}
|
|
146
|
-
.status-bar[data-v-eaf4025e] {
|
|
147
|
-
display: flex;
|
|
148
|
-
justify-content: space-between;
|
|
149
|
-
align-items: center;
|
|
150
|
-
padding: 8px 12px;
|
|
151
|
-
background-color: var(--vscode-statusBar-background);
|
|
152
|
-
color: var(--vscode-statusBar-foreground);
|
|
153
|
-
font-size: 12px;
|
|
154
|
-
}
|
|
155
|
-
.status-item[data-v-eaf4025e] {
|
|
156
|
-
display: flex;
|
|
157
|
-
align-items: center;
|
|
158
|
-
gap: 8px;
|
|
159
|
-
}
|
|
160
|
-
.status-icon[data-v-eaf4025e] {
|
|
161
|
-
color: var(--vscode-textLink-foreground);
|
|
162
|
-
}
|