From 6b953506e4bc8697834b8078f3de373d9b17fced Mon Sep 17 00:00:00 2001 From: ibuler Date: Mon, 14 Aug 2023 19:41:47 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E6=94=B9=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/i18n/langs/en.json | 9 + src/i18n/langs/ja.json | 9 + src/i18n/langs/zh.json | 9 + .../GenericCreateUpdateForm/index.vue | 8 +- src/router/common.js | 6 +- src/router/settings/index.js | 173 +++++++----------- .../settings/{ => Auth}/Ldap/ImportDialog.vue | 6 +- .../{ => Auth}/Ldap/SyncSettingDialog.vue | 2 +- .../{ => Auth}/Ldap/TestLoginDialog.vue | 10 +- src/views/settings/{ => Auth}/Ldap/index.vue | 8 +- src/views/settings/Auth/index.vue | 2 +- src/views/settings/Basic/Common.vue | 62 +++++++ src/views/settings/Basic/index.vue | 70 ++----- .../Announcement.vue} | 25 +-- src/views/settings/Feature/Basic.vue | 50 +++++ .../settings/{Vault => Feature}/Vault.vue | 4 +- src/views/settings/Feature/index.vue | 43 +++++ .../settings/{ => Msg}/Email/EmailContent.vue | 6 +- src/views/settings/{ => Msg}/Email/SMTP.vue | 2 +- src/views/settings/{ => Msg}/Email/index.vue | 25 ++- src/views/settings/{ => Msg}/SMS/Base.vue | 13 +- src/views/settings/{ => Msg}/SMS/CMPP2.vue | 2 +- .../settings/{ => Msg}/SMS/SMSAlibaba.vue | 2 +- .../settings/{ => Msg}/SMS/SMSCustom.vue | 2 +- .../settings/{ => Msg}/SMS/SMSHuawei.vue | 2 +- .../settings/{ => Msg}/SMS/SMSTencent.vue | 2 +- src/views/settings/{ => Msg}/SMS/index.vue | 20 +- .../Subscribe}/SelectDialog.vue | 2 +- .../{Message => Msg/Subscribe}/index.vue | 24 +-- src/views/settings/Msg/index.vue | 45 +++++ src/views/settings/Other.vue | 6 - src/views/settings/Security/Auth.vue | 85 +++++++++ src/views/settings/Security/AuthLimit.vue | 40 ++-- src/views/settings/Security/Basic.vue | 39 ++++ src/views/settings/Security/Password.vue | 61 ++++++ src/views/settings/Security/PasswordRule.vue | 63 ------- src/views/settings/Security/Session.vue | 40 ++++ src/views/settings/Security/index.vue | 124 ++++--------- .../Task}/CeleryTaskLog.vue | 0 src/views/settings/{ => Task}/Clean.vue | 16 +- .../Task}/TaskDetail/TaskDetail.vue | 2 +- .../Task}/TaskDetail/TaskHistory.vue | 2 +- .../Task}/TaskDetail/index.vue | 10 +- .../{tasks => settings/Task}/TaskList.vue | 6 +- src/views/settings/Task/index.vue | 38 ++++ src/views/settings/Tool/index.vue | 4 +- src/views/settings/Vault/Base.vue | 47 ----- src/views/settings/Vault/index.vue | 45 ----- 48 files changed, 731 insertions(+), 540 deletions(-) rename src/views/settings/{ => Auth}/Ldap/ImportDialog.vue (97%) rename src/views/settings/{ => Auth}/Ldap/SyncSettingDialog.vue (96%) rename src/views/settings/{ => Auth}/Ldap/TestLoginDialog.vue (96%) rename src/views/settings/{ => Auth}/Ldap/index.vue (95%) create mode 100644 src/views/settings/Basic/Common.vue rename src/views/settings/{Basic/announcement.vue => Feature/Announcement.vue} (64%) create mode 100644 src/views/settings/Feature/Basic.vue rename src/views/settings/{Vault => Feature}/Vault.vue (96%) create mode 100644 src/views/settings/Feature/index.vue rename src/views/settings/{ => Msg}/Email/EmailContent.vue (97%) rename src/views/settings/{ => Msg}/Email/SMTP.vue (98%) rename src/views/settings/{ => Msg}/Email/index.vue (85%) rename src/views/settings/{ => Msg}/SMS/Base.vue (90%) rename src/views/settings/{ => Msg}/SMS/CMPP2.vue (98%) rename src/views/settings/{ => Msg}/SMS/SMSAlibaba.vue (98%) rename src/views/settings/{ => Msg}/SMS/SMSCustom.vue (98%) rename src/views/settings/{ => Msg}/SMS/SMSHuawei.vue (98%) rename src/views/settings/{ => Msg}/SMS/SMSTencent.vue (98%) rename src/views/settings/{ => Msg}/SMS/index.vue (81%) rename src/views/settings/{Message => Msg/Subscribe}/SelectDialog.vue (98%) rename src/views/settings/{Message => Msg/Subscribe}/index.vue (96%) create mode 100644 src/views/settings/Msg/index.vue create mode 100644 src/views/settings/Security/Auth.vue create mode 100644 src/views/settings/Security/Basic.vue create mode 100644 src/views/settings/Security/Password.vue delete mode 100644 src/views/settings/Security/PasswordRule.vue create mode 100644 src/views/settings/Security/Session.vue rename src/views/{tasks => settings/Task}/CeleryTaskLog.vue (100%) rename src/views/settings/{ => Task}/Clean.vue (71%) rename src/views/{tasks => settings/Task}/TaskDetail/TaskDetail.vue (94%) rename src/views/{tasks => settings/Task}/TaskDetail/TaskHistory.vue (98%) rename src/views/{tasks => settings/Task}/TaskDetail/index.vue (90%) rename src/views/{tasks => settings/Task}/TaskList.vue (95%) create mode 100644 src/views/settings/Task/index.vue delete mode 100644 src/views/settings/Vault/Base.vue delete mode 100644 src/views/settings/Vault/index.vue diff --git a/src/i18n/langs/en.json b/src/i18n/langs/en.json index cc83ead99..e817bf9d0 100644 --- a/src/i18n/langs/en.json +++ b/src/i18n/langs/en.json @@ -1528,6 +1528,15 @@ } }, "setting": { + "TaskList": "Task list", + "Announcement": "Announcement", + "Features": "Features enable", + "PasswordRule": "Password rule", + "PasswordSecurity": "Password security", + "SessionSecurity": "Session security", + "AuthSecurity": "Auth security", + "MsgSubscribe": "Message subscribe", + "Message": "Message setting", "ServerTime": "Server time", "Custom": "Custom", "CleanHelpText": "Regular cleanup tasks will be executed at 2 o'clock in the morning every day, and the cleaned data cannot be recovered", diff --git a/src/i18n/langs/ja.json b/src/i18n/langs/ja.json index 2e6f5aa99..e0906cc5d 100644 --- a/src/i18n/langs/ja.json +++ b/src/i18n/langs/ja.json @@ -1523,6 +1523,15 @@ } }, "setting": { + "TaskList": "タスクリスト", + "Announcement": "公告", + "Features": "機能有効", + "PasswordRule": "パスワードルール", + "PasswordSecurity": "パスワードセキュリティ", + "SessionSecurity": "セッションセキュリティ", + "AuthSecurity": "認証とセキュリティ", + "MsgSubscribe": "メッセージ購読", + "Message": "メッセージ設定", "ServerTime": "サーバータイムです", "Custom": "カスタムです", "CleanHelpText": "定期清理タスクは毎日午前2時に実行され、クリーンアップ後のデータは復元できません", diff --git a/src/i18n/langs/zh.json b/src/i18n/langs/zh.json index e94d3c47a..cec5f57d7 100644 --- a/src/i18n/langs/zh.json +++ b/src/i18n/langs/zh.json @@ -1520,6 +1520,15 @@ "PublishStatus": "发布状态" }, "setting": { + "TaskList": "任务列表", + "Announcement": "公告", + "Features": "功能启用", + "PasswordRule": "密码规则", + "PasswordSecurity": "密码安全", + "SessionSecurity": "会话安全", + "AuthSecurity": "认证安全", + "MsgSubscribe": "消息订阅", + "Message": "消息通知", "Vault": "密钥匣子", "ServerTime": "服务器时间", "Custom": "自定义", diff --git a/src/layout/components/GenericCreateUpdateForm/index.vue b/src/layout/components/GenericCreateUpdateForm/index.vue index 3967d2b93..2ba67efbe 100644 --- a/src/layout/components/GenericCreateUpdateForm/index.vue +++ b/src/layout/components/GenericCreateUpdateForm/index.vue @@ -125,7 +125,7 @@ export default { }, // 获取提交的方法 submitMethod: { - type: Function, + type: [Function, String], default: function() { const params = this.$route.params if (params.id) { @@ -271,7 +271,11 @@ export default { }, computed: { method() { - return this.submitMethod(this) + if (this.submitMethod instanceof Function) { + return this.submitMethod(this) + } else { + return this.submitMethod + } }, iUrl() { // 更新或创建的url diff --git a/src/router/common.js b/src/router/common.js index adcc9de2f..bc24a53f0 100644 --- a/src/router/common.js +++ b/src/router/common.js @@ -7,7 +7,7 @@ import i18n from '@/i18n/i18n' export default [ { path: '/ops/celery/task/:id/log/', - component: () => import('@/views/tasks/CeleryTaskLog'), + component: () => import('@/views/settings/Task/CeleryTaskLog'), name: 'CeleryTaskLog', hidden: true, meta: { @@ -17,7 +17,7 @@ export default [ }, { path: '/ops/ansible/task/:id/log/', - component: () => import('@/views/tasks/CeleryTaskLog'), + component: () => import('@/views/settings/Task/CeleryTaskLog'), name: 'AnsibleTaskLog', hidden: true, meta: { @@ -27,7 +27,7 @@ export default [ }, { path: '/ops/task/task/:id/log/', - component: () => import('@/views/tasks/CeleryTaskLog'), + component: () => import('@/views/settings/Task/CeleryTaskLog'), name: 'TaskLog', hidden: true, meta: { diff --git a/src/router/settings/index.js b/src/router/settings/index.js index 2821b4c00..e69bbc6d1 100644 --- a/src/router/settings/index.js +++ b/src/router/settings/index.js @@ -30,11 +30,76 @@ export default { } }, { - path: '/settings/email', - name: 'Email', - component: () => import('@/views/settings/Email'), + path: '/settings/orgs', + component: empty, + redirect: '', meta: { - title: i18n.t('setting.Email'), + app: 'orgs', + resource: 'organization', + permissions: ['orgs.view_organization'], + licenseRequired: true + }, + children: [ + { + path: '', + component: () => import('@/views/settings/Org/OrganizationList'), + name: 'OrganizationList', + meta: { + title: i18n.t('xpack.Organization.OrganizationList'), + icon: 'organization-set', + permissions: ['orgs.view_organization'] + } + }, + { + path: 'create', + component: () => import('@/views/settings/Org/OrganizationCreateUpdate'), + name: 'OrganizationCreate', + hidden: true, + meta: { + title: i18n.t('xpack.Organization.OrganizationCreate'), + action: 'create', + permissions: ['orgs.add_organization'] + } + }, + { + path: ':id/update', + component: () => import('@/views/settings/Org/OrganizationCreateUpdate'), + name: 'OrganizationUpdate', + hidden: true, + meta: { + title: i18n.t('xpack.Organization.OrganizationUpdate'), + action: 'update', + permissions: ['orgs.change_organization'] + } + }, + { + path: ':id', + component: () => import('@/views/settings/Org/OrganizationDetail/index'), + name: 'OrganizationDetail', + hidden: true, + meta: { + title: i18n.t('xpack.Organization.OrganizationDetail'), + permissions: ['orgs.view_organization'] + } + } + ] + }, + { + path: '/settings/msg', + name: 'Msg', + component: () => import('@/views/settings/Msg'), + meta: { + title: i18n.t('setting.Message'), + icon: 'email-set', + permissions: ['settings.change_email'] + } + }, + { + path: '/settings/features', + name: 'Feature', + component: () => import('@/views/settings/Feature'), + meta: { + title: i18n.t('setting.Features'), icon: 'email-set', permissions: ['settings.change_email'] } @@ -49,37 +114,6 @@ export default { permissions: ['settings.change_auth'] } }, - { - path: '/settings/vault', - name: 'Vault', - component: () => import('@/views/settings/Vault'), - meta: { - title: i18n.t('setting.Vault'), - icon: 'security', - permissions: ['settings.change_vault'] - } - }, - { - path: '/settings/message', - name: 'SysMessageSub', - component: () => import('@/views/settings/Message'), - meta: { - title: i18n.t('setting.MessageSub'), - icon: 'remind', - permissions: ['settings.change_systemmsgsubscription'] - } - }, - { - path: '/settings/sms', - name: 'SMS', - component: () => import('@/views/settings/SMS'), - meta: { - title: i18n.t('setting.SMS'), - icon: 'short-message', - permissions: ['settings.change_sms'], - licenseRequired: true - } - }, { path: '/settings/terminal', component: empty, @@ -286,16 +320,6 @@ export default { permissions: ['settings.change_security'] } }, - { - path: '/settings/clean', - name: 'Clean', - component: () => import('@/views/settings/Clean'), - meta: { - title: i18n.t('setting.Cleaning'), - icon: 'clean', - permissions: ['settings.change_clean'] - } - }, { path: '/settings/interface', name: 'Interface', @@ -307,61 +331,6 @@ export default { permissions: ['settings.change_interface'] } }, - { - path: '/settings/orgs', - component: empty, - redirect: '', - meta: { - app: 'orgs', - resource: 'organization', - permissions: ['orgs.view_organization'], - licenseRequired: true - }, - children: [ - { - path: '', - component: () => import('@/views/settings/Org/OrganizationList'), - name: 'OrganizationList', - meta: { - title: i18n.t('xpack.Organization.OrganizationList'), - icon: 'organization-set', - permissions: ['orgs.view_organization'] - } - }, - { - path: 'create', - component: () => import('@/views/settings/Org/OrganizationCreateUpdate'), - name: 'OrganizationCreate', - hidden: true, - meta: { - title: i18n.t('xpack.Organization.OrganizationCreate'), - action: 'create', - permissions: ['orgs.add_organization'] - } - }, - { - path: ':id/update', - component: () => import('@/views/settings/Org/OrganizationCreateUpdate'), - name: 'OrganizationUpdate', - hidden: true, - meta: { - title: i18n.t('xpack.Organization.OrganizationUpdate'), - action: 'update', - permissions: ['orgs.change_organization'] - } - }, - { - path: ':id', - component: () => import('@/views/settings/Org/OrganizationDetail/index'), - name: 'OrganizationDetail', - hidden: true, - meta: { - title: i18n.t('xpack.Organization.OrganizationDetail'), - permissions: ['orgs.view_organization'] - } - } - ] - }, { path: '/settings/tools', @@ -385,7 +354,7 @@ export default { { path: '', name: 'TaskList', - component: () => import('@/views/tasks/TaskList'), + component: () => import('@/views/settings/Task/index.vue'), meta: { title: i18n.t('route.TaskList'), permissions: ['ops.view_celerytask'] @@ -393,7 +362,7 @@ export default { }, { path: ':id', - component: () => import('@/views/tasks/TaskDetail'), + component: () => import('@/views/settings/Task/TaskDetail'), name: 'TaskDetail', hidden: true, meta: { diff --git a/src/views/settings/Ldap/ImportDialog.vue b/src/views/settings/Auth/Ldap/ImportDialog.vue similarity index 97% rename from src/views/settings/Ldap/ImportDialog.vue rename to src/views/settings/Auth/Ldap/ImportDialog.vue index dd171ea68..e0285b201 100644 --- a/src/views/settings/Ldap/ImportDialog.vue +++ b/src/views/settings/Auth/Ldap/ImportDialog.vue @@ -43,9 +43,9 @@ + + diff --git a/src/views/settings/Basic/index.vue b/src/views/settings/Basic/index.vue index 03beaaeb8..a0d8d66d1 100644 --- a/src/views/settings/Basic/index.vue +++ b/src/views/settings/Basic/index.vue @@ -1,68 +1,32 @@ - diff --git a/src/views/settings/Basic/announcement.vue b/src/views/settings/Feature/Announcement.vue similarity index 64% rename from src/views/settings/Basic/announcement.vue rename to src/views/settings/Feature/Announcement.vue index 32efb6649..19bb37ab1 100644 --- a/src/views/settings/Basic/announcement.vue +++ b/src/views/settings/Feature/Announcement.vue @@ -1,29 +1,18 @@ + + diff --git a/src/views/settings/Vault/Vault.vue b/src/views/settings/Feature/Vault.vue similarity index 96% rename from src/views/settings/Vault/Vault.vue rename to src/views/settings/Feature/Vault.vue index b9c2f1180..674105b83 100644 --- a/src/views/settings/Vault/Vault.vue +++ b/src/views/settings/Feature/Vault.vue @@ -1,6 +1,6 @@ + + diff --git a/src/views/settings/Other.vue b/src/views/settings/Other.vue index dc227d04f..649e47ef2 100644 --- a/src/views/settings/Other.vue +++ b/src/views/settings/Other.vue @@ -31,12 +31,6 @@ export default { 'EMAIL_SUFFIX' ] ], - [ - this.$t('setting.OTP'), - [ - 'OTP_ISSUER_NAME', 'OTP_VALID_WINDOW' - ] - ], [ this.$t('setting.Perm'), [ diff --git a/src/views/settings/Security/Auth.vue b/src/views/settings/Security/Auth.vue new file mode 100644 index 000000000..bf7bd514f --- /dev/null +++ b/src/views/settings/Security/Auth.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/views/settings/Security/AuthLimit.vue b/src/views/settings/Security/AuthLimit.vue index b4891135f..7695b9bb3 100644 --- a/src/views/settings/Security/AuthLimit.vue +++ b/src/views/settings/Security/AuthLimit.vue @@ -1,40 +1,26 @@ + + diff --git a/src/views/settings/Security/Password.vue b/src/views/settings/Security/Password.vue new file mode 100644 index 000000000..7589d53d4 --- /dev/null +++ b/src/views/settings/Security/Password.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/src/views/settings/Security/PasswordRule.vue b/src/views/settings/Security/PasswordRule.vue deleted file mode 100644 index 4cedf9ce7..000000000 --- a/src/views/settings/Security/PasswordRule.vue +++ /dev/null @@ -1,63 +0,0 @@ - - - - - diff --git a/src/views/settings/Security/Session.vue b/src/views/settings/Security/Session.vue new file mode 100644 index 000000000..8cb9db712 --- /dev/null +++ b/src/views/settings/Security/Session.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/src/views/settings/Security/index.vue b/src/views/settings/Security/index.vue index 63e048290..8fed8cf58 100644 --- a/src/views/settings/Security/index.vue +++ b/src/views/settings/Security/index.vue @@ -1,110 +1,52 @@ + - diff --git a/src/views/tasks/CeleryTaskLog.vue b/src/views/settings/Task/CeleryTaskLog.vue similarity index 100% rename from src/views/tasks/CeleryTaskLog.vue rename to src/views/settings/Task/CeleryTaskLog.vue diff --git a/src/views/settings/Clean.vue b/src/views/settings/Task/Clean.vue similarity index 71% rename from src/views/settings/Clean.vue rename to src/views/settings/Task/Clean.vue index 291627233..a6e52ebad 100644 --- a/src/views/settings/Clean.vue +++ b/src/views/settings/Task/Clean.vue @@ -1,20 +1,17 @@ + + diff --git a/src/views/settings/Tool/index.vue b/src/views/settings/Tool/index.vue index 111579912..ed7c64abd 100644 --- a/src/views/settings/Tool/index.vue +++ b/src/views/settings/Tool/index.vue @@ -1,7 +1,7 @@