fdb2 1.0.7 → 1.0.9
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/.dockerignore +21 -21
- package/.editorconfig +11 -11
- package/.eslintrc.cjs +14 -14
- package/.eslintrc.json +7 -7
- package/.prettierrc.js +3 -3
- package/.tpl.env +21 -21
- package/.vscodeignore +45 -45
- package/README.md +312 -312
- package/bin/build.sh +28 -28
- package/bin/deploy.sh +8 -8
- package/bin/dev.sh +10 -10
- package/bin/docker/dev-docker-compose.yml +43 -43
- package/bin/docker/dev.Dockerfile +24 -24
- package/bin/docker/prod-docker-compose.yml +17 -17
- package/bin/docker/prod.Dockerfile +29 -29
- package/bin/fdb2.js +220 -220
- package/dist/package.json +29 -29
- package/dist/pnpm-lock.yaml +1042 -354
- package/dist/public/explorer.css +1464 -1437
- package/dist/public/explorer.js +764 -226
- package/dist/public/index.css +1026 -1026
- package/dist/public/index.js +15 -9
- package/dist/public/layout.css +221 -221
- package/dist/public/layout.js +1 -1
- package/dist/public/vue.js +8 -2
- package/dist/scripts/preinstall.js +112 -112
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +8 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.ts +680 -671
- package/dist/server/model/connection.entity.ts +65 -65
- package/dist/server/model/database.entity.ts +245 -245
- package/dist/server/service/connection.service.d.ts +6 -1
- package/dist/server/service/connection.service.d.ts.map +1 -1
- package/dist/server/service/connection.service.js +15 -0
- package/dist/server/service/connection.service.js.map +1 -1
- package/dist/server/service/connection.service.ts +356 -341
- package/dist/server/service/database/base.service.d.ts +27 -0
- package/dist/server/service/database/base.service.d.ts.map +1 -1
- package/dist/server/service/database/base.service.js +17 -0
- package/dist/server/service/database/base.service.js.map +1 -1
- package/dist/server/service/database/base.service.ts +406 -367
- package/dist/server/service/database/cockroachdb.service.d.ts +16 -0
- package/dist/server/service/database/cockroachdb.service.d.ts.map +1 -1
- package/dist/server/service/database/cockroachdb.service.js +220 -154
- package/dist/server/service/database/cockroachdb.service.js.map +1 -1
- package/dist/server/service/database/cockroachdb.service.ts +871 -782
- package/dist/server/service/database/database.service.d.ts +4 -0
- package/dist/server/service/database/database.service.d.ts.map +1 -1
- package/dist/server/service/database/database.service.js +123 -0
- package/dist/server/service/database/database.service.js.map +1 -1
- package/dist/server/service/database/database.service.ts +775 -638
- package/dist/server/service/database/index.ts +6 -6
- package/dist/server/service/database/mongodb.service.d.ts +16 -0
- package/dist/server/service/database/mongodb.service.d.ts.map +1 -1
- package/dist/server/service/database/mongodb.service.js +35 -0
- package/dist/server/service/database/mongodb.service.js.map +1 -1
- package/dist/server/service/database/mongodb.service.ts +39 -1
- package/dist/server/service/database/mssql.service.d.ts +16 -0
- package/dist/server/service/database/mssql.service.d.ts.map +1 -1
- package/dist/server/service/database/mssql.service.js +168 -96
- package/dist/server/service/database/mssql.service.js.map +1 -1
- package/dist/server/service/database/mssql.service.ts +931 -840
- package/dist/server/service/database/mysql.service.d.ts +16 -0
- package/dist/server/service/database/mysql.service.d.ts.map +1 -1
- package/dist/server/service/database/mysql.service.js +189 -80
- package/dist/server/service/database/mysql.service.js.map +1 -1
- package/dist/server/service/database/mysql.service.ts +1025 -890
- package/dist/server/service/database/oracle.service.d.ts +16 -0
- package/dist/server/service/database/oracle.service.d.ts.map +1 -1
- package/dist/server/service/database/oracle.service.js +182 -120
- package/dist/server/service/database/oracle.service.js.map +1 -1
- package/dist/server/service/database/oracle.service.ts +1035 -959
- package/dist/server/service/database/postgres.service.d.ts +16 -0
- package/dist/server/service/database/postgres.service.d.ts.map +1 -1
- package/dist/server/service/database/postgres.service.js +154 -88
- package/dist/server/service/database/postgres.service.js.map +1 -1
- package/dist/server/service/database/postgres.service.ts +960 -871
- package/dist/server/service/database/sap.service.d.ts +16 -0
- package/dist/server/service/database/sap.service.d.ts.map +1 -1
- package/dist/server/service/database/sap.service.js +66 -0
- package/dist/server/service/database/sap.service.js.map +1 -1
- package/dist/server/service/database/sap.service.ts +89 -0
- package/dist/server/service/database/sqlite.service.d.ts +16 -0
- package/dist/server/service/database/sqlite.service.d.ts.map +1 -1
- package/dist/server/service/database/sqlite.service.js +77 -18
- package/dist/server/service/database/sqlite.service.js.map +1 -1
- package/dist/server/service/database/sqlite.service.ts +787 -708
- package/dist/server/service/session.service.ts +158 -158
- package/dist/view/index.html +38 -38
- package/env.d.ts +1 -1
- package/package.json +1 -1
- package/packages/vscode/.vscodeignore +44 -44
- package/packages/vscode/README.md +62 -62
- package/packages/vscode/out/database-services/cockroachdb.service.js +154 -154
- package/packages/vscode/out/database-services/mssql.service.js +96 -96
- package/packages/vscode/out/database-services/mysql.service.js +80 -80
- package/packages/vscode/out/database-services/oracle.service.js +120 -120
- package/packages/vscode/out/database-services/postgres.service.js +88 -88
- package/packages/vscode/out/database-services/sqlite.service.js +18 -18
- package/packages/vscode/out/provider/WebViewProvider.js +32 -32
- package/packages/vscode/package.json +142 -142
- package/packages/vscode/resources/icon.svg +5 -5
- package/packages/vscode/resources/webview/connection.css +41 -41
- package/packages/vscode/resources/webview/database.css +163 -163
- package/packages/vscode/resources/webview/index.html +9 -9
- package/packages/vscode/resources/webview/modules/header.tpl +13 -13
- package/packages/vscode/resources/webview/modules/initial_state.tpl +54 -54
- package/packages/vscode/resources/webview/query.css +104 -104
- package/packages/vscode/src/database-services/base.service.ts +362 -362
- package/packages/vscode/src/database-services/cockroachdb.service.ts +659 -659
- package/packages/vscode/src/database-services/connection.service.ts +340 -340
- package/packages/vscode/src/database-services/database.service.ts +629 -629
- package/packages/vscode/src/database-services/index.ts +6 -6
- package/packages/vscode/src/database-services/model/connection.entity.ts +65 -65
- package/packages/vscode/src/database-services/model/database.entity.ts +245 -245
- package/packages/vscode/src/database-services/mssql.service.ts +722 -722
- package/packages/vscode/src/database-services/mysql.service.ts +760 -760
- package/packages/vscode/src/database-services/oracle.service.ts +831 -831
- package/packages/vscode/src/database-services/postgres.service.ts +740 -740
- package/packages/vscode/src/database-services/sqlite.service.ts +558 -558
- package/packages/vscode/src/extension.ts +76 -76
- package/packages/vscode/src/provider/DatabaseTreeProvider.ts +167 -167
- package/packages/vscode/src/provider/WebViewProvider.ts +277 -277
- package/packages/vscode/src/service/DatabaseServiceBridge.ts +414 -414
- package/packages/vscode/src/typings/connection.ts +90 -90
- package/packages/vscode/tsconfig.json +21 -21
- package/public/index.html +9 -9
- package/public/modules/header.tpl +13 -13
- package/public/modules/initial_state.tpl +54 -54
- package/scripts/preinstall.js +112 -112
- package/server/index.ts +680 -671
- package/server/model/connection.entity.ts +65 -65
- package/server/model/database.entity.ts +245 -245
- package/server/service/connection.service.ts +356 -341
- package/server/service/database/base.service.ts +406 -367
- package/server/service/database/cockroachdb.service.ts +871 -782
- package/server/service/database/database.service.ts +775 -638
- package/server/service/database/index.ts +6 -6
- package/server/service/database/mongodb.service.ts +39 -1
- package/server/service/database/mssql.service.ts +931 -840
- package/server/service/database/mysql.service.ts +1025 -890
- package/server/service/database/oracle.service.ts +1035 -959
- package/server/service/database/postgres.service.ts +960 -871
- package/server/service/database/sap.service.ts +89 -0
- package/server/service/database/sqlite.service.ts +787 -708
- package/server/service/session.service.ts +158 -158
- package/server/tsconfig.json +20 -20
- package/server.js +149 -149
- package/server.pid +1 -0
- package/src/adapter/ajax.ts +135 -135
- package/src/assets/base.css +1 -1
- package/src/assets/database.css +949 -949
- package/src/assets/images/svg/illustrations/illustration-1.svg +1 -1
- package/src/assets/images/svg/illustrations/illustration-2.svg +2 -2
- package/src/assets/images/svg/illustrations/illustration-3.svg +50 -50
- package/src/assets/images/svg/illustrations/illustration-4.svg +1 -1
- package/src/assets/images/svg/illustrations/illustration-5.svg +73 -73
- package/src/assets/images/svg/illustrations/illustration-6.svg +89 -89
- package/src/assets/images/svg/illustrations/illustration-7.svg +39 -39
- package/src/assets/images/svg/separators/curve-2.svg +3 -3
- package/src/assets/images/svg/separators/curve.svg +3 -3
- package/src/assets/images/svg/separators/line.svg +3 -3
- package/src/assets/logo.svg +73 -73
- package/src/assets/main.css +1 -1
- package/src/base/config.ts +20 -20
- package/src/base/detect.ts +134 -134
- package/src/base/entity.ts +92 -92
- package/src/base/eventBus.ts +36 -36
- package/src/components/connection-editor/index.vue +588 -588
- package/src/components/dataGrid/index.vue +104 -104
- package/src/components/dataGrid/pagination.vue +105 -105
- package/src/components/loading/index.vue +42 -42
- package/src/components/modal/index.ts +180 -180
- package/src/components/modal/index.vue +560 -560
- package/src/components/toast/index.ts +43 -43
- package/src/components/toast/toast.vue +57 -57
- package/src/components/user/name.vue +103 -103
- package/src/components/user/selector.vue +416 -416
- package/src/domain/SysConfig.ts +74 -74
- package/src/platform/App.vue +7 -7
- package/src/platform/database/components/connection-detail.vue +1153 -1154
- package/src/platform/database/components/data-editor.vue +477 -477
- package/src/platform/database/components/database-detail.vue +1173 -1172
- package/src/platform/database/components/database-monitor.vue +1085 -1085
- package/src/platform/database/components/db-tools.vue +1264 -816
- package/src/platform/database/components/query-history.vue +1348 -1348
- package/src/platform/database/components/sql-executor.vue +737 -737
- package/src/platform/database/components/sql-query-editor.vue +1045 -1045
- package/src/platform/database/components/table-detail.vue +1375 -1376
- package/src/platform/database/components/table-editor.vue +916 -916
- package/src/platform/database/explorer.vue +1839 -1839
- package/src/platform/database/index.vue +1192 -1192
- package/src/platform/database/layout.vue +366 -366
- package/src/platform/database/router.ts +36 -36
- package/src/platform/database/styles/common.scss +601 -601
- package/src/platform/database/types/common.ts +444 -444
- package/src/platform/database/utils/export.ts +231 -231
- package/src/platform/database/utils/helpers.ts +436 -436
- package/src/platform/index.ts +32 -32
- package/src/platform/router.ts +40 -40
- package/src/platform/vscode/bridge.ts +121 -121
- package/src/platform/vscode/components/ConnectionPanel.vue +272 -272
- package/src/platform/vscode/components/DatabasePanel.vue +532 -532
- package/src/platform/vscode/components/QueryPanel.vue +371 -371
- package/src/platform/vscode/entry/connection.ts +13 -13
- package/src/platform/vscode/entry/database.ts +13 -13
- package/src/platform/vscode/entry/query.ts +13 -13
- package/src/platform/vscode/index.ts +5 -5
- package/src/service/base.ts +133 -127
- package/src/service/database.ts +505 -495
- package/src/service/login.ts +120 -120
- package/src/shims-vue.d.ts +6 -6
- package/src/stores/connection.ts +266 -266
- package/src/stores/session.ts +87 -87
- package/src/typings/database-types.ts +412 -412
- package/src/typings/database.ts +363 -363
- package/src/typings/global.d.ts +58 -58
- package/src/typings/pinia.d.ts +7 -7
- package/src/utils/clipboard.ts +29 -29
- package/src/utils/database-types.ts +242 -242
- package/src/utils/modal.ts +123 -123
- package/src/utils/request.ts +55 -55
- package/src/utils/sleep.ts +3 -3
- package/src/utils/toast.ts +73 -73
- package/src/utils/util.ts +171 -171
- package/src/utils/xlsx.ts +228 -228
- package/tsconfig.json +33 -33
- package/view/index.html +9 -9
- package/view/modules/header.tpl +13 -13
- package/view/modules/initial_state.tpl +19 -19
- package/vite.config.ts +424 -424
- package/vite.config.vscode.ts +47 -47
- package/server/backups/db_ai_breakout_2026-03-11T08-38-48-677Z.sql +0 -0
|
@@ -1,158 +1,158 @@
|
|
|
1
|
-
import { Provide, Scope, ScopeEnum, Config, Inject } from '@midwayjs/core';
|
|
2
|
-
import { ISessionService, TencentService } from '@cicctencent/midwayjs-base';
|
|
3
|
-
import { Session, GetLoginSessionReq, GetLoginSessionRes, LogoutReq, LogoutRes, LoginByWxReq, LoginByWxRsp, LoginByAccountReq, LoginByAccountRsp } from '@fefeding/common/dist/models/account/session';
|
|
4
|
-
|
|
5
|
-
@Provide('session:service')
|
|
6
|
-
@Scope(ScopeEnum.Request, { allowDowngrade: true })
|
|
7
|
-
export class SessionService extends ISessionService {
|
|
8
|
-
@Config('loginOption')
|
|
9
|
-
loginOption: any;
|
|
10
|
-
|
|
11
|
-
@Inject()
|
|
12
|
-
tencentService: TencentService;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* 根据ID获取session
|
|
16
|
-
* 并判断session是否在有效期
|
|
17
|
-
* @param id token唯一
|
|
18
|
-
*/
|
|
19
|
-
async getLoginSession(id: string): Promise<Session> {
|
|
20
|
-
const req = new GetLoginSessionReq();
|
|
21
|
-
req.id = id;
|
|
22
|
-
const res = await this.requestBaseApi<GetLoginSessionRes>(req);
|
|
23
|
-
return res?.data || null;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* 下线
|
|
27
|
-
* @param id 需要下线的id或者session
|
|
28
|
-
*/
|
|
29
|
-
async logout(id: string): Promise<any> {
|
|
30
|
-
const req = new LogoutReq();
|
|
31
|
-
req.id = id;
|
|
32
|
-
const res = await this.requestBaseApi<LogoutRes>(req);
|
|
33
|
-
this.ctx.currentSession = null;
|
|
34
|
-
return res;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* 登录接口
|
|
39
|
-
* @param loginParams 登录参数
|
|
40
|
-
* @returns
|
|
41
|
-
*/
|
|
42
|
-
async loginByWx(loginParams: LoginByWxReq) {
|
|
43
|
-
const req = new LoginByWxReq();
|
|
44
|
-
req.fromJSON(loginParams);
|
|
45
|
-
const res = await this.requestBaseApi<LoginByWxRsp>(req);
|
|
46
|
-
return res;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* 帐号登陆
|
|
51
|
-
* @param loginParams
|
|
52
|
-
* @returns
|
|
53
|
-
*/
|
|
54
|
-
async loginByAccount(loginParams: LoginByAccountReq) {
|
|
55
|
-
loginParams.appId = '0';//this.baseServiceOption.appId?.toString() || '0';
|
|
56
|
-
|
|
57
|
-
const req = new LoginByAccountReq();
|
|
58
|
-
req.fromJSON(loginParams);
|
|
59
|
-
const res = await this.requestBaseApi<LoginByAccountRsp>(req);
|
|
60
|
-
return res;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* 用临时码登陆
|
|
65
|
-
* @param code 登陆临时码
|
|
66
|
-
* @returns
|
|
67
|
-
*/
|
|
68
|
-
async loginByCode(code: string) {
|
|
69
|
-
const res = await this.requestBaseApi('/api/session/loginByAuthCode', {
|
|
70
|
-
data: {
|
|
71
|
-
code
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
return res?.data || null;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* 生成临时登陆码
|
|
79
|
-
* @param id 登陆token
|
|
80
|
-
* @returns
|
|
81
|
-
*/
|
|
82
|
-
async createAuthCode(id: string) {
|
|
83
|
-
const res = await this.requestBaseApi('/api/session/createAuthCode', {
|
|
84
|
-
data: {
|
|
85
|
-
id
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
return res;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// 生成登陆用公众号二维码
|
|
92
|
-
// 先生成一个验证码,当用户扫码后,事件回调获取验证码后再生成session
|
|
93
|
-
async createWxLoginQrcode() {
|
|
94
|
-
|
|
95
|
-
const res = await this.requestBaseApi('/api/session/createWxLoginQrcode', {
|
|
96
|
-
data: {
|
|
97
|
-
appId: this.loginOption.wxAppId
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
//console.log(res);
|
|
101
|
-
return res;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// 验证码登陆
|
|
105
|
-
async loginByVerifyCode(code: string, appId?: number,prefix?: string) {
|
|
106
|
-
if(!code) throw Error('code不可为空');
|
|
107
|
-
appId = appId || this.loginOption.wxAppId;
|
|
108
|
-
|
|
109
|
-
const res = await this.requestBaseApi('/api/session/loginByVerifyCode', {
|
|
110
|
-
data: {
|
|
111
|
-
appId,
|
|
112
|
-
code,
|
|
113
|
-
prefix
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
return res;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
// 更新用户信息
|
|
120
|
-
async updateUser(user: any) {
|
|
121
|
-
const userId = this.ctx.currentSession?.userId || 0;
|
|
122
|
-
if(!userId) return;
|
|
123
|
-
//console.log(loginParams, req);
|
|
124
|
-
const res = await this.requestBaseApi('/api/account/updateUser', {
|
|
125
|
-
data: {
|
|
126
|
-
user: {
|
|
127
|
-
...user,
|
|
128
|
-
id: userId,
|
|
129
|
-
}
|
|
130
|
-
},
|
|
131
|
-
params: {
|
|
132
|
-
token: this.ctx.currentSession?.id
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
console.log('updateUser', res);
|
|
136
|
-
return res;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// 上传头像图片
|
|
140
|
-
async uploadAvatar(file: any) {
|
|
141
|
-
|
|
142
|
-
const userId = this.ctx.currentSession?.userId || 0;
|
|
143
|
-
if(!userId) return;
|
|
144
|
-
|
|
145
|
-
let filename = file['filename'] as string || '1.png';
|
|
146
|
-
|
|
147
|
-
const key = `avator/${userId}/${filename}`;
|
|
148
|
-
|
|
149
|
-
const res = await this.tencentService.uploadCosFile(key, file.data);
|
|
150
|
-
console.log(res);
|
|
151
|
-
const user = {
|
|
152
|
-
id: userId,
|
|
153
|
-
avatar: res.url || key,
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
return await this.updateUser(user);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
1
|
+
import { Provide, Scope, ScopeEnum, Config, Inject } from '@midwayjs/core';
|
|
2
|
+
import { ISessionService, TencentService } from '@cicctencent/midwayjs-base';
|
|
3
|
+
import { Session, GetLoginSessionReq, GetLoginSessionRes, LogoutReq, LogoutRes, LoginByWxReq, LoginByWxRsp, LoginByAccountReq, LoginByAccountRsp } from '@fefeding/common/dist/models/account/session';
|
|
4
|
+
|
|
5
|
+
@Provide('session:service')
|
|
6
|
+
@Scope(ScopeEnum.Request, { allowDowngrade: true })
|
|
7
|
+
export class SessionService extends ISessionService {
|
|
8
|
+
@Config('loginOption')
|
|
9
|
+
loginOption: any;
|
|
10
|
+
|
|
11
|
+
@Inject()
|
|
12
|
+
tencentService: TencentService;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* 根据ID获取session
|
|
16
|
+
* 并判断session是否在有效期
|
|
17
|
+
* @param id token唯一
|
|
18
|
+
*/
|
|
19
|
+
async getLoginSession(id: string): Promise<Session> {
|
|
20
|
+
const req = new GetLoginSessionReq();
|
|
21
|
+
req.id = id;
|
|
22
|
+
const res = await this.requestBaseApi<GetLoginSessionRes>(req);
|
|
23
|
+
return res?.data || null;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 下线
|
|
27
|
+
* @param id 需要下线的id或者session
|
|
28
|
+
*/
|
|
29
|
+
async logout(id: string): Promise<any> {
|
|
30
|
+
const req = new LogoutReq();
|
|
31
|
+
req.id = id;
|
|
32
|
+
const res = await this.requestBaseApi<LogoutRes>(req);
|
|
33
|
+
this.ctx.currentSession = null;
|
|
34
|
+
return res;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* 登录接口
|
|
39
|
+
* @param loginParams 登录参数
|
|
40
|
+
* @returns
|
|
41
|
+
*/
|
|
42
|
+
async loginByWx(loginParams: LoginByWxReq) {
|
|
43
|
+
const req = new LoginByWxReq();
|
|
44
|
+
req.fromJSON(loginParams);
|
|
45
|
+
const res = await this.requestBaseApi<LoginByWxRsp>(req);
|
|
46
|
+
return res;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* 帐号登陆
|
|
51
|
+
* @param loginParams
|
|
52
|
+
* @returns
|
|
53
|
+
*/
|
|
54
|
+
async loginByAccount(loginParams: LoginByAccountReq) {
|
|
55
|
+
loginParams.appId = '0';//this.baseServiceOption.appId?.toString() || '0';
|
|
56
|
+
|
|
57
|
+
const req = new LoginByAccountReq();
|
|
58
|
+
req.fromJSON(loginParams);
|
|
59
|
+
const res = await this.requestBaseApi<LoginByAccountRsp>(req);
|
|
60
|
+
return res;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* 用临时码登陆
|
|
65
|
+
* @param code 登陆临时码
|
|
66
|
+
* @returns
|
|
67
|
+
*/
|
|
68
|
+
async loginByCode(code: string) {
|
|
69
|
+
const res = await this.requestBaseApi('/api/session/loginByAuthCode', {
|
|
70
|
+
data: {
|
|
71
|
+
code
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
return res?.data || null;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* 生成临时登陆码
|
|
79
|
+
* @param id 登陆token
|
|
80
|
+
* @returns
|
|
81
|
+
*/
|
|
82
|
+
async createAuthCode(id: string) {
|
|
83
|
+
const res = await this.requestBaseApi('/api/session/createAuthCode', {
|
|
84
|
+
data: {
|
|
85
|
+
id
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
return res;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// 生成登陆用公众号二维码
|
|
92
|
+
// 先生成一个验证码,当用户扫码后,事件回调获取验证码后再生成session
|
|
93
|
+
async createWxLoginQrcode() {
|
|
94
|
+
|
|
95
|
+
const res = await this.requestBaseApi('/api/session/createWxLoginQrcode', {
|
|
96
|
+
data: {
|
|
97
|
+
appId: this.loginOption.wxAppId
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
//console.log(res);
|
|
101
|
+
return res;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// 验证码登陆
|
|
105
|
+
async loginByVerifyCode(code: string, appId?: number,prefix?: string) {
|
|
106
|
+
if(!code) throw Error('code不可为空');
|
|
107
|
+
appId = appId || this.loginOption.wxAppId;
|
|
108
|
+
|
|
109
|
+
const res = await this.requestBaseApi('/api/session/loginByVerifyCode', {
|
|
110
|
+
data: {
|
|
111
|
+
appId,
|
|
112
|
+
code,
|
|
113
|
+
prefix
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
return res;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// 更新用户信息
|
|
120
|
+
async updateUser(user: any) {
|
|
121
|
+
const userId = this.ctx.currentSession?.userId || 0;
|
|
122
|
+
if(!userId) return;
|
|
123
|
+
//console.log(loginParams, req);
|
|
124
|
+
const res = await this.requestBaseApi('/api/account/updateUser', {
|
|
125
|
+
data: {
|
|
126
|
+
user: {
|
|
127
|
+
...user,
|
|
128
|
+
id: userId,
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
params: {
|
|
132
|
+
token: this.ctx.currentSession?.id
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
console.log('updateUser', res);
|
|
136
|
+
return res;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// 上传头像图片
|
|
140
|
+
async uploadAvatar(file: any) {
|
|
141
|
+
|
|
142
|
+
const userId = this.ctx.currentSession?.userId || 0;
|
|
143
|
+
if(!userId) return;
|
|
144
|
+
|
|
145
|
+
let filename = file['filename'] as string || '1.png';
|
|
146
|
+
|
|
147
|
+
const key = `avator/${userId}/${filename}`;
|
|
148
|
+
|
|
149
|
+
const res = await this.tencentService.uploadCosFile(key, file.data);
|
|
150
|
+
console.log(res);
|
|
151
|
+
const user = {
|
|
152
|
+
id: userId,
|
|
153
|
+
avatar: res.url || key,
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
return await this.updateUser(user);
|
|
157
|
+
}
|
|
158
|
+
}
|
package/dist/view/index.html
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<base href="" />
|
|
6
|
-
<script type="text/template" id="__INITIAL_STATE__">
|
|
7
|
-
{{ data | dump | safe }}
|
|
8
|
-
</script>
|
|
9
|
-
<script type="text/template" id="__DEFAULTINITIAL_STATE__">
|
|
10
|
-
{"config":{"prefix":"","apiUrl":""},"sso":{"baseUrl":"","appId":2}}
|
|
11
|
-
</script>
|
|
12
|
-
<script>
|
|
13
|
-
function __get_templateJson(id) {
|
|
14
|
-
try {
|
|
15
|
-
var tag = document.getElementById(id);
|
|
16
|
-
var obj = JSON.parse(tag.innerHTML);
|
|
17
|
-
return obj;
|
|
18
|
-
}
|
|
19
|
-
catch (e) {
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
var __INITIAL_STATE__ = __get_templateJson('__INITIAL_STATE__');
|
|
24
|
-
if(!__INITIAL_STATE__) __INITIAL_STATE__ = __get_templateJson('__DEFAULTINITIAL_STATE__');
|
|
25
|
-
</script>
|
|
26
|
-
<link rel="icon" href="/public/favicon.png" />
|
|
27
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
28
|
-
<title>fdb2-数据库管理</title>
|
|
29
|
-
<meta name="description" content="{{description}}">
|
|
30
|
-
<script>
|
|
31
|
-
window.addEventListener('vite:preloadError', function (event) {
|
|
32
|
-
console.error(event);
|
|
33
|
-
});
|
|
34
|
-
</script>
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<base href="" />
|
|
6
|
+
<script type="text/template" id="__INITIAL_STATE__">
|
|
7
|
+
{{ data | dump | safe }}
|
|
8
|
+
</script>
|
|
9
|
+
<script type="text/template" id="__DEFAULTINITIAL_STATE__">
|
|
10
|
+
{"config":{"prefix":"","apiUrl":""},"sso":{"baseUrl":"","appId":2}}
|
|
11
|
+
</script>
|
|
12
|
+
<script>
|
|
13
|
+
function __get_templateJson(id) {
|
|
14
|
+
try {
|
|
15
|
+
var tag = document.getElementById(id);
|
|
16
|
+
var obj = JSON.parse(tag.innerHTML);
|
|
17
|
+
return obj;
|
|
18
|
+
}
|
|
19
|
+
catch (e) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
var __INITIAL_STATE__ = __get_templateJson('__INITIAL_STATE__');
|
|
24
|
+
if(!__INITIAL_STATE__) __INITIAL_STATE__ = __get_templateJson('__DEFAULTINITIAL_STATE__');
|
|
25
|
+
</script>
|
|
26
|
+
<link rel="icon" href="/public/favicon.png" />
|
|
27
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
28
|
+
<title>fdb2-数据库管理</title>
|
|
29
|
+
<meta name="description" content="{{description}}">
|
|
30
|
+
<script>
|
|
31
|
+
window.addEventListener('vite:preloadError', function (event) {
|
|
32
|
+
console.error(event);
|
|
33
|
+
});
|
|
34
|
+
</script>
|
|
35
35
|
<script type="module" crossorigin src="/public/index.js"></script>
|
|
36
36
|
<link rel="modulepreload" crossorigin href="/public/vue.js">
|
|
37
37
|
<link rel="modulepreload" crossorigin href="/public/bootstrap.js">
|
|
38
38
|
<link rel="stylesheet" crossorigin href="/public/vue.css">
|
|
39
39
|
<link rel="stylesheet" crossorigin href="/public/bootstrap.css">
|
|
40
40
|
<link rel="stylesheet" crossorigin href="/public/index.css">
|
|
41
|
-
</head>
|
|
42
|
-
<body>
|
|
43
|
-
<div id="app" class="min-vh-100"></div>
|
|
44
|
-
</body>
|
|
41
|
+
</head>
|
|
42
|
+
<body>
|
|
43
|
+
<div id="app" class="min-vh-100"></div>
|
|
44
|
+
</body>
|
|
45
45
|
</html>
|
package/env.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
/// <reference types="vite/client" />
|
|
1
|
+
/// <reference types="vite/client" />
|
package/package.json
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
# VSCode Extension Ignore File
|
|
2
|
-
|
|
3
|
-
# Dependencies
|
|
4
|
-
node_modules
|
|
5
|
-
**/node_modules/**
|
|
6
|
-
|
|
7
|
-
# Build artifacts
|
|
8
|
-
dist
|
|
9
|
-
out
|
|
10
|
-
|
|
11
|
-
# Source
|
|
12
|
-
src
|
|
13
|
-
*.ts
|
|
14
|
-
*.js.map
|
|
15
|
-
|
|
16
|
-
# Test files
|
|
17
|
-
**/test/**
|
|
18
|
-
**/*.test.ts
|
|
19
|
-
**/*.spec.ts
|
|
20
|
-
|
|
21
|
-
# IDE
|
|
22
|
-
.vscode-test
|
|
23
|
-
.idea
|
|
24
|
-
*.swp
|
|
25
|
-
*.swo
|
|
26
|
-
|
|
27
|
-
# Logs
|
|
28
|
-
*.log
|
|
29
|
-
npm-debug.log*
|
|
30
|
-
yarn-debug.log*
|
|
31
|
-
yarn-error.log*
|
|
32
|
-
|
|
33
|
-
# OS
|
|
34
|
-
.DS_Store
|
|
35
|
-
Thumbs.db
|
|
36
|
-
|
|
37
|
-
# Temporary files
|
|
38
|
-
*.tmp
|
|
39
|
-
*.temp
|
|
40
|
-
|
|
41
|
-
# Package manager files
|
|
42
|
-
package-lock.json
|
|
43
|
-
pnpm-lock.yaml
|
|
44
|
-
yarn.lock
|
|
1
|
+
# VSCode Extension Ignore File
|
|
2
|
+
|
|
3
|
+
# Dependencies
|
|
4
|
+
node_modules
|
|
5
|
+
**/node_modules/**
|
|
6
|
+
|
|
7
|
+
# Build artifacts
|
|
8
|
+
dist
|
|
9
|
+
out
|
|
10
|
+
|
|
11
|
+
# Source
|
|
12
|
+
src
|
|
13
|
+
*.ts
|
|
14
|
+
*.js.map
|
|
15
|
+
|
|
16
|
+
# Test files
|
|
17
|
+
**/test/**
|
|
18
|
+
**/*.test.ts
|
|
19
|
+
**/*.spec.ts
|
|
20
|
+
|
|
21
|
+
# IDE
|
|
22
|
+
.vscode-test
|
|
23
|
+
.idea
|
|
24
|
+
*.swp
|
|
25
|
+
*.swo
|
|
26
|
+
|
|
27
|
+
# Logs
|
|
28
|
+
*.log
|
|
29
|
+
npm-debug.log*
|
|
30
|
+
yarn-debug.log*
|
|
31
|
+
yarn-error.log*
|
|
32
|
+
|
|
33
|
+
# OS
|
|
34
|
+
.DS_Store
|
|
35
|
+
Thumbs.db
|
|
36
|
+
|
|
37
|
+
# Temporary files
|
|
38
|
+
*.tmp
|
|
39
|
+
*.temp
|
|
40
|
+
|
|
41
|
+
# Package manager files
|
|
42
|
+
package-lock.json
|
|
43
|
+
pnpm-lock.yaml
|
|
44
|
+
yarn.lock
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
# fdb2 VSCode Extension
|
|
2
|
-
|
|
3
|
-
fBDB2 的 VSCode 扩展版本,提供强大的数据库管理功能。
|
|
4
|
-
|
|
5
|
-
## 功能特性
|
|
6
|
-
|
|
7
|
-
- 📊 支持多种数据库:MySQL、PostgreSQL、SQLite、SQL Server、Oracle 等
|
|
8
|
-
- 🔌 连接管理:添加、编辑、删除、测试数据库连接
|
|
9
|
-
- 💻 SQL 查询:内置 SQL 编辑器,支持快速查询
|
|
10
|
-
- 🗄️ 数据库管理:浏览数据库、表、视图结构
|
|
11
|
-
- 📋 表数据查看:快速浏览表数据
|
|
12
|
-
- 🎨 美观的 UI:基于 Vue 3 的现代化界面
|
|
13
|
-
- ⚡ 高性能:优化的查询和渲染性能
|
|
14
|
-
|
|
15
|
-
## 快速开始
|
|
16
|
-
|
|
17
|
-
### 安装扩展
|
|
18
|
-
|
|
19
|
-
从 VSCode 扩展市场搜索 "fdb2" 或手动安装 `.vsix` 文件。
|
|
20
|
-
|
|
21
|
-
### 添加连接
|
|
22
|
-
|
|
23
|
-
1. 点击左侧活动栏的数据库图标
|
|
24
|
-
2. 点击 "+" 按钮添加连接
|
|
25
|
-
3. 填写连接信息
|
|
26
|
-
4. 测试连接
|
|
27
|
-
5. 保存连接
|
|
28
|
-
|
|
29
|
-
### 执行查询
|
|
30
|
-
|
|
31
|
-
1. 点击侧边栏的连接
|
|
32
|
-
2. 点击 "打开查询面板"
|
|
33
|
-
3. 输入 SQL 语句
|
|
34
|
-
4. 按 Ctrl+Enter 执行
|
|
35
|
-
|
|
36
|
-
## 使用说明
|
|
37
|
-
|
|
38
|
-
详细使用说明请参考 [主项目 README](../../README.md)。
|
|
39
|
-
|
|
40
|
-
## 开发
|
|
41
|
-
|
|
42
|
-
### 构建扩展
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
npm run build:all
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
### 开发模式
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
npm run vscode:dev
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### 打包
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
npm run vscode:package
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## 许可证
|
|
61
|
-
|
|
62
|
-
MIT License
|
|
1
|
+
# fdb2 VSCode Extension
|
|
2
|
+
|
|
3
|
+
fBDB2 的 VSCode 扩展版本,提供强大的数据库管理功能。
|
|
4
|
+
|
|
5
|
+
## 功能特性
|
|
6
|
+
|
|
7
|
+
- 📊 支持多种数据库:MySQL、PostgreSQL、SQLite、SQL Server、Oracle 等
|
|
8
|
+
- 🔌 连接管理:添加、编辑、删除、测试数据库连接
|
|
9
|
+
- 💻 SQL 查询:内置 SQL 编辑器,支持快速查询
|
|
10
|
+
- 🗄️ 数据库管理:浏览数据库、表、视图结构
|
|
11
|
+
- 📋 表数据查看:快速浏览表数据
|
|
12
|
+
- 🎨 美观的 UI:基于 Vue 3 的现代化界面
|
|
13
|
+
- ⚡ 高性能:优化的查询和渲染性能
|
|
14
|
+
|
|
15
|
+
## 快速开始
|
|
16
|
+
|
|
17
|
+
### 安装扩展
|
|
18
|
+
|
|
19
|
+
从 VSCode 扩展市场搜索 "fdb2" 或手动安装 `.vsix` 文件。
|
|
20
|
+
|
|
21
|
+
### 添加连接
|
|
22
|
+
|
|
23
|
+
1. 点击左侧活动栏的数据库图标
|
|
24
|
+
2. 点击 "+" 按钮添加连接
|
|
25
|
+
3. 填写连接信息
|
|
26
|
+
4. 测试连接
|
|
27
|
+
5. 保存连接
|
|
28
|
+
|
|
29
|
+
### 执行查询
|
|
30
|
+
|
|
31
|
+
1. 点击侧边栏的连接
|
|
32
|
+
2. 点击 "打开查询面板"
|
|
33
|
+
3. 输入 SQL 语句
|
|
34
|
+
4. 按 Ctrl+Enter 执行
|
|
35
|
+
|
|
36
|
+
## 使用说明
|
|
37
|
+
|
|
38
|
+
详细使用说明请参考 [主项目 README](../../README.md)。
|
|
39
|
+
|
|
40
|
+
## 开发
|
|
41
|
+
|
|
42
|
+
### 构建扩展
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npm run build:all
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 开发模式
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npm run vscode:dev
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 打包
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
npm run vscode:package
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 许可证
|
|
61
|
+
|
|
62
|
+
MIT License
|