Browse Source

修改下载报告样式

liujiejie 5 months ago
parent
commit
01bdc0496d
28 changed files with 240 additions and 140 deletions
  1. BIN
      downLoadServer.zip
  2. 0 0
      downLoadServer/download-server@1.0.0
  3. 3 1
      downLoadServer/src/server/utils/chartsCom/3DDrawingChart.js
  4. 3 1
      downLoadServer/src/server/utils/chartsCom/BarChart.js
  5. 2 0
      downLoadServer/src/server/utils/chartsCom/BoxLineCharts.js
  6. 4 8
      downLoadServer/src/server/utils/chartsCom/BoxMarkersCharts.js
  7. 2 0
      downLoadServer/src/server/utils/chartsCom/ColorbarInitTwoDmarkersChart.js
  8. 2 0
      downLoadServer/src/server/utils/chartsCom/FaultAll.js
  9. 56 69
      downLoadServer/src/server/utils/chartsCom/FaultUnit.js
  10. 83 10
      downLoadServer/src/server/utils/chartsCom/GeneratorTemperature.js
  11. 2 0
      downLoadServer/src/server/utils/chartsCom/HeatmapCharts.js
  12. 2 0
      downLoadServer/src/server/utils/chartsCom/PlotlyCharts.js
  13. 2 0
      downLoadServer/src/server/utils/chartsCom/PlotlyChartsFen.js
  14. 7 1
      downLoadServer/src/server/utils/chartsCom/Radar.js
  15. 2 0
      downLoadServer/src/server/utils/chartsCom/Time3DChart.js
  16. 2 0
      downLoadServer/src/server/utils/chartsCom/TwoDMarkersChart.js
  17. 2 0
      downLoadServer/src/server/utils/chartsCom/TwoDMarkersChart1.js
  18. 3 1
      downLoadServer/src/server/utils/chartsCom/WindRoseChart.js
  19. 2 0
      downLoadServer/src/server/utils/chartsCom/YewErrorBarChart.js
  20. 34 24
      downLoadServer/src/server/utils/chartsCom/lineAndChildLine.js
  21. 12 16
      downLoadServer/src/server/utils/chartsCom/lineChartsFen.js
  22. 2 0
      downLoadServer/src/server/utils/chartsCom/powerMarkers2DCharts.js
  23. 2 0
      downLoadServer/src/server/utils/chartsCom/yawErrorBarSum.js
  24. 2 0
      downLoadServer/src/server/utils/chartsCom/yawErrorLine.js
  25. 2 2
      src/views/overview/components/cp/index.vue
  26. 2 1
      src/views/performance/components/chartsCom/WindRoseChart.vue
  27. 0 1
      src/views/performance/components/chartsCom/lineAndChildLine.vue
  28. 5 5
      vue.config.js

BIN
downLoadServer.zip


+ 0 - 0
downLoadServer/download-server@1.0.0


