From f56321426904dceac4301c9e5b4e099f342ec640 Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Thu, 13 Jul 2023 18:36:52 +0800 Subject: [PATCH] =?UTF-8?q?=20[issues/613]=20LineMulti=20=E5=9C=A8?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=8D=E5=AF=B9=E9=BD=90=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E6=A8=AA=E5=9D=90=E6=A0=87=E8=AE=A1=E7=AE=97=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/chart/BarMulti.vue | 18 ++++++++++++++---- src/components/chart/LineMulti.vue | 19 +++++++++++++++---- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/components/chart/BarMulti.vue b/src/components/chart/BarMulti.vue index 6682d61..350d776 100644 --- a/src/components/chart/BarMulti.vue +++ b/src/components/chart/BarMulti.vue @@ -6,7 +6,7 @@ import { useECharts } from '/@/hooks/web/useECharts'; import { cloneDeep } from 'lodash-es'; export default defineComponent({ - name: 'barMulti', + name: 'BarMulti', props: { chartData: { type: Array, @@ -75,10 +75,20 @@ let xAxisData = Array.from(new Set(props.chartData.map((item) => item.name))); let seriesData = []; typeArr.forEach((type) => { - let obj = { name: type, type: props.type }; - let chartArr = props.chartData.filter((item) => type === item.type); + let obj: any = { name: type, type: props.type }; + // update-begin-author:liusq date:2023-7-12 for: [issues/613] LineMulti 在数据不对齐时,横坐标计算错误 + let data = []; + xAxisData.forEach((x) => { + let dataArr = props.chartData.filter((item) => type === item.type && item.name == x); + if (dataArr && dataArr.length > 0) { + data.push(dataArr[0].value); + } else { + data.push(null); + } + }); + // update-end-author:liusq date:2023-7-12 for: [issues/613] LineMulti 在数据不对齐时,横坐标计算错误 //data数据 - obj['data'] = chartArr.map((item) => item.value); + obj['data'] = data; seriesData.push(obj); }); option.series = seriesData; diff --git a/src/components/chart/LineMulti.vue b/src/components/chart/LineMulti.vue index acef181..f74fe90 100644 --- a/src/components/chart/LineMulti.vue +++ b/src/components/chart/LineMulti.vue @@ -7,7 +7,7 @@ import { cloneDeep } from 'lodash-es'; export default defineComponent({ - name: 'lineMulti', + name: 'LineMulti', props: { chartData: { type: Array, @@ -76,14 +76,25 @@ let xAxisData = Array.from(new Set(props.chartData.map((item) => item.name))); let seriesData = []; typeArr.forEach((type) => { - let obj = { name: type, type: props.type }; - let chartArr = props.chartData.filter((item) => type === item.type); + let obj: any = { name: type, type: props.type }; + // update-begin-author:liusq date:2023-7-12 for: [issues/613] LineMulti 在数据不对齐时,横坐标计算错误 + let data = []; + xAxisData.forEach((x) => { + let dataArr = props.chartData.filter((item) => type === item.type && item.name == x); + if (dataArr && dataArr.length > 0) { + data.push(dataArr[0].value); + } else { + data.push(null); + } + }); + // update-end-author:liusq date:2023-7-12 for: [issues/613] LineMulti 在数据不对齐时,横坐标计算错误 //data数据 - obj['data'] = chartArr.map((item) => item.value); + obj['data'] = data; seriesData.push(obj); }); option.series = seriesData; option.xAxis.data = xAxisData; + console.log('option', option); setOptions(option); getInstance()?.off('click', onClick); getInstance()?.on('click', onClick);