Forráskód Böngészése

处理演示环境图形组件

liujiejie 7 hónapja
szülő
commit
5d04a66a73
23 módosított fájl, 1001 hozzáadás és 214 törlés
  1. 10 10
      src/views/overview/components/min_pitch1/index.vue
  2. 13 3
      src/views/overview/components/min_pitch2/index.vue
  3. 13 6
      src/views/overview/components/min_pitch3/index.vue
  4. 27 9
      src/views/overview/components/production_indicator1/index.vue
  5. 2 2
      src/views/overview/components/production_indicator2/index.vue
  6. 15 4
      src/views/overview/components/yaw_error1/index.vue
  7. 13 3
      src/views/overview/components/yaw_error2/index.vue
  8. 10 1
      src/views/performance/components/chartsCom/BarChart.vue
  9. 110 0
      src/views/performance/components/chartsCom/BarChart1.vue
  10. 12 3
      src/views/performance/components/chartsCom/FaultUnit.vue
  11. 4 3
      src/views/performance/components/chartsCom/Time3DBarChart.vue
  12. 7 1
      src/views/performance/components/chartsCom/WindRoseChart.vue
  13. 152 0
      src/views/performance/components/chartsCom/WindRoseChart1.vue
  14. 46 0
      src/views/performance/components/chartsCom/json/min_pitch1.json
  15. 65 0
      src/views/performance/components/chartsCom/json/min_pitch3.json
  16. 233 0
      src/views/performance/components/chartsCom/json/production_indicator1.json
  17. 54 0
      src/views/performance/components/chartsCom/json/production_indicator11.json
  18. 33 0
      src/views/performance/components/chartsCom/json/yaw_error1.json
  19. 93 0
      src/views/performance/components/chartsCom/json/yaw_error2.json
  20. 15 0
      src/views/performance/components/chartsCom/lineAndChildLine.vue
  21. 72 47
      src/views/performance/components/chartsCom/lineScatter.vue
  22. 0 120
      src/views/performance/components/custonAsCom/dragChart/components/chartConfig/form/chartLogic/modules/Heatmap.js
  23. 2 2
      src/views/performance/components/custonAsCom/dragChart/components/chartConfig/form/chartLogic/modules/pie.js

+ 10 - 10
src/views/overview/components/min_pitch1/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-07-24 17:07:30
- * @LastEditTime: 2025-08-01 09:20:12
+ * @LastEditTime: 2025-08-15 17:22:07
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/min_pitch1/index.vue
@@ -34,13 +34,19 @@
       </el-alert>
 
       <div class="titleCharts">分析总图 :</div>
-      <VirtualList
+      <BarChart
+        :setUpImgData="setUpImgData"
+        key="item.batchCodeindex"
+        inds="`${new Date().getTime()}`index"
+        ref="item.batchCode"
+        :fileAddr="''"
+      ></BarChart>
+      <!-- <VirtualList
         :list="generalFilesDatas"
         keyField="batchCode"
         :itemSize="452"
         v-slot="{ item, index }"
       >
-        <!-- {{ item.fileAddr }} -->
         <BarChart
           :setUpImgData="setUpImgData"
           :key="item.batchCode + index"
@@ -48,13 +54,7 @@
           :ref="item.batchCode"
           :fileAddr="item.fileAddr"
         ></BarChart>
-        <!-- <BarChart
-            :key="item.batchCode + index"
-            :inds="index + 'barChart'"
-            :ref="item.batchCode"
-            :fileAddr="item.fileAddr"
-          ></BarChart> -->
-      </VirtualList>
+      </VirtualList> -->
       <el-dialog
         v-if="isShowDescription"
         title="添加评论"

+ 13 - 3
src/views/overview/components/min_pitch2/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-07-24 17:07:43
- * @LastEditTime: 2025-08-01 09:20:40
+ * @LastEditTime: 2025-08-15 17:39:28
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/min_pitch2/index.vue
@@ -41,7 +41,17 @@
         分析分图 :
       </div>
       <el-empty description="暂无分图分析记录" v-else></el-empty>
-      <VirtualList
+      <lineScatter
+        :setUpImgData="setUpImgData"
+        key="item.fieldEngineCodeindex"
+        index="getTimeindex"
+        ref="item.fieldEngineCode"
+        fieldEngineCode="item.fieldEngineCode"
+        chart="min2"
+        :fileAddr="''"
+      >
+      </lineScatter>
+      <!-- <VirtualList
         :list="[...diagramRelationsDatas]"
         keyField="fileAddr"
         :itemSize="500"
@@ -56,7 +66,7 @@
           :fileAddr="item.fileAddr"
         >
         </lineScatter>
-      </VirtualList>
+      </VirtualList> -->
       <el-dialog
         v-if="isShowDescription"
         title="添加评论"

+ 13 - 6
src/views/overview/components/min_pitch3/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-07-24 17:07:55
- * @LastEditTime: 2025-08-01 09:21:07
+ * @LastEditTime: 2025-08-15 17:09:51
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/min_pitch3/index.vue
@@ -31,8 +31,15 @@
           变桨电机温升高、电流大的电机,需关注电机散热、电机振动、异响等异常,变桨时是否振动、卡滞、异响等异常
         </div>
       </el-alert>
-
-      <VirtualList
+      <lineAndChildLine
+        :setUpImgData="[]"
+        key="itembatchCodeindex"
+        index="${new Date().getTime()}index"
+        ref="itembatchCode"
+        :fileAddr="''"
+      >
+      </lineAndChildLine>
+      <!-- <VirtualList
         :list="[...generalFilesDatas, ...diagramRelationsDatas]"
         keyField="fileAddr"
         :itemSize="500"
@@ -79,13 +86,13 @@
           :fileAddr="item.fileAddr"
         >
         </lineChartsFen>
-      </VirtualList>
-      <el-empty
+      </VirtualList> -->
+      <!-- <el-empty
         description="暂无分析记录"
         v-if="
           generalFilesDatas.length === 0 && diagramRelationsDatas.length === 0
         "
-      ></el-empty>
+      ></el-empty> -->
       <el-dialog
         v-if="isShowDescription"
         title="添加评论"

+ 27 - 9
src/views/overview/components/production_indicator1/index.vue

@@ -28,11 +28,27 @@
         </div>
       </el-alert>
       <div class="titleCharts">分析分图 :</div>
-      <div
+      <BarChart1
+        :setUpImgData="setUpImgData"
+        key="WindRoseChart2"
+        inds="WindRoseChart2"
+        ref="WindRoseChart2"
+        charts="prd"
+        :fileAddr="''"
+      >
+      </BarChart1>
+      <WindRoseChart1
+        :setUpImgData="setUpImgData"
+        key="WindRoseChart1"
+        inds="WindRoseChart1"
+        ref="WindRoseChart1"
+        :fileAddr="''"
+      ></WindRoseChart1>
+      <!-- <div
         class="scroller"
         v-if="diagramRelationsDatas && diagramRelationsDatas.length > 0"
