From ab60d53b67f802878662aaa5a5b52580cca421b8 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期六, 26 九月 2020 08:52:46 +0800
Subject: [PATCH] 2020-09-26

---
 src/menu/components/card/cardcellcomponent/elementform/index.jsx |   77 +++++++++++++++++++++++++++++++++-----
 1 files changed, 67 insertions(+), 10 deletions(-)

diff --git a/src/menu/components/card/cardcellcomponent/elementform/index.jsx b/src/menu/components/card/cardcellcomponent/elementform/index.jsx
index 0107902..e3f6386 100644
--- a/src/menu/components/card/cardcellcomponent/elementform/index.jsx
+++ b/src/menu/components/card/cardcellcomponent/elementform/index.jsx
@@ -1,19 +1,20 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { fromJS } from 'immutable'
-import { Form, Row, Col, Input, Select, Icon, Radio, Tooltip, InputNumber } from 'antd'
-import { formRule } from '@/utils/option.js'
+import { Form, Row, Col, Input, Select, Icon, Radio, Tooltip, InputNumber, notification } from 'antd'
 
+import { formRule } from '@/utils/option.js'
+import FileUpload from '@/tabviews/zshare/fileupload'
 import ColorSketch from '@/mob/colorsketch'
 import './index.scss'
 
 const cardTypeOptions = {
   text: ['eleType', 'datatype', 'value', 'format', 'fontSize', 'fontWeight', 'width', 'height', 'color', 'align', 'padding', 'prefix', 'postfix'],
   number: ['eleType', 'datatype', 'value', 'format', 'fontSize', 'fontWeight', 'width', 'height', 'color', 'align', 'padding', 'prefix', 'postfix'],
-  picture: ['eleType', 'datatype', 'width', 'lenWidRadio', 'radius', 'padding'],
+  picture: ['eleType', 'datatype', 'width', 'lenWidRadio', 'radius', 'padding', 'url'],
   icon: ['eleType', 'icon', 'fontSize', 'width', 'height', 'color', 'align', 'padding', 'tooltip'],
-  slider: ['eleType', 'field', 'width', 'sildercolor', 'padding'],
-  splitline: ['eleType', 'color', 'padding'],
+  slider: ['eleType', 'field', 'width', 'color', 'padding', 'maxValue'],
+  splitline: ['eleType', 'color', 'width', 'padding'],
 }
 
 class MainSearch extends Component {
@@ -92,6 +93,7 @@
       
       let _formlist = this.state.formlist.map(item => {
         item.hidden = !_options.includes(item.key)
+
         if (item.key === 'field') {
           item.options = []
           config.columns.forEach(col => {
@@ -116,10 +118,10 @@
         eleType: value,
         formlist: _formlist
       }, () => {
-        if (value === 'slider' || value === 'splitline') {
-          if (this.props.form.getFieldValue('width') !== undefined) {
-            this.props.form.setFieldsValue({width: 24})
-          }
+        if (value === 'slider') {
+          this.props.form.setFieldsValue({width: 24, color: '#1890ff'})
+        } else if (value === 'splitline') {
+          this.props.form.setFieldsValue({width: 24, color: '#e8e8e8'})
         }
       })
     } else if (key === 'field') {
@@ -135,7 +137,9 @@
 
     if (key === 'datatype') {
       let _options = this.getOptions(eleType, value)
+
       this.setState({
+        datatype: value,
         formlist: this.state.formlist.map(item => {
           item.hidden = !_options.includes(item.key)
 
@@ -212,7 +216,7 @@
                     message: this.props.dict['form.required.input'] + item.label + '!'
                   }
                 ]
-              })(<InputNumber min={0} max={10000} precision={0} />)}
+              })(<InputNumber min={item.min || 0} max={item.max || 10000} precision={item.precision || 0} />)}
             </Form.Item>
           </Col>
         )
@@ -294,6 +298,35 @@
             </Form.Item>
           </Col>
         )
+      } else if (item.type === 'file') {
+        let filelist = []
+        if (item.initVal) {
+          filelist = [{
+            uid: `1`,
+            name: item.initVal.slice(item.initVal.lastIndexOf('/') + 1),
+            status: 'done',
+            url: item.initVal,
+            origin: true
+          }]
+        }
+
+        fields.push(
+          <Col span={12} key={index}>
+            <Form.Item label={item.label}>
+              {getFieldDecorator(item.key, {
+                initialValue: filelist,
+                rules: [
+                  {
+                    required: !!item.required,
+                    message: this.props.dict['form.required.select'] + item.label + '!'
+                  }
+                ]
+              })(
+                <FileUpload maxFile={item.maxfile} fileType={'text'} />
+              )}
+            </Form.Item>
+          </Col>
+        )
       }
     })
     return fields
@@ -306,6 +339,30 @@
         if (!err) {
           values.uuid = this.props.card.uuid
           values.marks = this.props.card.marks || null
+
+          if (values.url) {
+            if (values.url.length > 0) {
+              if (values.url[0].origin && values.url[0].url) {
+                values.url = values.url[0].url
+              } else if (!values.url[0].origin && values.url[0].status === 'done' && values.url[0].response) {
+                values.url = values.url[0].response
+              } else {
+                values.url = ''
+              }
+            } else {
+              values.url = ''
+            }
+          }
+
+          if (values.eleType === 'picture' && values.datatype === 'static' && !values.url) {
+            notification.warning({
+              top: 92,
+              message: '灏氭湭娣诲姞鍥剧墖鎴栧浘鐗囦笂浼犲け璐ワ紝璇烽噸鏂版坊鍔狅紒',
+              duration: 5
+            })
+            return
+          }
+
           resolve(values)
         } else {
           reject(err)

--
Gitblit v1.8.0