From 023895591327d0c210eec054d2c1d7991cefd413 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 02 三月 2022 00:14:23 +0800 Subject: [PATCH] 2022-03-02 --- src/menu/components/table/edit-table/columns/editColumn/index.jsx | 72 ++++++++++++++--------------------- 1 files changed, 29 insertions(+), 43 deletions(-) diff --git a/src/menu/components/table/edit-table/columns/editColumn/index.jsx b/src/menu/components/table/edit-table/columns/editColumn/index.jsx index d664236..8f7ea16 100644 --- a/src/menu/components/table/edit-table/columns/editColumn/index.jsx +++ b/src/menu/components/table/edit-table/columns/editColumn/index.jsx @@ -32,8 +32,10 @@ state = { visible: false, - formlist: null + formlist: null, } + + column = null UNSAFE_componentWillReceiveProps (nextProps) { if (nextProps.column && !is(fromJS(this.props.column), fromJS(nextProps.column))) { @@ -41,22 +43,29 @@ } } - editColumn = (column) => { - let formlist = getColumnForm(column, this.props.fields, this.props.columns) - let _options = fromJS(columnTypeOptions[column.type]).toJS() + getOptions = () => { + let _options = fromJS(columnTypeOptions[this.column.type]).toJS() - if (column.editable === 'true') { - if (column.type === 'text') { - _options.push('required', 'enter', 'footEnter') - } else if (column.type === 'number') { + if (this.column.editable === 'true') { + if (this.column.type === 'text') { + _options.push('editType', 'required', 'enter', 'footEnter') + } else if (this.column.type === 'number') { _options.push('max', 'min', 'enter', 'footEnter') } } + return _options + } + + editColumn = (column) => { + let formlist = getColumnForm(column, this.props.fields, this.props.columns) + + this.column = fromJS(column).toJS() + + let _options = this.getOptions() + this.setState({ visible: true, - editable: column.editable || 'false', - type: column.type, formlist: formlist.map(item => { item.hidden = !_options.includes(item.key) @@ -76,23 +85,15 @@ } typeChange = (key, value, option) => { - const { editable, type } = this.state - if (key === 'type') { - let _options = fromJS(columnTypeOptions[value]).toJS() + this.column[key] = value - if (editable === 'true') { - if (value === 'text') { - _options.push('required', 'enter', 'footEnter') - } else if (value === 'number') { - _options.push('max', 'min', 'enter', 'footEnter') - } - } + if (key === 'type') { + let _options = this.getOptions() this.setState({ - type: value, formlist: this.state.formlist.map(item => { if (item.key === 'editable') { - item.initVal = editable + item.initVal = this.column.editable || 'false' } item.hidden = !_options.includes(item.key) @@ -116,22 +117,16 @@ values.type = 'text' } - if (values.type !== this.state.type) { - let _options = fromJS(columnTypeOptions[values.type]).toJS() + let _type = this.column.type + this.column.type = values.type - if (editable === 'true') { - if (values.type === 'text') { - _options.push('required', 'enter', 'footEnter') - } else if (values.type === 'number') { - _options.push('max', 'min', 'enter', 'footEnter') - } - } + if (values.type !== _type) { + let _options = this.getOptions() this.setState({ - type: values.type, formlist: this.state.formlist.map(item => { if (item.key === 'editable') { - item.initVal = editable + item.initVal = this.column.editable || 'false' } item.hidden = !_options.includes(item.key) @@ -146,18 +141,9 @@ } else if (key === 'format' && value === 'percent') { this.props.form.setFieldsValue({postfix: '%'}) } else if (key === 'editable') { - let _options = fromJS(columnTypeOptions[type]).toJS() - - if (value === 'true') { - if (type === 'text') { - _options.push('required', 'enter', 'footEnter') - } else if (type === 'number') { - _options.push('max', 'min', 'enter', 'footEnter') - } - } + let _options = this.getOptions() this.setState({ - editable: value, formlist: this.state.formlist.map(item => { item.hidden = !_options.includes(item.key) -- Gitblit v1.8.0