From 72419e2f826031a158173f46d723a672064e37cd Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 31 八月 2021 22:42:51 +0800
Subject: [PATCH] 2021-08-31

---
 src/tabviews/custom/components/chart/antv-dashboard/index.jsx |   70 +++++++++++++++-------------------
 1 files changed, 31 insertions(+), 39 deletions(-)

diff --git a/src/tabviews/custom/components/chart/antv-dashboard/index.jsx b/src/tabviews/custom/components/chart/antv-dashboard/index.jsx
index 6fcdc2f..af8a9bf 100644
--- a/src/tabviews/custom/components/chart/antv-dashboard/index.jsx
+++ b/src/tabviews/custom/components/chart/antv-dashboard/index.jsx
@@ -7,12 +7,13 @@
 
 import Api from '@/api'
 import Utils from '@/utils/utils.js'
-import asyncComponent from '@/utils/asyncComponent'
+// import asyncComponent from '@/utils/asyncComponent'
 import UtilsDM from '@/utils/utils-datamanage.js'
 import MKEmitter from '@/utils/events.js'
+import NormalHeader from '@/tabviews/custom/components/share/normalheader'
 import './index.scss'
 
-const NormalHeader = asyncComponent(() => import('@/tabviews/custom/components/share/normalheader'))
+// const NormalHeader = asyncComponent(() => import('@/tabviews/custom/components/share/normalheader'))
 
 registerShape('point', 'pointer', {
   draw(cfg, container) {
@@ -68,7 +69,7 @@
     title: '',                 // 缁勪欢鏍囬
     sync: false,               // 鏄惁缁熶竴璇锋眰鏁版嵁
     plot: null,                // 鍥捐〃璁剧疆
-    data: null,                // 鏁版嵁
+    data: {},                  // 鏁版嵁
   }
 
   UNSAFE_componentWillMount () {
@@ -96,13 +97,7 @@
       }
     }
 
-    let height = config.plot.height || 400
-    if (config.plot.title) {
-      _config.plot.height = height - 75
-    } else {
-      _config.plot.height = height - 30
-    }
-    _config.style.height = height
+    _config.style.height = config.plot.height || 400
 
     this.setState({
       config: _config,
@@ -148,12 +143,10 @@
       this.setState({sync: false, data: _data}, () => {
         this.handleData()
       })
-    } else if (nextProps.mainSearch && !is(fromJS(this.props.mainSearch), fromJS(nextProps.mainSearch))) {
-      if (config.setting.syncRefresh === 'true') {
-        this.setState({}, () => {
-          this.loadData()
-        })
-      }
+    } else if (config.setting.syncRefresh && nextProps.mainSearch && !is(fromJS(this.props.mainSearch), fromJS(nextProps.mainSearch))) {
+      this.setState({}, () => {
+        this.loadData()
+      })
     }
   }
 
@@ -269,21 +262,10 @@
       return
     }
 
-    let searches = []
-    if (mainSearch && mainSearch.length > 0) { // 涓昏〃鎼滅储鏉′欢
-      let keys = []
-      mainSearch.forEach(item => {
-        if (!keys.includes(item.key)) {
-          searches.push(item)
-        }
-      })
-    }
+    let searches = config.setting.useMSearch && mainSearch ? mainSearch : []
 
-    let requireFields = searches.filter(item => item.required && (!item.value || item.value.length === 0))
+    let requireFields = searches.filter(item => item.required && item.value === '')
     if (requireFields.length > 0) {
-      this.setState({
-        loading: false
-      })
       return
     }
 
@@ -302,7 +284,7 @@
       if (config.subtype === 'ratioboard') {
         data = result.data || []
       } else {
-        let data = {}
+        data = {}
         if (result.data && result.data[0] && result.data[0].hasOwnProperty(config.plot.valueField)) {
           data.value = result.data[0][config.plot.valueField]
         }
@@ -363,13 +345,12 @@
 
   ratioboardrender = () => {
     const { plot, chartId } = this.state
-
     const data = this.getratiodata()
 
     const chart = new Chart({
       container: chartId,
       autoFit: true,
-      height: plot.height,
+      height: this.wrap.offsetHeight - 30,
     })
     
     chart.data(data)
@@ -458,17 +439,28 @@
     const { plot, chartId, data } = this.state
 
     let _data = fromJS(data).toJS()
-    if (_data.value && _data.value > plot.maxValue) {
-      _data.value = plot.maxValue
+
+    if (_data.hasOwnProperty('value')) {
+      if (_data.value === '' || _data.value === null) {
+        delete _data.value
+      } else {
+        _data.value = +_data.value
+
+        if (isNaN(_data.value)) {
+          delete _data.value
+        } else if (_data.value > plot.maxValue) {
+          _data.value = plot.maxValue
+        }
+      }
     }
 
     const chart = new Chart({
       container: chartId,
       autoFit: true,
-      height: plot.height,
+      height: this.wrap.offsetHeight - 30,
       padding: [0, 0, 0, 0],
     })
-    chart.data([_data]);
+    chart.data([_data])
     chart.scale('value', {
       min: 0,
       max: plot.maxValue,
@@ -480,7 +472,7 @@
       radius: 0.75,
     })
 
-    chart.axis('1', false);
+    chart.axis('1', false)
     chart.axis('value', {
       line: null,
       label: {
@@ -610,8 +602,8 @@
           </div> : null
         }
         <NormalHeader config={config} />
-        <div className="canvas-wrap">
-          <div className={'canvas' + (empty ? ' empty' : '')} style={{height: config.plot.height + 30}} id={this.state.chartId}></div>
+        <div className="canvas-wrap" ref={ref => this.wrap = ref}>
+          <div className={'canvas' + (empty ? ' empty' : '')} id={this.state.chartId}></div>
         </div>
       </div>
     )

--
Gitblit v1.8.0