From e603c97dbe7a4f1dbd6445e00383ed651182e0fe Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 03 三月 2020 17:09:11 +0800 Subject: [PATCH] 2020-03-03 --- src/tabviews/formtab/formgroup/index.jsx | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 55 insertions(+), 2 deletions(-) diff --git a/src/tabviews/formtab/formgroup/index.jsx b/src/tabviews/formtab/formgroup/index.jsx index 06f6a5a..96d7240 100644 --- a/src/tabviews/formtab/formgroup/index.jsx +++ b/src/tabviews/formtab/formgroup/index.jsx @@ -33,13 +33,65 @@ } UNSAFE_componentWillReceiveProps (nextProps) { + const { datatype } = this.state if (nextProps.data && !is(fromJS(this.props.data), fromJS(nextProps.data))) { let _fieldsvalue = {} let _record = {} Object.keys(nextProps.data).forEach(key => { if (this.props.form.getFieldValue(key) !== undefined) { - _fieldsvalue[key] = nextProps.data[key] + if (datatype[key] === 'multiselect') { + let _val = nextProps.data[key] ? nextProps.data[key].split(',').filter(Boolean) : [] + _fieldsvalue[key] = _val + } else if (datatype[key] === 'date') { + let _val = nextProps.data[key] ? nextProps.data[key] : null + + if (_val) { + _val = moment(_val, 'YYYY-MM-DD') + } + + _fieldsvalue[key] = _val + } else if (datatype[key] === 'datemonth') { + let _val = nextProps.data[key] ? nextProps.data[key] : null + + if (_val) { + _val = moment(_val, 'YYYY-MM') + } + + _fieldsvalue[key] = _val + } else if (datatype[key] === 'datetime') { + let _val = nextProps.data[key] ? nextProps.data[key] : null + + if (_val) { + _val = moment(_val, 'YYYY-MM-DD HH:mm:ss') + } + + _fieldsvalue[key] = _val + } else if (datatype[key] === 'fileupload') { + let _val = nextProps.data[key] ? nextProps.data[key] : '' + + if (_val) { + try { + _val = _val.split(',').map((url, index) => { + return { + uid: `${index}`, + name: url.slice(url.lastIndexOf('/') + 1), + status: 'done', + url: url, + origin: true + } + }) + } catch { + _val = [] + } + } else { + _val = [] + } + + _fieldsvalue[key] = _val + } else { + _fieldsvalue[key] = nextProps.data[key] + } } else { _record[key] = nextProps.data[key] } @@ -391,6 +443,7 @@ ) } else if (item.type === 'datetime') { let _initval = this.props.data ? this.props.data[item.field] : '' + if (_initval && this.state.readin[item.field]) { _initval = moment(_initval, 'YYYY-MM-DD HH:mm:ss') } else { @@ -475,7 +528,7 @@ message: formRule.textarea.message } ] - })(<TextArea autosize={{ minRows: 2, maxRows: 6 }} disabled={item.readonly === 'true'} />)} + })(<TextArea autosize={{ minRows: 2, maxRows: item.maxRows || 6 }} disabled={item.readonly === 'true'} />)} </Form.Item> </Col> ) -- Gitblit v1.8.0