Jelajahi Sumber

cms加分页合并

rui.jiang 1 Minggu lalu
induk
melakukan
7756f32dfd
30 mengubah file dengan 208 tambahan dan 193 penghapusan
  1. 3 1
      downLoadServer/src/server/utils/chartsCom/3DDrawingChart.js
  2. 6 5
      downLoadServer/src/server/utils/chartsCom/Time3DChart.js
  3. 2 2
      src/components/map/index.vue
  4. 2 2
      src/router/index.js
  5. 3 3
      src/store/themes.js
  6. 1 1
      src/views/home/Index.vue
  7. 8 8
      src/views/home/components/MenuHD.vue
  8. 2 2
      src/views/login/Index.vue
  9. 3 3
      src/views/overview/components/production_indicator_unit/index.vue
  10. 4 4
      src/views/performance/components/PlotlyCharts.vue
  11. 5 18
      src/views/performance/components/chartsCom/3DDrawingChart.vue
  12. 2 2
      src/views/performance/components/chartsCom/BarChart.vue
  13. 2 2
      src/views/performance/components/chartsCom/BoxLineCharts.vue
  14. 2 2
      src/views/performance/components/chartsCom/BoxMarkersCharts.vue
  15. 2 2
      src/views/performance/components/chartsCom/ColorbarInitTwoDmarkersChart.vue
  16. 2 2
      src/views/performance/components/chartsCom/FaultAll.vue
  17. 2 2
      src/views/performance/components/chartsCom/FaultUnit.vue
  18. 2 2
      src/views/performance/components/chartsCom/GeneratorTemperature.vue
  19. 2 2
      src/views/performance/components/chartsCom/HeatmapCharts.vue
  20. 7 28
      src/views/performance/components/chartsCom/Time3DChart.vue
  21. 2 2
      src/views/performance/components/chartsCom/TwoDMarkersChart.vue
  22. 64 30
      src/views/performance/components/chartsCom/TwoDMarkersChart1.vue
  23. 2 2
      src/views/performance/components/chartsCom/WindRoseChart.vue
  24. 2 2
      src/views/performance/components/chartsCom/YewErrorBarChart.vue
  25. 2 2
      src/views/performance/components/chartsCom/lineAndChildLine.vue
  26. 2 2
      src/views/performance/components/chartsCom/lineChartsFen.vue
  27. 66 54
      src/views/performance/components/chartsCom/powerMarkers2DCharts.vue
  28. 2 2
      src/views/performance/components/chartsCom/yawErrorBarSum.vue
  29. 2 2
      src/views/performance/components/chartsCom/yawErrorLine.vue
  30. 2 2
      vue.config.js

