longyvfengyun
2024-03-28 c9edc21dac11a334c1a49aec5cb829760def34c2
src/views/analysis/fhAnalysis.vue
@@ -7,6 +7,7 @@
import HdwChart from "@/components/echarts/hdwChart.vue";
import getNormalLine from "@/components/echarts/options/normalLine";
import {ElMessage} from "element-plus";
import getChartLinesMax from "@/util/getChartLinesMax";
const carName = ref("");
const timeRange = ref([]);
@@ -173,6 +174,7 @@
      title4.value = data.y4Name;
      let chart4Data = formatData(data.bmsAlgorithmVoList4);
      chart4Option.xAxis.data = chart4Data.x;
      const chart4MaxInfo = getChartLinesMax(chart4Data.y);
      chart4Option.series = chart4Data.y.map((item, key)=>{
         return {
            name: '#'+(key+1),
@@ -180,6 +182,19 @@
            sampling: "lttb",
            smooth: false,
            symbolSize: 0,
            markPoint: {
               data: [
                  {
                     name: "最大值",
                     value: "#"+(chart4MaxInfo.x+1),
                     xAxis: chart4Data.x[chart4MaxInfo.x],
                     yAxis: chart4MaxInfo.y,
                     itemStyle: {
                        color: '#ff0000'
                     }
                  },
               ]
            },
            data: item,
         }
      });
@@ -260,7 +275,6 @@
         left: '1%',
         right: '4%',
         bottom: '3%',
         top: "6%",
         containLabel: true
      }
   });
@@ -286,34 +300,19 @@
        " style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>
      `;
const cascaderValue = ref([]);
const {
   usefulTimeRangeList,
   getBmsAnalysisTime
} = bmsAnalysisTimeModule();
const searchBmsAnalysisTime = async ()=>{
   const res = await getBmsAnalysisTime(analysisType.value);
   console.log(res);
   if(res.code ===1 && res.data) {
      let data = res.data;
      let list = [];
      for(let i=0; i<data.length; i++) {
         let item = data[i];
         let index = -1;
         for(let j=0; j<list.length; j++) {
            let itemJ = list[j];
            if(item.boxSn === itemJ[j].boxSn) {
               index = j;
            }
         }
      }
   }
const cascaderHandleChange = ()=>{
   carName.value = cascaderValue.value[0];
   timeRange.value = cascaderValue.value[1].split("~");
}
onMounted(()=>{
   analysisType.value = 3;
   searchBmsAnalysisTime();
   getBmsAnalysisTime(analysisType.value);
   getCarNames();
   initChart();
   setChart();
@@ -331,33 +330,23 @@
         <div class="input-list">
            <div class="input-item">
               <div class="input-wrapper">
                  <div class="input-label">车辆名称:</div>
                  <div class="input-label">数据筛选:</div>
                  <div class="input-content">
                     <el-select v-model="carName" filterable>
                        <el-option
                           v-for="(item, key) in carList" :key="'key'+key"
                           :value="item.key" :label="item.label"></el-option>
                     </el-select>
                     <el-cascader
                        class="w400"
                        v-model="cascaderValue"
                        :options="usefulTimeRangeList"
                        @change="cascaderHandleChange">
                        <template #default="{ node, data }">
                           <span>{{ data.label }}</span>
                           <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
                        </template>
                     </el-cascader>
                  </div>
               </div>
            </div>
            <div class="input-item">
               <div class="input-wrapper">
                  <div class="input-label">日期选择:</div>
                  <div class="input-content">
                     <el-date-picker
                        v-model="timeRange"
                        type="datetimerange"
                        start-placeholder="开始时间"
                        end-placeholder="结束时间"
                        format="YYYY-MM-DD HH:mm:ss"
                        date-format="YYYY/MM/DD ddd"
                        time-format="A hh:mm:ss"></el-date-picker>
                  </div>
               </div>
            </div>
            <div class="input-item">
               <el-button :loading="loading" type="primary" @click="searchData">查询</el-button>
               <el-button :disabled="cascaderValue.length === 0" :loading="loading" type="primary" @click="searchData">查询</el-button>
            </div>
         </div>
      </div>
@@ -467,4 +456,7 @@
   height: 100%;
   padding: 8px 0 8px 8px;
}
/deep/ .el-cascader.w400 {
   width: 400px;
}
</style>