+ 3 - 1
downLoadServer/src/server/utils/chartsCom/3DDrawingChart.js

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2025-04-14 16:09:13
- * @LastEditTime: 2025-06-10 14:10:40
+ * @LastEditTime: 2025-06-16 15:26:16
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /downLoadServer/src/server/utils/chartsCom/3DDrawingChart.js
@@ -37,7 +37,9 @@ export const generate3DDrawingChart = async (data, bucketName, objectName) => {
     // 创建浏览器实例
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
 

+ 3 - 1
downLoadServer/src/server/utils/chartsCom/BarChart.js

@@ -33,7 +33,9 @@ export const generateBarChart = async (data, bucketName, objectName) => {
     // 创建浏览器实例
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
 
@@ -92,7 +94,7 @@ export const generateBarChart = async (data, bucketName, objectName) => {
       };
 
       // 如果 Y 轴是 "温度偏差",添加两条红色虚线
-      if (data.yaixs === "温度偏差") {
+      if (data.data[0].title === "温度偏差") {
         layout.shapes = [
           {
             type: "line",

+ 2 - 0
downLoadServer/src/server/utils/chartsCom/BoxLineCharts.js

@@ -43,7 +43,9 @@ export const generateBoxLineChart = async (data, bucketName, objectName) => {
     // 创建浏览器实例
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
 

+ 4 - 8
downLoadServer/src/server/utils/chartsCom/BoxMarkersCharts.js

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2025-05-13 11:02:32
- * @LastEditTime: 2025-05-26 10:57:41
+ * @LastEditTime: 2025-06-18 15:26:39
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /downLoadServer/src/server/utils/chartsCom/BoxMarkersCharts.js
@@ -42,7 +42,6 @@ const filterData = (group) => {
       filteredYData.push(group.yData[index]);
     }
   });
-  console.log(filteredMedians, "filteredMedians h过滤中心值");
   return {
     ...group,
     xData: filteredXData,
@@ -136,7 +135,9 @@ export const generateBoxMarkersCharts = async (
 
   // 使用 Puppeteer 生成图表的截图
   const browser = await puppeteer.launch({
-    headless: true,
+    headless: "new",
+    // 根据系统改路径
+    executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
     args: ["--no-sandbox", "--disable-setuid-sandbox"],
   });
 
@@ -194,13 +195,8 @@ export const generateBoxMarkersCharts = async (
       }
     );
 
-    console.log("上传成功:", response.data);
     return response?.data?.url;
   } finally {
     await browser.close();
   }
 };
-
-// ... existing code ...
-
-// ... existing code ...

+ 2 - 0
downLoadServer/src/server/utils/chartsCom/ColorbarInitTwoDmarkersChart.js

@@ -41,7 +41,9 @@ export const generateColorbarInitTwoDmarkersChart = async (
     // 创建浏览器实例
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
 

+ 2 - 0
downLoadServer/src/server/utils/chartsCom/FaultAll.js

@@ -118,7 +118,9 @@ export const getFaultAllCharts = async (
     // 使用 Puppeteer 生成图表的截图
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
     try {

+ 56 - 69
downLoadServer/src/server/utils/chartsCom/FaultUnit.js

@@ -3,7 +3,6 @@ import fs from "fs-extra";
 import path from "path";
 import FormData from "form-data";
 import axios from "axios"; // 导入 axios
-import { colorSchemes } from "../colors.js";
 
 export const getFaultUnitCharts = async (
   data,
@@ -22,88 +21,78 @@ export const getFaultUnitCharts = async (
     );
     const plotlyContent = await fs.readFile(plotlyPath, "utf-8");
 
-    // 提取故障机组、故障次数和故障时长
-    const faultTypes = data.map((item) => item.wind_turbine_name);
-    const faultCounts = data.map((item) => item.count);
-    const faultDurations = data.map((item) => item.fault_time);
-    console.log();
-    // 故障次数的散点图数据(左侧 Y 轴)
-    const scatterFaultCounts = {
-      x: faultTypes.slice(0, 10),
-      y: faultCounts.slice(0, 10),
-      mode: "markers", // 散点图
-      marker: { color: "#64ADC2", size: 10 }, // 蓝色散点
-      name: "故障次数",
-      hovertemplate: `机组: %{x} <br> 故障次数: %{y} 次<br>`,
-    };
+    // 步骤 1:预处理
+    const combined = data.map((item) => ({
+      name: item.wind_turbine_name,
+      count: item.count,
+      durationHour: (item.fault_time / 3600).toFixed(2), // 秒转小时
+    }));
 
-    // 故障时长的散点图数据(右侧 Y 轴)
-    const scatterFaultDurations = {
-      x: faultTypes.slice(0, 10),
-      y: faultDurations.slice(0, 10),
-      mode: "markers", // 散点图
-      marker: { color: "#1A295D", size: 10 }, // 红色散点
-      name: "故障时长",
-      yaxis: "y2", // 使用第二个 Y 轴(右侧)
-      hovertemplate: `机组: %{x} <br> 故障时长: %{y} 秒<br>`,
-    };
+    // 步骤 2:按 name 排序(字典序)
+    combined.sort((a, b) => a.name.localeCompare(b.name));
+
+    // 步骤 3:归一化 count 用于 size
+    const rawSizes = combined.map((d) => d.count);
+    const minSize = 8;
+    const maxSize = 30;
+    const sizeRange = maxSize - minSize;
+    const minValue = Math.min(...rawSizes);
+    const maxValue = Math.max(...rawSizes);
+    const normalizedSizes = rawSizes.map((val) => {
+      if (maxValue === minValue) return (minSize + maxSize) / 2;
+      return ((val - minValue) / (maxValue - minValue)) * sizeRange + minSize;
+    });
+
+    // 步骤 4:生成 plotly 数据
+    const bubbleData = combined.map((d, i) => ({
+      x: [d.name],
+      y: [d.durationHour],
+      mode: "markers",
+      type: "scatter",
+      name: d.name,
+      marker: {
+        size: normalizedSizes[i],
+        sizemode: "area",
+        sizeref: 1,
+        sizemin: 4,
+        showscale: false,
+      },
+      hovertemplate: `机组: ${d.name}<br>故障时长: ${d.durationHour} 小时<br>故障次数: ${d.count} 次<extra></extra>`,
+    }));
 
-    // 布局配置,设置双 Y 轴
     const layout = {
       title: {
-        text: "机组故障次数与时长分析Top10",
-        font: {
-          size: 16,
-          weight: "bold",
-        },
+        text: "机组故障时长与故障次数分析",
+        font: { size: 16, weight: "bold" },
       },
       xaxis: {
-        title: {
-          text: "故障机组",
-        },
+        title: "故障机组",
+        type: "category",
         tickangle: 30,
-        tickmode: "array",
-        tickvals: faultTypes.slice(0, 10), // 保证这里是字符串数组
-        ticktext: faultTypes.slice(0, 10), // 确保 ticktext 使用相同的标签
         tickfont: { size: 12 },
-        type: "category", // 让 Y 轴按类别均匀分布
         gridcolor: "rgb(255,255,255)",
         tickcolor: "rgb(255,255,255)",
         backgroundcolor: "#e5ecf6",
+        showbackground: true,
       },
       yaxis: {
-        title: {
-          text: "故障次数",
-        },
-        titlefont: { color: "#64ADC2" },
-        tickfont: { color: "#64ADC2" },
-        side: "left", // 左侧的 Y 轴
-        showline: true,
-        linecolor: "#64ADC2",
+        title: "故障时长(小时)",
+        tickfont: { size: 12 },
         gridcolor: "rgb(255,255,255)",
         tickcolor: "rgb(255,255,255)",
         backgroundcolor: "#e5ecf6",
-      },
-      yaxis2: {
-        title: {
-          text: "故障时长(秒)",
-        },
-        titlefont: { color: "#1A295D" },
-        tickfont: { color: "#1A295D" },
-        showgrid: false, // 隐藏 Y 轴网格线
-        overlaying: "y", // 在第一个 Y 轴上方绘制
-        side: "right", // 右侧的 Y 轴
-        position: 1, // 调整右侧轴的位置
-        showline: true,
-        linecolor: "#1A295D", // 设置右侧轴线颜色
+        showbackground: true,
       },
       plot_bgcolor: "#e5ecf6",
       gridcolor: "#fff",
-      bgcolor: "#e5ecf6", // 设置背景颜色
-      showlegend: false, // 显示图例
-      margin: {
-        t: 80, // 上边距
-        b: 150, // 下边距,给 X 轴标签更多空间
+      margin: { t: 80, b: 120 },
+      showlegend: true,
+      legendgroup: "same",
+      legend: {
+        itemsizing: "constant",
+        font: {
+          size: 12,
+        },
       },
     };
 
@@ -139,11 +128,9 @@ export const getFaultUnitCharts = async (
             <div id="chart"></div>
             <script>
               window.onload = function() {
-                Plotly.newPlot('chart', [${JSON.stringify(
-                  scatterFaultCounts
-                )}, ${JSON.stringify(scatterFaultDurations)}], ${JSON.stringify(
-        layout
-      )}).then(() => {
+                Plotly.newPlot('chart', ${JSON.stringify(
+                  bubbleData
+                )}, ${JSON.stringify(layout)}).then(() => {
                   window.chartRendered = true;
                 });
               };

+ 83 - 10
downLoadServer/src/server/utils/chartsCom/GeneratorTemperature.js

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2025-05-13 14:33:50
- * @LastEditTime: 2025-05-21 15:10:12
+ * @LastEditTime: 2025-06-18 14:56:26
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /downLoadServer/src/server/utils/chartsCom/GeneratorTemperature.js
@@ -22,14 +22,7 @@ export const generateGeneratorTemperature = async (
   try {
     console.log("开始生成图表...");
     console.log("数据:", data);
-    const typeLine = [
-      "solid",
-      "dot",
-      "dash",
-      "longdash",
-      "dashdot",
-      "longdashdot",
-    ];
+    const typeLine = ["solid", "solid", "dot", "dot", "dash", "solid"];
     // 创建临时目录
     const tempDir = path.join(process.cwd(), "images");
     await fs.ensureDir(tempDir);
@@ -44,11 +37,20 @@ export const generateGeneratorTemperature = async (
       "plotly-latest.min.js"
     );
     const plotlyContent = await fs.readFile(plotlyPath, "utf-8");
-    const colorDefault = colorSchemes[0].colors;
+    const colorDefault = [
+      "#0000F5",
+      "#377E21",
+      "#0000F5",
+      "#377E21",
+      "#000000",
+      "#F2A93B",
+    ];
     // 创建浏览器实例
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
 
@@ -121,6 +123,77 @@ export const generateGeneratorTemperature = async (
         bgcolor: "#e5ecf6",
         autosize: true,
         barmode: data.chartType === "bar" ? "stack" : "group",
+        shapes: [
+          {
+            type: "line",
+            xref: "paper",
+            x0: 0,
+            x1: 1,
+            yref: "y",
+            y0: 15,
+            y1: 15,
+            line: {
+              color: "red",
+              width: 2,
+              dash: "dash",
+            },
+          },
+          {
+            type: "line",
+            xref: "paper",
+            x0: 0,
+            x1: 1,
+            yref: "y",
+            y0: -15,
+            y1: -15,
+            line: {
+              color: "red",
+              width: 2,
+              dash: "dash",
+            },
+          },
+          {
+            type: "line",
+            xref: "paper",
+            x0: 0,
+            x1: 1,
+            yref: "y",
+            y0: 5,
+            y1: 5,
+            line: {
+              color: "#F9DD70",
+              width: 2,
+              dash: "dash",
+            },
+          },
+          {
+            type: "line",
+            xref: "paper",
+            x0: 0,
+            x1: 1,
+            yref: "y",
+            y0: -5,
+            y1: -5,
+            line: {
+              color: "#F9DD70",
+              width: 2,
+              dash: "dash",
+            },
+          },
+          {
+            type: "line",
+            xref: "paper",
+            x0: 0,
+            x1: 1,
+            yref: "y",
+            y0: 0,
+            y1: 0,
+            line: {
+              color: "#fff", // 设置为黑色
+              width: 2,
+            },
+          },
+        ],
       };
 
       // 创建HTML内容

+ 2 - 0
downLoadServer/src/server/utils/chartsCom/HeatmapCharts.js

@@ -39,7 +39,9 @@ export const generateHeatmapChart = async (data, bucketName, objectName) => {
     // 创建浏览器实例
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
 

+ 2 - 0
downLoadServer/src/server/utils/chartsCom/PlotlyCharts.js

@@ -102,7 +102,9 @@ export const generatePlotlyCharts = async (
 
     browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
 

+ 2 - 0
downLoadServer/src/server/utils/chartsCom/PlotlyChartsFen.js

@@ -46,7 +46,9 @@ export const generatePlotlyChartsFen = async (
     // 创建浏览器实例
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
 

+ 7 - 1
downLoadServer/src/server/utils/chartsCom/Radar.js

@@ -114,7 +114,13 @@ export const getRadarCharts = async (
   fieldInfo,
   engineTypeCode
 ) => {
-  const browser = await puppeteer.launch();
+  const browser = await puppeteer.launch({
+    headless: "new",
+    // 根据系统改路径
+    executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
+    args: ["--no-sandbox", "--disable-setuid-sandbox"],
+  });
   const page = await browser.newPage();
   // 创建临时目录
   const tempDir = path.join(process.cwd(), "images");

+ 2 - 0
downLoadServer/src/server/utils/chartsCom/Time3DChart.js

@@ -41,7 +41,9 @@ export const generateTime3DChart = async (data, bucketName, objectName) => {
     // 创建浏览器实例
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: [
         "--no-sandbox",
         "--disable-setuid-sandbox",

+ 2 - 0
downLoadServer/src/server/utils/chartsCom/TwoDMarkersChart.js

@@ -41,7 +41,9 @@ export const generateTwoDMarkersChart = async (
     // 创建浏览器实例
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
 

+ 2 - 0
downLoadServer/src/server/utils/chartsCom/TwoDMarkersChart1.js

@@ -32,7 +32,9 @@ export const generateTwoDMarkersChart1 = async (
     // 创建浏览器实例
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
 

+ 3 - 1
downLoadServer/src/server/utils/chartsCom/WindRoseChart.js

@@ -93,7 +93,7 @@ export const getWindRoseChart = async (
     // 图表布局
     const layout = {
       title: {
-        text: `风向玫瑰分析 - ${windRoseList[0]?.enginName} `, // 修改为与 Vue 文件一致
+        text: `风向玫瑰 - ${windRoseList[0]?.enginName} `, // 修改为与 Vue 文件一致
         font: {
           size: 16,
           weight: "bold",
@@ -124,7 +124,9 @@ export const getWindRoseChart = async (
     // 使用 Puppeteer 生成图表的截图
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
     try {

+ 2 - 0
downLoadServer/src/server/utils/chartsCom/YewErrorBarChart.js

@@ -119,7 +119,9 @@ export const getYewErrorBarChart = async (
     // 使用 Puppeteer 生成图表的截图
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
     try {

+ 34 - 24
downLoadServer/src/server/utils/chartsCom/lineAndChildLine.js

@@ -23,30 +23,38 @@ export const generateLineAndChildLine = async (
     // 获取数据
     // 准备图表数据
     const data = [];
-    chartData.data &&
-      chartData.data.forEach((turbine, index) => {
-        const chartConfig = {
-          x: turbine.xData,
-          y: turbine.yData,
-          name: turbine.engineName,
-          mode: "lines",
-          line: {
-            color: colorSchemesItem[index % colorSchemesItem.length],
-          },
-          marker: {
-            color: colorSchemesItem[index % colorSchemesItem.length],
-          },
-          hovertemplate:
-            `${chartData.xaixs}:` +
-            ` %{x} <br> ` +
-            `${chartData.yaixs}:` +
-            "%{y} <br>",
-        };
-        if (chartData.yaixs === "概率密度函数") {
-          chartConfig.line.color = colorSchemesItem[12];
-        }
-        data.push(chartConfig);
-      });
+    const newData =
+      chartData.analysisTypeCode === "风电机组叶尖速比和风速分析"
+        ? chartData &&
+          chartData.data &&
+          JSON.parse(JSON.stringify(chartData.data)).sort((a, b) => {
+            return a.engineName.localeCompare(b.engineName);
+          })
+        : JSON.parse(JSON.stringify(chartData.data));
+
+    newData.forEach((turbine, index) => {
+      const chartConfig = {
+        x: turbine.xData,
+        y: turbine.yData,
+        name: turbine.engineName,
+        mode: "lines",
+        line: {
+          color: colorSchemesItem[index % colorSchemesItem.length],
+        },
+        marker: {
+          color: colorSchemesItem[index % colorSchemesItem.length],
+        },
+        hovertemplate:
+          `${chartData.xaixs}:` +
+          ` %{x} <br> ` +
+          `${chartData.yaixs}:` +
+          "%{y} <br>",
+      };
+      if (chartData.yaixs === "概率密度函数") {
+        chartConfig.line.color = colorSchemesItem[7];
+      }
+      data.push(chartConfig);
+    });
 
     // 准备布局配置
     const layout = {
@@ -120,7 +128,9 @@ export const generateLineAndChildLine = async (
     // 创建浏览器实例
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
 

+ 12 - 16
downLoadServer/src/server/utils/chartsCom/lineChartsFen.js

@@ -38,30 +38,26 @@ export const generateLineChart = async (
     // 创建浏览器实例
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
 
     try {
       const page = await browser.newPage();
 
-      // 准备图表数据
-      const sortedData = data.data.sort((a, b) => {
-        if (
-          a.engineCode === fieldEngineCode &&
-          b.engineCode !== fieldEngineCode
-        ) {
-          return 1;
-        }
-        if (
-          a.engineCode !== fieldEngineCode &&
-          b.engineCode === fieldEngineCode
-        ) {
-          return -1;
-        }
-        return 0;
+      // 先整体排序:目标 engineCode 放最后,其他按 engineName 升序
+      const sortedData = [...data.data].sort((a, b) => {
+        const aIsTarget = a.engineCode === fieldEngineCode;
+        const bIsTarget = b.engineCode === fieldEngineCode;
+        // 如果 a 是目标、b 不是 => a 排后(返回 1)
+        if (aIsTarget && !bIsTarget) return 1;
+        // 如果 b 是目标、a 不是 => b 排后(返回 -1)
+        if (!aIsTarget && bIsTarget) return -1;
+        // 如果都不是目标项,按 engineName 升序排序
+        return a.engineName.localeCompare(b.engineName);
       });
-
       const finalData = [];
       console.log(fieldEngineCode, "fieldEngineCode");
       sortedData.forEach((turbine) => {

+ 2 - 0
downLoadServer/src/server/utils/chartsCom/powerMarkers2DCharts.js

@@ -41,7 +41,9 @@ export const generatepowerMarkers2DCharts = async (
     // 创建浏览器实例
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
 

+ 2 - 0
downLoadServer/src/server/utils/chartsCom/yawErrorBarSum.js

@@ -105,7 +105,9 @@ export const getYawErrorBarSumCharts = async (
     // 使用 Puppeteer 生成图表的截图
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
     try {

+ 2 - 0
downLoadServer/src/server/utils/chartsCom/yawErrorLine.js

@@ -115,7 +115,9 @@ export const generateYawErrorLine = async (
     // 使用 Puppeteer 生成图表的截图
     const browser = await puppeteer.launch({
       headless: "new",
+      // 根据系统改路径
       executablePath: `${process.env.CHROME_PATH}`, // 根据系统改路径
+
       args: ["--no-sandbox", "--disable-setuid-sandbox"],
     });
 

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

@@ -1,8 +1,8 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-09 18:05:58
- * @LastEditTime: 2025-06-12 09:52:54
- * @LastEditors: bogon
+ * @LastEditTime: 2025-06-13 16:58:46
+ * @LastEditors: milo-MacBook-Pro.local
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/cp/index.vue
 -->

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

@@ -155,7 +155,8 @@ export default {
       // 图表布局
       const layout = {
         title: {
-          text: `${analysisTypeCode} - ${data[0]?.enginName} `,
+          // text: `${analysisTypeCode} - ${data[0]?.enginName} `,
+          text: `风向玫瑰图 - ${data[0]?.enginName} `,
           font: {
             size: 16, // 设置标题字体大小(默认 16)
             weight: "bold",

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

@@ -178,7 +178,6 @@ export default {
             "%{y} <br>",
         };
         if (this.chartData.yaixs === "概率密度函数") {
-          console.log(this.color1[5], this.colors[5], "this.color1");
           chartConfig.line.color =
             this.color1.length > 0 ? this.color1[7] : this.colors[7]; // 为每个机组分配不同的颜色
         }

+ 5 - 5
vue.config.js

@@ -147,8 +147,8 @@ module.exports = {
       },
       //nodejs 数据库数据
       "/databaseApi": {
-        target: "http://192.168.50.234:3002",
-        // target: "http://106.120.102.238:58880", //这个代理会走两次代理转发
+        // target: "http://192.168.50.234:3002",
+        target: "http://106.120.102.238:58880", //这个代理会走两次代理转发
         changeOrigin: true,
         pathRewrite: {
           "^/databaseApi": "", // 去掉 /databaseApi 前缀
@@ -156,9 +156,9 @@ module.exports = {
       },
       //nodejs 数据库数据
       "/downLoadChart": {
-        // target: "http://127.0.0.1:3000",
-        // target: "http://192.168.50.235:8999", //内网演示
-        target: "http://106.120.102.238:28999/downLoadChart", //外网演示
+        target: "http://127.0.0.1:3000",
+        // target: "http://192.168.50.235:8999/downLoadChart", //内网演示
+        // target: "http://106.120.102.238:28999/downLoadChart", //外网演示
         changeOrigin: true,
         pathRewrite: {
           "^/downLoadChart": "", // 去掉 /downLoadChart 前缀