From 523cec6c87d88b43954a4409a8dfde6aade095a1 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 22 五月 2020 11:02:10 +0800
Subject: [PATCH] 2020-05-22

---
 src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx |   81 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 72 insertions(+), 9 deletions(-)

diff --git a/src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx b/src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx
index 47f4fce..216fc23 100644
--- a/src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx
+++ b/src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx
@@ -13,9 +13,11 @@
 import bar4 from '@/assets/img/bar4.png'
 import pie1 from '@/assets/img/pie1.png'
 import pie2 from '@/assets/img/pie2.png'
-import card1 from '@/assets/img/card1.jpg'
-import card2 from '@/assets/img/card2.jpg'
-import card3 from '@/assets/img/card3.jpg'
+import card1 from '@/assets/img/card1.png'
+import card2 from '@/assets/img/card2.png'
+import card3 from '@/assets/img/card3.png'
+import card4 from '@/assets/img/card4.png'
+import card5 from '@/assets/img/card5.png'
 import './index.scss'
 
 const syslegends = {
@@ -121,6 +123,16 @@
     {
       uuid: 'card3',
       url: card3,
+      subelement: ['content', 'avatar', 'header']
+    },
+    {
+      uuid: 'card4',
+      url: card4,
+      subelement: ['content', 'avatar', 'bottom']
+    },
+    {
+      uuid: 'card5',
+      url: card5,
       subelement: ['content', 'avatar', 'header', 'bottom']
     }
   ]
@@ -138,6 +150,7 @@
   state = {
     formlist: null,
     legends: null,
+    columns: null,
     selectlegend: null
   }
 
@@ -148,6 +161,14 @@
     let _type = card.chartType || 'line'
     let _legends = null
     let _selectlegend = null
+    let _columns = []
+
+    // 鑾峰彇鏍囪鍗$墖鍒楋紝鐢ㄤ簬棰滆壊璧嬪��
+    formlist.forEach(item => {
+      if (item.key === 'bgfield') {
+        _columns = item.options
+      }
+    })
 
     if (_type === 'line' || _type === 'bar' || _type === 'line') {
       _legends = syslegends[_type]
@@ -161,15 +182,14 @@
 
       if (card.subelement) {
         _selectlegend = _legends.filter(item => JSON.stringify(item.subelement) === JSON.stringify(card.subelement))[0]
-      }
-
-      if (!_selectlegend) {
+      } else {
         _selectlegend = _legends[0]
       }
     }
 
     this.setState({
       legends: _legends,
+      columns: _columns,
       selectlegend: _selectlegend,
       formlist: formlist.map(item => {
         if (item.key === 'height' && ['table', 'card'].includes(_type)) {
@@ -179,6 +199,10 @@
         } else if (item.key === 'cardWidth' && _type === 'card') {
           item.hidden = false
         } else if (item.key === 'over' && _type === 'card') {
+          item.hidden = false
+        } else if (item.key === 'border' && _type === 'card') {
+          item.hidden = false
+        } else if (item.key === 'switch' && _type === 'card') {
           item.hidden = false
         } else if (item.key === 'bgfield') {
           item.hidden = _type !== 'card'
@@ -228,6 +252,10 @@
             item.hidden = false
           } else if (item.key === 'over' && value === 'card') {
             item.hidden = false
+          } else if (item.key === 'border' && value === 'card') {
+            item.hidden = false
+          } else if (item.key === 'switch' && value === 'card') {
+            item.hidden = false
           } else if (item.key === 'bgfield') {
             item.hidden = value !== 'card'
           }
@@ -246,6 +274,32 @@
           if (item.key === 'cardWidth') {
             item.min = val === 'absolute' ? 50 : 1
             item.max = val === 'absolute' ? 1000 : 24
+          }
+
+          return item
+        })
+      })
+    } else if (key === 'over' && val === 'roll') {
+      this.setState({
+        formlist: formlist.map(item => {
+          if (item.key === 'cardWidth') {
+            item.min = 50
+            item.max = 1000
+          } else if (item.key === 'widthType') {
+            item.readonly = true
+          }
+
+          return item
+        })
+      })
+      if (this.props.form.getFieldValue('widthType') !== undefined) {
+        this.props.form.setFieldsValue({widthType: 'absolute'})
+      }
+    } else if (key === 'over' && val === 'whole') {
+      this.setState({
+        formlist: formlist.map(item => {
+          if (item.key === 'widthType') {
+            item.readonly = false
           }
 
           return item
@@ -355,7 +409,7 @@
                   }
                 ]
               })(
-                <Radio.Group onChange={(e) => this.radioChange(e.target.value, item.key)}>
+                <Radio.Group onChange={(e) => this.radioChange(e.target.value, item.key)} disabled={item.readonly}>
                   {
                     item.options.map(option => {
                       return (
@@ -394,7 +448,7 @@
   }
 
   handleConfirm = () => {
-    const { selectlegend } = this.state
+    const { selectlegend, columns } = this.state
     // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭�
     return new Promise((resolve, reject) => {
       this.props.form.validateFieldsAndScroll((err, values) => {
@@ -424,7 +478,9 @@
               result.Yaxis = result.Yaxis[0] || ''
             }
           } else if (result.chartType === 'card') {
-            result.subelement = selectlegend.subelement
+            if (selectlegend) {
+              result.subelement = selectlegend.subelement
+            }
 
             if (!result.details) {
               result.details = [
@@ -440,6 +496,7 @@
                 elemType: 'header',
                 content: 'Card title',
                 datatype: 'static',
+                show: 'icon',
                 actions: []
               }
               result.avatar = {
@@ -452,6 +509,12 @@
                 width: 32
               }
             }
+
+            if (result.bgfield) {
+              result.background = columns.filter(col => col.value === result.bgfield)[0].background
+            } else {
+              result.background = ''
+            }
           }
 
           result.icon = icons[result.chartType]

--
Gitblit v1.8.0