diff --git a/src/components/AutoDataForm/index.vue b/src/components/AutoDataForm/index.vue index 471333fb2..7350eafc0 100644 --- a/src/components/AutoDataForm/index.vue +++ b/src/components/AutoDataForm/index.vue @@ -75,23 +75,38 @@ export default { type = '' field.component = Select2 break + case 'string': + type = 'input' + if (!fieldMeta.max_length) { + field.el.type = 'textarea' + } + break default: type = 'input' break } + if (type === 'radio-group') { + const options = fieldMeta.choices.map(v => { + return { label: v.display_name, value: v.value } + }) + if (options.length > 4) { + type = 'select' + field.el.filterable = true + } + } field.type = type return field }, generateFieldByName(name, field) { switch (name) { case 'email': - field.el = { type: 'email' } + field.el.type = 'email' break case 'password': - field.el = { type: 'password' } + field.el.type = 'password' break case 'comment': - field.el = { type: 'textarea' } + field.el.type = 'textarea' break } return field @@ -109,15 +124,16 @@ export default { return field }, generateField(name) { - let field = {} + let field = { id: name, prop: name, el: {}} const fieldMeta = this.meta[name] || {} - field.id = name - field.prop = name field.label = fieldMeta.label field = this.generateFieldByType(fieldMeta.type, field, fieldMeta) field = this.generateFieldByName(name, field) field = this.generateFieldByOther(field, fieldMeta) field = Object.assign(field, this.fieldsMeta[name] || {}) + if (name === 'name') { + console.log(field) + } return field }, generateFieldGroup(data) { diff --git a/src/components/AutoDataTable/index.vue b/src/components/AutoDataTable/index.vue index 60d91690e..2cf6e663f 100644 --- a/src/components/AutoDataTable/index.vue +++ b/src/components/AutoDataTable/index.vue @@ -4,7 +4,7 @@ diff --git a/src/views/users/UserGroupDetail/index.vue b/src/views/users/UserGroupDetail/index.vue index 8dfa51667..da789c9eb 100644 --- a/src/views/users/UserGroupDetail/index.vue +++ b/src/views/users/UserGroupDetail/index.vue @@ -1,5 +1,5 @@