diff --git a/src/components/AutoDataForm/utils.js b/src/components/AutoDataForm/utils.js index 2e45d8404..0380f7f19 100644 --- a/src/components/AutoDataForm/utils.js +++ b/src/components/AutoDataForm/utils.js @@ -1,6 +1,5 @@ import Vue from 'vue' import Select2 from '@/components/FormFields/Select2' -import NestedField from '@/components/AutoDataForm/components/NestedField' import Swicher from '@/components/FormFields/Swicher' import rules from '@/components/DataForm/rules' import { assignIfNot } from '@/utils/common' @@ -34,6 +33,9 @@ export class FormFieldGenerator { if (fieldRemoteMeta.required) { field.el.clearable = false } + if (fieldRemoteMeta.child && fieldRemoteMeta.child.type === 'nested object') { + field.el.valueIsObj = true + } break case 'string': type = 'input' @@ -50,12 +52,8 @@ export class FormFieldGenerator { field.component = Swicher break case 'nested object': - type = 'nestedField' - field.component = NestedField - field.label = '' - field.labelWidth = 0 - field.el.fields = this.generateNestFields(field, fieldMeta, fieldRemoteMeta) - field.el.errors = {} + field.component = Select2 + field.el.valueIsObj = true Vue.$log.debug('All fields in generate: ', field.el.allFields) break default: diff --git a/src/components/FormFields/Select2.vue b/src/components/FormFields/Select2.vue index 0eb2eea26..4243275b7 100644 --- a/src/components/FormFields/Select2.vue +++ b/src/components/FormFields/Select2.vue @@ -2,8 +2,8 @@ ({ pk: v })) + } else { + value = { pk: val } + } + } + this.$log.debug('set iValue', value) + this.$emit('input', value) }, get() { return this.value @@ -197,9 +210,6 @@ export default { iAjax(newValue, oldValue) { this.$log.debug('Select url changed: ', oldValue, ' => ', newValue) this.refresh() - }, - value(iNew) { - this.iValue = iNew } }, async mounted() { @@ -325,7 +335,13 @@ export default { }) }, getSelectedOptions() { - const values = this.iValue + let values = this.iValue + if (!values) { + return this.multiple ? [] : '' + } + if (!this.multiple) { + values = [values] + } return this.iOptions.filter((v) => { return values.indexOf(v.value) !== -1 }) diff --git a/src/views/assets/Asset/AssetCreateUpdate.vue b/src/views/assets/Asset/AssetCreateUpdate.vue index a9804a12a..6d8abaabf 100644 --- a/src/views/assets/Asset/AssetCreateUpdate.vue +++ b/src/views/assets/Asset/AssetCreateUpdate.vue @@ -15,12 +15,12 @@ export default { return { initial: {}, fields: [ - [this.$t('common.Basic'), ['hostname', 'ip', 'platform', 'public_ip', 'domain']], - [this.$t('assets.Protocol'), ['protocols']], - [this.$t('assets.Node'), ['nodes']], - this.$route.params.id ? null : [this.$t('assets.Account'), ['accounts']], - [this.$t('assets.Label'), ['labels']], - [this.$t('common.Other'), ['is_active', 'comment']] + [this.$t('common.Basic'), ['hostname', 'ip', 'platform', 'domain']] + // [this.$t('assets.Protocol'), ['protocols']], + // [this.$t('assets.Node'), ['nodes']], + // this.$route.params.id ? null : [this.$t('assets.Account'), ['accounts']], + // [this.$t('assets.Label'), ['labels']], + // [this.$t('common.Other'), ['is_active', 'comment']] ], fieldsMeta: assetFieldsMeta(), url: '/api/v1/assets/assets/', diff --git a/src/views/assets/Host/HostCreateUpdate.vue b/src/views/assets/Host/HostCreateUpdate.vue index ea755a253..66d662847 100644 --- a/src/views/assets/Host/HostCreateUpdate.vue +++ b/src/views/assets/Host/HostCreateUpdate.vue @@ -4,7 +4,7 @@