longyvfengyun
2024-03-25 4b6b56fc1cbd9f6be12a5bc439e496f29c4b51a1
内容提交
6个文件已修改
266 ■■■■■ 已修改文件
src/assets/js/axios.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/analysis/fhAnalysis.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/analysis/fusionAnalysis.vue 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/analysis/hdAnalysis.vue 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/analysis/lofAnalysis.vue 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/analysis/module/index.js 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/axios.js
@@ -5,6 +5,7 @@
} else {
  axios.defaults.baseURL = location.protocol + '//' + location.hostname + ':8005/';
}
axios.defaults.baseURL = 'http://110.40.173.177:8005/';
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
src/views/analysis/fhAnalysis.vue
@@ -286,34 +286,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 +316,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 +442,7 @@
    height: 100%;
    padding: 8px 0 8px 8px;
}
/deep/ .el-cascader.w400 {
    width: 400px;
}
</style>
src/views/analysis/fusionAnalysis.vue
@@ -3,7 +3,7 @@
import carInfoModule from "@/views/moudle/battShow/carInfo";
import FlexBox from "@/components/FlexBox.vue";
import ChartBox from "@/components/chartBox.vue";
import {dataAnalysisModule} from "@/views/analysis/module";
import {dataAnalysisModule, bmsAnalysisTimeModule} from "@/views/analysis/module";
import HdwChart from "@/components/echarts/hdwChart.vue";
import getNormalLine from "@/components/echarts/options/normalLine";
import {ElMessage} from "element-plus";
@@ -284,10 +284,21 @@
          A 15 15, 0, 1, 1, 27.99 7.5
          L 15 15
        " style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>
      `
      `;
const cascaderValue = ref([]);
const {
    usefulTimeRangeList,
    getBmsAnalysisTime
} = bmsAnalysisTimeModule();
const cascaderHandleChange = ()=>{
    carName.value = cascaderValue.value[0];
    timeRange.value = cascaderValue.value[1].split("~");
}
onMounted(()=>{
    analysisType.value = 2;
    getBmsAnalysisTime(analysisType.value);
    getCarNames();
    initChart();
    setChart();
@@ -305,33 +316,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>
@@ -441,4 +442,7 @@
    height: 100%;
    padding: 8px 0 8px 8px;
}
/deep/ .el-cascader.w400 {
    width: 400px;
}
</style>
src/views/analysis/hdAnalysis.vue
@@ -3,7 +3,7 @@
import carInfoModule from "@/views/moudle/battShow/carInfo";
import FlexBox from "@/components/FlexBox.vue";
import ChartBox from "@/components/chartBox.vue";
import {dataAnalysisModule} from "@/views/analysis/module";
import {dataAnalysisModule, bmsAnalysisTimeModule} from "@/views/analysis/module";
import HdwChart from "@/components/echarts/hdwChart.vue";
import getNormalLine from "@/components/echarts/options/normalLine";
import {ElMessage} from "element-plus";
@@ -284,10 +284,21 @@
          A 15 15, 0, 1, 1, 27.99 7.5
          L 15 15
        " style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>
      `
      `;
const cascaderValue = ref([]);
const {
    usefulTimeRangeList,
    getBmsAnalysisTime
} = bmsAnalysisTimeModule();
const cascaderHandleChange = ()=>{
    carName.value = cascaderValue.value[0];
    timeRange.value = cascaderValue.value[1].split("~");
}
onMounted(()=>{
    analysisType.value = 1;
    getBmsAnalysisTime(analysisType.value);
    getCarNames();
    initChart();
    setChart();
@@ -305,33 +316,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>
@@ -441,4 +442,7 @@
    height: 100%;
    padding: 8px 0 8px 8px;
}
/deep/ .el-cascader.w400 {
    width: 400px;
}
</style>
src/views/analysis/lofAnalysis.vue
@@ -3,7 +3,7 @@
import carInfoModule from "@/views/moudle/battShow/carInfo";
import FlexBox from "@/components/FlexBox.vue";
import ChartBox from "@/components/chartBox.vue";
import {dataAnalysisModule} from "@/views/analysis/module";
import {dataAnalysisModule, bmsAnalysisTimeModule} from "@/views/analysis/module";
import HdwChart from "@/components/echarts/hdwChart.vue";
import getNormalLine from "@/components/echarts/options/normalLine";
import {ElMessage} from "element-plus";
@@ -284,13 +284,25 @@
          A 15 15, 0, 1, 1, 27.99 7.5
          L 15 15
        " style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>
      `
      `;
const cascaderValue = ref([]);
const {
    usefulTimeRangeList,
    getBmsAnalysisTime
} = bmsAnalysisTimeModule();
const cascaderHandleChange = ()=>{
    carName.value = cascaderValue.value[0];
    timeRange.value = cascaderValue.value[1].split("~");
}
onMounted(()=>{
    analysisType.value = 4;
    getBmsAnalysisTime(analysisType.value);
    getCarNames();
    initChart();
    setChart();
    console.log(new Date(1694326785000).format("yyyy-MM-dd hh:mm:ss"));
})
</script>
@@ -305,33 +317,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>
@@ -441,4 +443,7 @@
    height: 100%;
    padding: 8px 0 8px 8px;
}
/deep/ .el-cascader.w400 {
    width: 400px;
}
</style>
src/views/analysis/module/index.js
@@ -28,9 +28,50 @@
}
export const bmsAnalysisTimeModule = ()=>{
  const usefulTimeRangeList = ref([]);
  const getBmsAnalysisTime = async (type)=>{
    try {
      const res = await bmsAnalysisTimeApi(type);
      const rs = res.data;
      console.log(rs.data);
      if(rs.code ===1 && rs.data) {
        let data = rs.data;
        let list = [];
        for(let i=0; i<data.length; i++) {
          let item = data[i];
          console.log(list);
          let index = -1;
          for(let j=0; j<list.length; j++) {
            let itemJ = list[j];
            if(item.boxSn === itemJ.value) {
              index = j;
              break;
            }
          }
          const timeRange = new Date(item.startTime).format("yyyy-MM-dd hh:mm:ss")
            +"~"+new Date(item.endTime).format("yyyy-MM-dd hh:mm:ss")
          if(index === -1) {
            list.push({
              label: item.boxName,
              value: item.boxSn,
              children: [
                {
                  value: timeRange,
                  label: timeRange
                }
              ]
            });
          }else {
            list[index].children.push({
              value: timeRange,
              label: timeRange
            });
          }
        }
        console.log(list);
        usefulTimeRangeList.value = list;
      }
      return res.data;
    }catch (e) {
      console.log(e);
@@ -43,6 +84,7 @@
  }
  return {
    usefulTimeRangeList,
    getBmsAnalysisTime
  }
}