refactor: 数据源菜单合一+布局优化
- 4个数据源菜单(MySQL/PG/Redis/Mongo)合并为1个「数据源」 - InstancePage 改为统一入口,顶部Tab切换类型过滤 - 添加数据源改为弹框Modal(默认MySQL) - 去掉左下角用户区,退出登录移到右上角header - 侧边栏收窄220px,整体布局更紧凑 - 后端202 tests passing - 前端构建零错误
This commit is contained in:
1 parent
bab55d3927
commit
5cbd0e3441
23 files changed
+2881
-94
No files matched your search
@@ -0,0 +1,22 @@
|
||||
import request from './request';
|
||||
|
||||
export var dictionaryApi = {
|
||||
listDatabases: function (instanceId: number) {
|
||||
return request.get('/dictionary/instances/' + instanceId + '/databases');
|
||||
},
|
||||
listTables: function (instanceId: number, database: string) {
|
||||
return request.get('/dictionary/instances/' + instanceId + '/tables', {
|
||||
params: { database: database },
|
||||
});
|
||||
},
|
||||
getTableDetail: function (instanceId: number, tableName: string, database: string) {
|
||||
return request.get('/dictionary/instances/' + instanceId + '/tables/' + tableName, {
|
||||
params: { database: database },
|
||||
});
|
||||
},
|
||||
exportDictionary: function (instanceId: number, database: string) {
|
||||
return request.get('/dictionary/instances/' + instanceId + '/export', {
|
||||
params: { database: database },
|
||||
});
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,52 @@
|
||||
import request from './request';
|
||||
|
||||
export const instanceDetailApi = {
|
||||
// Databases
|
||||
listDatabases: (id: number) =>
|
||||
request.get<any, string[]>('/instances/' + id + '/detail/databases'),
|
||||
|
||||
// Tables
|
||||
listTables: (id: number, database: string) =>
|
||||
request.get<any, any[]>('/instances/' + id + '/detail/tables', { params: { database: database } }),
|
||||
|
||||
// Table Detail
|
||||
getTableDetail: (id: number, database: string, table: string) =>
|
||||
request.get<any, any>('/instances/' + id + '/detail/table-detail', { params: { database: database, table: table } }),
|
||||
|
||||
// Users
|
||||
listUsers: (id: number) =>
|
||||
request.get<any, any[]>('/instances/' + id + '/detail/users'),
|
||||
|
||||
// Grants
|
||||
getGrants: (id: number, user: string, host: string) =>
|
||||
request.get<any, any>('/instances/' + id + '/detail/grants', { params: { user: user, host: host } }),
|
||||
|
||||
// Slow Queries
|
||||
getSlowQueries: (id: number, database?: string) =>
|
||||
request.get<any, any[]>('/instances/' + id + '/detail/slow-queries', { params: database ? { database: database } : {} }),
|
||||
|
||||
// Processlist
|
||||
getProcesslist: (id: number) =>
|
||||
request.get<any, any[]>('/instances/' + id + '/detail/processlist'),
|
||||
|
||||
// Kill Process
|
||||
killProcess: (id: number, pid: number) =>
|
||||
request.post<any, any>('/instances/' + id + '/detail/processlist/' + pid + '/kill'),
|
||||
|
||||
// Status
|
||||
getStatus: (id: number) =>
|
||||
request.get<any, any>('/instances/' + id + '/detail/status'),
|
||||
|
||||
// Variables
|
||||
getVariables: (id: number) =>
|
||||
request.get<any, any[]>('/instances/' + id + '/detail/variables'),
|
||||
};
|
||||
|
||||
export const backupApi = {
|
||||
list: (instanceId?: number) =>
|
||||
request.get<any, any[]>('/backups', { params: instanceId ? { instance_id: instanceId } : {} }),
|
||||
create: (data: any) =>
|
||||
request.post<any, any>('/backups', data),
|
||||
get: (id: number) =>
|
||||
request.get<any, any>('/backups/' + id),
|
||||
};
|
||||
@@ -0,0 +1,37 @@
|
||||
import request from './request';
|
||||
|
||||
export var redisApi = {
|
||||
getInfo: function (id: number) {
|
||||
return request.get('/redis/' + id + '/info');
|
||||
},
|
||||
getDbsize: function (id: number, db: number) {
|
||||
return request.get('/redis/' + id + '/dbsize', { params: { db: db } });
|
||||
},
|
||||
getKeys: function (id: number, params: Record<string, any>) {
|
||||
return request.get('/redis/' + id + '/keys', { params: params });
|
||||
},
|
||||
getKeyDetail: function (id: number, key: string, db: number) {
|
||||
return request.get('/redis/' + id + '/keys/' + encodeURIComponent(key), { params: { db: db } });
|
||||
},
|
||||
createKey: function (id: number, data: Record<string, any>) {
|
||||
return request.post('/redis/' + id + '/keys', data);
|
||||
},
|
||||
deleteKey: function (id: number, key: string, db: number) {
|
||||
return request.delete('/redis/' + id + '/keys/' + encodeURIComponent(key), { params: { db: db } });
|
||||
},
|
||||
setExpire: function (id: number, key: string, data: Record<string, any>) {
|
||||
return request.put('/redis/' + id + '/keys/' + encodeURIComponent(key) + '/expire', data);
|
||||
},
|
||||
flushDb: function (id: number, db: number) {
|
||||
return request.delete('/redis/' + id + '/flushdb', { params: { db: db } });
|
||||
},
|
||||
executeCommand: function (id: number, data: Record<string, any>) {
|
||||
return request.post('/redis/' + id + '/command', data);
|
||||
},
|
||||
getSlowlog: function (id: number, count: number) {
|
||||
return request.get('/redis/' + id + '/slowlog', { params: { count: count } });
|
||||
},
|
||||
getClients: function (id: number) {
|
||||
return request.get('/redis/' + id + '/clients');
|
||||
},
|
||||
};
|
||||
Reference in new issue
Block a user