From f895e8af9e6a393f71fec0dc26fdf1b9b6616cb4 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 11 十二月 2020 18:53:04 +0800 Subject: [PATCH] 2020-12-11 --- src/templates/zshare/modalform/index.jsx | 47 +++++++++++++++++++++++++++++++++++------------ 1 files changed, 35 insertions(+), 12 deletions(-) diff --git a/src/templates/zshare/modalform/index.jsx b/src/templates/zshare/modalform/index.jsx index 58d33b1..eb7b333 100644 --- a/src/templates/zshare/modalform/index.jsx +++ b/src/templates/zshare/modalform/index.jsx @@ -14,14 +14,14 @@ const { TextArea } = Input const modalTypeOptions = { - text: ['initval', 'readonly', 'required', 'hidden', 'readin', 'fieldlength', 'regular', 'interception', 'entireLine', 'tooltip'], - number: ['initval', 'readonly', 'hidden', 'decimal', 'min', 'max', 'readin', 'entireLine', 'tooltip'], - select: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'setAll', 'linkSubField', 'entireLine', 'tooltip', 'emptyText'], + text: ['initval', 'readonly', 'required', 'hidden', 'readin', 'fieldlength', 'regular', 'interception', 'entireLine', 'tooltip', 'enter'], + number: ['initval', 'readonly', 'hidden', 'decimal', 'min', 'max', 'readin', 'entireLine', 'tooltip', 'enter'], + select: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'setAll', 'linkSubField', 'entireLine', 'tooltip', 'emptyText', 'enter'], checkbox: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'entireLine', 'tooltip'], radio: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'linkSubField', 'entireLine', 'tooltip', 'setAll', 'emptyText'], checkcard: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'linkSubField', 'fieldlength', 'display', 'tooltip', 'width', 'multiple'], multiselect: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'fieldlength', 'entireLine', 'tooltip'], - link: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'setAll', 'linkField', 'entireLine', 'tooltip', 'emptyText'], + link: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'setAll', 'linkField', 'entireLine', 'tooltip', 'emptyText', 'enter'], fileupload: ['readonly', 'required', 'readin', 'fieldlength', 'maxfile', 'fileType', 'entireLine', 'tooltip'], switch: ['initval', 'openVal', 'closeVal', 'readonly', 'hidden', 'readin', 'entireLine', 'tooltip'], date: ['initval', 'readonly', 'required', 'hidden', 'readin', 'entireLine', 'tooltip'], @@ -47,6 +47,7 @@ resourceType: null, supField: '', display: 'text', + enter: '', cFields: [], formlist: null, linkSubFields: null @@ -59,6 +60,7 @@ let resourceType = '' let supField = '' let display = '' + let enter = '' let cFields = [] let linkSubFields = [] @@ -67,6 +69,8 @@ type = cell.initVal } else if (cell.key === 'display') { display = cell.initVal + } else if (cell.key === 'enter') { + enter = cell.initVal } else if (cell.key === 'fields') { cFields = cell.initVal } else if (cell.key === 'resourceType') { @@ -86,9 +90,10 @@ } }) - let _options = this.getOptions(type, resourceType, supField, display) + let _options = this.getOptions(type, resourceType, supField, display, enter) this.setState({ + enter: enter, openType: type, supField: supField, display: display, @@ -136,7 +141,7 @@ } } - getOptions = (type, resourceType, supField, display) => { + getOptions = (type, resourceType, supField, display, enter) => { let _options = ['label', 'field', 'type', 'blacklist', 'writein', ...fromJS(modalTypeOptions[type]).toJS()] if (type === 'hint') { @@ -163,6 +168,12 @@ } } + if (type === 'text' || type === 'number' || type === 'select' || type === 'link') { + if (enter === 'tab' || enter === 'sub') { + _options.push('tabField') + } + } + if (type !== 'funcvar' && type !== 'linkMain') { if (supField) { _options.push('supField', 'supvalue') @@ -176,7 +187,7 @@ openTypeChange = (key, value) => { if (key === 'type') { - let _options = this.getOptions(value, this.state.resourceType, this.state.supField, this.state.display) + let _options = this.getOptions(value, this.state.resourceType, this.state.supField, this.state.display, this.state.enter) let fieldValue = {} this.setState({ @@ -222,6 +233,8 @@ if (form.show) { fieldValue.resourceType = form.initVal } + } else if (form.key === 'enter') { + form.initVal = this.state.enter } else if (form.key === 'linkSubField') { form.initVal = this.state.linkSubFields.map(_field => _field.field) @@ -282,7 +295,7 @@ const { openType } = this.state let value = e.target.value if (key === 'resourceType') { - let _options = this.getOptions(openType, value, this.state.supField, this.state.display) + let _options = this.getOptions(openType, value, this.state.supField, this.state.display, this.state.enter) this.setState({ resourceType: value, @@ -292,10 +305,20 @@ }) }) } else if (key === 'display') { - let _options = this.getOptions(openType, this.state.resourceType, this.state.supField, value) + let _options = this.getOptions(openType, this.state.resourceType, this.state.supField, value, this.state.enter) this.setState({ display: value, + formlist: this.state.formlist.map(form => { + form.show = _options.includes(form.key) + return form + }) + }) + } else if (key === 'enter') { + let _options = this.getOptions(openType, this.state.resourceType, this.state.supField, this.state.display, value) + + this.setState({ + enter: value, formlist: this.state.formlist.map(form => { form.show = _options.includes(form.key) return form @@ -488,9 +511,9 @@ onChange={(value) => {this.openTypeChange(item.key, value)}} getPopupContainer={() => document.getElementById('modal-fields-form-box')} > - {item.options.map(option => - <Select.Option id={option.value} title={option.text} key={option.value} value={option.value}> - {item.key === 'icon' && <Icon type={option.text} />} {option.text} + {item.options.map((option, i) => + <Select.Option key={`${i}`} value={option.value || option.field}> + {item.key === 'icon' && <Icon type={option.text} />} {option.text || option.label} </Select.Option> )} </Select> -- Gitblit v1.8.0