Browse Source

处理假值数据

Karsa 2 years ago
parent
commit
235648a23c
1 changed files with 29 additions and 3 deletions
  1. 29 3
      src/views/hzyb/chart/Detail.vue

+ 29 - 3
src/views/hzyb/chart/Detail.vue

@@ -444,7 +444,6 @@ const initCommodityData = (data) => {
 }
 /* 商品价格曲线设置 绘图逻辑同奇怪柱形图*/
 const setCommodityChart = () => {
-    // const {barLimit,commodityChartData,commodityXData,commodityEdbList} = state;
     
     let seriesData = [];
     const data = _.cloneDeep(commodityChartData.value);
@@ -489,8 +488,11 @@ const setCommodityChart = () => {
 
     //数据列
     data.forEach(item => {
+        //处理首或/尾全是无效数据的以null填充
+        let filterData = filterInvalidData(item)
+
         let serie_item = {
-            data: item.Value,
+            data: filterData,
             type: 'spline',
             yAxis: 0,
             name: item.Name,
@@ -511,7 +513,12 @@ const setCommodityChart = () => {
             const ctx = this;
             let str = `<strong>${ commodityEdbList.value.find(_ => _.EdbAliasName === ctx.x).EdbName }</strong>`;
             ctx.points.forEach(item => {
-                str += `<br>${data.find(_ => _.Name === item.series.name).Date}: ${item.y}`
+                let obj_item = data.find(_ => _.Name === item.series.name);
+                if(!obj_item.NoDataEdbList.includes(commodityEdbList.find(_ => _.EdbAliasName === ctx.x).EdbInfoId)) {
+                    str += `<br>${obj_item.Date}: ${item.y}`
+                }else {
+                    str += `<br>${obj_item.Date}: 无`
+                }
             })
             return str
         },
@@ -528,6 +535,25 @@ const setCommodityChart = () => {
         tooltip
     }
 };
+/* 处理无效数据为null */
+const filterInvalidData = (item)=> {
+    let validateArr = commodityEdbList.value.filter(_ =>!item.NoDataEdbList.includes(_.EdbInfoId));
+
+    let first_index = commodityEdbList.value.findIndex(_ => _.EdbInfoId === validateArr[0].EdbInfoId);
+    let last_index = commodityEdbList.value.findIndex(_ => _.EdbInfoId === validateArr[validateArr.length-1].EdbInfoId);
+    console.log('first_index',first_index)
+    console.log('last_index',last_index)
+
+    let arr = item.Value.map((item,index) => {
+    if(index < first_index || index > last_index) {
+        return null
+    }else {
+        return item
+    }
+    })
+
+    return arr;
+}