From 26eacf81b786df0855ff4813a52cae155f59401d Mon Sep 17 00:00:00 2001 From: ssongliu Date: Thu, 22 Dec 2022 15:03:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=9D=A2=E6=9D=BF=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E6=94=B9=E4=B8=BA=E8=B7=AF=E7=94=B1=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/dto/backup.go | 2 + backend/app/model/backup.go | 1 + backend/app/service/backup.go | 6 + frontend/src/api/interface/backup.ts | 4 + frontend/src/api/modules/setting.ts | 6 +- frontend/src/lang/modules/en.ts | 2 +- frontend/src/lang/modules/zh.ts | 2 +- frontend/src/routers/modules/setting.ts | 45 +++ frontend/src/views/setting/about/index.vue | 54 +++ .../views/setting/backup-account/index.vue | 139 +++++++ .../setting/backup-account/operate/index.vue | 213 +++++++++++ frontend/src/views/setting/index.vue | 146 ++----- frontend/src/views/setting/monitor/index.vue | 107 ++++++ frontend/src/views/setting/panel/index.vue | 306 +++++++++++++++ .../setting/{tabs/safe.vue => safe/index.vue} | 115 +++--- frontend/src/views/setting/tabs/about.vue | 49 --- frontend/src/views/setting/tabs/backup.vue | 355 ------------------ frontend/src/views/setting/tabs/message.vue | 153 -------- frontend/src/views/setting/tabs/monitor.vue | 77 ---- frontend/src/views/setting/tabs/panel.vue | 268 ------------- 20 files changed, 976 insertions(+), 1074 deletions(-) create mode 100644 frontend/src/views/setting/about/index.vue create mode 100644 frontend/src/views/setting/backup-account/index.vue create mode 100644 frontend/src/views/setting/backup-account/operate/index.vue create mode 100644 frontend/src/views/setting/monitor/index.vue create mode 100644 frontend/src/views/setting/panel/index.vue rename frontend/src/views/setting/{tabs/safe.vue => safe/index.vue} (75%) delete mode 100644 frontend/src/views/setting/tabs/about.vue delete mode 100644 frontend/src/views/setting/tabs/backup.vue delete mode 100644 frontend/src/views/setting/tabs/message.vue delete mode 100644 frontend/src/views/setting/tabs/monitor.vue delete mode 100644 frontend/src/views/setting/tabs/panel.vue diff --git a/backend/app/dto/backup.go b/backend/app/dto/backup.go index 8d77596cc..3ab874914 100644 --- a/backend/app/dto/backup.go +++ b/backend/app/dto/backup.go @@ -6,6 +6,7 @@ type BackupOperate struct { ID uint `json:"id"` Type string `json:"type" validate:"required"` Bucket string `json:"bucket"` + AccessKey string `json:"accessKey"` Credential string `json:"credential"` Vars string `json:"vars" validate:"required"` } @@ -49,6 +50,7 @@ type DownloadRecord struct { type ForBuckets struct { Type string `json:"type" validate:"required"` + AccessKey string `json:"accessKey"` Credential string `json:"credential" validate:"required"` Vars string `json:"vars" validate:"required"` } diff --git a/backend/app/model/backup.go b/backend/app/model/backup.go index a31c3e370..70f16da28 100644 --- a/backend/app/model/backup.go +++ b/backend/app/model/backup.go @@ -4,6 +4,7 @@ type BackupAccount struct { BaseModel Type string `gorm:"type:varchar(64);unique;not null" json:"type"` Bucket string `gorm:"type:varchar(256)" json:"bucket"` + AccessKey string `gorm:"type:varchar(256)" json:"accessKey"` Credential string `gorm:"type:varchar(256)" json:"credential"` Vars string `gorm:"type:longText" json:"vars"` } diff --git a/backend/app/service/backup.go b/backend/app/service/backup.go index c7d0bb841..22aff6a61 100644 --- a/backend/app/service/backup.go +++ b/backend/app/service/backup.go @@ -81,8 +81,10 @@ func (u *BackupService) DownloadRecord(info dto.DownloadRecord) (string, error) varMap["bucket"] = backup.Bucket switch backup.Type { case constant.Sftp: + varMap["username"] = backup.AccessKey varMap["password"] = backup.Credential case constant.OSS, constant.S3, constant.MinIo: + varMap["accessKey"] = backup.AccessKey varMap["secretKey"] = backup.Credential } backClient, err := cloud_storage.NewCloudStorageClient(varMap) @@ -131,8 +133,10 @@ func (u *BackupService) GetBuckets(backupDto dto.ForBuckets) ([]interface{}, err varMap["type"] = backupDto.Type switch backupDto.Type { case constant.Sftp: + varMap["username"] = backupDto.AccessKey varMap["password"] = backupDto.Credential case constant.OSS, constant.S3, constant.MinIo: + varMap["accessKey"] = backupDto.AccessKey varMap["secretKey"] = backupDto.Credential } client, err := cloud_storage.NewCloudStorageClient(varMap) @@ -189,8 +193,10 @@ func (u *BackupService) NewClient(backup *model.BackupAccount) (cloud_storage.Cl varMap["bucket"] = backup.Bucket switch backup.Type { case constant.Sftp: + varMap["username"] = backup.AccessKey varMap["password"] = backup.Credential case constant.OSS, constant.S3, constant.MinIo: + varMap["accessKey"] = backup.AccessKey varMap["secretKey"] = backup.Credential } diff --git a/frontend/src/api/interface/backup.ts b/frontend/src/api/interface/backup.ts index 36802fcbc..d08cab9e2 100644 --- a/frontend/src/api/interface/backup.ts +++ b/frontend/src/api/interface/backup.ts @@ -4,13 +4,16 @@ export namespace Backup { export interface BackupInfo { id: number; type: string; + accessKey: string; bucket: string; + credential: string; vars: string; varsJson: object; } export interface BackupOperate { id: number; type: string; + accessKey: string; bucket: string; credential: string; vars: string; @@ -30,6 +33,7 @@ export namespace Backup { } export interface ForBucket { type: string; + accessKey: string; credential: string; vars: string; } diff --git a/frontend/src/api/modules/setting.ts b/frontend/src/api/modules/setting.ts index 0b1a785c8..5ce1d4205 100644 --- a/frontend/src/api/modules/setting.ts +++ b/frontend/src/api/modules/setting.ts @@ -6,11 +6,11 @@ export const getSettingInfo = () => { }; export const updateSetting = (param: Setting.SettingUpdate) => { - return http.post(`/settings`, param); + return http.post(`/settings/update`, param); }; export const updatePassword = (param: Setting.PasswordUpdate) => { - return http.post(`/settings/password`, param); + return http.post(`/settings/password/update`, param); }; export const handleExpired = (param: Setting.PasswordUpdate) => { @@ -18,7 +18,7 @@ export const handleExpired = (param: Setting.PasswordUpdate) => { }; export const syncTime = () => { - return http.post(`/settings/time/sync`, {}); + return http.post(`/settings/time/sync`, {}); }; export const cleanMonitors = () => { diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index 6d8f7a56e..b61897d5b 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -676,7 +676,7 @@ export default { sessionTimeoutError: 'The minimum timeout is 300 seconds', sessionTimeoutHelper: 'If you do not operate the panel for more than {0} seconds, the panel automatically logs out', - syncTime: 'Synchronization time', + syncTime: 'Server time', changePassword: 'Password change', oldPassword: 'Original password', newPassword: 'New password', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 1eda02563..6236e1583 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -689,7 +689,7 @@ export default { sessionTimeout: '超时时间', sessionTimeoutError: '最小超时时间为 300 秒', sessionTimeoutHelper: '如果用户超过 {0} 秒未操作面板,面板将自动退出登录', - syncTime: '同步时间', + syncTime: '服务器时间', changePassword: '密码修改', oldPassword: '原密码', newPassword: '新密码', diff --git a/frontend/src/routers/modules/setting.ts b/frontend/src/routers/modules/setting.ts index 9575d6f15..c5cad15f3 100644 --- a/frontend/src/routers/modules/setting.ts +++ b/frontend/src/routers/modules/setting.ts @@ -19,6 +19,51 @@ const settingRouter = { key: 'Setting', }, }, + { + path: '/setting/backupaccount', + name: 'BackupAccount', + component: () => import('@/views/setting/backup-account/index.vue'), + hidden: true, + meta: { + key: 'Setting', + }, + }, + { + path: '/setting/about', + name: 'About', + component: () => import('@/views/setting/about/index.vue'), + hidden: true, + meta: { + key: 'Setting', + }, + }, + { + path: '/setting/monitor', + name: 'Monitor', + component: () => import('@/views/setting/monitor/index.vue'), + hidden: true, + meta: { + key: 'Setting', + }, + }, + { + path: '/setting/panel', + name: 'Panel', + component: () => import('@/views/setting/panel/index.vue'), + hidden: true, + meta: { + key: 'Setting', + }, + }, + { + path: '/setting/safe', + name: 'Safe', + component: () => import('@/views/setting/safe/index.vue'), + hidden: true, + meta: { + key: 'Setting', + }, + }, { path: '/expired', name: 'Expired', diff --git a/frontend/src/views/setting/about/index.vue b/frontend/src/views/setting/about/index.vue new file mode 100644 index 000000000..ceac85863 --- /dev/null +++ b/frontend/src/views/setting/about/index.vue @@ -0,0 +1,54 @@ + + + diff --git a/frontend/src/views/setting/backup-account/index.vue b/frontend/src/views/setting/backup-account/index.vue new file mode 100644 index 000000000..e98ebccff --- /dev/null +++ b/frontend/src/views/setting/backup-account/index.vue @@ -0,0 +1,139 @@ + + diff --git a/frontend/src/views/setting/backup-account/operate/index.vue b/frontend/src/views/setting/backup-account/operate/index.vue new file mode 100644 index 000000000..72e322355 --- /dev/null +++ b/frontend/src/views/setting/backup-account/operate/index.vue @@ -0,0 +1,213 @@ + + + diff --git a/frontend/src/views/setting/index.vue b/frontend/src/views/setting/index.vue index e0b76428e..252d73cdc 100644 --- a/frontend/src/views/setting/index.vue +++ b/frontend/src/views/setting/index.vue @@ -1,144 +1,52 @@ diff --git a/frontend/src/views/setting/monitor/index.vue b/frontend/src/views/setting/monitor/index.vue new file mode 100644 index 000000000..8b4ffda05 --- /dev/null +++ b/frontend/src/views/setting/monitor/index.vue @@ -0,0 +1,107 @@ + + + diff --git a/frontend/src/views/setting/panel/index.vue b/frontend/src/views/setting/panel/index.vue new file mode 100644 index 000000000..45338dd00 --- /dev/null +++ b/frontend/src/views/setting/panel/index.vue @@ -0,0 +1,306 @@ + + + diff --git a/frontend/src/views/setting/tabs/safe.vue b/frontend/src/views/setting/safe/index.vue similarity index 75% rename from frontend/src/views/setting/tabs/safe.vue rename to frontend/src/views/setting/safe/index.vue index 8cb15afa9..fa82b0615 100644 --- a/frontend/src/views/setting/tabs/safe.vue +++ b/frontend/src/views/setting/safe/index.vue @@ -1,5 +1,6 @@