From 36bb2cf62fd33266677c91eee78f1944ed10cb71 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 5 May 2022 16:17:35 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E6=94=B9=20base=20model?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FormFields/ProtocolSelector.vue | 2 +- src/styles/element-ui.scss | 5 +++ src/views/assets/Asset/AssetCreateUpdate.vue | 37 ++++++++++++++----- src/views/assets/Host/HostCreateUpdate.vue | 4 +- 4 files changed, 36 insertions(+), 12 deletions(-) diff --git a/src/components/FormFields/ProtocolSelector.vue b/src/components/FormFields/ProtocolSelector.vue index 071bb7833..6eb7dc818 100644 --- a/src/components/FormFields/ProtocolSelector.vue +++ b/src/components/FormFields/ProtocolSelector.vue @@ -118,7 +118,7 @@ export default { return { name: proto[0], port: proto[1] } }) const protocolsNames = this.protocols.map(item => item.name) - items = items.filter(item => protocolsNames[item.name]) + items = items.filter(item => protocolsNames.indexOf(item.name) > -1) } if (items.length === 0) { items.push({ ...this.protocols[0] }) diff --git a/src/styles/element-ui.scss b/src/styles/element-ui.scss index ff5d1b3df..6c2fbc4e2 100644 --- a/src/styles/element-ui.scss +++ b/src/styles/element-ui.scss @@ -496,3 +496,8 @@ a { .el-input-group__append, .el-input-group__prepend { color: $--color-primary } + +.el-input.is-disabled .el-input__inner { + color: $--color-text-primary; + cursor: not-allowed; +} diff --git a/src/views/assets/Asset/AssetCreateUpdate.vue b/src/views/assets/Asset/AssetCreateUpdate.vue index a6cbe1785..ac17d50b5 100644 --- a/src/views/assets/Asset/AssetCreateUpdate.vue +++ b/src/views/assets/Asset/AssetCreateUpdate.vue @@ -12,17 +12,8 @@ export default { GenericCreateUpdatePage }, data() { - const nodesInitial = [] - if (this.$route.query['node']) { - nodesInitial.push(this.$route.query.node) - } return { - initial: { - is_active: true, - platform: 'Linux', - protocols: ['ssh/22'], - nodes: nodesInitial - }, + initial: {}, fields: [ [this.$t('common.Basic'), ['hostname', 'ip', 'platform', 'public_ip', 'domain']], [this.$t('assets.Protocols'), ['protocols']], @@ -36,6 +27,32 @@ export default { createSuccessNextRoute: { name: 'AssetDetail' }, hasDetailInMsg: false } + }, + 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 || ['ssh/22'], + nodes: nodesInitial, + domain: this.platform['domain_default'], + admin_user: this.platform['admin_user_default'] + } + const limits = this.platform['type_limits'] + this.fieldsMeta.protocols.el.choices = limits['protocols_limit'] + this.initial = initial + this.loading = false + } } } diff --git a/src/views/assets/Host/HostCreateUpdate.vue b/src/views/assets/Host/HostCreateUpdate.vue index f43035ea8..ea755a253 100644 --- a/src/views/assets/Host/HostCreateUpdate.vue +++ b/src/views/assets/Host/HostCreateUpdate.vue @@ -48,9 +48,11 @@ export default { platform: parseInt(platformId), protocols: this.platform.protocols_default || ['ssh/22'], nodes: nodesInitial, + domain: this.platform['domain_default'], admin_user: this.platform['admin_user_default'] } - this.fieldsMeta.protocols.el.choices = this.platform + const limits = this.platform['type_limits'] + this.fieldsMeta.protocols.el.choices = limits['protocols_limit'] this.initial = initial this.loading = false }