+ 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-07-10 14:00:17
+ * @LastEditTime: 2025-07-14 15:00:16
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /downLoadServer/src/server/utils/chartsCom/3DDrawingChart.js
@@ -92,6 +92,7 @@ export const generate3DDrawingChart = async (data, bucketName, objectName) => {
           },
           yaxis: {
             type: "category",
+            nticks: 3,
             categoryorder: "array", // 自定义顺序,确保间隔均匀
             categoryarray: [...new Set(chartDataset.yData)],
             gridcolor: "rgb(255,255,255)",
@@ -117,6 +118,7 @@ export const generate3DDrawingChart = async (data, bucketName, objectName) => {
             ticks: "outside", // 设置刻度线在轴线外
             tickcolor: "black",
             tickangle: -90,
+            nticks: 3,
             title: {
               text: data.zaixs,
             },

+ 6 - 5
downLoadServer/src/server/utils/chartsCom/Time3DChart.js

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2025-04-14 17:49:33
- * @LastEditTime: 2025-07-10 13:58:59
+ * @LastEditTime: 2025-07-14 17:24:27
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/downLoadServer/src/server/utils/chartsCom/Time3DChart.js
@@ -63,7 +63,6 @@ export const generateTime3DChart = async (data, bucketName, objectName) => {
         const monthData = data.data[0].yData
           .map((date, index) => (formatDate(date) === month ? index : -1))
           .filter((index) => index !== -1);
-
         return {
           x: monthData.map((index) => data.data[0].xData[index]), // 发电机转速
           y: monthData.map((index) => data.data[0].yData[index]), // 时间
@@ -108,7 +107,8 @@ export const generateTime3DChart = async (data, bucketName, objectName) => {
             categoryorder: "category ascending", // 按类别字母顺序排列
             type: "date",
             tickformat: "%Y-%m",
-            dtick: "M3",
+            // dtick: "M3",//显式设置每3个月一个刻度
+            nticks: 3,
             gridcolor: "#fff",
             tickcolor: "#e5ecf6",
             backgroundcolor: "#e0e7f1",
@@ -117,7 +117,7 @@ export const generateTime3DChart = async (data, bucketName, objectName) => {
             ticks: "outside",
             tickcolor: "black",
             zeroline: false,
-            // tickangle: 25,
+            tickangle: 25,
             title: {
               text: data.yaixs,
             },
@@ -131,7 +131,8 @@ export const generateTime3DChart = async (data, bucketName, objectName) => {
             ticks: "outside",
             tickcolor: "black",
             zeroline: false,
-            // tickangle: -90,
+            nticks: 3,
+            tickangle: -90,
             title: {
               text: data.zaixs,
             },

+ 2 - 2
src/components/map/index.vue

@@ -259,9 +259,9 @@ export default {
           source: new XYZ({
             // url: "http://106.120.102.238:18000/tiles/{z}/{x}/{y}.png", //外网
             // url: "http://127.0.0.1:8010/tiles/{z}/{x}/{y}.png", //本地
-            url: "http://192.168.50.235/tiles/{z}/{x}/{y}.png", //内网
+            // url: "http://192.168.50.235/tiles/{z}/{x}/{y}.png", //内网
             // url: "http://10.96.137.5:9080/tiles/{z}/{x}/{y}.png", //大~#@唐
-            // url: "http://192.168.0.1/tiles/{z}/{x}/{y}.png", //华电
+            url: "http://192.168.0.1/tiles/{z}/{x}/{y}.png", //华电
             // url: "http://192.168.50.235/tiles/{z}/{x}/{y}.png", //中广核
           }),
         }),

+ 2 - 2
src/router/index.js

@@ -28,8 +28,8 @@ const createRouter = () =>
             iconName: "gps",
             component: () =>
               import(
-                /*webpackChunkName:'home-cockpitManage'*/ "../views/admin/cockpitManage/Index.vue"
-                // /*webpackChunkName:'home-cockpitManage'*/ "../views/admin/cockpitManage/HD.vue" //华电选择这个
+                // /*webpackChunkName:'home-cockpitManage'*/ "../views/admin/cockpitManage/Index.vue"
+                /*webpackChunkName:'home-cockpitManage'*/ "../views/admin/cockpitManage/HD.vue" //华电选择这个
               ),
           },
           {

+ 3 - 3
src/store/themes.js

@@ -3,7 +3,7 @@ import { theme } from "tailwindcss/stubs/defaultConfig.stub";
 /*
  * @Author: your name
  * @Date: 2024-05-27 15:09:27
- * @LastEditTime: 2025-07-07 10:58:57
+ * @LastEditTime: 2025-07-14 10:23:56
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/store/themes.js
@@ -12,8 +12,8 @@ import { colorSchemes } from "@/views/overview/js/colors";
 export default {
   namespaced: true,
   state: {
-    theme: localStorage.getItem("theme") || "green",
-    // theme: localStorage.getItem("theme") || "blue", //华电默认主题色
+    // theme: localStorage.getItem("theme") || "green",
+    theme: localStorage.getItem("theme") || "blue", //华电默认主题色
     themeColor: [...colorSchemes[0].colors],
   },
   mutations: {

+ 1 - 1
src/views/home/Index.vue

@@ -52,7 +52,7 @@ export default {
   data() {
     return {
       loading: false,
-      isShowHd: false, //true 则展示华电的菜单样式,false 则展示默认的左侧边栏菜单
+      isShowHd: true, //true 则展示华电的菜单样式,false 则展示默认的左侧边栏菜单
     };
   },
   methods: {

+ 8 - 8
src/views/home/components/MenuHD.vue

@@ -408,16 +408,16 @@ export default {
 }
 
 // 非华电公司放开这个注释下面的
-.el-submenu__title * {
-  font-size: 16px;
-}
-.el-menu-item * {
-  font-size: 16px;
-}
+// .el-submenu__title * {
+//   font-size: 16px;
+// }
+// .el-menu-item * {
+//   font-size: 16px;
+// }
 </style>
 
 <!-- /* 华电时的菜单打开这个 */ -->
-<!-- <style lang="scss">
+<style lang="scss">
 .el-menu--popup {
   width: 100% !important;
   min-width: 120px !important;
@@ -434,4 +434,4 @@ export default {
 .el-menu-item * {
   font-size: 20px;
 }
-</style>  -->
+</style>

+ 2 - 2
src/views/login/Index.vue

@@ -2,9 +2,9 @@
   <div class="background-image" v-loading="loadingView">
     <div class="border">
       <div class="leftLogin">
-        <h1>机组功率曲线异常检测数据分析系统</h1>
+        <!-- <h1>机组功率曲线异常检测数据分析系统</h1> -->
         <!-- 华电 -->
-        <!-- <h1>风电机组健康诊断平台</h1> -->
+        <h1>风电机组健康诊断平台</h1>
         <el-divider></el-divider>
         <div class="loginText">
           <el-form

+ 3 - 3
src/views/overview/components/production_indicator_unit/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-13 13:44:56
- * @LastEditTime: 2025-06-20 11:47:19
+ * @LastEditTime: 2025-07-14 10:22:44
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/production_indicator_unit/index.vue
@@ -100,14 +100,14 @@
             </el-table-column>
             <el-table-column
               prop="mean_width"
-              label="功率水平平均宽度(m/s)"
+              label="功率水平平均宽度(m/s)(<=3.5)"
               width="200"
               header-align="center"
             >
             </el-table-column>
             <el-table-column
               prop="variance_width"
-              label="功率水平方差"
+              label="功率水平方差(<=1.5)"
               width="170"
               header-align="center"
             >

+ 4 - 4
src/views/performance/components/PlotlyCharts.vue

@@ -283,8 +283,8 @@ export default {
           "Download plot as a png": "保存图片",
           Autoscale: "缩放",
           Pan: "平移",
-          "Zoom out": "放大",
-          "Zoom in": "缩小",
+          "Zoom out": "缩小",
+          "Zoom in": "放大",
           "Box Select": "选择框操作",
           "Lasso Select": "套索选择操作",
           "Reset axes": "重置操作",
@@ -422,8 +422,8 @@ export default {
             "Download plot as a png": "保存图片",
             Autoscale: "缩放",
             Pan: "平移",
-            "Zoom out": "放大",
-            "Zoom in": "缩小",
+            "Zoom out": "缩小",
+            "Zoom in": "放大",
             "Box Select": "选择框操作",
             "Lasso Select": "套索选择操作",
             "Reset axes": "重置操作",

+ 5 - 18
src/views/performance/components/chartsCom/3DDrawingChart.vue

@@ -248,6 +248,7 @@ export default {
             ticks: "outside", // 设置刻度线在轴线外
             fixedrange: true, // 防止缩放
             // tickwidth: 2,
+
             tickcolor: "black",
             tickangle: -10,
             // range:
@@ -264,6 +265,7 @@ export default {
             categoryarray: [...new Set(this.chartData.data[0].yData)], // 以原始数据顺序排序
             tickvals: tickvals,
             ticktext: ticktext,
+            nticks: 3,
             gridcolor: "rgb(255,255,255)",
             tickcolor: "rgb(255,255,255)",
             backgroundcolor: "#e0e7f1",
@@ -282,6 +284,7 @@ export default {
             backgroundcolor: "#e0e7f1",
             showbackground: true,
             fixedrange: true, // 防止缩放
+            nticks: 3,
             // linewidth: 2, // 轴线宽度
             linecolor: "black", // 轴线颜色
             ticks: "outside", // 设置刻度线在轴线外
@@ -342,30 +345,14 @@ export default {
         responsive: true,
         modeBarButtonsToRemove: [
           "sendDataToCloud",
-          // "autoScale2d",
-          // "hoverClosest3d",
           "resetCameraLastSave3d",
           "resetCameraDefault3d",
           "resetCameraLastSave",
           "sendDataToCloud",
-          // "pan2d", // 平移按钮
           "zoom2d", // 缩放按钮
-          // "zoom",
           "zoom3d",
-          // "select2d", // 选择框
-          // "lasso2d", // 套索选择
-          // "resetScale2d", // 重置轴
-          // // "zoomIn", // 放大
-          // // "zoomOut", // 缩小
-          // "home", // 重置
-          // "toImage", // 导出为图片
-          // "hoverClosestCartesian", // 悬浮信息
-          // "zoomIn2d", // 缩放按钮(详细版本)
-          // "zoomOut2d", // 缩放按钮(详细版本)
-          // "autoScale2D",
           "plotlylogo2D",
           "plotlylogo3D",
-          // "Produced with Plotly.js(v2.35.2)", // 删除 Plotly logo
         ],
         displaylogo: false, // 可选:隐藏 Plotly logo
       };
@@ -414,8 +401,8 @@ export default {
               "Download plot as a png": "保存图片",
               Autoscale: "缩放",
               Pan: "平移",
-              "Zoom out": "放大",
-              "Zoom in": "缩小",
+              "Zoom out": "缩小",
+              "Zoom in": "放大",
               "Box Select": "选择框操作",
               "Lasso Select": "套索选择操作",
               "Reset axes": "重置操作",

+ 2 - 2
src/views/performance/components/chartsCom/BarChart.vue

@@ -315,8 +315,8 @@ export default {
           "Download plot as a png": "保存图片",
           Autoscale: "缩放",
           Pan: "平移",
-          "Zoom out": "放大",
-          "Zoom in": "缩小",
+          "Zoom out": "缩小",
+          "Zoom in": "放大",
           "Box Select": "选择框操作",
           "Lasso Select": "套索选择操作",
           "Reset axes": "重置操作",

+ 2 - 2
src/views/performance/components/chartsCom/BoxLineCharts.vue

@@ -287,8 +287,8 @@ export default {
               "Download plot as a png": "保存图片",
               Autoscale: "缩放",
               Pan: "平移",
-              "Zoom out": "放大",
-              "Zoom in": "缩小",
+              "Zoom out": "缩小",
+              "Zoom in": "放大",
               "Box Select": "选择框操作",
               "Lasso Select": "套索选择操作",
               "Reset axes": "重置操作",

+ 2 - 2
src/views/performance/components/chartsCom/BoxMarkersCharts.vue

@@ -229,8 +229,8 @@ export default {
           "Download plot as a png": "保存图片",
           Autoscale: "缩放",
           Pan: "平移",
-          "Zoom out": "放大",
-          "Zoom in": "缩小",
+          "Zoom out": "缩小",
+          "Zoom in": "放大",
           "Box Select": "选择框操作",
           "Lasso Select": "套索选择操作",
           "Reset axes": "重置操作",

+ 2 - 2
src/views/performance/components/chartsCom/ColorbarInitTwoDmarkersChart.vue

@@ -438,8 +438,8 @@ export default {
               "Download plot as a png": "保存图片",
               Autoscale: "缩放",
               Pan: "平移",
-              "Zoom out": "放大",
-              "Zoom in": "缩小",
+              "Zoom out": "缩小",
+              "Zoom in": "放大",
               "Box Select": "选择框操作",
               "Lasso Select": "套索选择操作",
               "Reset axes": "重置操作",

+ 2 - 2
src/views/performance/components/chartsCom/FaultAll.vue

@@ -172,8 +172,8 @@ export default {
           "Download plot as a png": "保存图片",
           Autoscale: "缩放",
           Pan: "平移",
-          "Zoom out": "放大",
-          "Zoom in": "缩小",
+          "Zoom out": "缩小",
+          "Zoom in": "放大",
           "Box Select": "选择框操作",
           "Lasso Select": "套索选择操作",
           "Reset axes": "重置操作",

+ 2 - 2
src/views/performance/components/chartsCom/FaultUnit.vue

@@ -138,8 +138,8 @@ export default {
           "Download plot as a png": "保存图片",
           Autoscale: "缩放",
           Pan: "平移",
-          "Zoom out": "放大",
-          "Zoom in": "缩小",
+          "Zoom out": "缩小",
+          "Zoom in": "放大",
           "Box Select": "选择框操作",
           "Lasso Select": "套索选择操作",
           "Reset axes": "重置操作",

+ 2 - 2
src/views/performance/components/chartsCom/GeneratorTemperature.vue

@@ -348,8 +348,8 @@ export default {
             "Download plot as a png": "保存图片",
             Autoscale: "缩放",
             Pan: "平移",
-            "Zoom out": "放大",
-            "Zoom in": "缩小",
+            "Zoom out": "缩小",
+            "Zoom in": "放大",
             "Box Select": "选择框操作",
             "Lasso Select": "套索选择操作",
             "Reset axes": "重置操作",

+ 2 - 2
src/views/performance/components/chartsCom/HeatmapCharts.vue

@@ -178,8 +178,8 @@ export default {
           "Download plot as a png": "保存图片",
           Autoscale: "缩放",
           Pan: "平移",
-          "Zoom out": "放大",
-          "Zoom in": "缩小",
+          "Zoom out": "缩小",
+          "Zoom in": "放大",
           "Box Select": "选择框操作",
           "Lasso Select": "套索选择操作",
           "Reset axes": "重置操作",

+ 7 - 28
src/views/performance/components/chartsCom/Time3DChart.vue

@@ -73,6 +73,7 @@ export default {
       type: Array,
     },
   },
+
   data() {
     return {
       color1: [], // 默认颜色
@@ -110,11 +111,7 @@ export default {
   async mounted() {
     this.$nextTick(() => {
       this.getData();
-      // if (this.themeColor.length === 0) {
       this.color1 = this.colorSchemes[0].colors;
-      // } else {
-      //   this.color1 = this.themeColor;
-      // }
     });
   },
 
@@ -220,7 +217,6 @@ export default {
               standoff: 100,
             },
             gridcolor: "#fff",
-            // backgroundcolor: "#CFD4DC",
             backgroundcolor: "#e0e7f1",
             showbackground: true,
             linecolor: "black",
@@ -229,6 +225,7 @@ export default {
             tickcolor: "black",
             zeroline: false,
             tickangle: -10,
+            // nticks: 5,
             dtick: this.chartData.xaixs === "风速(m/s)" ? 1 : undefined,
             // range:
             //   this.chartData.xaixs === "发电机转速(r/min)" ||
@@ -246,10 +243,9 @@ export default {
             categoryorder: "category ascending", // 按类别字母顺序排列
             type: "date",
             tickformat: "%Y-%m",
-            dtick: "M3",
+            // dtick: "M3",//显式设置每3个月一个刻度
             gridcolor: "#fff",
             tickcolor: "#e5ecf6",
-            // backgroundcolor: "#CFD4DC",
             backgroundcolor: "#e0e7f1",
             showbackground: true,
             linecolor: "black",
@@ -257,6 +253,7 @@ export default {
             tickcolor: "black",
             zeroline: false,
             tickangle: 25,
+            nticks: 3,
           },
           zaxis: {
             title: {
@@ -264,7 +261,6 @@ export default {
             },
             gridcolor: "#fff",
             tickcolor: "#fff",
-            // backgroundcolor: "#CFD4DC",
             backgroundcolor: "#e0e7f1",
             showbackground: true,
             linecolor: "black",
@@ -272,6 +268,7 @@ export default {
             tickcolor: "black",
             zeroline: false,
             tickangle: -90,
+            nticks: 3,
           },
           bgcolor: "#e5ecf6",
           aspectratio: {
@@ -301,24 +298,6 @@ export default {
               type: "orthographic",
             },
           },
-          // 添加 annotation 模拟 Y 轴标题
-          // annotations: [
-          //   {
-          //     x: -0.15, // 让标题靠左
-          //     y: 1, // 让标题在 Y 轴顶部
-          //     xref: "paper",
-          //     yref: "paper",
-          //     text: this.chartData.xaixs, // Y 轴标题
-          //     showarrow: false,
-          //     textangle: 90, // 旋转 90°
-          //     font: {
-          //       size: 16,
-          //       color: "black",
-          //     },
-          //     xanchor: "right",
-          //     yanchor: "top", // 避免重叠
-          //   },
-          // ],
         },
         margin: { t: 50, b: 50, l: 50, r: 50 },
         staticPlot: false,
@@ -391,8 +370,8 @@ export default {
           "Download plot as a png": "保存图片",
           Autoscale: "缩放",
           Pan: "平移",
-          "Zoom out": "放大",
-          "Zoom in": "缩小",
+          "Zoom out": "缩小",
+          "Zoom in": "放大",
           "Box Select": "选择框操作",
           "Lasso Select": "套索选择操作",
           "Reset axes": "重置操作",

+ 2 - 2
src/views/performance/components/chartsCom/TwoDMarkersChart.vue

@@ -419,8 +419,8 @@ export default {
               "Download plot as a png": "保存图片",
               Autoscale: "缩放",
               Pan: "平移",
-              "Zoom out": "放大",
-              "Zoom in": "缩小",
+              "Zoom out": "缩小",
+              "Zoom in": "放大",
               "Box Select": "选择框操作",
               "Lasso Select": "套索选择操作",
               "Reset axes": "重置操作",

+ 64 - 30
src/views/performance/components/chartsCom/TwoDMarkersChart1.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2024-09-11 14:32:12
- * @LastEditTime: 2025-07-10 14:07:08
+ * @LastEditTime: 2025-07-15 14:16:27
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/components/chartsCom/powerMarkers2DCharts.vue
@@ -153,7 +153,6 @@ export default {
         try {
           this.loading = true;
           this.cancelToken = axios.CancelToken.source();
-
           const resultChartsData = await axios.get(this.fileAddr, {
             cancelToken: this.cancelToken.token,
           });
@@ -185,7 +184,7 @@ export default {
       const uniqueTimeLabels = data.colorbar
         ? [...new Set(data.colorbar)]
         : [...new Set(data.color)]; // 从 colorbar 中提取唯一的时间标签
-      // console.log(data.colorbar, "data.colorbar 1");
+
       const tickvals = uniqueTimeLabels.map((label, index) => index + 1); // 根据时间标签生成 tickvals
       const ticktext = uniqueTimeLabels.map((dateStr) => {
         const date = new Date(dateStr);
@@ -267,6 +266,7 @@ export default {
             "%{y} <br>" +
             `时间: %{customdata}<extra></extra>`, // 在 hover 中显示格式化后的时间
           customdata: data.colorbar || data.color, // 将格式化后的时间存入 customdata
+          timedata: data.timeData,
         };
       }
       if (lineData) {
@@ -391,8 +391,8 @@ export default {
               "Download plot as a png": "保存图片",
               Autoscale: "缩放",
               Pan: "平移",
-              "Zoom out": "放大",
-              "Zoom in": "缩小",
+              "Zoom out": "缩小",
+              "Zoom in": "放大",
               "Box Select": "选择框操作",
               "Lasso Select": "套索选择操作",
               "Reset axes": "重置操作",
@@ -426,7 +426,7 @@ export default {
           x: xClick, // 点击点的 x 坐标
           y: yClick, // 点击点的 y 坐标
           index: pointIndex, // 点击点的索引
-          time: data.points[0].text, // 点击点的时间信息
+          time: data.points[0]?.data?.timedata[data.points[0].pointIndex], // 点击点的时间信息
         });
 
         // 初始化颜色和大小数组
@@ -449,10 +449,8 @@ export default {
             }
             return inside;
           }
-
           // 用于跟踪已添加的 (x, y) 组合
           const addedPoints = {};
-
           // 遍历图表数据中的所有点,检查是否在多边形内
           gd.data[0].x.forEach((xVal, i) => {
             const yVal = gd.data[0].y[i];
@@ -472,7 +470,6 @@ export default {
             }
           });
         }
-
         // // 更新选中点的颜色和大小
         this.selectedPoints.forEach((point) => {
           newColors[point.index] = "red";
@@ -516,30 +513,67 @@ export default {
       this.downloadCSV();
     },
 
-    downloadCSV() {
-      const headers = [this.chartData.xaixs, this.chartData.yaixs];
-      const csvRows = [headers]; // 保存标头
-      // 使用 Set 或 Map 去重
-      const uniquePoints = [];
-      this.selectedPoints.forEach((point) => {
-        if (!uniquePoints.some((p) => p.x === point.x && p.y === point.y)) {
-          uniquePoints.push(point);
+    async downloadCSV() {
+      try {
+        const paramValueTypes = await axios.get("/ETLapi/sysConf/getByType", {
+          params: { type: "en_cn_mapping" },
+        });
+        // 使用 Set 或 Map 去重
+        const uniquePoints = [];
+        this.selectedPoints.forEach((point) => {
+          if (!uniquePoints.some((p) => p.x === point.x && p.y === point.y)) {
+            uniquePoints.push(point);
+          }
+        });
+        const newTimedata = uniquePoints.map((item) => item.time);
+
+        const result = await axios.post(
+          "/ETLapi/dataTransfer/getWindTurbineAndTimestamps",
+          {
+            timestamps: [...newTimedata],
+            transferType: this.chartData.scada || "", //分析数据源类型
+            windFarmCode: this.chartData.field_code || "", //风场编号
+            windTurbineNumber: this.chartData.data[0].engineCode || "", //风机编号
+          }
+        );
+        const allData = result?.data?.datas || [];
+        if (!allData.length) {
+          console.warn("无数据返回");
+          return;
         }
-      });
 
-      // 将去重后的点加入 CSV 数据
-      uniquePoints.forEach((point) => {
-        csvRows.push(`${point.x},${point.y}`);
-      });
+        const firstItem = allData[0];
+
+        // 4. 获取可用映射字段
+        const mapping = paramValueTypes?.data?.datas || [];
+        const matchedMapping = mapping.filter((m) =>
+          firstItem.hasOwnProperty(m.paramKey)
+        );
 
-      const csvString = csvRows.join("\n");
-      const blob = new Blob([csvString], { type: "text/csv; charset=utf-8" });
-      const url = URL.createObjectURL(blob);
-      const a = document.createElement("a");
-      a.href = url;
-      a.download = "selected_data.csv";
-      a.click();
-      URL.revokeObjectURL(url);
+        // 5. 构建 CSV 表头(中文)
+        const headers = matchedMapping.map((m) => m.paramValue).join(",");
+
+        // 6. 构建 CSV 内容行
+        const rows = allData.map((item) => {
+          return matchedMapping.map((m) => item[m.paramKey] ?? "").join(",");
+        });
+
+        // 7. 合并为 CSV 字符串
+        const csvString = [headers, ...rows].join("\n");
+
+        // 8. 下载
+        const blob = new Blob([csvString], { type: "text/csv; charset=utf-8" });
+        const url = URL.createObjectURL(blob);
+        const a = document.createElement("a");
+        a.href = url;
+        a.download = "selected_data.csv";
+        document.body.appendChild(a);
+        a.click();
+        document.body.removeChild(a);
+        URL.revokeObjectURL(url);
+      } catch (err) {
+        console.error(err);
+      }
     },
     updateChartColor(color) {
       // 更新图表颜色

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

@@ -203,8 +203,8 @@ export default {
           "Download plot as a png": "保存图片",
           Autoscale: "缩放",
           Pan: "平移",
-          "Zoom out": "放大",
-          "Zoom in": "缩小",
+          "Zoom out": "缩小",
+          "Zoom in": "放大",
           "Box Select": "选择框操作",
           "Lasso Select": "套索选择操作",
           "Reset axes": "重置操作",

+ 2 - 2
src/views/performance/components/chartsCom/YewErrorBarChart.vue

@@ -236,8 +236,8 @@ export default {
           "Download plot as a png": "保存图片",
           Autoscale: "缩放",
           Pan: "平移",
-          "Zoom out": "放大",
-          "Zoom in": "缩小",
+          "Zoom out": "缩小",
+          "Zoom in": "放大",
           "Box Select": "选择框操作",
           "Lasso Select": "套索选择操作",
           "Reset axes": "重置操作",

+ 2 - 2
src/views/performance/components/chartsCom/lineAndChildLine.vue

@@ -297,8 +297,8 @@ export default {
           "Download plot as a png": "保存图片",
           Autoscale: "缩放",
           Pan: "平移",
-          "Zoom out": "放大",
-          "Zoom in": "缩小",
+          "Zoom out": "缩小",
+          "Zoom in": "放大",
           "Box Select": "选择框操作",
           "Lasso Select": "套索选择操作",
           "Reset axes": "重置操作",

+ 2 - 2
src/views/performance/components/chartsCom/lineChartsFen.vue

@@ -275,8 +275,8 @@ export default {
           "Download plot as a png": "保存图片",
           Autoscale: "缩放",
           Pan: "平移",
-          "Zoom out": "放大",
-          "Zoom in": "缩小",
+          "Zoom out": "缩小",
+          "Zoom in": "放大",
           "Box Select": "选择框操作",
           "Lasso Select": "套索选择操作",
           "Reset axes": "重置操作",

+ 66 - 54
src/views/performance/components/chartsCom/powerMarkers2DCharts.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2024-09-11 14:32:12
- * @LastEditTime: 2025-07-10 11:09:31
+ * @LastEditTime: 2025-07-15 14:17:51
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/components/chartsCom/powerMarkers2DCharts.vue
@@ -133,8 +133,6 @@ export default {
       //   this.color1 = this.themeColor;
       // }
     });
-
-    // console.log(this.color1, colorSchemes[0].colors, "color1");
   },
   methods: {
     // 根据配色方案设置每个选项的样式
@@ -275,6 +273,7 @@ export default {
             "%{y} <br>" +
             `时间: %{customdata}<extra></extra>`, // 在 hover 中显示格式化后的时间
           customdata: data.colorbar || data.color, // 将格式化后的时间存入 customdata
+          timedata: data.timeData,
         };
       }
       if (lineData) {
@@ -401,8 +400,8 @@ export default {
               "Download plot as a png": "保存图片",
               Autoscale: "缩放",
               Pan: "平移",
-              "Zoom out": "放大",
-              "Zoom in": "缩小",
+              "Zoom out": "缩小",
+              "Zoom in": "放大",
               "Box Select": "选择框操作",
               "Lasso Select": "套索选择操作",
               "Reset axes": "重置操作",
@@ -436,7 +435,7 @@ export default {
           x: xClick, // 点击点的 x 坐标
           y: yClick, // 点击点的 y 坐标
           index: pointIndex, // 点击点的索引
-          time: data.points[0].text, // 点击点的时间信息
+          time: data.points[0]?.data?.timedata[data.points[0].pointIndex], // 点击点的时间信息
         });
 
         // 初始化颜色和大小数组
@@ -462,7 +461,6 @@ export default {
 
           // 用于跟踪已添加的 (x, y) 组合
           const addedPoints = {};
-
           // 遍历图表数据中的所有点,检查是否在多边形内
           gd.data[0].x.forEach((xVal, i) => {
             const yVal = gd.data[0].y[i];
@@ -472,9 +470,8 @@ export default {
                 this.selectedPoints.push({
                   x: gd.data[0].x[i],
                   y: gd.data[0].y[i],
-                  time: gd.data[0].text[i],
+                  time: gd.data[0].timedata[i],
                 });
-
                 newColors[i] = "red"; // 高亮选择的点
                 newSize[i] = 10; // 设置点的大小
                 addedPoints[pointKey] = true;
@@ -489,30 +486,6 @@ export default {
           newSize[point.index] = 10;
         });
 
-        // 使用 Plotly.restyle 更新颜色和大小
-        // Plotly.restyle(gd, {
-        //   "marker.color": [newColors],
-        //   "marker.size": [newSize],
-        // });
-
-        // // 确保选中的点在最上面
-        // const scatterTrace = gd.data[0]; // 原来的散点数据
-        // const selectedTrace = {
-        //   x: this.selectedPoints.map((p) => p.x),
-        //   y: this.selectedPoints.map((p) => p.y),
-        //   mode: "markers",
-        //   type: "scattergl",
-        //   marker: {
-        //     color: "red", // 选中点颜色
-        //     size: 10,
-        //   },
-        // };
-
-        // // 合并数据,并保证选中点在最后
-        // const updatedTraces = [scatterTrace, selectedTrace]; // 选中的点 `selectedTrace` 放在最后
-
-        // // 更新图表
-        // Plotly.react(gd, updatedTraces, gd.layout);
         Plotly.addTraces(gd, {
           x: this.selectedPoints.map((p) => p.x),
           y: this.selectedPoints.map((p) => p.y),
@@ -548,28 +521,67 @@ export default {
       }
       this.downloadCSV();
     },
-    downloadCSV() {
-      const headers = [this.chartData.xaixs, this.chartData.yaixs];
-      const csvRows = [headers]; // 保存标头
-      // 使用 Set 或 Map 去重
-      const uniquePoints = [];
-      this.selectedPoints.forEach((point) => {
-        if (!uniquePoints.some((p) => p.x === point.x && p.y === point.y)) {
-          uniquePoints.push(point);
+    async downloadCSV() {
+      try {
+        const paramValueTypes = await axios.get("/ETLapi/sysConf/getByType", {
+          params: { type: "en_cn_mapping" },
+        });
+        // 使用 Set 或 Map 去重
+        const uniquePoints = [];
+        this.selectedPoints.forEach((point) => {
+          if (!uniquePoints.some((p) => p.x === point.x && p.y === point.y)) {
+            uniquePoints.push(point);
+          }
+        });
+        const newTimedata = uniquePoints.map((item) => item.time);
+
+        const result = await axios.post(
+          "/ETLapi/dataTransfer/getWindTurbineAndTimestamps",
+          {
+            timestamps: [...newTimedata],
+            transferType: this.chartData.scada || "", //分析数据源类型
+            windFarmCode: this.chartData.field_code || "", //风场编号
+            windTurbineNumber: this.chartData.data[0].engineCode || "", //风机编号
+          }
+        );
+        const allData = result?.data?.datas || [];
+        if (!allData.length) {
+          console.warn("无数据返回");
+          return;
         }
-      });
-      // 将去重后的点加入 CSV 数据
-      uniquePoints.forEach((point) => {
-        csvRows.push(`${point.x},${point.y}`);
-      });
-      const csvString = csvRows.join("\n");
-      const blob = new Blob([csvString], { type: "text/csv; charset=utf-8" });
-      const url = URL.createObjectURL(blob);
-      const a = document.createElement("a");
-      a.href = url;
-      a.download = "selected_data.csv";
-      a.click();
-      URL.revokeObjectURL(url);
+
+        const firstItem = allData[0];
+
+        // 4. 获取可用映射字段
+        const mapping = paramValueTypes?.data?.datas || [];
+        const matchedMapping = mapping.filter((m) =>
+          firstItem.hasOwnProperty(m.paramKey)
+        );
+
+        // 5. 构建 CSV 表头(中文)
+        const headers = matchedMapping.map((m) => m.paramValue).join(",");
+
+        // 6. 构建 CSV 内容行
+        const rows = allData.map((item) => {
+          return matchedMapping.map((m) => item[m.paramKey] ?? "").join(",");
+        });
+
+        // 7. 合并为 CSV 字符串
+        const csvString = [headers, ...rows].join("\n");
+
+        // 8. 下载
+        const blob = new Blob([csvString], { type: "text/csv; charset=utf-8" });
+        const url = URL.createObjectURL(blob);
+        const a = document.createElement("a");
+        a.href = url;
+        a.download = "selected_data.csv";
+        document.body.appendChild(a);
+        a.click();
+        document.body.removeChild(a);
+        URL.revokeObjectURL(url);
+      } catch (err) {
+        console.error(err);
+      }
     },
     updateChartColor(color) {
       // 更新图表颜色

+ 2 - 2
src/views/performance/components/chartsCom/yawErrorBarSum.vue

@@ -182,8 +182,8 @@ export default {
           "Download plot as a png": "保存图片",
           Autoscale: "缩放",
           Pan: "平移",
-          "Zoom out": "放大",
-          "Zoom in": "缩小",
+          "Zoom out": "缩小",
+          "Zoom in": "放大",
           "Box Select": "选择框操作",
           "Lasso Select": "套索选择操作",
           "Reset axes": "重置操作",

+ 2 - 2
src/views/performance/components/chartsCom/yawErrorLine.vue

@@ -260,8 +260,8 @@ export default {
           "Download plot as a png": "保存图片",
           Autoscale: "缩放",
           Pan: "平移",
-          "Zoom out": "放大",
-          "Zoom in": "缩小",
+          "Zoom out": "缩小",
+          "Zoom in": "放大",
           "Box Select": "选择框操作",
           "Lasso Select": "套索选择操作",
           "Reset axes": "重置操作",

+ 2 - 2
vue.config.js

@@ -89,8 +89,8 @@ module.exports = {
         // target: "http://192.168.5.11:8001", // WZLapi 目标地址
         // target: "http://106.120.102.238:18080/ImportDataDev", //导数工具
         // target: "http://106.120.102.238:18080/WindTransDev", //WTL外网目标地址
-        target: "http://106.120.102.238:28999/transDataWeb", //WTL演示环境
-        // target: "http://192.168.50.235:8999/transDataWeb", //WTL演示环境
+        // target: "http://106.120.102.238:28999/transDataWeb", //WTL演示环境
+        target: "http://192.168.50.235:8999/transDataWeb", //WTL演示环境
         changeOrigin: true,
         pathRewrite: {
           "^/ETLapi": "", // 去掉 /WZLapi 前缀