From 46a525d5b8c039ba796349ffbc6e6e1b8de8a032 Mon Sep 17 00:00:00 2001 From: qiudan <1044775178@qq.com> Date: Wed, 8 Nov 2023 10:49:28 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/sensorFusion/echartsBar.vue | 7 +- src/components/sensorFusion/echartsLine.vue | 164 +++--- src/components/sensorFusion/echartsPie.vue | 486 +++++++++--------- src/components/sensorFusion/thermalOD.vue | 537 ++++++++++---------- 4 files changed, 606 insertions(+), 588 deletions(-) diff --git a/src/components/sensorFusion/echartsBar.vue b/src/components/sensorFusion/echartsBar.vue index 43d0df4..1b21441 100644 --- a/src/components/sensorFusion/echartsBar.vue +++ b/src/components/sensorFusion/echartsBar.vue @@ -56,7 +56,7 @@ export default { // this.chartData.xData.push(this.dataList[0].type_data[i].name); // } // } - + if(this.dataList.length>0&&this.dataList[0].type_data){ for (let j = 0; j < this.dataList[0].type_data.length; j++) { if (this.dataList[0].type_data[j].value == undefined) { this.chartData.yData.push(this.dataList[0].type_data[j].quantity); @@ -66,6 +66,7 @@ export default { this.chartData.xData.push(this.dataList[0].type_data[j].name); } } + } } else if (this.timeMode == "固定时刻") { // for (let i = 0; i < this.dataList.length; i++) { // this.chartData.xData = []; @@ -82,6 +83,7 @@ export default { // } this.chartData.xData = []; this.chartData.yData = []; + if(this.dataList.length>0&&this.dataList[0].type_data){ for (let j = 0; j < this.dataList[0].type_data.length; j++) { if (this.dataList[0].type_data[j].value == undefined) { this.chartData.yData.push(this.dataList[0].type_data[j].quantity); @@ -91,6 +93,7 @@ export default { this.chartData.xData.push(this.dataList[0].type_data[j].name); } } + } } else if (this.timeMode == "固定间隔") { // for (let i = 0; i < this.dataList.length; i++) { // this.chartData.xData = []; @@ -107,6 +110,7 @@ export default { // } this.chartData.xData = []; this.chartData.yData = []; + if(this.dataList.length>0&&this.dataList[0].type_data){ for (let j = 0; j < this.dataList[0].type_data.length; j++) { if (this.dataList[0].type_data[j].value == undefined) { this.chartData.yData.push(this.dataList[0].type_data[j].quantity); @@ -116,6 +120,7 @@ export default { this.chartData.xData.push(this.dataList[0].type_data[j].name); } } + } } let myChart = this.chart; let option = { diff --git a/src/components/sensorFusion/echartsLine.vue b/src/components/sensorFusion/echartsLine.vue index 644d545..d40e40f 100644 --- a/src/components/sensorFusion/echartsLine.vue +++ b/src/components/sensorFusion/echartsLine.vue @@ -68,7 +68,7 @@ export default { }, //数据判断处理 dataProcessing(val) { - if (val.length > 10) { + if (val && val.length > 10) { val = val.slice(-10); // this.typeData = this.typeData.slice(-10); } @@ -92,23 +92,29 @@ export default { this.chartData.xData = this.extractKeyValues(val, 'time').reverse(); let seriesArr = this.extractKeyValues(val, 'type_data'); const transformedData = []; - for (let i = 0; i < seriesArr[0].length; i++) { - const item = seriesArr[0][i]; //quantity - const valueList = seriesArr.map((arr) => { - let t = arr[i].value; - if (arr[i].quantity || arr[i].quantity === 0) { - t = arr[i].quantity; - } - return t; - }); - transformedData.push({ - name: item.name, - value: valueList + if (seriesArr && seriesArr.length > 0) { + for (let i = 0; i < seriesArr[0].length; i++) { + const item = seriesArr[0][i]; //quantity + const valueList = seriesArr.map((arr) => { + let t = arr[i].value; + if (arr[i].quantity || arr[i].quantity === 0) { + t = arr[i].quantity; + } + return t; + }); + transformedData.push({ + name: item.name, + value: valueList + }); + } + } + let totalCountList = 0; + if (transformedData.length > 0 && transformedData[0].value) { + totalCountList = transformedData[0].value.map((_, i) => { + return transformedData.reduce((sum, curr) => sum + curr.value[i], 0); }); } - const totalCountList = transformedData[0].value.map((_, i) => { - return transformedData.reduce((sum, curr) => sum + curr.value[i], 0); - }); + transformedData.push({ name: '总数', value: totalCountList @@ -141,21 +147,23 @@ export default { let seriesArr = this.extractKeyValues(val, 'type_data'); // console.log('seriesArr-固定时刻', seriesArr); const transformedData = []; - for (let i = 0; i < seriesArr[0].length; i++) { - const item = seriesArr[0][i]; - //固定间隔主题-类型组件type_data取value字段和历史数据接口不一样,历史数据接口取quantity字段 - // const valueList = seriesArr.map((arr) => arr[i].quantity); - const valueList = seriesArr.map((arr) => { - let t = arr[i].value; - if (arr[i].quantity || arr[i].quantity === 0) { - t = arr[i].quantity; - } - return t; - }); - transformedData.push({ - name: item.name, - value: valueList - }); + if (seriesArr && seriesArr.length > 0) { + for (let i = 0; i < seriesArr[0].length; i++) { + const item = seriesArr[0][i]; + //固定间隔主题-类型组件type_data取value字段和历史数据接口不一样,历史数据接口取quantity字段 + // const valueList = seriesArr.map((arr) => arr[i].quantity); + const valueList = seriesArr.map((arr) => { + let t = arr[i].value; + if (arr[i].quantity || arr[i].quantity === 0) { + t = arr[i].quantity; + } + return t; + }); + transformedData.push({ + name: item.name, + value: valueList + }); + } } // console.log('transformedData-1',transformedData) const totalCountList = transformedData[0].value.map((_, i) => { @@ -194,26 +202,32 @@ export default { // console.log('固定间隔-类型-seriesArr-', seriesArr); // console.log('固定间隔-类型-xData-', this.chartData.xData); const transformedData = []; - for (let i = 0; i < seriesArr[0].length; i++) { - const item = seriesArr[0][i]; - //固定间隔主题-类型组件type_data取value字段和历史数据接口不一样,历史数据接口取quantity字段 - // const valueList = seriesArr.map((arr) => arr[i].value); - const valueList = seriesArr.map((arr) => { - let t = arr[i].value; - if (arr[i].quantity || arr[i].quantity === 0) { - t = arr[i].quantity; - } - return t; - }); - transformedData.push({ - name: item.name, - value: valueList + if (seriesArr && seriesArr.length > 0) { + for (let i = 0; i < seriesArr[0].length; i++) { + const item = seriesArr[0][i]; + //固定间隔主题-类型组件type_data取value字段和历史数据接口不一样,历史数据接口取quantity字段 + // const valueList = seriesArr.map((arr) => arr[i].value); + const valueList = seriesArr.map((arr) => { + let t = arr[i].value; + if (arr[i].quantity || arr[i].quantity === 0) { + t = arr[i].quantity; + } + return t; + }); + transformedData.push({ + name: item.name, + value: valueList + }); + } + } + + // console.log('固定间隔-类型-transformedData-1', transformedData); + let totalCountList = 0; + if (transformedData.length > 0 && transformedData[0].value) { + totalCountList = transformedData[0].value.map((_, i) => { + return transformedData.reduce((sum, curr) => sum + curr.value[i], 0); }); } - // console.log('固定间隔-类型-transformedData-1', transformedData); - const totalCountList = transformedData[0].value.map((_, i) => { - return transformedData.reduce((sum, curr) => sum + curr.value[i], 0); - }); transformedData.push({ name: '总数', value: totalCountList @@ -245,7 +259,7 @@ export default { } else if (this.componentType == '速度') { if (this.dataList.length > 0) { // console.log(this.dataList[0].originalSpeed,'速度速度速度速度') - if (this.dataList[0].originalSpeed >= 0) { + if (this.dataList[0].originalSpeed && this.dataList[0].originalSpeed >= 0) { this.title = 'km/h'; } else { this.title = 'pix/s'; @@ -308,30 +322,32 @@ export default { var color = ['#0CD2E6', '#3751E6', '#FFC722', 'rgb(255,115,38)']; if (this.componentType == '类型') { // console.log('类型-seriesList', this.seriesList); - for (let i = 0; i < this.seriesList.length; i++) { - seriesList.push({ - name: this.seriesList[i].name, - type: 'line', - data: this.seriesList[i].value, - symbolSize: 8, //标记的大小 - lineStyle: { - color: color[i], - width: 3, - shadowColor: 'rgba(255,115,38,0.17)', //设置折线阴影 - shadowBlur: 5, - shadowOffsetY: 9 - }, - itemStyle: { - //折线拐点标志的样式 - color: color[i], - borderColor: color[i], - borderWidth: 2 - }, - smooth: 0.4, - emphasis: { - scale: 1.5 - } - }); + if (this.seriesList.length > 0) { + for (let i = 0; i < this.seriesList.length; i++) { + seriesList.push({ + name: this.seriesList[i].name, + type: 'line', + data: this.seriesList[i].value, + symbolSize: 8, //标记的大小 + lineStyle: { + color: color[i], + width: 3, + shadowColor: 'rgba(255,115,38,0.17)', //设置折线阴影 + shadowBlur: 5, + shadowOffsetY: 9 + }, + itemStyle: { + //折线拐点标志的样式 + color: color[i], + borderColor: color[i], + borderWidth: 2 + }, + smooth: 0.4, + emphasis: { + scale: 1.5 + } + }); + } } } else { seriesList = [ diff --git a/src/components/sensorFusion/echartsPie.vue b/src/components/sensorFusion/echartsPie.vue index dc47f8c..b6a5df1 100644 --- a/src/components/sensorFusion/echartsPie.vue +++ b/src/components/sensorFusion/echartsPie.vue @@ -1,257 +1,257 @@ diff --git a/src/components/sensorFusion/thermalOD.vue b/src/components/sensorFusion/thermalOD.vue index 3f283ea..8646c99 100644 --- a/src/components/sensorFusion/thermalOD.vue +++ b/src/components/sensorFusion/thermalOD.vue @@ -1,291 +1,288 @@