-      >
-        <template>
+      > -->
+      <!-- <template>
           <el-row>
             <el-col
               :xs="24"
@@ -52,9 +68,9 @@
               ></WindRoseChart>
             </el-col>
           </el-row>
-        </template>
-      </div>
-      <el-empty description="暂无分析记录" v-else></el-empty>
+        </template> -->
+      <!-- </div> -->
+      <!-- <el-empty description="暂无分析记录" v-else></el-empty> -->
       <el-dialog
         v-if="isShowDescription"
         title="添加评论"
@@ -103,7 +119,8 @@
 </template>
 
 <script>
-import WindRoseChart from "@/views/performance/components/chartsCom/WindRoseChart.vue";
+import BarChart1 from "@/views/performance/components/chartsCom/BarChart1.vue";
+import WindRoseChart1 from "@/views/performance/components/chartsCom/WindRoseChart1.vue";
 import DicCard from "@/views/overview/components/dicCard/index.vue";
 import FilterChart from "@/views/overview/components/filterChart/index.vue";
 import TinymceEditor from "@/components/Tinymce.vue";
@@ -114,12 +131,13 @@ import {
 } from "@/api/performance";
 
 export default {
-  name: "windDirectionFrequency",
+  name: "production_indicator1",
   components: {
     DicCard,
     FilterChart,
     TinymceEditor,
-    WindRoseChart,
+    WindRoseChart1,
+    BarChart1,
   },
   props: {
     initBatchCode: {

+ 2 - 2
src/views/overview/components/production_indicator2/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-07-23 10:53:25
- * @LastEditTime: 2025-08-01 09:28:49
+ * @LastEditTime: 2025-08-15 16:48:40
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/production_indicator2/index.vue
@@ -42,7 +42,7 @@
             '机组发电量VS故障停机时长',
             '故障时长(小时)',
             '发电量(MWH)',
-            '故障次数',
+            '故障时长(小时)',
           ]"
           :faultTypes="
             fenFaultCsvData &&

+ 15 - 4
src/views/overview/components/yaw_error1/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-07-24 17:11:36
- * @LastEditTime: 2025-08-01 09:23:02
+ * @LastEditTime: 2025-08-15 18:09:31
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/yaw_error1/index.vue
@@ -32,7 +32,16 @@
           月度偏航频次过多机组需关注偏航磨损情况,偏航速率过低机组需关注机组的偏航制动、电机抱闸、偏航余压是否异常;偏航速率过大机组需关注偏航余压是否异常
         </div>
       </el-alert>
-      <VirtualList
+      <BarChart1
+        :setUpImgData="setUpImgData"
+        key="WindRoseChart2"
+        inds="WindRoseChart2"
+        ref="WindRoseChart2"
+        charts="yaw"
+        :fileAddr="''"
+      >
+      </BarChart1>
+      <!-- <VirtualList
         :list="[...generalFilesDatas, ...diagramRelationsDatas]"
         keyField="fileAddr"
         :itemSize="500"
@@ -58,7 +67,7 @@
           :fileAddr="item.fileAddr"
         >
         </BarChart>
-      </VirtualList>
+      </VirtualList> -->
       <el-empty
         description="暂无分析记录"
         v-if="
@@ -116,6 +125,7 @@ import DicCard from "@/views/overview/components/dicCard/index.vue";
 import FilterChart from "@/views/overview/components/filterChart/index.vue";
 import BarChart from "@/views/performance/components/chartsCom/BarChart.vue";
 import TinymceEditor from "@/components/Tinymce.vue";
+import BarChart1 from "@/views/performance/components/chartsCom/BarChart1.vue";
 import {
   analysisDetail,
   queryAnalysisedEngine,
@@ -123,12 +133,13 @@ import {
 } from "@/api/performance";
 
 export default {
-  name: "temperature_large_components_Winding_tem",
+  name: "yaw_error1",
   components: {
     DicCard,
     FilterChart,
     BarChart,
     TinymceEditor,
+    BarChart1,
   },
   props: {
     initBatchCode: {

+ 13 - 3
src/views/overview/components/yaw_error2/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-07-24 17:12:39
- * @LastEditTime: 2025-08-01 09:23:23
+ * @LastEditTime: 2025-08-15 17:47:14
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/yaw_error2/index.vue
@@ -38,7 +38,17 @@
         分析分图 :
       </div>
       <el-empty description="暂无分图分析记录" v-else></el-empty>
-      <VirtualList
+      <lineScatter
+        :setUpImgData="setUpImgData"
+        key="item.fieldEngineCodeindex"
+        index="getTimeindex"
+        ref="item.fieldEngineCode"
+        fieldEngineCode="item.fieldEngineCode"
+        chart="yaw2"
+        :fileAddr="''"
+      >
+      </lineScatter>
+      <!-- <VirtualList
         :list="[...diagramRelationsDatas]"
         keyField="fileAddr"
         :itemSize="500"
@@ -53,7 +63,7 @@
           :fileAddr="item.fileAddr"
         >
         </lineScatter>
-      </VirtualList>
+      </VirtualList> -->
       <el-dialog
         v-if="isShowDescription"
         title="添加评论"

+ 10 - 1
src/views/performance/components/chartsCom/BarChart.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2024-09-11 14:30:17
- * @LastEditTime: 2025-07-25 16:06:58
+ * @LastEditTime: 2025-08-15 17:23:24
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/components/chartsCom/BarChart.vue
@@ -74,6 +74,7 @@ import axios from "axios";
 import { colorSchemes } from "@/views/overview/js/colors";
 import { myMixin } from "@/mixins/chartRequestMixin";
 import { mapState } from "vuex";
+import min_pitch1 from "./json/min_pitch1.json";
 export default {
   props: {
     fileAddr: {
@@ -128,6 +129,7 @@ export default {
     },
   },
   mounted() {
+    this.getData();
     if (this.fileAddr) {
       this.$nextTick(() => {
         this.getData();
@@ -168,6 +170,13 @@ export default {
           console.error("请求错误:", error);
           this.isError = true;
         }
+      } else {
+        this.chartData = JSON.parse(JSON.stringify(min_pitch1));
+        nextTick(() => {
+          this.drawChart();
+        });
+        this.isError = false;
+        this.loading = false;
       }
     },
     // 绘制图表

+ 110 - 0
src/views/performance/components/chartsCom/BarChart1.vue

@@ -0,0 +1,110 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-08-15 16:31:43
+ * @LastEditTime: 2025-08-15 18:17:33
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/performance/components/chartsCom/BarChart1.vue
+-->
+<template>
+  <div ref="chart" style="width: 100%; height: 500px"></div>
+</template>
+
+<script>
+import * as echarts from "echarts";
+import chartDataJson from "./json/production_indicator11.json"; // 你的数据文件
+import yaw_error1 from "./json/yaw_error1.json";
+import { colorSchemes } from "@/views/overview/js/colors";
+export default {
+  props: {
+    charts: {
+      type: String,
+      default() {
+        return "";
+      },
+    },
+  },
+  data() {
+    return {
+      chart: null,
+    };
+  },
+  mounted() {
+    this.chart = echarts.init(this.$refs.chart);
+    if (this.charts === "prd") {
+      this.renderChart(chartDataJson);
+    } else {
+      this.renderChart(yaw_error1);
+      //   this.renderChart(chartDataJson);
+    }
+
+    window.addEventListener("resize", this.resizeChart);
+  },
+  beforeDestroy() {
+    window.removeEventListener("resize", this.resizeChart);
+    if (this.chart) this.chart.dispose();
+  },
+  methods: {
+    resizeChart() {
+      if (this.chart) this.chart.resize();
+    },
+    renderChart(dataObj) {
+      if (!dataObj || !dataObj.data || dataObj.data.length === 0) return;
+
+      // X 轴(风机编号)
+      const xData = dataObj.data[0].xData;
+
+      // 系列名称
+      const seriesNames = dataObj.data.map((item) => item.enginName);
+
+      // 构造 series
+      const series = dataObj.data.map((item) => ({
+        name: item.enginName,
+        type: "bar",
+        stack: "lossStack", // 设置堆叠
+        data: item.yData,
+        emphasis: { focus: "series" },
+      }));
+
+      const option = {
+        grid: {
+          left: "10%", // 左边距
+          right: "10%", // 右边距
+          //   top: "5%", // 上边距
+          bottom: "5%", // 下边距
+          containLabel: true, // 保证坐标轴标签显示完整
+        },
+        tooltip: {
+          trigger: "axis",
+          axisPointer: { type: "shadow" },
+        },
+        color: [
+          "#8ECAC1",
+          "#77BDC2",
+          "#64ADC2",
+          "#559ABE",
+          "#4884B7",
+          "#406DAB",
+        ],
+        legend: {
+          data: seriesNames,
+        },
+
+        xAxis: {
+          type: "category",
+          data: xData,
+          name: dataObj.xaixs || "",
+          axisTick: { alignWithLabel: true },
+        },
+        yAxis: {
+          type: "value",
+          name: dataObj.yaixs || "",
+        },
+        series: series,
+      };
+
+      this.chart.setOption(option);
+    },
+  },
+};
+</script>

+ 12 - 3
src/views/performance/components/chartsCom/FaultUnit.vue

@@ -64,8 +64,14 @@ export default {
 
       // 步骤 4:生成散点图数据
       const data = combined.map((d, i) => ({
-        x: [d.name],
-        y: [d.durationHour],
+        x:
+          this.faultTitledata[0] === "机组发电量VS故障停机时长"
+            ? [d.durationHour]
+            : [d.name],
+        y:
+          this.faultTitledata[0] === "机组发电量VS故障停机时长"
+            ? [d.count]
+            : [d.durationHour],
         mode: "markers",
         type: "scatter",
         name: d.name,
@@ -76,7 +82,10 @@ export default {
           sizemin: 4,
           showscale: false,
         },
-        hovertemplate: `机组: ${d.name}<br>${this.faultTitledata[2]}: ${d.durationHour} 小时<br>${this.faultTitledata[3]}: ${d.count} 次<extra></extra>`,
+        hovertemplate:
+          this.faultTitledata[0] === "机组发电量VS故障停机时长"
+            ? `机组: ${d.name}<br>${this.faultTitledata[1]}: ${d.durationHour} 小时<br>${this.faultTitledata[2]}: ${d.count} <extra></extra>`
+            : `机组: ${d.name}<br>${this.faultTitledata[2]}: ${d.durationHour} 小时<br>${this.faultTitledata[3]}: ${d.count} 次<extra></extra>`,
       }));
 
       // 其他布局配置保持不变

+ 4 - 3
src/views/performance/components/chartsCom/Time3DBarChart.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-07-24 10:33:42
- * @LastEditTime: 2025-08-08 09:33:02
+ * @LastEditTime: 2025-08-15 17:32:03
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/components/chartsCom/Time3DBarChart.vue
@@ -150,7 +150,7 @@ export default {
 
       this.chartData &&
         this.chartData.data.forEach((item) => {
-          const fault = item.fault_detail;
+          const fault = item.fault_detail.split("_")[0];
           const yVal = item.fault_time_sum;
           const zVal = item.count;
 
@@ -197,7 +197,7 @@ export default {
             ticks: "outside",
             ticklen: 10,
             tickcolor: "black",
-            // tickangle: -10,
+            tickangle: -10,
           },
           yaxis: {
             title: { text: "累计时间" },
@@ -209,6 +209,7 @@ export default {
             linecolor: "black",
             ticks: "outside",
             tickangle: 25,
+            nticks: 5,
           },
           zaxis: {
             title: { text: "出现次数" },

+ 7 - 1
src/views/performance/components/chartsCom/WindRoseChart.vue

@@ -16,7 +16,7 @@ import axios from "axios";
 import { myMixin } from "@/mixins/chartRequestMixin";
 import { colorSchemes } from "@/views/overview/js/colors";
 import { mapState } from "vuex";
-
+import production_indicator1 from "./json/production_indicator1.json";
 export default {
   props: {
     fileAddr: {
@@ -88,12 +88,18 @@ export default {
           this.isError = true;
           this.loading = false;
         }
+      } else {
+        this.chartData = JSON.parse(JSON.stringify(production_indicator1));
+        this.renderChart();
+        this.isError = false;
+        this.loading = false;
       }
     },
     renderChart() {
       const { axes, data, analysisTypeCode } = this.chartData;
       // 从数据中提取 windSpeedRange 和动态生成 speedLabels 和 colorscale
       const windSpeedRanges = new Set();
+      console.log(data, "data11111");
       data.forEach((engine) => {
         engine.windRoseData.forEach((item) => {
           windSpeedRanges.add(item.windSpeedRange);

+ 152 - 0
src/views/performance/components/chartsCom/WindRoseChart1.vue

@@ -0,0 +1,152 @@
+<template>
+  <div ref="chart" style="width: 100%; height: 500px"></div>
+</template>
+
+<script>
+import * as echarts from "echarts";
+import { colorSchemes } from "@/views/overview/js/colors";
+import production_indicator1 from "./json/production_indicator1.json";
+export default {
+  name: "WindRoseChart",
+  props: {},
+  data() {
+    return {
+      chart: null,
+      dataObj: {},
+      innerRadius: 20,
+    };
+  },
+  //   watch: {
+  //     dataObj: {
+  //       handler() {
+  //         this.renderChart();
+  //       },
+  //       deep: true,
+  //     },
+  //   },
+  mounted() {
+    this.chart = echarts.init(this.$refs.chart);
+    this.renderChart();
+    window.addEventListener("resize", this.resizeChart);
+  },
+  beforeDestroy() {
+    window.removeEventListener("resize", this.resizeChart);
+    if (this.chart) this.chart.dispose();
+  },
+  methods: {
+    resizeChart() {
+      if (this.chart) this.chart.resize();
+    },
+    renderChart() {
+      //   if (!this.dataObj || !this.dataObj.data || !this.dataObj.data[0]) return;
+      this.dataObj = JSON.parse(JSON.stringify(production_indicator1));
+      const windData = this.dataObj.data[0].windRoseData;
+
+      // 角度分类
+      const cats = [...new Set(windData.map((d) => d.windDirection))];
+
+      // 系列名称
+      const seriesNames = [...new Set(windData.map((d) => d.windSpeedRange))];
+
+      // 构造系列数据
+      const seriesData = seriesNames.map((name) => {
+        return cats.map((cat) => {
+          const item = windData.find(
+            (d) => d.windDirection === cat && d.windSpeedRange === name
+          );
+          return item ? item.frequency : 0;
+        });
+      });
+
+      // 计算堆叠最大值
+      const sums = cats.map((_, i) =>
+        seriesData.reduce((acc, arr) => acc + arr[i], 0)
+      );
+      const outerMax = this.innerRadius + Math.max(...sums);
+
+      const option = {
+        color: [
+          "#8ECAC1",
+          "#77BDC2",
+          "#64ADC2",
+          "#559ABE",
+          "#4884B7",
+          "#406DAB",
+        ],
+        angleAxis: {
+          type: "category",
+          data: cats,
+
+          boundaryGap: true, //标签和数据点都会在两个刻度之间的带(band)中间
+          axisTick: {
+            show: true, //是否显示坐标轴刻度
+          },
+          splitLine: {
+            show: false,
+            lineStyle: {
+              color: "#f90",
+            },
+          },
+          axisLabel: {
+            show: true,
+            // interval: 5, //坐标轴刻度标签的显示间隔,在类目轴中有效
+          },
+          axisTick: {
+            show: true, // 是否显示刻度线
+            // length: 1, // 刻度线长度
+            lineStyle: {
+              color: "#999", // 颜色
+              width: 1,
+              type: "dashed", // 'dashed' | 'dotted' | 'solid'
+            },
+          },
+        },
+        radiusAxis: {
+          min: 0,
+          max: outerMax,
+          splitNumber: 4,
+          axisLabel: {
+            formatter: (v) =>
+              v <= this.innerRadius ? "" : v - this.innerRadius,
+          },
+          //   splitLine: { lineStyle: { type: "dashed" } },
+          splitLine: { show: false }, // <- 设置 show: false 就隐藏了
+        },
+        polar: {},
+        legend: {
+          data: seriesNames,
+          right: 0,
+          top: "center",
+          orient: "vertical",
+        },
+        tooltip: { trigger: "item" },
+        series: [
+          // 占位透明柱
+          {
+            type: "bar",
+            coordinateSystem: "polar",
+            name: "__offset__",
+            stack: "stack",
+            data: cats.map(() => this.innerRadius),
+            silent: true,
+            tooltip: { show: false },
+            emphasis: { disabled: true },
+            itemStyle: { color: "transparent" },
+          },
+          // 数据系列
+          ...seriesNames.map((name, idx) => ({
+            type: "bar",
+            coordinateSystem: "polar",
+            stack: "stack",
+            name: name,
+            data: seriesData[idx],
+            emphasis: { focus: "series" },
+          })),
+        ],
+      };
+
+      this.chart.setOption(option);
+    },
+  },
+};
+</script>

+ 46 - 0
src/views/performance/components/chartsCom/json/min_pitch1.json

@@ -0,0 +1,46 @@
+{
+  "analysisTypeCode": "变桨频次分析",
+  "engineCode": "WEM00013",
+  "engineTypeName": "",
+  "xaixs": "机组",
+  "yaixs": "变桨次数计数",
+  "data": [
+    {
+      "engineName": "",
+      "engineCode": "",
+      "title": "变桨次数",
+      "xData": [
+        "#34",
+        "#35",
+        "#36",
+        "#37",
+        "#38",
+        "#39",
+        "#40",
+        "#41",
+        "#42",
+        "#43",
+        "#44",
+        "#45",
+        "#46",
+        "#47",
+        "#48",
+        "#49",
+        "#50",
+        "#51",
+        "#52",
+        "#53",
+        "#54",
+        "#55",
+        "#56",
+        "#57"
+      ],
+      "yData": [
+        13412, 11399, 20862, 19301, 21824, 20887, 17092, 17879, 12651, 13346,
+        26094, 10157, 12871, 10689, 23302, 10398, 9503, 15182, 16135, 15983,
+        13628, 22307, 17847, 12497, 19999, 15599, 13787, 10815, 12789, 11652,
+        10, 15546, 12651
+      ]
+    }
+  ]
+}

+ 65 - 0
src/views/performance/components/chartsCom/json/min_pitch3.json

@@ -0,0 +1,65 @@
+{
+  "analysisTypeCode": "变桨电机温升分析",
+  "typecode": "WEM00012",
+  "engineCode": "WEM00012",
+  "engineTypeName": "WT2000/93",
+  "title": "叶尖速比分布-WT2000/93",
+  "xaixs": "风速(m/s)",
+  "yaixs": "变桨电机温度(°C)",
+  "data": [
+    {
+      "engineName": "#03",
+      "engineCode": "WOG00606",
+      "xData": [
+        3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.2, 4.4, 4.6, 4.8, 5.0, 5.2, 5.4, 5.6,
+        5.8, 6.0, 6.2, 6.4, 6.6, 6.8, 7.0, 7.2, 7.4, 7.6, 7.8, 8.0, 8.2, 8.4,
+        8.6, 8.8, 9.0, 9.2, 9.4, 9.6, 9.8, 10.0, 10.2, 10.4, 10.6, 10.8, 11.0,
+        11.2, 11.4, 11.6, 11.8, 12.0, 12.2, 12.4, 12.6, 12.8, 13.0, 13.2, 13.4,
+        13.6, 13.8, 14.0, 14.2, 14.4, 14.6, 14.8
+      ],
+      "yData": [
+        12.2, 12.5, 12.7, 13.0, 13.3, 13.6, 13.9, 14.2, 14.5, 14.8, 15.1, 15.5,
+        15.8, 16.1, 16.4, 16.7, 17.0, 17.3, 17.6, 17.9, 18.2, 18.5, 18.8, 19.1,
+        19.4, 19.6, 19.9, 20.2, 20.4, 20.7, 20.9, 21.1, 21.4, 21.6, 21.8, 22.0,
+        22.2, 22.4, 22.6, 22.8, 23.0, 23.2, 23.3, 23.5, 23.6, 23.8, 23.9, 24.0,
+        24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.7, 24.8, 24.8, 24.9, 24.9
+      ]
+    },
+    {
+      "engineName": "#05",
+      "engineCode": "WOG00608",
+      "xData": [
+        3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.2, 4.4, 4.6, 4.8, 5.0, 5.2, 5.4, 5.6,
+        5.8, 6.0, 6.2, 6.4, 6.6, 6.8, 7.0, 7.2, 7.4, 7.6, 7.8, 8.0, 8.2, 8.4,
+        8.6, 8.8, 9.0, 9.2, 9.4, 9.6, 9.8, 10.0, 10.2, 10.4, 10.6, 10.8, 11.0,
+        11.2, 11.4, 11.6, 11.8, 12.0, 12.2, 12.4, 12.6, 12.8, 13.0, 13.2, 13.4,
+        13.6, 13.8, 14.0, 14.2, 14.4, 14.6, 14.8
+      ],
+      "yData": [
+        15.4, 15.7, 16.0, 16.3, 16.6, 16.9, 17.2, 17.5, 17.8, 18.1, 18.4, 18.8,
+        19.1, 19.4, 19.7, 20.0, 20.3, 20.6, 20.9, 21.2, 21.5, 21.8, 22.1, 22.4,
+        22.7, 23.0, 23.3, 23.6, 23.8, 24.1, 24.4, 24.6, 24.9, 25.1, 25.3, 25.6,
+        25.8, 26.0, 26.2, 26.4, 26.6, 26.8, 27.0, 27.2, 27.3, 27.5, 27.6, 27.8,
+        27.9, 28.0, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.6, 28.7, 28.7, 28.8
+      ]
+    },
+    {
+      "engineName": "#06",
+      "engineCode": "WOG00609",
+      "xData": [
+        3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.2, 4.4, 4.6, 4.8, 5.0, 5.2, 5.4, 5.6,
+        5.8, 6.0, 6.2, 6.4, 6.6, 6.8, 7.0, 7.2, 7.4, 7.6, 7.8, 8.0, 8.2, 8.4,
+        8.6, 8.8, 9.0, 9.2, 9.4, 9.6, 9.8, 10.0, 10.2, 10.4, 10.6, 10.8, 11.0,
+        11.2, 11.4, 11.6, 11.8, 12.0, 12.2, 12.4, 12.6, 12.8, 13.0, 13.2, 13.4,
+        13.6, 13.8, 14.0, 14.2, 14.4, 14.6, 14.8
+      ],
+      "yData": [
+        20.1, 20.4, 20.7, 21.0, 21.3, 21.6, 21.9, 22.2, 22.5, 22.8, 23.1, 23.4,
+        23.7, 24.0, 24.3, 24.6, 24.9, 25.2, 25.5, 25.8, 26.1, 26.4, 26.7, 27.0,
+        27.3, 27.6, 27.9, 28.2, 28.5, 28.8, 29.0, 29.3, 29.5, 29.8, 30.0, 30.2,
+        30.5, 30.7, 30.9, 31.1, 31.3, 31.5, 31.7, 31.9, 32.0, 32.2, 32.3, 32.5,
+        32.6, 32.7, 32.8, 32.9, 33.0, 33.1, 33.2, 33.3, 33.3, 33.4, 33.4, 33.5
+      ]
+    }
+  ]
+}

+ 233 - 0
src/views/performance/components/chartsCom/json/production_indicator1.json

@@ -0,0 +1,233 @@
+{
+  "analysisTypeCode": "发电量损失分析",
+  "engineTypeCode": "WEM00041",
+  "engineTypeName": "",
+  "axes": {
+    "radial": "频率百分比(%)",
+    "angular": "风向",
+    "levelname": "发电量损失类型"
+  },
+  "data": [
+    {
+      "enginName": "",
+      "enginCode": "WOG01339",
+      "title": "",
+      "windRoseData": [
+        {
+          "windDirection": 26,
+          "windSpeedRange": "调度限电损失电量",
+          "frequency": 28.5
+        },
+        {
+          "windDirection": 26,
+          "windSpeedRange": "远程停机损失电量",
+          "frequency": 3.2
+        },
+        {
+          "windDirection": 26,
+          "windSpeedRange": "故障停机损失电量",
+          "frequency": 6.1
+        },
+        {
+          "windDirection": 26,
+          "windSpeedRange": "计划停机损失电量",
+          "frequency": 12.3
+        },
+        {
+          "windDirection": 26,
+          "windSpeedRange": "受累停机损失电量",
+          "frequency": 7.6
+        },
+        {
+          "windDirection": 26,
+          "windSpeedRange": "气象停机损失电量",
+          "frequency": 42.3
+        },
+
+        {
+          "windDirection": 27,
+          "windSpeedRange": "调度限电损失电量",
+          "frequency": 30.1
+        },
+        {
+          "windDirection": 27,
+          "windSpeedRange": "远程停机损失电量",
+          "frequency": 2.9
+        },
+        {
+          "windDirection": 27,
+          "windSpeedRange": "故障停机损失电量",
+          "frequency": 5.4
+        },
+        {
+          "windDirection": 27,
+          "windSpeedRange": "计划停机损失电量",
+          "frequency": 13.7
+        },
+        {
+          "windDirection": 27,
+          "windSpeedRange": "受累停机损失电量",
+          "frequency": 6.2
+        },
+        {
+          "windDirection": 27,
+          "windSpeedRange": "气象停机损失电量",
+          "frequency": 41.7
+        },
+
+        {
+          "windDirection": 28,
+          "windSpeedRange": "调度限电损失电量",
+          "frequency": 26.8
+        },
+        {
+          "windDirection": 28,
+          "windSpeedRange": "远程停机损失电量",
+          "frequency": 4.0
+        },
+        {
+          "windDirection": 28,
+          "windSpeedRange": "故障停机损失电量",
+          "frequency": 6.5
+        },
+        {
+          "windDirection": 28,
+          "windSpeedRange": "计划停机损失电量",
+          "frequency": 10.4
+        },
+        {
+          "windDirection": 28,
+          "windSpeedRange": "受累停机损失电量",
+          "frequency": 8.8
+        },
+        {
+          "windDirection": 28,
+          "windSpeedRange": "气象停机损失电量",
+          "frequency": 43.5
+        },
+
+        {
+          "windDirection": 29,
+          "windSpeedRange": "调度限电损失电量",
+          "frequency": 29.2
+        },
+        {
+          "windDirection": 29,
+          "windSpeedRange": "远程停机损失电量",
+          "frequency": 3.1
+        },
+        {
+          "windDirection": 29,
+          "windSpeedRange": "故障停机损失电量",
+          "frequency": 7.3
+        },
+        {
+          "windDirection": 29,
+          "windSpeedRange": "计划停机损失电量",
+          "frequency": 12.8
+        },
+        {
+          "windDirection": 29,
+          "windSpeedRange": "受累停机损失电量",
+          "frequency": 6.5
+        },
+        {
+          "windDirection": 29,
+          "windSpeedRange": "气象停机损失电量",
+          "frequency": 41.1
+        },
+
+        {
+          "windDirection": 30,
+          "windSpeedRange": "调度限电损失电量",
+          "frequency": 27.4
+        },
+        {
+          "windDirection": 30,
+          "windSpeedRange": "远程停机损失电量",
+          "frequency": 3.6
+        },
+        {
+          "windDirection": 30,
+          "windSpeedRange": "故障停机损失电量",
+          "frequency": 5.7
+        },
+        {
+          "windDirection": 30,
+          "windSpeedRange": "计划停机损失电量",
+          "frequency": 11.9
+        },
+        {
+          "windDirection": 30,
+          "windSpeedRange": "受累停机损失电量",
+          "frequency": 7.4
+        },
+        {
+          "windDirection": 30,
+          "windSpeedRange": "气象停机损失电量",
+          "frequency": 30.0
+        },
+        {
+          "windDirection": 31,
+          "windSpeedRange": "调度限电损失电量",
+          "frequency": 28.5
+        },
+        {
+          "windDirection": 31,
+          "windSpeedRange": "远程停机损失电量",
+          "frequency": 3.2
+        },
+        {
+          "windDirection": 31,
+          "windSpeedRange": "故障停机损失电量",
+          "frequency": 6.1
+        },
+        {
+          "windDirection": 31,
+          "windSpeedRange": "计划停机损失电量",
+          "frequency": 12.3
+        },
+        {
+          "windDirection": 31,
+          "windSpeedRange": "受累停机损失电量",
+          "frequency": 7.6
+        },
+        {
+          "windDirection": 31,
+          "windSpeedRange": "气象停机损失电量",
+          "frequency": 42.3
+        },
+        {
+          "windDirection": 32,
+          "windSpeedRange": "调度限电损失电量",
+          "frequency": 27.5
+        },
+        {
+          "windDirection": 32,
+          "windSpeedRange": "远程停机损失电量",
+          "frequency": 2.2
+        },
+        {
+          "windDirection": 32,
+          "windSpeedRange": "故障停机损失电量",
+          "frequency": 5.1
+        },
+        {
+          "windDirection": 32,
+          "windSpeedRange": "计划停机损失电量",
+          "frequency": 10.3
+        },
+        {
+          "windDirection": 32,
+          "windSpeedRange": "受累停机损失电量",
+          "frequency": 8.6
+        },
+        {
+          "windDirection": 32,
+          "windSpeedRange": "气象停机损失电量",
+          "frequency": 50.3
+        }
+      ]
+    }
+  ]
+}

+ 54 - 0
src/views/performance/components/chartsCom/json/production_indicator11.json

@@ -0,0 +1,54 @@
+{
+  "analysisTypeCode": "发电量损失分析",
+  "engineTypeCode": "WEM00041",
+  "engineTypeName": "",
+  "typecode": "WEM00041",
+  "engineCode": "WEM00041",
+  "title": "发电量损失分析",
+  "xaixs": "风机编号",
+  "yaixs": "损失电量(万千瓦时)",
+  "data": [
+    {
+      "enginName": "调度限电损失电量",
+      "enginCode": "WOG01339",
+      "title": "",
+      "xData": [26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41],
+      "yData": [4, 2, 5, 3, 6, 7, 2, 5, 7, 8, 2, 4, 6, 2, 4]
+    },
+    {
+      "enginName": "远程停机损失电量",
+      "enginCode": "WOG01339",
+      "title": "",
+      "xData": [26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41],
+      "yData": [2, 5, 6, 2, 7, 2, 2, 8, 7, 2, 2, 6, 6, 1, 3]
+    },
+    {
+      "enginName": "故障停机损失电量",
+      "enginCode": "WOG01339",
+      "title": "",
+      "xData": [26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41],
+      "yData": [4, 8, 5, 2, 6, 7, 2, 5, 3, 5, 2, 4, 2, 2, 4]
+    },
+    {
+      "enginName": "计划停机损失电量",
+      "enginCode": "WOG01339",
+      "title": "",
+      "xData": [26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41],
+      "yData": [4, 2, 5, 3, 6, 7, 2, 5, 7, 8, 2, 4, 6, 2, 4]
+    },
+    {
+      "enginName": "受累停机损失电量",
+      "enginCode": "WOG01339",
+      "title": "",
+      "xData": [26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41],
+      "yData": [4, 2, 5, 3, 6, 7, 2, 5, 7, 8, 2, 4, 6, 2, 4]
+    },
+    {
+      "enginName": "气象停机损失电量",
+      "enginCode": "WOG01339",
+      "title": "",
+      "xData": [26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41],
+      "yData": [4, 2, 5, 3, 6, 7, 2, 5, 7, 8, 2, 4, 6, 2, 4]
+    }
+  ]
+}

+ 33 - 0
src/views/performance/components/chartsCom/json/yaw_error1.json

@@ -0,0 +1,33 @@
+{
+  "analysisTypeCode": "偏航频次及速率分析",
+  "engineTypeCode": "WEM00041",
+  "engineTypeName": "",
+  "typecode": "WEM00041",
+  "engineCode": "WEM00041",
+  "title": "偏航频次及速率",
+  "xaixs": "时间",
+  "yaixs": "count",
+  "data": [
+    {
+      "enginName": "Yaw Rate < 0.5",
+      "engineCode": "",
+      "title": "变桨次数分布",
+      "xData": ["2024-01", "2024-02", "2024-03", "2024-04"],
+      "yData": [1182, 622, 1913, 931]
+    },
+    {
+      "enginName": "0.5 <=Yaw Rate < =0.6",
+      "engineCode": "",
+      "title": "",
+      "xData": ["2024-01", "2024-02", "2024-03", "2024-04"],
+      "yData": [80, 44, 131, 67]
+    },
+    {
+      "enginName": "Yaw Rate > 0.6",
+      "engineCode": "",
+      "title": "",
+      "xData": ["2024-01", "2024-02", "2024-03", "2024-04"],
+      "yData": [134, 66, 295, 115]
+    }
+  ]
+}

+ 93 - 0
src/views/performance/components/chartsCom/json/yaw_error2.json

@@ -0,0 +1,93 @@
+{
+  "analysisTypeCode": "偏航时间占比分析",
+  "engineCode": "WEM00041",
+  "engineTypeName": "",
+  "xaixs": "日期",
+  "yaixs": "偏航时间占比",
+  "data": [
+    {
+      "title": " #34偏航时间占比分布",
+      "engineName": "#34",
+      "engineCode": "WOG01312",
+      "xData": [
+        "1-1",
+        "1-2",
+        "1-3",
+        "1-4",
+        "1-5",
+        "1-6",
+        "1-7",
+        "1-8",
+        "1-9",
+        "1-10",
+        "1-11",
+        "1-12",
+        "1-13",
+        "1-14",
+        "1-15",
+        "1-16",
+        "1-17",
+        "1-18",
+        "1-19",
+        "1-20",
+        "1-21",
+        "1-31",
+        "2-1",
+        "2-3",
+        "2-4",
+        "11-12",
+        "11-13",
+        "11-14",
+        "11-15",
+        "11-16",
+        "11-17",
+        "11-18",
+        "11-19",
+        "12-2",
+        "12-3",
+        "12-4",
+        "12-5",
+        "12-6",
+        "12-7",
+        "12-8",
+        "12-9",
+        "12-10",
+        "12-11",
+        "12-12",
+        "12-13",
+        "12-14",
+        "12-15",
+        "12-16",
+        "12-17",
+        "12-18",
+        "12-19",
+        "12-20",
+        "12-21",
+        "12-22",
+        "12-23",
+        "12-24",
+        "12-25",
+        "12-26"
+      ],
+      "yData": [
+        0.0, 0.0, 0.0008333333581686036, 0.0008999982834059702,
+        0.0007000000059604656, 0.0006333384831880195, 0.00043333409629065693,
+        0.0008333333581686036, 0.0011999977111826965, 0.0008333396911741176,
+        0.0005333339055380738, 0.0005333354949973905, 0.0008333357175207112,
+        0.0008333333581686036, 0.00103333334922792, 0.0005333323160812854,
+        0.00043333409629047934, 0.000633333516121346, 0.000533335494997124,
+        0.0002999994277956919, 0.0008333357175207038, 0.000533333309491475,
+        0.0008333317438770897, 0.0008333357175210443, 0.00013333307902038644,
+        0.00013333332737286674, 0.00013333943691878382, 0.00013333307902025618,
+        0.00013333943691878382, 0.0001333394369191865, 0.00010000457768908789,
+        0.00010000457768938987, 0.0001333338737493343, 0.002133333237965905,
+        0.00013332672127331098, 0.10013333943691878385, 0.0001333394369191865,
+        0.0027000002145767263, 0.004799999785423282, 0.0008333333581686036,
+        0.000433333276708925, 0.00010000010728838882, 0.0001333333273728694,
+        0.0, 0.0005333323160812854, 0.0007000058174259557,
+        0.0008333317438770897, 0.007000022411365621, 0.0005333354949973905,
+        0.000699998664856436
+      ]
+    }
+  ]
+}

+ 15 - 0
src/views/performance/components/chartsCom/lineAndChildLine.vue

@@ -52,6 +52,7 @@ import axios from "axios";
 import { colorSchemes } from "@/views/overview/js/colors";
 import { myMixin } from "@/mixins/chartRequestMixin"; // 假设你需要的 mixin
 import { mapState } from "vuex";
+import min_pitch3 from "./json/min_pitch3.json";
 export default {
   props: {
     fileAddr: {
@@ -110,6 +111,7 @@ export default {
     },
   },
   mounted() {
+    this.getData();
     if (this.fileAddr) {
       this.$nextTick(() => {
         this.color1 = this.colorSchemes[0].colors;
@@ -120,6 +122,7 @@ export default {
   methods: {
     // 获取数据
     async getData() {
+      console.log("jinru");
       if (this.fileAddr !== "") {
         try {
           this.loading = true;
@@ -140,6 +143,18 @@ export default {
           this.isError = true;
           this.loading = false;
         }
+      } else {
+        console.log(
+          JSON.parse(JSON.stringify(min_pitch3)),
+          "JSON.parse(JSON.stringify(min_pitch3))"
+        );
+        this.chartData = JSON.parse(JSON.stringify(min_pitch3));
+        // 使用 nextTick 来确保 DOM 渲染完成后绘制图表
+        nextTick(() => {
+          this.drawChart();
+        });
+        this.isError = false;
+        this.loading = false;
       }
     },
     // 绘制图表

+ 72 - 47
src/views/performance/components/chartsCom/lineScatter.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-07-28 14:00:00
- * @LastEditTime: 2025-07-29 16:42:29
+ * @LastEditTime: 2025-08-15 17:53:58
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/components/chartsCom/lineScatter.vue
@@ -48,7 +48,7 @@
     <!-- 图表容器 -->
     <div
       v-loading="loading"
-      :id="`bar-chart${index}`"
+      :id="`bar-chart`"
       style="width: 100%; height: 400px"
     >
       <el-empty v-if="isError" description="请求失败"></el-empty>
@@ -64,6 +64,7 @@ import { colorSchemes } from "@/views/overview/js/colors";
 import { myMixin } from "@/mixins/chartRequestMixin"; // 假设你需要的 mixin
 import { mapState } from "vuex";
 import min_pitch2 from "./json/#34_min_pitch2.json";
+import yaw_error2 from "./json/yaw_error2.json";
 export default {
   props: {
     fileAddr: {
@@ -76,6 +77,12 @@ export default {
         return "";
       },
     },
+    chart: {
+      type: String,
+      default() {
+        return "";
+      },
+    },
     setUpImgData: {
       default: () => [],
       type: Array,
@@ -117,19 +124,19 @@ export default {
     },
   },
   mounted() {
-    if (this.fileAddr) {
-      this.$nextTick(() => {
-        this.getData();
-        this.color1 = [
-          "#0000F5",
-          "#377E21",
-          "#0000F5",
-          "#377E21",
-          "#000000",
-          "#F2A93B",
-        ];
-      });
-    }
+    // if (this.fileAddr) {
+    this.$nextTick(() => {
+      this.getData();
+      this.color1 = [
+        "#0000F5",
+        "#377E21",
+        "#0000F5",
+        "#377E21",
+        "#000000",
+        "#F2A93B",
+      ];
+    });
+    // }
   },
   methods: {
     // 获取数据
@@ -142,7 +149,10 @@ export default {
             cancelToken: this.cancelToken.token,
           });
           // this.chartData = resultChartsData.data;
-          this.chartData = JSON.parse(JSON.stringify(min_pitch2));
+          this.chartData =
+            this.chart === "min2"
+              ? JSON.parse(JSON.stringify(min_pitch2))
+              : JSON.parse(JSON.stringify(yaw_error2));
           // 使用 nextTick 来确保 DOM 渲染完成后绘制图表
           nextTick(() => {
             this.drawChart();
@@ -154,6 +164,17 @@ export default {
           this.isError = true;
           this.loading = false;
         }
+      } else {
+        this.chartData =
+          this.chart === "min2"
+            ? JSON.parse(JSON.stringify(min_pitch2))
+            : JSON.parse(JSON.stringify(yaw_error2));
+        // 使用 nextTick 来确保 DOM 渲染完成后绘制图表
+        nextTick(() => {
+          this.drawChart();
+          this.isError = false;
+          this.loading = false;
+        });
       }
     },
     // 绘制图表
@@ -230,36 +251,39 @@ export default {
           t: 50,
           b: 50,
         },
-        shapes: [
-          {
-            type: "line",
-            xref: "paper",
-            x0: 0,
-            x1: 1,
-            yref: "y",
-            y0: 0.1,
-            y1: 0.1,
-            line: {
-              color: "red",
-              width: 2,
-              dash: "dash",
-            },
-          },
-          {
-            type: "line",
-            xref: "paper",
-            x0: 0,
-            x1: 1,
-            yref: "y",
-            y0: 0.05,
-            y1: 0.05,
-            line: {
-              color: "#F9DD70",
-              width: 2,
-              dash: "dash",
-            },
-          },
-        ],
+        shapes:
+          this.chart === "min2"
+            ? []
+            : [
+                {
+                  type: "line",
+                  xref: "paper",
+                  x0: 0,
+                  x1: 1,
+                  yref: "y",
+                  y0: 0.1,
+                  y1: 0.1,
+                  line: {
+                    color: "red",
+                    width: 2,
+                    dash: "dash",
+                  },
+                },
+                {
+                  type: "line",
+                  xref: "paper",
+                  x0: 0,
+                  x1: 1,
+                  yref: "y",
+                  y0: 0.05,
+                  y1: 0.05,
+                  line: {
+                    color: "#F9DD70",
+                    width: 2,
+                    dash: "dash",
+                  },
+                },
+              ],
         plot_bgcolor: "#e5ecf6",
         gridcolor: "#fff",
         bgcolor: "#e5ecf6", // 设置背景颜色
@@ -279,9 +303,10 @@ export default {
         layout.yaxis.dtick = yChartSetUp.dtick;
         layout.yaxis.range = [yChartSetUp.min, yChartSetUp.max];
       }
+      console.log("sssssss");
       this.$nextTick(() => {
         // 使用 Plotly.react 来更新图表
-        Plotly.react(`bar-chart${this.index}`, data, layout, {
+        Plotly.react(`bar-chart`, data, layout, {
           responsive: true,
           modeBarButtonsToRemove: [
             // 移除不需要的工具按钮

+ 0 - 120
src/views/performance/components/custonAsCom/dragChart/components/chartConfig/form/chartLogic/modules/Heatmap.js

@@ -6,127 +6,7 @@
 //  * @Description: In User Settings Edit
 //  * @FilePath: /performance-test/src/views/performance/components/custonAsCom/dragChart/components/chartConfig/form/chartLogic/modules/Heatmap.js
 //  */
-// import { filterData } from "../dargChartFIlter";
-// export function handleHeatmapPlotChartLogic(
-//   item,
-//   formLabelAlign,
-//   formFilterAlign,
-//   isFilter,
-//   type
-// ) {
-//   // 数据筛选逻辑
-//   if (isFilter === "filter") {
-//     const filterResult = formLabelAlign.Ydata.map((yItem, index) => ({
-//       label: yItem.label,
-//       id: yItem.id,
-//       data: yItem.data.map((val) => {
-//         const filters = formFilterAlign[index]?.filters || [];
-//         // 排除 null 数据和不符合筛选条件的数据
-//         return val === null ||
-//           (filters.length > 0 && !filters.includes(val[yItem.label]))
-//           ? null
-//           : val;
-//       }),
-//     }));
-//     // 条件筛选逻辑
-//     const filterList = filterResult.map((filteredItem, index) => {
-//       const filter = formFilterAlign[index];
-//       const { filterType1, filterType2, number1, number2 } = filter;
 
-//       if (
-//         (number1 === null || number1 === "") &&
-//         (number2 === null || number2 === "")
-//       ) {
-//         return {
-//           label: filteredItem.label,
-//           id: filteredItem.id,
-//           data: filteredItem.data,
-//         };
-//       } else {
-//         const filterDatas = filterData(
-//           filter,
-//           filteredItem.data,
-//           filteredItem.label
-//         );
-//         return {
-//           label: filteredItem.label,
-//           id: filteredItem.id,
-//           data: [...filterDatas],
-//         };
-//       }
-//     });
-//     item.Xdata = formLabelAlign.Xdata;
-//     item.Ydata = filterList;
-//   } else {
-//     item.Xdata = formLabelAlign.Xdata;
-//     item.Ydata = formLabelAlign.Ydata;
-//   }
-//   // 生成数据
-//   if (
-//     item.Xdata.length > 1 &&
-//     item.Xdata[1]?.data?.length > 0 &&
-//     item.Ydata.length > 0 &&
-//     item.Ydata[0]?.data?.length > 0
-//   ) {
-//     // 初始化 series 数据
-//     item.option.series = [];
-//     const xAxisData = item.Xdata[0].data
-//       .map((xitem) => xitem[item.Xdata[0].label])
-//       .filter((val) => val !== null && val !== "" && val !== undefined);
-//     const yAxisData = item.Xdata[1].data
-//       .map((xitem) => xitem[item.Xdata[1].label])
-//       .filter((val) => val !== null && val !== "" && val !== undefined);
-//     // 设置 x 和 y 轴标签
-//     item.option.xAxis = {
-//       ...item.option.xAxis,
-//       name: formLabelAlign.Xlable,
-//       data: xAxisData,
-//     };
-//     item.option.yAxis = {
-//       ...item.option.yAxis,
-//       name: formLabelAlign.Ylable,
-//       data: yAxisData,
-//     };
-//     // 初始化热力图数据
-//     const data1 = [];
-//     for (let z = 0; z < xAxisData.length; z++) {
-//       for (let i = 0; i < yAxisData.length; i++) {
-//         // 在 Ydata[0].data 中查找匹配的值
-//         const matchedValue = item.Ydata[0].data.find(
-//           (yval) =>
-//             yval !== null &&
-//             yval[item.Xdata[0].label] === xAxisData[z] &&
-//             yval[item.Xdata[1].label] === yAxisData[i]
-//         );
-//         // 如果找到匹配值,则取 Ydata[0].label 的值,否则为 null
-//         const value = matchedValue ? matchedValue[item.Ydata[0].label] : null;
-//         // 将值推入 data1
-//         data1.push([i, z, value]);
-//       }
-//     }
-//     // 转换数据结构(如有必要)
-//     const formattedData = data1.map((item) => [
-//       item[1],
-//       item[0],
-//       item[2] || "-",
-//     ]);
-
-//     item.option.series = [
-//       {
-//         type: "heatmap",
-//         data: formattedData,
-//         progressiveThreshold: 3000, // 当数据量超过3000时启用渐进式渲染
-//         progressive: true, // 启用渐进式渲染
-//         emphasis: {
-//           itemStyle: {
-//             shadowBlur: 10,
-//             shadowColor: "rgba(0, 0, 0, 0.5)",
-//           },
-//         },
-//       },
-//     ];
-//   }
-// }
 import { filterData } from "../dargChartFIlter";
 
 export function handleHeatmapPlotChartLogic(

+ 2 - 2
src/views/performance/components/custonAsCom/dragChart/components/chartConfig/form/chartLogic/modules/pie.js

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2024-11-26 16:33:45
- * @LastEditTime: 2025-08-15 13:43:37
+ * @LastEditTime: 2025-08-15 13:58:14
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/components/custonAsCom/dragChart/components/chartConfig/form/chartLogic/modules/pie.js
@@ -70,7 +70,7 @@ export function handlePieChartLogic(
       // radius: "60%",
       radius: type === "doughnut" ? ["40%", "70%"] : "60%",
       itemStyle: {
-        borderRadius: 10,
+        borderRadius: type === "doughnut" ? 10 : 0,
       },
       label: {
         show: false,