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