From eb00b5f1cafba542c104168ce3fa05d439e61217 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Chuailei000=E2=80=9D?= <2280131253@qq.com> Date: Mon, 29 Aug 2022 18:18:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=9B=E5=BB=BA=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E9=A1=B5=E9=9D=A2=EF=BC=9B=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/i18n/langs/zh.json | 2 + src/router/console/assets.js | 102 +++++- .../CloudsPlatformCreateUpdate.vue | 72 +++++ .../DatabaseCreateUpdate.vue | 30 +- .../AssetCreateUpdate}/HostCreateUpdate.vue | 2 +- .../NetworkingCreateUpdate.vue | 65 ++++ .../AssetCreateUpdate/WebCreateUpdate.vue | 65 ++++ src/views/assets/Asset/AssetList/AllList.vue | 295 +++++++++++++++++ .../Asset/AssetList/CloudsPlatformList.vue | 37 +++ .../assets/Asset/AssetList/DatabaseList.vue | 42 +++ src/views/assets/Asset/AssetList/HostList.vue | 31 ++ .../assets/Asset/AssetList/NetworkList.vue | 31 ++ src/views/assets/Asset/AssetList/WebList.vue | 31 ++ .../AssetBulkUpdateDialog.vue | 0 .../AssetList/components/BaseList.vue} | 62 +++- .../NodeAssetsUpdateDialog.vue | 0 .../{ => components}/PlatformDialog.vue | 1 + .../AssetList/{ => components}/TreeMenu.vue | 0 src/views/assets/Asset/AssetList/index.vue | 306 ++---------------- src/views/assets/Host/HostList.vue | 107 ------ 20 files changed, 876 insertions(+), 405 deletions(-) create mode 100644 src/views/assets/Asset/AssetCreateUpdate/CloudsPlatformCreateUpdate.vue rename src/views/assets/{Database => Asset/AssetCreateUpdate}/DatabaseCreateUpdate.vue (53%) rename src/views/assets/{Host => Asset/AssetCreateUpdate}/HostCreateUpdate.vue (97%) create mode 100644 src/views/assets/Asset/AssetCreateUpdate/NetworkingCreateUpdate.vue create mode 100644 src/views/assets/Asset/AssetCreateUpdate/WebCreateUpdate.vue create mode 100644 src/views/assets/Asset/AssetList/AllList.vue create mode 100644 src/views/assets/Asset/AssetList/CloudsPlatformList.vue create mode 100644 src/views/assets/Asset/AssetList/DatabaseList.vue create mode 100644 src/views/assets/Asset/AssetList/HostList.vue create mode 100644 src/views/assets/Asset/AssetList/NetworkList.vue create mode 100644 src/views/assets/Asset/AssetList/WebList.vue rename src/views/assets/Asset/AssetList/{ => components}/AssetBulkUpdateDialog.vue (100%) rename src/views/assets/{Database/HostList.vue => Asset/AssetList/components/BaseList.vue} (63%) rename src/views/assets/Asset/AssetList/{ => components}/NodeAssetsUpdateDialog.vue (100%) rename src/views/assets/Asset/AssetList/{ => components}/PlatformDialog.vue (99%) rename src/views/assets/Asset/AssetList/{ => components}/TreeMenu.vue (100%) delete mode 100644 src/views/assets/Host/HostList.vue diff --git a/src/i18n/langs/zh.json b/src/i18n/langs/zh.json index 5c044d801..9495938a3 100644 --- a/src/i18n/langs/zh.json +++ b/src/i18n/langs/zh.json @@ -96,6 +96,8 @@ "NoSQLProtocol": "非关系数据库" }, "assets": { + "All": "所有", + "CloudPlatform": "云平台", "AddAccount": "添加账号", "Account": "账号", "Defaults": "默认值", diff --git a/src/router/console/assets.js b/src/router/console/assets.js index 02a59fcd4..8106c6807 100644 --- a/src/router/console/assets.js +++ b/src/router/console/assets.js @@ -55,21 +55,21 @@ export default [ { path: '', name: 'HostList', - component: () => import('@/views/assets/Host/HostList.vue'), + component: () => import('@/views/assets/Asset/AssetList/HostList.vue'), hidden: true, meta: { title: i18n.t('route.HostList'), activeMenu: '/console/assets/assets' } }, { path: 'create', name: 'HostCreate', - component: () => import('@/views/assets/Host/HostCreateUpdate.vue'), + component: () => import('@/views/assets/Asset/AssetCreateUpdate/HostCreateUpdate.vue'), hidden: true, meta: { title: i18n.t('route.AssetCreate'), activeMenu: '/console/assets/assets' } }, { path: ':id/update', name: 'HostUpdate', - component: () => import('@/views/assets/Host/HostCreateUpdate.vue'), + component: () => import('@/views/assets/Asset/AssetCreateUpdate/HostCreateUpdate.vue'), hidden: true, meta: { title: i18n.t('route.AssetUpdate'), activeMenu: '/console/assets/assets' } } @@ -85,21 +85,111 @@ export default [ { path: '', name: 'DatabaseList', - component: () => import('@/views/assets/Database/HostList.vue'), + component: () => import('@/views/assets/Asset/AssetList/DatabaseList.vue'), hidden: true, meta: { title: i18n.t('route.HostList'), activeMenu: '/console/assets/assets' } }, { path: 'create', name: 'DatabaseCreate', - component: () => import('@/views/assets/Database/DatabaseCreateUpdate.vue'), + component: () => import('@/views/assets/Asset/AssetCreateUpdate/DatabaseCreateUpdate.vue'), hidden: true, meta: { title: i18n.t('route.AssetCreate'), activeMenu: '/console/assets/assets' } }, { path: ':id/update', name: 'DatabaseUpdate', - component: () => import('@/views/assets/Database/DatabaseCreateUpdate.vue'), + component: () => import('@/views/assets/Asset/AssetCreateUpdate/DatabaseCreateUpdate.vue'), + hidden: true, + meta: { title: i18n.t('route.AssetUpdate'), activeMenu: '/console/assets/assets' } + } + ] + }, + { + path: 'networking', + component: empty, + redirect: '', + hidden: true, + meta: { title: i18n.t('route.networking'), permissions: ['assets.view_asset'] }, + children: [ + { + path: '', + name: 'DatabaseList', + component: () => import('@/views/assets/Asset/AssetList/NetworkList.vue'), + hidden: true, + meta: { title: i18n.t('route.HostList'), activeMenu: '/console/assets/assets' } + }, + { + path: 'create', + name: 'DatabaseCreate', + component: () => import('@/views/assets/Asset/AssetCreateUpdate/NetworkingCreateUpdate.vue'), + hidden: true, + meta: { title: i18n.t('route.AssetCreate'), activeMenu: '/console/assets/assets' } + }, + { + path: ':id/update', + name: 'DatabaseUpdate', + component: () => import('@/views/assets/Asset/AssetCreateUpdate/NetworkingCreateUpdate.vue'), + hidden: true, + meta: { title: i18n.t('route.AssetUpdate'), activeMenu: '/console/assets/assets' } + } + ] + }, + { + path: 'CloudCreate', + component: empty, + redirect: '', + hidden: true, + meta: { title: i18n.t('route.networking'), permissions: ['assets.view_asset'] }, + children: [ + { + path: '', + name: 'CloudsPlatformList', + component: () => import('@/views/assets/Asset/AssetList/CloudsPlatformList.vue'), + hidden: true, + meta: { title: i18n.t('route.HostList'), activeMenu: '/console/assets/assets' } + }, + { + path: 'create', + name: 'CloudCreate', + component: () => import('@/views/assets/Asset/AssetCreateUpdate/CloudsPlatformCreateUpdate.vue'), + hidden: true, + meta: { title: i18n.t('route.AssetCreate'), activeMenu: '/console/assets/assets' } + }, + { + path: ':id/update', + name: 'CloudCreate', + component: () => import('@/views/assets/Asset/AssetCreateUpdate/CloudsPlatformCreateUpdate.vue'), + hidden: true, + meta: { title: i18n.t('route.AssetUpdate'), activeMenu: '/console/assets/assets' } + } + ] + }, + { + path: 'web', + component: empty, + redirect: '', + hidden: true, + meta: { title: i18n.t('route.networking'), permissions: ['assets.view_asset'] }, + children: [ + { + path: '', + name: 'WebList', + component: () => import('@/views/assets/Asset/AssetList/WebList.vue'), + hidden: true, + meta: { title: i18n.t('route.HostList'), activeMenu: '/console/assets/assets' } + }, + { + path: 'create', + name: 'WebCreate', + component: () => import('@/views/assets/Asset/AssetCreateUpdate/WebCreateUpdate.vue'), + hidden: true, + meta: { title: i18n.t('route.AssetCreate'), activeMenu: '/console/assets/assets' } + }, + { + path: ':id/update', + name: 'WebUpdate', + component: () => import('@/views/assets/Asset/AssetCreateUpdate/WebCreateUpdate.vue'), hidden: true, meta: { title: i18n.t('route.AssetUpdate'), activeMenu: '/console/assets/assets' } } diff --git a/src/views/assets/Asset/AssetCreateUpdate/CloudsPlatformCreateUpdate.vue b/src/views/assets/Asset/AssetCreateUpdate/CloudsPlatformCreateUpdate.vue new file mode 100644 index 000000000..d4553e919 --- /dev/null +++ b/src/views/assets/Asset/AssetCreateUpdate/CloudsPlatformCreateUpdate.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/src/views/assets/Database/DatabaseCreateUpdate.vue b/src/views/assets/Asset/AssetCreateUpdate/DatabaseCreateUpdate.vue similarity index 53% rename from src/views/assets/Database/DatabaseCreateUpdate.vue rename to src/views/assets/Asset/AssetCreateUpdate/DatabaseCreateUpdate.vue index fcdb76d30..d4553e919 100644 --- a/src/views/assets/Database/DatabaseCreateUpdate.vue +++ b/src/views/assets/Asset/AssetCreateUpdate/DatabaseCreateUpdate.vue @@ -29,15 +29,39 @@ export default { createSuccessNextRoute: { name: 'AssetDetail' }, hasDetailInMsg: false, fields: [ - [this.$t('common.Basic'), ['platform', 'hostname', 'ip', 'port', 'db_name']], + [this.$t('common.Basic'), ['name', 'ip', 'platform', 'db_name']], + [this.$t('assets.Protocols'), ['protocols']], [this.$t('assets.Domain'), ['domain']], [this.$t('assets.Node'), ['nodes']], [this.$t('assets.Label'), ['labels']], [this.$t('common.Other'), ['is_active', 'comment']] ], - fieldsMeta: { - ...assetFieldsMeta + fieldsMeta: assetFieldsMeta(this) + } + }, + mounted() { + this.setPlatformInitial() + }, + methods: { + async setPlatformInitial() { + const nodesInitial = [] + if (this.$route.query['node']) { + nodesInitial.push(this.$route.query.node) } + const platformId = this.$route.query['platform'] || 1 + const url = `/api/v1/assets/platforms/${platformId}/` + this.platform = await this.$axios.get(url) + const initial = { + is_active: true, + platform: parseInt(platformId), + protocols: this.platform.protocols_default, + nodes: nodesInitial, + domain: this.platform.domain_default + } + const constraints = this.platform['type_constraints'] + this.fieldsMeta.protocols.el.choices = constraints['protocols'] + this.initial = initial + this.loading = false } } } diff --git a/src/views/assets/Host/HostCreateUpdate.vue b/src/views/assets/Asset/AssetCreateUpdate/HostCreateUpdate.vue similarity index 97% rename from src/views/assets/Host/HostCreateUpdate.vue rename to src/views/assets/Asset/AssetCreateUpdate/HostCreateUpdate.vue index 3c7a8f459..a50b656f8 100644 --- a/src/views/assets/Host/HostCreateUpdate.vue +++ b/src/views/assets/Asset/AssetCreateUpdate/HostCreateUpdate.vue @@ -4,7 +4,7 @@ + + diff --git a/src/views/assets/Asset/AssetCreateUpdate/WebCreateUpdate.vue b/src/views/assets/Asset/AssetCreateUpdate/WebCreateUpdate.vue new file mode 100644 index 000000000..a50b656f8 --- /dev/null +++ b/src/views/assets/Asset/AssetCreateUpdate/WebCreateUpdate.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/views/assets/Asset/AssetList/AllList.vue b/src/views/assets/Asset/AssetList/AllList.vue new file mode 100644 index 000000000..e7b556ee9 --- /dev/null +++ b/src/views/assets/Asset/AssetList/AllList.vue @@ -0,0 +1,295 @@ + + + + + diff --git a/src/views/assets/Asset/AssetList/CloudsPlatformList.vue b/src/views/assets/Asset/AssetList/CloudsPlatformList.vue new file mode 100644 index 000000000..ba0f13d92 --- /dev/null +++ b/src/views/assets/Asset/AssetList/CloudsPlatformList.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/views/assets/Asset/AssetList/DatabaseList.vue b/src/views/assets/Asset/AssetList/DatabaseList.vue new file mode 100644 index 000000000..f96465065 --- /dev/null +++ b/src/views/assets/Asset/AssetList/DatabaseList.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/src/views/assets/Asset/AssetList/HostList.vue b/src/views/assets/Asset/AssetList/HostList.vue new file mode 100644 index 000000000..fa6f990f7 --- /dev/null +++ b/src/views/assets/Asset/AssetList/HostList.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/src/views/assets/Asset/AssetList/NetworkList.vue b/src/views/assets/Asset/AssetList/NetworkList.vue new file mode 100644 index 000000000..453906355 --- /dev/null +++ b/src/views/assets/Asset/AssetList/NetworkList.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/src/views/assets/Asset/AssetList/WebList.vue b/src/views/assets/Asset/AssetList/WebList.vue new file mode 100644 index 000000000..da95f5e99 --- /dev/null +++ b/src/views/assets/Asset/AssetList/WebList.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/src/views/assets/Asset/AssetList/AssetBulkUpdateDialog.vue b/src/views/assets/Asset/AssetList/components/AssetBulkUpdateDialog.vue similarity index 100% rename from src/views/assets/Asset/AssetList/AssetBulkUpdateDialog.vue rename to src/views/assets/Asset/AssetList/components/AssetBulkUpdateDialog.vue diff --git a/src/views/assets/Database/HostList.vue b/src/views/assets/Asset/AssetList/components/BaseList.vue similarity index 63% rename from src/views/assets/Database/HostList.vue rename to src/views/assets/Asset/AssetList/components/BaseList.vue index f0e5a4193..fa6cbe878 100644 --- a/src/views/assets/Database/HostList.vue +++ b/src/views/assets/Asset/AssetList/components/BaseList.vue @@ -1,40 +1,61 @@ diff --git a/src/views/assets/Asset/AssetList/NodeAssetsUpdateDialog.vue b/src/views/assets/Asset/AssetList/components/NodeAssetsUpdateDialog.vue similarity index 100% rename from src/views/assets/Asset/AssetList/NodeAssetsUpdateDialog.vue rename to src/views/assets/Asset/AssetList/components/NodeAssetsUpdateDialog.vue diff --git a/src/views/assets/Asset/AssetList/PlatformDialog.vue b/src/views/assets/Asset/AssetList/components/PlatformDialog.vue similarity index 99% rename from src/views/assets/Asset/AssetList/PlatformDialog.vue rename to src/views/assets/Asset/AssetList/components/PlatformDialog.vue index 7dc162a83..b6c0f1800 100644 --- a/src/views/assets/Asset/AssetList/PlatformDialog.vue +++ b/src/views/assets/Asset/AssetList/components/PlatformDialog.vue @@ -128,6 +128,7 @@ export default { host: 'HostCreate', database: 'DatabaseCreate', cloud: 'CloudCreate', + web: 'WebCreate', remote_app: 'RemoteAppCreate' } const route = mapper[platform.category.value] || 'HostCreate' diff --git a/src/views/assets/Asset/AssetList/TreeMenu.vue b/src/views/assets/Asset/AssetList/components/TreeMenu.vue similarity index 100% rename from src/views/assets/Asset/AssetList/TreeMenu.vue rename to src/views/assets/Asset/AssetList/components/TreeMenu.vue diff --git a/src/views/assets/Asset/AssetList/index.vue b/src/views/assets/Asset/AssetList/index.vue index cb32d08a1..9635e2da3 100644 --- a/src/views/assets/Asset/AssetList/index.vue +++ b/src/views/assets/Asset/AssetList/index.vue @@ -1,306 +1,66 @@ - diff --git a/src/views/assets/Host/HostList.vue b/src/views/assets/Host/HostList.vue deleted file mode 100644 index f0e5a4193..000000000 --- a/src/views/assets/Host/HostList.vue +++ /dev/null @@ -1,107 +0,0 @@ - - - - -