feat(dbms): 支持MySQL数据库连接管理功能

- 添加MySQL数据库类型的连接支持,默认端口为3306,用户名为root
- 实现Oracle与MySQL连接类型的差异化表单验证逻辑
- 更新连接树组件以区分不同数据库类型的显示方式
- 集成备份恢复任务面板,支持双标签页切换功能
- 优化表格排序功能,增强连接列表的可操作性
- 调整任务面板布局,改进用户体验和界面交互
- 新增连接对话框中数据库类型的选择与初始化逻辑
This commit is contained in:
2026-06-09 13:16:11 +08:00
parent d055a8e1a0
commit 3dff953b8d
42 changed files with 2226 additions and 412 deletions

View File

@@ -1,12 +1,13 @@
import http from '@/api'
import type { CustomAxiosRequestConfig } from '@/api'
import type { Dbms } from '@/api/system/dbms/interface'
export const getDbmsOverview = () => {
return http.get<Dbms.Overview>('/database/overview', {}, { loading: false })
}
export const getDbmsConnectionList = (params: Dbms.ConnectionListParams) => {
return http.post<Dbms.ConnectionPageData>('/database/connections/list', params, { loading: false })
export const getDbmsConnectionList = (params: Dbms.ConnectionListParams, config: Partial<CustomAxiosRequestConfig> = {}) => {
return http.post<Dbms.ConnectionPageData>('/database/connections/list', params, { loading: false, ...config })
}
export const addDbmsConnection = (params: Dbms.ConnectionPayload) => {
@@ -25,24 +26,32 @@ export const testDbmsConnection = (params: Dbms.TestConnectionParams) => {
return http.post<Dbms.TestConnectionResult>('/database/connections/test', params)
}
export const getDbmsTableList = (params: Dbms.TableListParams) => {
return http.post<Dbms.TableRecord[]>('/database/connections/tables', params)
export const getDbmsTableList = (params: Dbms.TableListParams, config: Partial<CustomAxiosRequestConfig> = {}) => {
return http.post<Dbms.TableRecord[]>('/database/connections/tables', params, config)
}
export const createDbmsBackupTask = (params: Dbms.CreateBackupParams) => {
return http.post<Dbms.TaskCreateResult>('/database/backups/create', params)
}
export const getDbmsBackupTaskList = (params: Dbms.TaskListParams) => {
return http.post<Dbms.TaskPageData>('/database/backups/tasks/list', params, { loading: false })
export const getDbmsBackupTaskList = (params: Dbms.TaskListParams, config: Partial<CustomAxiosRequestConfig> = {}) => {
return http.post<Dbms.TaskPageData>('/database/backups/tasks/list', params, { loading: false, ...config })
}
export const getDbmsBackupTaskStatus = (taskId: string) => {
return http.get<Dbms.TaskRecord>('/database/backups/tasks/status', { taskId }, { loading: false })
}
export const getDbmsBackupFileList = (params: Dbms.FileListParams) => {
return http.post<Dbms.BackupFilePageData>('/database/backups/files/list', params, { loading: false })
export const stopDbmsBackupTask = (params: Dbms.StopBackupTaskParams) => {
return http.post<boolean>('/database/backups/tasks/stop', params)
}
export const restartDbmsBackupTask = (params: Dbms.RestartBackupTaskParams) => {
return http.post<Dbms.TaskCreateResult>('/database/backups/tasks/restart', params)
}
export const getDbmsBackupFileList = (params: Dbms.FileListParams, config: Partial<CustomAxiosRequestConfig> = {}) => {
return http.post<Dbms.BackupFilePageData>('/database/backups/files/list', params, { loading: false, ...config })
}
export const createDbmsRestoreTask = (params: Dbms.CreateRestoreParams) => {
@@ -53,6 +62,10 @@ export const getDbmsRestoreTaskStatus = (taskId: string) => {
return http.get<Dbms.TaskRecord>('/database/restores/tasks/status', { taskId }, { loading: false })
}
export const getDbmsRestoreTaskList = (params: Dbms.TaskListParams, config: Partial<CustomAxiosRequestConfig> = {}) => {
return http.post<Dbms.TaskPageData>('/database/restores/tasks/list', params, { loading: false, ...config })
}
export const deleteDbmsBackupFile = (params: Dbms.DeleteBackupFileParams) => {
return http.post<boolean>('/database/delete/backup-file', params)
}