Ver Fonte

处理假值

Karsa há 2 anos atrás
pai
commit
e8f7225e15
1 ficheiros alterados com 37 adições e 3 exclusões
  1. 37 3
      src/views/chartShow/index.vue

+ 37 - 3
src/views/chartShow/index.vue

@@ -982,8 +982,11 @@ export default defineComponent({
 
       //数据列
       data.forEach((item: { Value: number; Name: string; Date: string; Color: string;NameEn: string }) => {
+        //处理首或/尾全是无效数据的以null填充
+        let filterData = filterInvalidData(item)
+
         let serie_item = {
-          data: item.Value,
+          data: filterData,
           type: 'spline',
           yAxis: 0,
           name: language.value === 'ch' ? item.Name : item.NameEn,
@@ -1006,12 +1009,22 @@ export default defineComponent({
           if(language.value === 'ch') {
             str = `<strong>${ commodityEdbList.find(_ => _.EdbAliasName === ctx.x).EdbName }</strong>`;
             ctx.points.forEach((item:{ series:{name: string},y: number }) => {
-              str += `<br>${data.find((_:any) => _.Name === item.series.name).Date}: ${item.y}`
+              let obj_item = data.find((_:any) => _.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}: 无`
+              }
             })
           }else {
             str = `<strong>${ commodityEdbList.find(_ => _.EdbAliasNameEn === ctx.x).EdbNameEn }</strong>`
             ctx.points.forEach((item:{ series:{name: string},y: number }) => {
-              str += `<br>${data.find((_:any) => _.NameEn === item.series.name).Date}: ${item.y}`
+              let obj_item = data.find((_:any) => _.NameEn === item.series.name);
+              if(!obj_item.NoDataEdbList.includes(commodityEdbList.find(_ => _.EdbAliasNameEn === ctx.x).EdbInfoId)) {
+                str += `<br>${obj_item.Date}: ${item.y}`
+              }else {
+                str += `<br>${obj_item.Date}: 无`
+              }
             })
           }
 
@@ -1031,6 +1044,27 @@ export default defineComponent({
       }
     };
 
+    /* 处理无效数据为null */
+    const filterInvalidData = (item:any)=> {
+      const { commodityEdbList } = state;
+      let validateArr = commodityEdbList.filter(_ =>!item.NoDataEdbList.includes(_.EdbInfoId));
+
+      let first_index = commodityEdbList.findIndex(_ => _.EdbInfoId === validateArr[0].EdbInfoId);
+      let last_index = commodityEdbList.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:any,index:number) => {
+        if(index < first_index || index > last_index) {
+          return null
+        }else {
+          return item
+        }
+      })
+
+      return arr;
+    }
+
     /* 设置options */
     const setOptions = () => {
       // ChartType: 1曲线图 2季节图 3面积图 4柱状图 5散点图 6组合图  季节图中公历和农历数据结构不同