Эх сурвалжийг харах

新增单个对象的series非数组校验修正/chart图isEquals比较新旧数据的data而不是整个series

zhuth 8 жил өмнө
parent
commit
fd4450da00

+ 4 - 1
kanban-client/app/component/converter.dev.js

@@ -112,6 +112,7 @@ function tableConfig(model) {
 function barConfig(model) {
     let { type, config, layout } = model;
     let { fontSize, title, subtitle, xtitle, xtype, xfields, ytitle, ytype, yfields, series } = config;
+    series = (series instanceof Array) ? series : [series];
     let xf = (xfields instanceof Array) ? xfields : (xfields.replace(['['], '').replace([']'], '').split(','));
     return {
         type: 'charts',
@@ -165,6 +166,7 @@ function barConfig(model) {
 function lineConfig(model) {
     let { type, config, layout } = model;
     let { fontSize, title, subtitle, xtitle, xtype, xfields, ytitle, ytype, yfields, series } = config;
+    series = (series instanceof Array) ? series : [series];
     let xf = (xfields instanceof Array) ? xfields : (xfields.replace(['['], '').replace([']'], '').split(','));
     return {
         type: 'charts',
@@ -224,6 +226,7 @@ function lineConfig(model) {
 function pieConfig(model) {
     let { type, config, layout } = model;
     let { fontSize, title, subtitle, series } = config;
+    series = (series instanceof Array) ? series : [series];
     series = series.map((v, i) => {
         v.value = v.data;
         return v;
@@ -282,7 +285,7 @@ function getBarSeries(fontSize, layout, series) {
                 formatter: '{c}',
             }
         },
-        barGap: 0
+        barGap: '10%'
     }
     s = series.map((v, i) => {
         let m = Object.assign({}, model);

+ 4 - 1
kanban-client/app/component/converter.js

@@ -112,6 +112,7 @@ function barConfig(model) {
     let { type, config, layout } = model;
     let { fontSize, title, subtitle, xtitle, xtype, xfields, ytitle, ytype, yfields, series } = config;
     let xf = (xfields instanceof Array) ? xfields : (xfields.replace(['['], '').replace([']'], '').split(','));
+    series = (series instanceof Array) ? series : [series];
     return {
         type: 'charts',
         config: {
@@ -182,6 +183,7 @@ function lineConfig(model) {
     let { type, config, layout } = model;
     let { fontSize, title, subtitle, xtitle, xtype, xfields, ytitle, ytype, yfields, series } = config;
     let xf = (xfields instanceof Array) ? xfields : (xfields.replace(['['], '').replace([']'], '').split(','));
+    series = (series instanceof Array) ? series : [series];
     return {
         type: 'charts',
         config: {
@@ -257,6 +259,7 @@ function lineConfig(model) {
 function pieConfig(model) {
     let { type, config, layout } = model;
     let { fontSize, title, subtitle, series } = config;
+    series = (series instanceof Array) ? series : [series];
     series = series.map((v, i) => {
         v.value = v.data;
         return v;
@@ -320,7 +323,7 @@ function getBarSeries(fontSize, layout, series) {
                 }
             }
         },
-        barGap: 0
+        barGap: '10%'
     }
     s = series.map((v, i) => {
         let m = Object.assign({}, model);

+ 1 - 2
kanban-client/app/component/factory.dev.js

@@ -5,7 +5,7 @@ import MessageBox from '../src/MsgBox/MessageBox.jsx';
 import { converter } from './converter.dev.js';
 import URL from '../constants/url.dev.json';
 
-import tempdata from '../data/testTableRefresh.json';
+import tempdata from '../data/flash.json';
 
 class Factory extends React.Component {
 
@@ -129,7 +129,6 @@ class Factory extends React.Component {
                     model: converter(tempdata.data[this.index]),
                 });
             }.bind(this), 10000)
-
         }else {
             this.getModelConfig(code[0]);
         }

+ 8 - 1
kanban-client/app/src/Charts/ECharts.dev.js

@@ -91,7 +91,14 @@ export class ReactEchart extends React.Component {
     }
 
     componentWillReceiveProps(nextProps) {
-        if(!isEqual(nextProps.option.series, this.state.option.series)) {
+        let d1 = nextProps.option.series.map(function(s) {
+            return s.data;
+        });
+        let d2 = this.newProps.option.series.map(function(s) {
+            return s.data;
+        });
+        if(!isEqual(d1, d2)) {
+            console.log('no equals');
             let echarts_instance = this.echarts_react.getEchartsInstance();
             echarts_instance.clear();
         }

+ 7 - 1
kanban-client/app/src/Charts/ECharts.js

@@ -84,7 +84,13 @@ export class ReactEchart extends React.Component {
     }
 
     componentWillReceiveProps(nextProps) {
-        if(!isEqual(nextProps.option.series, this.state.option.series)) {
+        let d1 = nextProps.option.series.map(function(s) {
+            return s.data;
+        });
+        let d2 = this.newProps.option.series.map(function(s) {
+            return s.data;
+        });
+        if(!isEqual(d1, d2)) {
             let echarts_instance = this.echarts_react.getEchartsInstance();
             echarts_instance.clear();
         }

+ 2 - 1
kanban-client/app/utils/BaseUtils.js

@@ -94,8 +94,9 @@ function isEqual(a,b){
         }
         if(i==a.length) {
             return true;
-        }else 
+        }else {
             return false;
+        }
     }
 }