From 8c14d194348465710826ed5740173e64bd803f71 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期日, 08 十二月 2019 04:29:25 +0800
Subject: [PATCH] 2019-12-08

---
 src/templates/modalconfig/groupform/index.jsx |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 51 insertions(+), 7 deletions(-)

diff --git a/src/templates/modalconfig/groupform/index.jsx b/src/templates/modalconfig/groupform/index.jsx
index 50c6010..f42676a 100644
--- a/src/templates/modalconfig/groupform/index.jsx
+++ b/src/templates/modalconfig/groupform/index.jsx
@@ -7,7 +7,35 @@
 class SettingForm extends Component {
   static propTpyes = {
     dict: PropTypes.object, // 瀛楀吀椤�
-    data: PropTypes.object
+    group: PropTypes.object, // 瀛楀吀椤�
+    config: PropTypes.object
+  }
+
+  state = {
+    source: null,
+    selectds: null,
+    default: null
+  }
+
+  UNSAFE_componentWillMount () {
+    const { config, group } = this.props
+
+    let _source = null
+    let _default = config.groups[config.groups.length - 1]
+    let _selectds = []
+
+    if (config.groups.length === 1) {
+      _source = config.fields.filter(item => !item.origin)
+    } else {
+      _source = [..._default.sublist, ...group.sublist]
+      _selectds = group.sublist.map(item => { return item.uuid })
+    }
+
+    this.setState({
+      source: _source,
+      selectds: _selectds,
+      default: _default
+    })
   }
 
   handleConfirm = () => {
@@ -15,7 +43,17 @@
     return new Promise((resolve, reject) => {
       this.props.form.validateFieldsAndScroll((err, values) => {
         if (!err) {
-          resolve(values)
+          let targetKeys = this.refs['fields-transfer'].state.targetKeys
+          let defaultlist = this.state.source.filter(item => !targetKeys.includes(item.uuid))
+
+          values.sublist = targetKeys.map(item => {
+            return this.state.source.filter(cell => cell.uuid === item)[0]
+          })
+
+          resolve({
+            default: {...this.state.default, sublist: defaultlist},
+            target: values
+          })
         } else {
           reject(err)
         }
@@ -24,7 +62,7 @@
   }
 
   render() {
-    const { data } = this.props
+    const { group, config } = this.props
     const { getFieldDecorator } = this.props.form
 
     const formItemLayout = {
@@ -42,20 +80,26 @@
         <Row gutter={24}>
           <Col span={12}>
             <Form.Item label="鍒嗙粍鍚嶇О">
-              {getFieldDecorator('title', {
-                initialValue: data.title
+              {getFieldDecorator('label', {
+                initialValue: group.label,
+                rules: [
+                  {
+                    required: true,
+                    message: this.props.dict['form.required.input'] + '鍒嗙粍鍚嶇О!'
+                  }
+                ]
               })(<Input placeholder="" autoComplete="off"/>)}
             </Form.Item>
           </Col>
           <Col span={12}>
             <Form.Item label="鎺掑簭">
               {getFieldDecorator('sort', {
-                initialValue: data.sort
+                initialValue: group.hasOwnProperty('sort') ? group.sort : config.groups.length
               })(<InputNumber min={0} max={100} precision={0} />)}
             </Form.Item>
           </Col>
           <Col span={24}>
-            <TransferForm dict={this.props.dict} columns={this.props.columns} ref="column-transfer" selected={this.props.card.sublist}/>
+            <TransferForm dict={this.props.dict} fields={this.state.source} ref="fields-transfer" selected={this.state.selectds}/>
           </Col>
         </Row>
       </Form>

--
Gitblit v1.8.0