Procházet zdrojové kódy

添加步长设置功能

liujiejie před 9 měsíci
rodič
revize
262e81ec49
56 změnil soubory, kde provedl 815 přidání a 527 odebrání
  1. 7 2
      src/views/overview/components/cp/index.vue
  2. 5 2
      src/views/overview/components/cp_trend/index.vue
  3. 7 2
      src/views/overview/components/cp_windspeed/index.vue
  4. 5 2
      src/views/overview/components/data_integrity_minute/index.vue
  5. 5 2
      src/views/overview/components/data_integrity_second/index.vue
  6. 5 2
      src/views/overview/components/fault_all/index.vue
  7. 4 1
      src/views/overview/components/fault_unit/index.vue
  8. 170 35
      src/views/overview/components/filterChart/index.vue
  9. 6 2
      src/views/overview/components/min_pitch/index.vue
  10. 6 2
      src/views/overview/components/pitch_generator_speed/index.vue
  11. 7 2
      src/views/overview/components/pitch_power/index.vue
  12. 6 2
      src/views/overview/components/pitch_tsr_cp/index.vue
  13. 6 15
      src/views/overview/components/power_curve/index.vue
  14. 6 2
      src/views/overview/components/power_scatter/index.vue
  15. 6 2
      src/views/overview/components/power_scatter_2D/index.vue
  16. 5 2
      src/views/overview/components/production_indicator_all/index.vue
  17. 5 2
      src/views/overview/components/production_indicator_unit/index.vue
  18. 6 3
      src/views/overview/components/rated_power_windspeed/index.vue
  19. 6 2
      src/views/overview/components/rated_windspeed/index.vue
  20. 8 2
      src/views/overview/components/speed_power/index.vue
  21. 7 1
      src/views/overview/components/speed_torque/index.vue
  22. 6 2
      src/views/overview/components/temperature_environment/index.vue
  23. 7 2
      src/views/overview/components/temperature_large_components_Winding_tem/index.vue
  24. 7 2
      src/views/overview/components/temperature_large_components_adriven/index.vue
  25. 7 2
      src/views/overview/components/temperature_large_components_hig/index.vue
  26. 7 2
      src/views/overview/components/temperature_large_components_low/index.vue
  27. 7 2
      src/views/overview/components/temperature_large_components_mid/index.vue
  28. 7 2
      src/views/overview/components/temperature_large_components_min/index.vue
  29. 6 2
      src/views/overview/components/temperature_large_components_tem_deviation/index.vue
  30. 7 2
      src/views/overview/components/temperature_large_components_undriven/index.vue
  31. 7 2
      src/views/overview/components/tsr/index.vue
  32. 7 2
      src/views/overview/components/tsr_cp_power/index.vue
  33. 6 2
      src/views/overview/components/tsr_cp_power_scatter/index.vue
  34. 6 3
      src/views/overview/components/tsr_trend/index.vue
  35. 8 3
      src/views/overview/components/tsr_windspeed/index.vue
  36. 6 2
      src/views/overview/components/wind_direction_frequency/index.vue
  37. 8 4
      src/views/overview/components/wind_speed/index.vue
  38. 6 2
      src/views/overview/components/wind_speed_frequency/index.vue
  39. 6 2
      src/views/overview/components/yaw_error/index.vue
  40. 6 2
      src/views/overview/components/yaw_error_density/index.vue
  41. 2 3
      src/views/performance/assetssDetail.vue
  42. 97 34
      src/views/performance/components/PlotlyCharts.vue
  43. 31 1
      src/views/performance/components/chartsCom/3DDrawingChart.vue
  44. 48 31
      src/views/performance/components/chartsCom/BoxLineCharts.vue
  45. 26 0
      src/views/performance/components/chartsCom/BoxMarkersCharts.vue
  46. 29 6
      src/views/performance/components/chartsCom/GeneratorTemperature.vue
  47. 0 43
      src/views/performance/components/chartsCom/MarkersCharts.vue
  48. 31 1
      src/views/performance/components/chartsCom/Time3DChart.vue
  49. 38 11
      src/views/performance/components/chartsCom/TwoDMarkersChart.vue
  50. 0 105
      src/views/performance/components/chartsCom/YawErrorDensityChart.vue
  51. 4 0
      src/views/performance/components/chartsCom/YewErrorBarChart.vue
  52. 25 1
      src/views/performance/components/chartsCom/lineAndChildLine.vue
  53. 0 149
      src/views/performance/components/chartsCom/lineChart.vue
  54. 27 0
      src/views/performance/components/chartsCom/lineChartsFen.vue
  55. 37 12
      src/views/performance/components/chartsCom/powerMarkers2DCharts.vue
  56. 5 1
      src/views/performance/components/chartsCom/yawErrorLine.vue

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

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-09 18:05:58
- * @LastEditTime: 2025-02-12 15:08:11
+ * @LastEditTime: 2025-02-26 10:39:16
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/cp/index.vue
@@ -14,6 +14,7 @@
       <FilterChart
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
+        :setUpimg="['有功功率', '风能利用系数']"
         @handlePrevious="handlePrevious"
         @handleNext="handleNext"
       ></FilterChart>
@@ -44,6 +45,7 @@
       <el-empty description="暂无分析记录" v-else></el-empty>
       <div v-for="(item, index) in generalFilesDatas">
         <lineAndChildLine
+          :setUpImgData="setUpImgData"
           :key="`${new Date().getTime()}` + item.batchCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="`${new Date().getTime()}` + item.batchCode"
@@ -60,6 +62,7 @@
       <el-empty description="暂无分析记录" v-else></el-empty>
       <div v-for="(item, index) in diagramRelationsDatas">
         <lineChartsFen
+          :setUpImgData="setUpImgData"
           :key="`${new Date().getTime()}` + item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="`${new Date().getTime()}` + item.fieldEngineCode"
@@ -163,6 +166,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -310,8 +314,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = setUpImg;
       this.getAnalysisDetail();
     },
     //下一条

+ 5 - 2
src/views/overview/components/cp_trend/index.vue

@@ -4,6 +4,7 @@
     <div class="left">
       <FilterChart
         :windList="windEngineGroupList"
+        :setUpimg="['风能利用系数']"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
         @handleNext="handleNext"
@@ -32,6 +33,7 @@
         v-slot="{ item, index }"
       >
         <BoxMarkersCharts
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="index + item.fieldEngineCode"
           :ref="item.fieldEngineCode"
@@ -129,6 +131,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       isShowDescription: false,
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
@@ -282,10 +285,10 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
-      console.log(this.fieldEngineCodes, "this.fieldEngineCodes");
     },
     //下一条
     handleNext() {

+ 7 - 2
src/views/overview/components/cp_windspeed/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-09 18:08:00
- * @LastEditTime: 2025-02-12 17:00:19
+ * @LastEditTime: 2025-02-26 11:09:24
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/cp_windspeed/index.vue
@@ -13,6 +13,7 @@
     <div class="left">
       <FilterChart
         :windList="windEngineGroupList"
+        :setUpimg="['风能利用系数']"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
         @handleNext="handleNext"
@@ -44,6 +45,7 @@
       <el-empty description="暂无分析记录" v-else></el-empty>
       <div v-for="(item, index) in generalFilesDatas">
         <lineAndChildLine
+          :setUpImgData="setUpImgData"
           :key="item.batchCode + index"
           :index="`${new Date().getTime()}` + index + item.batchCode"
           :ref="item.batchCode"
@@ -60,6 +62,7 @@
       <el-empty description="暂无分析记录" v-else></el-empty>
       <div v-for="(item, index) in diagramRelationsDatas">
         <lineChartsFen
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index + item.fieldEngineCode"
           :ref="item.fieldEngineCode"
@@ -163,6 +166,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       isShowDescription: false,
@@ -310,8 +314,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 5 - 2
src/views/overview/components/data_integrity_minute/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-09 17:54:02
- * @LastEditTime: 2025-02-12 15:02:41
+ * @LastEditTime: 2025-02-26 11:17:15
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/data_integrity_minute/index.vue
@@ -11,6 +11,7 @@
     <!-- scada分钟级数据 -->
     <div class="left">
       <FilterChart
+        :setUpimg="[]"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -137,6 +138,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       isShowDescription: false,
       commentDescriptionVos: [], //评论列表
       windEngineGroupList: [], //批次风机列表
@@ -289,8 +291,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
       console.log(this.fieldEngineCodes, "this.fieldEngineCodes");
     },

+ 5 - 2
src/views/overview/components/data_integrity_second/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-09 17:55:01
- * @LastEditTime: 2025-02-12 15:45:23
+ * @LastEditTime: 2025-02-26 11:17:08
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/data_integrity_second/index.vue
@@ -12,6 +12,7 @@
     <!-- 秒级钟级SCADA数据完整度分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="[]"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -139,6 +140,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       isShowDescription: false,
       commentDescriptionVos: [], //评论列表
       windEngineGroupList: [], //批次风机列表
@@ -288,8 +290,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
       console.log(this.fieldEngineCodes, "this.fieldEngineCodes");
     },

+ 5 - 2
src/views/overview/components/fault_all/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-13 13:56:55
- * @LastEditTime: 2025-02-10 14:09:56
+ * @LastEditTime: 2025-02-26 11:09:02
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/fault_all/index.vue
@@ -12,6 +12,7 @@
     <!-- 全场故障统计 -->
     <div class="left">
       <FilterChart
+        :setUpimg="[]"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -177,6 +178,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
       comment: "",
@@ -397,8 +399,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 4 - 1
src/views/overview/components/fault_unit/index.vue

@@ -11,6 +11,7 @@
     <!-- 机组故障统计 -->
     <div class="left">
       <FilterChart
+        :setUpimg="[]"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -170,6 +171,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       isShowDescription: false,
       commentDescriptionVos: [], //评论列表
       windEngineGroupList: [], //批次风机列表
@@ -382,8 +384,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 170 - 35
src/views/overview/components/filterChart/index.vue

@@ -1,52 +1,102 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-13 14:53:21
- * @LastEditTime: 2025-02-18 09:16:21
+ * @LastEditTime: 2025-02-26 14:10:27
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/filterChart/index.vue
 -->
 <template>
-  <el-form ref="form" :inline="true" :model="form" label-width="100px">
-    <el-form-item label="机组名称:" size="small" v-if="windList.length > 0">
-      <el-select
-        v-model="form.value2"
-        multiple
-        collapse-tags
-        placeholder="请选择机组名称"
+  <div class="filterChart">
+    <h3>图像设置:</h3>
+    <el-form ref="form" :inline="true" :model="form" label-width="100px">
+      <el-row>
+        <el-col>
+          <el-form-item
+            label="机组名称"
+            size="small"
+            v-if="windList.length > 0"
+          >
+            <el-select
+              v-model="form.value2"
+              multiple
+              collapse-tags
+              placeholder="请选择机组名称"
+            >
+              <el-option
+                v-for="(item, indWind) in windList"
+                :key="item.engineCode + indWind"
+                :label="item.engineName"
+                :value="item.engineCode"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
+
+      <el-form-item
+        :label="`${inpItem.label}`"
+        v-for="(inpItem, inpInd) in form.dgeneratorSpeed"
       >
-        <el-option
-          v-for="(item, indWind) in windList"
-          :key="item.engineCode + indWind"
-          :label="item.engineName"
-          :value="item.engineCode"
+        <div class="demo-input-suffix">
+          <el-input
+            type="number"
+            :min="1"
+            size="small"
+            placeholder="步长"
+            v-model="inpItem.dtick"
+          >
+          </el-input>
+          <el-input
+            type="number"
+            :min="1"
+            size="small"
+            placeholder="最小值"
+            v-model="inpItem.min"
+          >
+          </el-input>
+          <el-input
+            type="number"
+            :min="1"
+            size="small"
+            placeholder="最大值"
+            v-model="inpItem.max"
+          >
+          </el-input>
+        </div>
+      </el-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          size="small"
+          @click="onSearch"
+          v-if="windList.length > 0"
+          >查询</el-button
         >
-        </el-option>
-      </el-select>
-    </el-form-item>
-    <el-form-item>
-      <el-button
-        type="primary"
-        size="small"
-        @click="onSearch"
-        v-if="windList.length > 0"
-        >查询</el-button
-      >
-      <el-button type="primary" size="small" @click="onSubmit('handlePrevious')"
-        >上一次分析结果</el-button
-      >
-      <el-button type="primary" size="small" @click="onSubmit('handleNext')"
-        >下一次分析结果</el-button
-      >
-    </el-form-item>
-  </el-form>
+        <el-button
+          type="primary"
+          size="small"
+          @click="onSubmit('handlePrevious')"
+          >上一次分析结果</el-button
+        >
+        <el-button type="primary" size="small" @click="onSubmit('handleNext')"
+          >下一次分析结果</el-button
+        >
+      </el-form-item>
+    </el-form>
+  </div>
 </template>
 <script>
 export default {
   name: "filterChart",
   props: {
     windList: {
-      default: [],
+      default: () => [],
+      type: Array,
+    },
+    setUpimg: {
+      default: () => [],
       type: Array,
     },
   },
@@ -54,12 +104,77 @@ export default {
     return {
       form: {
         value2: [],
+        dgeneratorSpeed: [
+          {
+            label: "有功功率",
+            text: [
+              "功率(kw)",
+              "有功功率(kw)",
+              "有功功率(kw)",
+              "功率(kW)",
+              "功率(kw)",
+              "有功功率(kW)",
+              "有功功率(kw)",
+            ],
+            dtick: null, //步长
+            min: null, //最小值
+            max: null, //最大值
+          },
+          {
+            label: "叶尖速比",
+            text: ["叶尖速比"],
+            dtick: null, //步长
+            min: null, //最小值
+            max: null, //最大值
+          },
+          {
+            label: "风能利用系数",
+            text: ["风能利用系数"],
+            dtick: null, //步长
+            min: null, //最小值
+            max: null, //最大值
+          },
+          {
+            label: "桨距角",
+            text: ["桨距角(度)", "桨距角(°)"],
+            dtick: null, //步长
+            min: null, //最小值
+            max: null, //最大值
+          },
+          {
+            label: "发电机转速",
+            text: ["发电机转速(r/min)", "发电机转速(r/min)"],
+            dtick: null, //步长
+            min: null, //最小值
+            max: null, //最大值
+          },
+          {
+            label: "实际扭矩",
+            text: ["扭矩(N·m)", "实际扭矩(N·m)"],
+            dtick: null, //步长
+            min: null, //最小值
+            max: null, //最大值
+          },
+        ],
       },
+      setUpImgData: [],
     };
   },
+  created() {
+    // 确保 this.form.dgeneratorSpeed 和 this.setUpimg 都已经初始化
+    if (
+      Array.isArray(this.form.dgeneratorSpeed) &&
+      Array.isArray(this.setUpimg)
+    ) {
+      this.form.dgeneratorSpeed = this.form.dgeneratorSpeed.filter(
+        (item) => this.setUpimg.includes(item.label) // 过滤出 label 在 setUpimg 中的项
+      );
+    }
+  },
+
   methods: {
     onSearch() {
-      this.$emit("getEnfineList", this.form.value2);
+      this.$emit("getEnfineList", this.form.value2, this.form.dgeneratorSpeed);
     },
     onSubmit(type) {
       if (type === "handlePrevious") {
@@ -71,4 +186,24 @@ export default {
   },
 };
 </script>
-<style scoped lang="scss"></style>
+<style scoped lang="scss">
+.filterChart {
+  h3 {
+    font-size: 16px;
+    font-weight: 500;
+    margin-top: 10px 0;
+  }
+}
+// ::v-deep.el-input--small .el-input__inner {
+//   width: 220px !important;
+// }
+.demo-input-suffix {
+  display: flex !important;
+}
+::v-deep.demo-input-suffix .el-input--small {
+  width: 100px !important;
+}
+::v-deep.demo-input-suffix .el-input--small .el-input__inner {
+  width: 90px !important;
+}
+</style>

+ 6 - 2
src/views/overview/components/min_pitch/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-09 18:08:13
- * @LastEditTime: 2025-02-17 17:11:19
+ * @LastEditTime: 2025-02-26 10:45:08
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/min_pitch/index.vue
@@ -12,6 +12,7 @@
     <!-- 最小桨距角分析--只有分图不存在总图 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['桨距角']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -40,6 +41,7 @@
         v-slot="{ item, index }"
       >
         <TwoDMarkersChart
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -138,6 +140,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
       comment: "",
@@ -290,8 +293,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 6 - 2
src/views/overview/components/pitch_generator_speed/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-09 18:09:25
- * @LastEditTime: 2025-02-17 17:22:39
+ * @LastEditTime: 2025-02-26 11:01:03
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/pitch_generator_speed/index.vue
@@ -13,6 +13,7 @@
     <div class="left">
       <FilterChart
         :windList="windEngineGroupList"
+        :setUpimg="['桨距角', '发电机转速']"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
         @handleNext="handleNext"
@@ -40,6 +41,7 @@
         v-slot="{ item, index }"
       >
         <powerMarkers2DCharts
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -138,6 +140,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
       comment: "",
@@ -290,8 +293,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 7 - 2
src/views/overview/components/pitch_power/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-09 18:09:41
- * @LastEditTime: 2025-02-20 15:38:29
+ * @LastEditTime: 2025-02-26 11:05:29
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/pitch_power/index.vue
@@ -12,6 +12,7 @@
     <!-- 变桨和有功功率协调性分析--只有分图不存在总图 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['桨距角', '有功功率']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -40,6 +41,7 @@
         v-slot="{ item, index }"
       >
         <powerMarkers2DCharts
+          :setUpImgData="setUpImgData"
           v-if="getFileTypeFromUrl(item.fileAddr) === 'pitch_power'"
           :index="index + 'powerMarkers2DCharts'"
           :key="item.fieldEngineCode + 'powerMarkers2DCharts'"
@@ -47,6 +49,7 @@
           :fileAddr="item.fileAddr"
         ></powerMarkers2DCharts>
         <Time3DChart
+          :setUpImgData="setUpImgData"
           v-if="getFileTypeFromUrl(item.fileAddr) === '3D'"
           :key="item.fieldEngineCode + 'Time3DChart'"
           :index="index + 'fen'"
@@ -149,6 +152,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
       comment: "",
@@ -311,8 +315,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 6 - 2
src/views/overview/components/pitch_tsr_cp/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-09 18:09:55
- * @LastEditTime: 2025-02-24 13:38:25
+ * @LastEditTime: 2025-02-26 11:18:50
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/pitch_tsr_cp/index.vue
@@ -12,6 +12,7 @@
     <!-- 变桨和叶尖速比及风能利用系数分析--只有分图不存在总图 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['叶尖速比', '风能利用系数']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -38,6 +39,7 @@
         v-slot="{ item, index }"
       >
         <TwoDMarkersChart
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -136,6 +138,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
       comment: "",
@@ -288,8 +291,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 6 - 15
src/views/overview/components/power_curve/index.vue

@@ -1,12 +1,3 @@
-<!--
- * @Author: your name
- * @Date: 2025-01-09 18:10:08
- * @LastEditTime: 2025-02-18 15:25:04
- * @LastEditors: bogon
- * @Description: In User Settings Edit
- * @FilePath: /performance-test/src/views/overview/components/power_curve/index.vue
--->
-
 <template>
   <div class="type-variable">
     <!-- 有功功率曲线分析 -->
@@ -14,6 +5,7 @@
       <FilterChart
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
+        :setUpimg="['有功功率']"
         @handlePrevious="handlePrevious"
         @handleNext="handleNext"
       ></FilterChart>
@@ -76,6 +68,7 @@
             <el-col :span="24" :key="ind + 'rightTable'">
               <div class="rightTable">
                 <PlotlyCharts
+                  :setUpImgData="setUpImgData"
                   :lineMarkerData="powerCurveDom.chartsData"
                   :comType="'generalDrawing'"
                   :inds="`${new Date().getTime()}` + `zong${ind}`"
@@ -103,6 +96,7 @@
             >
               <div class="rightTable">
                 <PlotlyCharts
+                  :setUpImgData="setUpImgData"
                   :lineMarkerData="powerCurveDom.chartsData"
                   :comType="'graph'"
                   :inds="`${new Date().getTime()}` + `fen${ind}`"
@@ -202,9 +196,6 @@ import {
 } from "@/api/performance";
 import PlotlyCharts from "@/views/performance/components/PlotlyCharts.vue";
 import { downLoadCsvFile } from "@/utils/common";
-import { saveAs } from "file-saver";
-import JSZip from "jszip";
-import Papa from "papaparse";
 import axios from "axios";
 export default {
   name: "powerCurve",
@@ -241,6 +232,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
       comment: "",
@@ -375,8 +367,6 @@ export default {
         this.generalFilesData = generalFilesData.filter(
           (item) => item && item.chartsData
         );
-        console.log(this.generalFilesData, "总图");
-        console.log(this.graphFilesData, "分图");
       } catch (err) {
         console.error("Failed to fetch analysis details:", err);
       }
@@ -519,8 +509,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 6 - 2
src/views/overview/components/power_scatter/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-09 18:10:22
- * @LastEditTime: 2025-02-12 16:44:23
+ * @LastEditTime: 2025-02-26 11:19:23
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/power_scatter/index.vue
@@ -12,6 +12,7 @@
     <!-- 逐月有功功率散点3D分析--只有分图不存在总图 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['有功功率']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -39,6 +40,7 @@
         v-slot="{ item, index }"
       >
         <Time3DChart
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode"
           :index="index + 'fen'"
           :ref="item.fieldEngineCode"
@@ -139,6 +141,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
       comment: "",
@@ -317,8 +320,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 6 - 2
src/views/overview/components/power_scatter_2D/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-09 18:10:35
- * @LastEditTime: 2025-02-12 16:29:54
+ * @LastEditTime: 2025-02-26 11:19:41
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/power_scatter_2D/index.vue
@@ -13,6 +13,7 @@
     <!-- 逐月有功功率散点2D分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['有功功率']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -40,6 +41,7 @@
         v-slot="{ item, index }"
       >
         <powerMarkers2DCharts
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -140,6 +142,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -293,8 +296,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 5 - 2
src/views/overview/components/production_indicator_all/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-13 13:45:50
- * @LastEditTime: 2025-02-11 13:51:12
+ * @LastEditTime: 2025-02-26 11:10:18
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/production_indicator_all/index.vue
@@ -12,6 +12,7 @@
     <!-- 全场指标 -->
     <div class="left">
       <FilterChart
+        :setUpimg="[]"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -144,6 +145,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       commentDescriptionVos: [], //评论列表
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
@@ -354,8 +356,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 5 - 2
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-02-12 11:29:24
+ * @LastEditTime: 2025-02-26 11:10:25
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/production_indicator_unit/index.vue
@@ -11,6 +11,7 @@
     <!-- 机组指标 -->
     <div class="left">
       <FilterChart
+        :setUpimg="[]"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -215,6 +216,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       handleTableData: [], //点击查看雷达图浮窗数据,用于计算中位值
       chartItem: {}, //点击查看雷达图浮窗数据
       radarIsShow: false,
@@ -443,8 +445,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 6 - 3
src/views/overview/components/rated_power_windspeed/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-09 18:10:47
- * @LastEditTime: 2025-02-12 16:56:12
+ * @LastEditTime: 2025-02-26 11:20:36
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/rated_power_windspeed/index.vue
@@ -12,6 +12,7 @@
     <!-- 额定功率和风速分析--只有分图不存在总图 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['有功功率']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -39,6 +40,7 @@
         v-slot="{ item, index }"
       >
         <BoxLineCharts
+          :setUpImgData="setUpImgData"
           :key="item.batchCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="`${new Date().getTime()}` + item.batchCode + index"
@@ -138,7 +140,7 @@ export default {
       form: {
         value2: "",
       },
-
+      setUpImgData: [],
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
       comment: "",
@@ -291,8 +293,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
       console.log(this.fieldEngineCodes, "this.fieldEngineCodes");
     },

+ 6 - 2
src/views/overview/components/rated_windspeed/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-10 09:08:56
- * @LastEditTime: 2025-02-12 16:56:25
+ * @LastEditTime: 2025-02-26 11:20:54
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/rated_windspeed/index.vue
@@ -12,6 +12,7 @@
     <!-- 额定风速分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="[]"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -40,6 +41,7 @@
         v-slot="{ item, index }"
       >
         <BarChart
+          :setUpImgData="setUpImgData"
           :key="item.batchCode + index"
           :inds="`${new Date().getTime()}` + index + 'barChart'"
           :ref="`${new Date().getTime()}` + item.batchCode"
@@ -139,6 +141,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -285,8 +288,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 8 - 2
src/views/overview/components/speed_power/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-10 09:09:17
- * @LastEditTime: 2025-02-20 16:32:01
+ * @LastEditTime: 2025-02-26 14:13:57
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/speed_power/index.vue
@@ -12,6 +12,7 @@
     <!-- 发电机转速和有功功率分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['有功功率', '发电机转速']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -39,6 +40,7 @@
         v-slot="{ item, index }"
       >
         <DDrawingChart
+          :setUpImgData="setUpImgData"
           :key="item.batchCode + index"
           :index="index + 'zong'"
           :ref="item.batchCode + index"
@@ -56,6 +58,7 @@
         <powerMarkers2DCharts
           v-if="getFileTypeFromUrl(item.fileAddr) === 'speed_power'"
           :index="index + 'powerMarkers2DCharts'"
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + 'powerMarkers2DCharts'"
           :ref="item.fieldEngineCode"
           :fileAddr="item.fileAddr"
@@ -63,6 +66,7 @@
 
         <Time3DChart
           v-if="getFileTypeFromUrl(item.fileAddr) === '3D'"
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + 'Time3DChart'"
           :index="index + 'fen'"
           :ref="item.fieldEngineCode + 'Time3DChart'"
@@ -169,6 +173,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
       comment: "",
@@ -369,8 +374,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 7 - 1
src/views/overview/components/speed_torque/index.vue

@@ -3,6 +3,7 @@
     <!-- 发电机转速和转矩分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['发电机转速', '实际扭矩']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -29,6 +30,7 @@
         v-slot="{ item, index }"
       >
         <DDrawingChart
+          :setUpImgData="setUpImgData"
           :key="item.batchCode + index"
           :index="index + 'zong'"
           :ref="item.batchCode + index"
@@ -46,6 +48,7 @@
         v-slot="{ item, index }"
       >
         <powerMarkers2DCharts
+          :setUpImgData="setUpImgData"
           v-if="getFileTypeFromUrl(item.fileAddr) === 'speed_torque'"
           :index="index + 'powerMarkers2DCharts'"
           :key="item.fieldEngineCode + 'powerMarkers2DCharts'"
@@ -53,6 +56,7 @@
           :fileAddr="item.fileAddr"
         ></powerMarkers2DCharts>
         <Time3DChart
+          :setUpImgData="setUpImgData"
           v-if="getFileTypeFromUrl(item.fileAddr) === '3D'"
           :key="item.fieldEngineCode + 'Time3DChart'"
           :index="index + 'fen'"
@@ -158,6 +162,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
       comment: "",
@@ -362,8 +367,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 6 - 2
src/views/overview/components/temperature_environment/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-10 09:09:46
- * @LastEditTime: 2025-02-12 17:24:10
+ * @LastEditTime: 2025-02-26 11:21:52
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/temperature_environment/index.vue
@@ -12,6 +12,7 @@
     <!-- 环境温度传感器分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="[]"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -41,6 +42,7 @@
       <el-empty description="暂无分图分析记录" v-else></el-empty>
       <div v-for="(item, index) in generalFilesDatas">
         <BarChart
+          :setUpImgData="setUpImgData"
           :key="`${new Date().getTime()}` + item.batchCode + index"
           :inds="`${new Date().getTime()}` + index + 'barChart'"
           :ref="`${new Date().getTime()}` + item.batchCode"
@@ -170,6 +172,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -316,8 +319,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 7 - 2
src/views/overview/components/temperature_large_components_Winding_tem/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-21 10:04:11
- * @LastEditTime: 2025-02-10 14:53:44
+ * @LastEditTime: 2025-02-26 11:23:49
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/temperature_large_components_Winding_tem/index.vue
@@ -12,6 +12,7 @@
     <!-- 发电机-绕组温度分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['有功功率']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -53,6 +54,7 @@
       <el-empty description="暂无总图分析记录" v-else></el-empty>
       <div v-for="(item, index) in generalFilesDatas">
         <lineAndChildLine
+          :setUpImgData="setUpImgData"
           :key="item.batchCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.batchCode"
@@ -69,6 +71,7 @@
       <el-empty description="暂无分图分析记录" v-else></el-empty>
       <div v-for="(item, index) in diagramRelationsDatas">
         <lineChartsFen
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -171,6 +174,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -324,8 +328,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 7 - 2
src/views/overview/components/temperature_large_components_adriven/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-21 10:01:52
- * @LastEditTime: 2025-02-10 14:52:45
+ * @LastEditTime: 2025-02-26 11:22:19
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/temperature_large_components_adriven/index.vue
@@ -12,6 +12,7 @@
     <!-- 发电机-驱动端轴承温度分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['有功功率']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -53,6 +54,7 @@
       <el-empty description="暂无总图分析记录" v-else></el-empty>
       <div v-for="(item, index) in generalFilesDatas">
         <lineAndChildLine
+          :setUpImgData="setUpImgData"
           :key="item.batchCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.batchCode"
@@ -70,6 +72,7 @@
       <el-empty description="暂无分图分析记录" v-else></el-empty>
       <div v-for="(item, index) in diagramRelationsDatas">
         <lineChartsFen
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -172,6 +175,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -325,8 +329,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 7 - 2
src/views/overview/components/temperature_large_components_hig/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-21 09:58:32
- * @LastEditTime: 2025-02-10 14:52:53
+ * @LastEditTime: 2025-02-26 11:22:30
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/temperature_large_components_hig/index.vue
@@ -12,6 +12,7 @@
     <!-- 齿轮箱-高速轴温度分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['有功功率']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -53,6 +54,7 @@
       <el-empty description="暂无总图分析记录" v-else></el-empty>
       <div v-for="(item, index) in generalFilesDatas">
         <lineAndChildLine
+          :setUpImgData="setUpImgData"
           :key="item.batchCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.batchCode"
@@ -70,6 +72,7 @@
       <el-empty description="暂无分图分析记录" v-else></el-empty>
       <div v-for="(item, index) in diagramRelationsDatas">
         <lineChartsFen
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -172,6 +175,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -329,8 +333,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 7 - 2
src/views/overview/components/temperature_large_components_low/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-21 10:00:25
- * @LastEditTime: 2025-02-10 14:53:01
+ * @LastEditTime: 2025-02-26 11:22:39
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/temperature_large_components_low/index.vue
@@ -12,6 +12,7 @@
     <!-- 齿轮箱-低速轴温度分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['有功功率']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -53,6 +54,7 @@
       <el-empty description="暂无总图分析记录" v-else></el-empty>
       <div v-for="(item, index) in generalFilesDatas">
         <lineAndChildLine
+          :setUpImgData="setUpImgData"
           :key="item.batchCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.batchCode"
@@ -70,6 +72,7 @@
       <el-empty description="暂无分图分析记录" v-else></el-empty>
       <div v-for="(item, index) in diagramRelationsDatas">
         <lineChartsFen
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -172,6 +175,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -329,8 +333,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 7 - 2
src/views/overview/components/temperature_large_components_mid/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-21 09:59:43
- * @LastEditTime: 2025-02-10 14:53:09
+ * @LastEditTime: 2025-02-26 11:22:49
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/temperature_large_components_mid/index.vue
@@ -12,6 +12,7 @@
     <!-- 齿轮箱-中速轴温度分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['有功功率']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -53,6 +54,7 @@
       <el-empty description="暂无总图分析记录" v-else></el-empty>
       <div v-for="(item, index) in generalFilesDatas">
         <lineAndChildLine
+          :setUpImgData="setUpImgData"
           :key="item.batchCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.batchCode"
@@ -70,6 +72,7 @@
       <el-empty description="暂无分图分析记录" v-else></el-empty>
       <div v-for="(item, index) in diagramRelationsDatas">
         <lineChartsFen
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -172,6 +175,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -331,8 +335,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 7 - 2
src/views/overview/components/temperature_large_components_min/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-21 10:01:06
- * @LastEditTime: 2025-02-10 14:53:19
+ * @LastEditTime: 2025-02-26 11:22:58
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/temperature_large_components_min/index.vue
@@ -12,6 +12,7 @@
     <!-- 主轴承温度分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['有功功率']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -53,6 +54,7 @@
       <el-empty description="暂无总图分析记录" v-else></el-empty>
       <div v-for="(item, index) in generalFilesDatas">
         <lineAndChildLine
+          :setUpImgData="setUpImgData"
           :key="item.batchCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.batchCode"
@@ -70,6 +72,7 @@
       <el-empty description="暂无分图分析记录" v-else></el-empty>
       <div v-for="(item, index) in diagramRelationsDatas">
         <lineChartsFen
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -172,6 +175,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -325,8 +329,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 6 - 2
src/views/overview/components/temperature_large_components_tem_deviation/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-21 10:03:27
- * @LastEditTime: 2025-02-10 14:53:29
+ * @LastEditTime: 2025-02-26 11:23:18
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/temperature_large_components_tem_deviation/index.vue
@@ -12,6 +12,7 @@
     <!-- 发电机-轴承温度偏差分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['有功功率']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -52,6 +53,7 @@
       <el-empty description="暂无分图分析记录" v-else></el-empty>
       <div v-for="(item, index) in diagramRelationsDatas">
         <GeneratorTemperature
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -154,6 +156,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -307,8 +310,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 7 - 2
src/views/overview/components/temperature_large_components_undriven/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-21 10:02:36
- * @LastEditTime: 2025-02-10 14:53:36
+ * @LastEditTime: 2025-02-26 11:23:36
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/temperature_large_components_undriven/index.vue
@@ -12,6 +12,7 @@
     <!-- 发电机-非驱动端轴承温度分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['有功功率']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -53,6 +54,7 @@
       <el-empty description="暂无总图分析记录" v-else></el-empty>
       <div v-for="(item, index) in generalFilesDatas">
         <lineAndChildLine
+          :setUpImgData="setUpImgData"
           :key="item.batchCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.batchCode"
@@ -70,6 +72,7 @@
       <el-empty description="暂无分图分析记录" v-else></el-empty>
       <div v-for="(item, index) in diagramRelationsDatas">
         <lineChartsFen
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -172,6 +175,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -329,8 +333,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 7 - 2
src/views/overview/components/tsr/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-10 09:10:11
- * @LastEditTime: 2025-02-13 10:36:07
+ * @LastEditTime: 2025-02-26 11:24:02
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/tsr/index.vue
@@ -12,6 +12,7 @@
     <!-- 叶尖速比和有功功率分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['叶尖速比']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -40,6 +41,7 @@
       </div>
       <div v-for="(item, index) in generalFilesDatas">
         <lineAndChildLine
+          :setUpImgData="setUpImgData"
           :key="item.batchCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.batchCode"
@@ -55,6 +57,7 @@
       </div>
       <div v-for="(item, index) in diagramRelationsDatas">
         <lineChartsFen
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -163,6 +166,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -309,8 +313,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 7 - 2
src/views/overview/components/tsr_cp_power/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-10 09:10:24
- * @LastEditTime: 2025-02-13 10:39:33
+ * @LastEditTime: 2025-02-26 11:24:13
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/tsr_cp_power/index.vue
@@ -12,6 +12,7 @@
     <!-- 叶尖速比-风能利用系数-功率分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['有功功率']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -41,6 +42,7 @@
       </div>
       <div v-for="(item, index) in generalFilesDatas">
         <lineAndChildLine
+          :setUpImgData="setUpImgData"
           :key="item.batchCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.batchCode"
@@ -56,6 +58,7 @@
       </div>
       <div v-for="(item, index) in diagramRelationsDatas">
         <lineChartsFen
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -164,6 +167,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -310,8 +314,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 6 - 2
src/views/overview/components/tsr_cp_power_scatter/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-10 09:22:59
- * @LastEditTime: 2025-02-24 16:55:24
+ * @LastEditTime: 2025-02-26 11:24:28
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/index.vue
@@ -12,6 +12,7 @@
     <!-- 叶尖速比-Cp-功率散点分析--只有分图不存在总图 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['有功功率']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -39,6 +40,7 @@
         v-slot="{ item, index }"
       >
         <TwoDMarkersChart
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -138,6 +140,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
       comment: "",
@@ -290,8 +293,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 6 - 3
src/views/overview/components/tsr_trend/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-10 09:10:39
- * @LastEditTime: 2025-02-14 13:34:29
+ * @LastEditTime: 2025-02-26 11:24:41
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/tsr_trend/index.vue
@@ -12,6 +12,7 @@
     <!-- 叶尖速比时序分析--只有分图不存在总图 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['叶尖速比']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -38,6 +39,7 @@
         v-slot="{ item, index }"
       >
         <BoxMarkersCharts
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -137,7 +139,7 @@ export default {
       form: {
         value2: "",
       },
-
+      setUpImgData: [],
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
       comment: "",
@@ -290,8 +292,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
       console.log(this.fieldEngineCodes, "this.fieldEngineCodes");
     },

+ 8 - 3
src/views/overview/components/tsr_windspeed/index.vue

@@ -1,8 +1,8 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-10 09:10:59
- * @LastEditTime: 2025-02-13 10:37:52
- * @LastEditors: milo-MacBook-Pro.local
+ * @LastEditTime: 2025-02-26 11:24:51
+ * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/tsr_windspeed/index.vue
 -->
@@ -12,6 +12,7 @@
     <!-- 叶尖速比和风速分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="['叶尖速比']"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -40,6 +41,7 @@
       </div>
       <div v-for="(item, index) in generalFilesDatas">
         <lineAndChildLine
+          :setUpImgData="setUpImgData"
           :key="item.batchCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.batchCode"
@@ -55,6 +57,7 @@
       </div>
       <div v-for="(item, index) in diagramRelationsDatas">
         <lineChartsFen
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index"
           :ref="item.fieldEngineCode"
@@ -163,6 +166,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -309,8 +313,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 6 - 2
src/views/overview/components/wind_direction_frequency/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-10 09:11:12
- * @LastEditTime: 2025-02-10 14:54:28
+ * @LastEditTime: 2025-02-26 11:26:10
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/wind_direction_frequency/index.vue
@@ -11,6 +11,7 @@
     <!-- 风向玫瑰分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="[]"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -38,6 +39,7 @@
         v-slot="{ item, index }"
       >
         <WindRoseChart
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :inds="index"
           :ref="item.fieldEngineCode"
@@ -138,6 +140,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -290,8 +293,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 8 - 4
src/views/overview/components/wind_speed/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-10 09:11:23
- * @LastEditTime: 2025-02-13 09:48:29
+ * @LastEditTime: 2025-02-26 11:25:57
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/wind_spee/index.vue
@@ -12,6 +12,7 @@
     <!-- 风速均值分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="[]"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -40,12 +41,13 @@
         v-slot="{ item, index }"
       >
         <!-- {{ item.fileAddr }} -->
-        <!-- <BarChart
+        <BarChart
+          :setUpImgData="setUpImgData"
           :key="`${new Date().getTime()}` + item.batchCode + index"
           :inds="`${new Date().getTime()}` + index"
           :ref="`${new Date().getTime()}` + item.batchCode"
           :fileAddr="item.fileAddr"
-        ></BarChart> -->
+        ></BarChart>
         <!-- <BarChart
           :key="item.batchCode + index"
           :inds="index + 'barChart'"
@@ -145,6 +147,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -291,8 +294,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 6 - 2
src/views/overview/components/wind_speed_frequency/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-10 09:11:34
- * @LastEditTime: 2025-02-10 14:33:04
+ * @LastEditTime: 2025-02-26 11:25:24
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/wind_speed_frequency/index.vue
@@ -11,6 +11,7 @@
     <!-- 风速频率分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="[]"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -38,6 +39,7 @@
         v-slot="{ item, index }"
       >
         <BarChart
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :inds="index + 'barChart'"
           :ref="item.fieldEngineCode"
@@ -151,6 +153,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       comment: "",
       options: [],
       windEngineGroupList: [], //批次风机列表
@@ -297,8 +300,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 6 - 2
src/views/overview/components/yaw_error/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-10 09:24:14
- * @LastEditTime: 2025-02-12 17:09:14
+ * @LastEditTime: 2025-02-26 11:26:51
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/yaw_error/index.vue
@@ -12,6 +12,7 @@
     <!-- 静态偏航误差分析 -->
     <div class="left">
       <FilterChart
+        :setUpimg="[]"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -75,6 +76,7 @@
       <div v-if="fenFaultCsvData.length > 0">
         <div v-for="(item, index) in fenFaultCsvData">
           <yawErrorLine
+            :setUpImgData="setUpImgData"
             :key="item.fieldEngineCode + index"
             :index="`${new Date().getTime()}` + index"
             :ref="item.fieldEngineCode"
@@ -188,6 +190,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
       comment: "",
@@ -424,8 +427,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 6 - 2
src/views/overview/components/yaw_error_density/index.vue

@@ -3,6 +3,7 @@
     <!-- 动态偏航误差分析--只有分图不存在总图 -->
     <div class="left">
       <FilterChart
+        :setUpimg="[]"
         :windList="windEngineGroupList"
         @getEnfineList="getEnfineList"
         @handlePrevious="handlePrevious"
@@ -30,6 +31,7 @@
       >
         <lineAndChildLine
           v-if="getFileTypeFromUrl(item.fileAddr) === 'PDF-'"
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :index="`${new Date().getTime()}` + index + item.fieldEngineCode"
           :ref="item.fieldEngineCode"
@@ -38,6 +40,7 @@
         </lineAndChildLine>
         <TwoDMarkersChart
           v-else
+          :setUpImgData="setUpImgData"
           :key="item.fieldEngineCode + index"
           :ref="item.fieldEngineCode + index"
           :index="index + item.fieldEngineCode"
@@ -138,6 +141,7 @@ export default {
       form: {
         value2: "",
       },
+      setUpImgData: [],
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
       comment: "",
@@ -287,9 +291,9 @@ export default {
       // 如果该功能没有实现,可以删除这个方法
     },
     //获取选中风机list
-    getEnfineList(data) {
+    getEnfineList(data, setUpImg) {
       this.fieldEngineCodes = data;
-      console.log(this.fieldEngineCodes, "this.fieldEngineCodes");
+      this.setUpImgData = [...setUpImg];
       this.getAnalysisDetail();
     },
     //下一条

+ 2 - 3
src/views/performance/assetssDetail.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2024-05-27 09:25:45
- * @LastEditTime: 2025-01-14 15:41:51
+ * @LastEditTime: 2025-02-26 11:33:43
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/assetssDetail.vue
@@ -535,7 +535,7 @@ import WindRoseChart from "./components/chartsCom/WindRoseChart.vue";
 import PowerMarkers2DCharts from "./components/chartsCom/powerMarkers2DCharts.vue";
 // import JsonMarkerCharts from "./components/JsonMarkerCharts.vue";
 import PlotlyCharts from "./components/PlotlyCharts.vue";
-import LineCharts from "./components/chartsCom/lineChart.vue";
+
 import { downLoadCsvFile } from "@/utils/common";
 import { saveAs } from "file-saver";
 import JSZip from "jszip";
@@ -549,7 +549,6 @@ export default {
     HeatmapCharts,
     CreateNewChart,
     PlotlyCharts,
-    LineCharts,
     BoxLineCharts,
     PowerMarkers2DCharts,
   },

+ 97 - 34
src/views/performance/components/PlotlyCharts.vue

@@ -54,6 +54,10 @@ export default {
     lineMarkerData: Object,
     comType: String,
     inds: String,
+    setUpImgData: {
+      default: () => [],
+      type: Array,
+    },
   },
   name: "PowerCurvePlot",
   data() {
@@ -111,7 +115,7 @@ export default {
   },
   mounted() {
     this.color1 = this.themeColor;
-    this.updateCharts(); // 初次渲染
+    this.updateCharts(this.setUpImgData); // 初次渲染
   },
   computed: {
     ...mapState("themes", {
@@ -122,7 +126,7 @@ export default {
     lineMarkerData: {
       deep: true,
       handler() {
-        this.updateCharts(); // 数据变化时更新
+        this.updateCharts(this.setUpImgData); // 数据变化时更新
       },
     },
     themeColor: {
@@ -134,12 +138,18 @@ export default {
     },
     comType(newType, oldType) {
       if (newType !== oldType) {
-        this.updateCharts(); // 类型变化时更新
+        this.updateCharts(this.setUpImgData); // 类型变化时更新
       }
     },
+    setUpImgData: {
+      handler(newType) {
+        this.updateCharts(newType);
+      },
+      deep: true,
+    },
   },
   methods: {
-    updateCharts() {
+    updateCharts(newType) {
       this.powerCurveData.turbines =
         this.lineMarkerData.data?.filter(
           (item) => item.enginName !== "合同功率曲线"
@@ -151,35 +161,47 @@ export default {
         ) || [];
 
       if (this.comType === "generalDrawing" && this.lineMarkerData?.data) {
-        this.renderPlot();
+        this.renderPlot(newType);
       } else if (this.comType === "graph" && this.lineMarkerData?.data) {
         this.$nextTick(() => {
-          this.initializeEngineCharts();
+          this.initializeEngineCharts(newType);
         });
       }
     },
-    renderPlot() {
-      if (!this.$refs[`power-curve-plot${this.inds}`]) {
+    renderPlot(newType) {
+      // 确保图表容器存在
+      const chartContainer = this.$refs[`power-curve-plot${this.inds}`];
+      if (!chartContainer) {
         return false;
       }
-      const data = [];
-      this.powerCurveData.turbines.forEach((turbine, index) => {
-        data.push({
-          x: turbine.xData,
-          y: turbine.yData.map((val) => (val !== null ? val : 0.0)),
-          mode: "lines",
-          name: turbine.enginName,
-          fill: this.chartType === "line" ? "none" : "tonexty",
-          line: {
-            color:
-              this.color1.length > 0
-                ? this.color1[index % this.color1.length]
-                : this.config.colors[index % this.config.colors.length],
-          },
-          hovertemplate: `风速: %{x} m/s<br>功率: %{y} kW<br><extra></extra>`, // 设置 hovertemplate
-        });
-      });
 
+      // 工具函数:处理空值
+      const processNullValues = (data) =>
+        data.map((val) => (val !== null ? val : 0.0));
+
+      // 获取x轴和y轴的设置
+      const getChartSetUp = (axisTitle) => {
+        return newType.find((item) => item.text.includes(axisTitle));
+      };
+
+      const data = this.powerCurveData.turbines.map((turbine, index) => ({
+        x: turbine.xData,
+        y: processNullValues(turbine.yData),
+        mode: "lines",
+        name: turbine.enginName,
+        fill: this.chartType === "line" ? "none" : "tonexty",
+        line: {
+          color:
+            this.color1.length > 0
+              ? this.color1[index % this.color1.length]
+              : this.config.colors[index % this.config.colors.length],
+        },
+        hovertemplate:
+          `风速: %{x} m/s<br>功率: %{y} kW<br>机组:` +
+          `${turbine.enginName}<extra></extra>`,
+      }));
+
+      // 添加合同功率曲线
       data.push({
         x: this.powerCurveData.contractPowerCurve[0].xData,
         y: this.powerCurveData.contractPowerCurve[0].yData,
@@ -187,19 +209,39 @@ export default {
         name: this.config.powerConfig.name,
         line: this.config.powerConfig.line,
         marker: this.config.powerConfig.marker,
-        hovertemplate: `风速: %{x} m/s<br>合同功率: %{y} kW<br><extra></extra>`, // 设置 hovertemplate
+        hovertemplate:
+          `风速: %{x} m/s<br>合同功率: %{y} kW<br>` +
+          `${this.config.powerConfig.name}<extra></extra>`,
       });
+
+      // 配置图表布局
       const layout = {
-        title: "有功功率曲线分析" + this.lineMarkerData.engineTypeName,
+        title: `有功功率曲线分析${this.lineMarkerData.engineTypeName}`,
         plot_bgcolor: this.config.lableConfig.plot_bgcolor,
-        xaxis: this.config.lableConfig.xaxis,
-        yaxis: this.config.lableConfig.yaxis,
+        xaxis: { ...this.config.lableConfig.xaxis },
+        yaxis: { ...this.config.lableConfig.yaxis },
         legend: this.config.lableConfig.legend,
       };
+
+      // 更新x轴和y轴的范围与步长
+      const xChartSetUp = getChartSetUp(layout.xaxis.title);
+      if (xChartSetUp) {
+        layout.xaxis.dtick = xChartSetUp.dtick;
+        layout.xaxis.range = [xChartSetUp.min, xChartSetUp.max];
+      }
+
+      const yChartSetUp = getChartSetUp(layout.yaxis.title);
+      if (yChartSetUp) {
+        layout.yaxis.dtick = yChartSetUp.dtick;
+        layout.yaxis.range = [yChartSetUp.min, yChartSetUp.max];
+      }
+
+      // 绘制图表
       Plotly.newPlot(`power-curve-plot${this.inds}`, data, layout);
     },
+
     //初始化分图
-    initializeEngineCharts() {
+    initializeEngineCharts(newType) {
       if (!this.$refs[`chart-${this.inds}`]) {
         return false;
       }
@@ -219,6 +261,23 @@ export default {
           yaxis: this.config.lableConfig.yaxis,
           legend: this.config.lableConfig.legend,
         };
+        // 获取x轴和y轴的设置
+        const getChartSetUp = (axisTitle) => {
+          return newType.find((item) => item.text.includes(axisTitle));
+        };
+        // 更新x轴和y轴的范围与步长
+        const xChartSetUp = getChartSetUp(layout.xaxis.title);
+        if (xChartSetUp) {
+          layout.xaxis.dtick = xChartSetUp.dtick;
+          layout.xaxis.range = [xChartSetUp.min, xChartSetUp.max];
+        }
+
+        const yChartSetUp = getChartSetUp(layout.yaxis.title);
+        if (yChartSetUp) {
+          layout.yaxis.dtick = yChartSetUp.dtick;
+          layout.yaxis.range = [yChartSetUp.min, yChartSetUp.max];
+        }
+
         // 先渲染其他的风机数据
         this.powerCurveData.turbines.forEach((turbine, index) => {
           const isHighlighted =
@@ -235,7 +294,9 @@ export default {
             line: {
               color: isHighlighted ? "#1c77b3" : "#d3d3d3",
             },
-            hovertemplate: `风速: %{x} m/s<br>功率: %{y} kW<br><extra></extra>`, // 设置 hovertemplate
+            hovertemplate:
+              `风速: %{x} m/s<br>功率: %{y} kW<br>机组:` +
+              `${turbine.enginName}<extra></extra>`, // 设置 hovertemplate
           };
 
           if (isHighlighted) {
@@ -257,7 +318,9 @@ export default {
             width: 1, // 设置线条的宽度为1
           },
           marker: { color: "red", size: 4 },
-          hovertemplate: `风速: %{x} m/s<br>合同功率: %{y} kW<br><extra></extra>`, // 设置 hovertemplate
+          hovertemplate:
+            `风速: %{x} m/s<br>合同功率: %{y} kW<br>` +
+            `${this.powerCurveData.contractPowerCurve[0].enginName}<extra></extra>`, // 设置 hovertemplate
         });
         Plotly.newPlot(`chart-${this.inds}`, data, layout);
       }
@@ -266,12 +329,12 @@ export default {
     toggleChartType() {
       this.chartType = this.chartType === "line" ? "bar" : "line"; // 切换图表类型
       // 重新绘制图表
-      this.updateCharts();
+      this.updateCharts(this.setUpImgData);
     },
     updateChartColor(color) {
       // 更新图表颜色
       // this.color1 = color;
-      this.updateCharts();
+      this.updateCharts(this.setUpImgData);
     },
     // 根据配色方案设置每个选项的样式
     getOptionStyle(scheme) {

+ 31 - 1
src/views/performance/components/chartsCom/3DDrawingChart.vue

@@ -68,6 +68,10 @@ export default {
       default: "",
       type: String,
     },
+    setUpImgData: {
+      default: () => [],
+      type: Array,
+    },
   },
   data() {
     return {
@@ -112,6 +116,12 @@ export default {
       },
       deep: true,
     },
+    setUpImgData: {
+      handler(newType) {
+        this.renderChart();
+      },
+      deep: true,
+    },
   },
   methods: {
     async getData() {
@@ -171,6 +181,7 @@ export default {
     },
 
     renderChart() {
+      console.log(this.setUpImgData, "setUpImgData");
       const uniqueColors = [...new Set(this.chartData.data[0].color)];
       if (!this.color1) {
         this.color1 = colorSchemes[0].colors;
@@ -250,7 +261,26 @@ export default {
           },
         },
       };
-
+      // 获取x轴和y轴的设置
+      const getChartSetUp = (axisTitle) => {
+        return this.setUpImgData.find((item) => item.text.includes(axisTitle));
+      };
+      // 更新x轴和y轴的范围与步长
+      const xChartSetUp = getChartSetUp(layout.scene.xaxis.title);
+      if (xChartSetUp) {
+        layout.scene.xaxis.dtick = xChartSetUp.dtick;
+        layout.scene.xaxis.range = [xChartSetUp.min, xChartSetUp.max];
+      }
+      const yChartSetUp = getChartSetUp(layout.scene.yaxis.title);
+      if (yChartSetUp) {
+        layout.scene.yaxis.dtick = yChartSetUp.dtick;
+        layout.scene.yaxis.range = [yChartSetUp.min, yChartSetUp.max];
+      }
+      const zChartSetUp = getChartSetUp(layout.scene.zaxis.title);
+      if (zChartSetUp) {
+        layout.scene.zaxis.dtick = zChartSetUp.dtick;
+        layout.scene.zaxis.range = [zChartSetUp.min, zChartSetUp.max];
+      }
       Plotly.newPlot(`plotly-3d-chart-` + this.index, traces, layout);
     },
   },

+ 48 - 31
src/views/performance/components/chartsCom/BoxLineCharts.vue

@@ -15,7 +15,6 @@
       style="margin: 20px 0 0 0"
     ></el-date-picker>
 
-    <!-- boxLineCharts -->
     <div
       v-loading="loading"
       :id="`plotDivBox-${index}`"
@@ -41,6 +40,10 @@ export default {
     index: {
       type: String,
     },
+    setUpImgData: {
+      default: () => [],
+      type: Array,
+    },
   },
   data() {
     return {
@@ -50,6 +53,20 @@ export default {
       isError: false,
     };
   },
+  watch: {
+    setUpImgData: {
+      handler(newType) {
+        this.drawBoxPlot();
+      },
+      deep: true,
+    },
+    dateRange: {
+      handler(newRange) {
+        this.drawBoxPlot(); // 日期范围变化时重新绘制图表
+      },
+      deep: true,
+    },
+  },
   mounted() {
     console.log(this.fileAddr, "fileAddr 连接");
     this.getData();
@@ -64,9 +81,9 @@ export default {
             cancelToken: this.cancelToken.token,
           });
           this.chartData = resultChartsData.data;
-          this.drawBoxPlot();
           this.loading = false;
           this.isError = false;
+          this.drawBoxPlot(); // 数据加载完成后绘制图表
         } catch (error) {
           this.loading = false;
           this.isError = true;
@@ -90,12 +107,11 @@ export default {
 
     // 判断xData是否为日期格式
     isDateType(xData) {
-      // 假设第一个元素如果是日期字符串或Date对象则为日期类型
       if (xData) {
         const firstTimestamp = xData[0];
         return !isNaN(Date.parse(firstTimestamp)); // 判断是否是有效日期
       } else {
-        false;
+        return false;
       }
     },
 
@@ -105,14 +121,12 @@ export default {
       const filteredYData = [];
       const filteredMedians = group.medians ? { x: [], y: [] } : null;
 
-      // 如果是日期类型数据,则进行日期过滤
       if (this.isDateType(group.xData)) {
         group.xData.forEach((timestamp, index) => {
           if (this.isInDateRange(timestamp)) {
             filteredXData.push(timestamp);
             filteredYData.push(group.yData[index]);
 
-            // 处理中位值数据,确保索引一致
             if (filteredMedians && this.isInDateRange(group.medians.x[index])) {
               filteredMedians.x.push(group.medians.x[index]);
               filteredMedians.y.push(group.medians.y[index]);
@@ -120,7 +134,6 @@ export default {
           }
         });
       } else {
-        // 如果不是日期类型,直接将数据添加到数组
         filteredXData.push(...group.xData);
         filteredYData.push(...group.yData);
 
@@ -140,12 +153,10 @@ export default {
 
     // 绘制箱线图
     drawBoxPlot() {
-      const chartData = this.chartData.data[0];
+      if (!this.chartData.data || this.loading) return; // 如果数据为空或正在加载则不绘制
 
-      // 过滤数据
+      const chartData = this.chartData.data[0];
       const filteredData = this.filterData(chartData);
-      // 构建箱线图
-      console.log(filteredData, "filteredData");
 
       const trace = {
         x: filteredData.xData,
@@ -154,8 +165,8 @@ export default {
         marker: {
           color: "lightgray",
         },
-        boxpoints: false, // 不显示散点
-        boxmean: false, // 不显示均值
+        boxpoints: false,
+        boxmean: false,
         name: filteredData.title,
         hovertemplate:
           `${this.chartData.xaixs}:` +
@@ -164,9 +175,7 @@ export default {
           "%{y} <br>",
       };
 
-      let trace2 = {}; // 初始化trace2为一个空对象
-
-      // 如果有中位值并且中位值的x轴数据不为空,则显示中位点
+      let trace2 = {};
       if (filteredData.medians && filteredData.medians.x.length > 0) {
         trace2 = {
           x: filteredData.medians.x,
@@ -181,30 +190,38 @@ export default {
         };
       }
 
-      console.log(filteredData, "filteredData");
-
-      // 布局设置
       const layout = {
         title: filteredData.title,
         xaxis: {
           title: this.chartData.xaixs,
-          // 如果xData不是日期格式,则不配置type: "date"
-          title: this.chartData.xaixs,
-          // tickvals: filteredData.xData, // 设置tickvals为原始的xData
-          // ticktext: filteredData.xData, // 设置ticktext为原始的xData(避免被转换成数字)
-          // tickformat: this.isDateType(filteredData.xData)
-          //   ? "%Y-%m-%d"
-          //   : undefined,
-          tickmode: "array", // 精确控制刻度
+          tickmode: "array",
         },
         yaxis: { title: this.chartData.yaixs },
         showlegend: true,
       };
-      // 使用 v-if 防止重新渲染
-      if (this.chartData.data && this.chartData.data.length > 0) {
-        Plotly.newPlot(`plotDivBox-${this.index}`, [trace, trace2], layout);
+
+      const getChartSetUp = (axisTitle) => {
+        return this.setUpImgData.find((item) => item.text.includes(axisTitle));
+      };
+
+      const xChartSetUp = getChartSetUp(layout.xaxis.title);
+      if (xChartSetUp) {
+        layout.xaxis.dtick = xChartSetUp.dtick;
+        layout.xaxis.range = [xChartSetUp.min, xChartSetUp.max];
       }
-      // Plotly.newPlot(`plotDivBox-${this.index}`, [trace, trace2], layout);
+
+      const yChartSetUp = getChartSetUp(layout.yaxis.title);
+      if (yChartSetUp) {
+        layout.yaxis.dtick = yChartSetUp.dtick;
+        layout.yaxis.range = [yChartSetUp.min, yChartSetUp.max];
+      }
+
+      this.$nextTick(() => {
+        const plotDiv = document.getElementById(`plotDivBox-${this.index}`);
+        if (plotDiv) {
+          Plotly.newPlot(plotDiv, [trace, trace2], layout);
+        }
+      });
     },
   },
 };

+ 26 - 0
src/views/performance/components/chartsCom/BoxMarkersCharts.vue

@@ -40,6 +40,10 @@ export default {
     index: {
       type: String,
     },
+    setUpImgData: {
+      default: () => [],
+      type: Array,
+    },
   },
   data() {
     return {
@@ -52,6 +56,14 @@ export default {
   mounted() {
     this.getData(); // 获取数据
   },
+  watch: {
+    setUpImgData: {
+      handler(newType) {
+        this.drawBoxPlot();
+      },
+      deep: true,
+    },
+  },
   methods: {
     // 获取数据
     async getData() {
@@ -192,6 +204,20 @@ export default {
         },
         showlegend: true,
       };
+      const getChartSetUp = (axisTitle) => {
+        return this.setUpImgData.find((item) => item.text.includes(axisTitle));
+      };
+      // 更新x轴和y轴的范围与步长
+      const xChartSetUp = getChartSetUp(layout.xaxis.title);
+      if (xChartSetUp) {
+        layout.xaxis.dtick = xChartSetUp.dtick;
+        layout.xaxis.range = [xChartSetUp.min, xChartSetUp.max];
+      }
+      const yChartSetUp = getChartSetUp(layout.yaxis.title);
+      if (yChartSetUp) {
+        layout.yaxis.dtick = yChartSetUp.dtick;
+        layout.yaxis.range = [yChartSetUp.min, yChartSetUp.max];
+      }
 
       Plotly.newPlot(chartContainer, [...traces, ...medianMarkers], layout);
     },

+ 29 - 6
src/views/performance/components/chartsCom/GeneratorTemperature.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-21 11:18:49
- * @LastEditTime: 2025-02-24 17:37:36
+ * @LastEditTime: 2025-02-26 14:49:53
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/components/chartsCom/GeneratorTemperature.vue
@@ -65,6 +65,10 @@ export default {
         return "";
       },
     },
+    setUpImgData: {
+      default: () => [],
+      type: Array,
+    },
   },
   mixins: [myMixin],
   data() {
@@ -94,6 +98,12 @@ export default {
       },
       deep: true,
     },
+    setUpImgData: {
+      handler(newType) {
+        this.drawChart();
+      },
+      deep: true,
+    },
   },
   mounted() {
     if (this.fileAddr) {
@@ -164,7 +174,6 @@ export default {
 
         data.push(chartConfig);
       });
-
       const layout = {
         title: this.chartData.title,
         xaxis: {
@@ -182,10 +191,24 @@ export default {
         autosize: true, // 开启自适应
         barmode: this.chartType === "bar" ? "stack" : "group", // 如果是柱状图则启用堆叠
       };
-
-      // 使用 Plotly.react 来更新图表
-      Plotly.react(`bar-chart${this.index}`, data, layout, {
-        responsive: true,
+      const getChartSetUp = (axisTitle) => {
+        return this.setUpImgData.find((item) => item.text.includes(axisTitle));
+      };
+      const xChartSetUp = getChartSetUp(layout.xaxis.title);
+      if (xChartSetUp) {
+        layout.xaxis.dtick = xChartSetUp.dtick;
+        layout.xaxis.range = [xChartSetUp.min, xChartSetUp.max];
+      }
+      const yChartSetUp = getChartSetUp(layout.yaxis.title);
+      if (yChartSetUp) {
+        layout.yaxis.dtick = yChartSetUp.dtick;
+        layout.yaxis.range = [yChartSetUp.min, yChartSetUp.max];
+      }
+      this.$nextTick(() => {
+        // 使用 Plotly.react 来更新图表
+        Plotly.react(`bar-chart${this.index}`, data, layout, {
+          responsive: true,
+        });
       });
     },
 

+ 0 - 43
src/views/performance/components/chartsCom/MarkersCharts.vue

@@ -1,43 +0,0 @@
-<!--
- * @Author: your name
- * @Date: 2024-09-11 14:24:26
- * @LastEditTime: 2025-01-14 13:57:00
- * @LastEditors: bogon
- * @Description: In User Settings Edit
- * @FilePath: /performance-test/src/views/performance/components/chartsCom/MarkersCharts.vue
--->
-<template>
-  <div>
-    <!-- MarkersCharts
-    <h1>变桨和有功功率协调性分析 2D+3D</h1>
-    <h1>变桨和叶尖速比及风能利用系数分析 2D</h1>
-    <h1>逐月有功功率散点3D分析 3D</h1>
-    <h1>发电机转速和有功功率分析 3D+2D+3D</h1>
-    <h1>发电机转速和转矩分析3D+2D+3D</h1>
-    <h1>变桨和发电机转速协调性分析2D</h1>
-    <h1>最小桨距角分析2D</h1>
-    <h1>叶尖速比-Cp-功率散点分析2D</h1> -->
-    <div :id="`chart-${inds}`" style="width: 100%; height: 550px"></div>
-  </div>
-</template>
-<script>
-import { allTypesDatas } from "@/utils/allTypesOfAnalysisData.js";
-import Plotly from "plotly.js-dist";
-export default {
-  props: {},
-  data() {
-    return {};
-  },
-  mounted() {
-    this.initcharts();
-  },
-  methods: {
-    initcharts() {
-      const lineDatas = allTypesDatas.filter(
-        (item) => item.analysisTypeCode === "temperature_large_components"
-      )[0];
-    },
-  },
-};
-</script>
-<style scoped></style>

+ 31 - 1
src/views/performance/components/chartsCom/Time3DChart.vue

@@ -60,6 +60,10 @@ export default {
       default: "",
       type: String,
     },
+    setUpImgData: {
+      default: () => [],
+      type: Array,
+    },
   },
   data() {
     return {
@@ -100,6 +104,12 @@ export default {
       },
       deep: true,
     },
+    setUpImgData: {
+      handler(newType) {
+        this.renderChart();
+      },
+      deep: true,
+    },
   },
   async mounted() {
     this.getData();
@@ -236,7 +246,27 @@ export default {
           },
         },
       };
-
+      // 获取x轴和y轴的设置
+      const getChartSetUp = (axisTitle) => {
+        return this.setUpImgData.find((item) => item.text.includes(axisTitle));
+      };
+      // 更新x轴和y轴的范围与步长
+      const xChartSetUp = getChartSetUp(layout.scene.xaxis.title);
+      if (xChartSetUp) {
+        layout.scene.xaxis.dtick = xChartSetUp.dtick;
+        layout.scene.xaxis.range = [xChartSetUp.min, xChartSetUp.max];
+      }
+      const yChartSetUp = getChartSetUp(layout.scene.yaxis.title);
+      if (yChartSetUp) {
+        layout.scene.yaxis.dtick = yChartSetUp.dtick;
+        layout.scene.yaxis.range = [yChartSetUp.min, yChartSetUp.max];
+      }
+      const zChartSetUp = getChartSetUp(layout.scene.zaxis.title);
+      if (zChartSetUp) {
+        layout.scene.zaxis.dtick = zChartSetUp.dtick;
+        layout.scene.zaxis.range = [zChartSetUp.min, zChartSetUp.max];
+      }
+      console.log(zChartSetUp, yChartSetUp, xChartSetUp, "xChartSetUp");
       Plotly.newPlot(`plotly-3d-chart-` + this.index, traces, layout);
     },
 

+ 38 - 11
src/views/performance/components/chartsCom/TwoDMarkersChart.vue

@@ -67,6 +67,10 @@ export default {
     index: {
       type: String,
     },
+    setUpImgData: {
+      default: () => [],
+      type: Array,
+    },
   },
   data() {
     return {
@@ -95,6 +99,12 @@ export default {
       },
       deep: true,
     },
+    setUpImgData: {
+      handler(newType) {
+        this.drawChart();
+      },
+      deep: true,
+    },
   },
   mixins: [myMixin],
   async mounted() {
@@ -273,6 +283,22 @@ export default {
         gridcolor: "#fff", // 设置网格线颜色
       };
 
+      const getChartSetUp = (axisTitle) => {
+        return this.setUpImgData.find((item) => item.text.includes(axisTitle));
+      };
+
+      const xChartSetUp = getChartSetUp(layout.xaxis.title);
+      if (xChartSetUp) {
+        layout.xaxis.dtick = xChartSetUp.dtick;
+        layout.xaxis.range = [xChartSetUp.min, xChartSetUp.max];
+      }
+
+      const yChartSetUp = getChartSetUp(layout.yaxis.title);
+      if (yChartSetUp) {
+        layout.yaxis.dtick = yChartSetUp.dtick;
+        layout.yaxis.range = [yChartSetUp.min, yChartSetUp.max];
+      }
+
       if (this.chartData.xaixs === "时间") {
         layout.xaxis.type = "date";
         layout.xaxis.tickformat = "%Y-%m-%d";
@@ -304,17 +330,18 @@ export default {
         editable: true,
         scrollZoom: false,
       };
-
-      // 使用 Plotly 绘制图表
-      Plotly.react(
-        this.$refs[`plotlyChart-${this.index}`],
-        [trace],
-        layout,
-        config
-      ).then(() => {
-        // 确保在图表加载完成后设置工具栏按钮
-        const plotElement = this.$refs[`plotlyChart-${this.index}`];
-        Plotly.relayout(plotElement, layout); // 使用 relayout 来确保自定义按钮应用
+      this.$nextTick(() => {
+        // 使用 Plotly 绘制图表
+        Plotly.react(
+          this.$refs[`plotlyChart-${this.index}`],
+          [trace],
+          layout,
+          config
+        ).then(() => {
+          // 确保在图表加载完成后设置工具栏按钮
+          const plotElement = this.$refs[`plotlyChart-${this.index}`];
+          Plotly.relayout(plotElement, layout); // 使用 relayout 来确保自定义按钮应用
+        });
       });
     },
 

+ 0 - 105
src/views/performance/components/chartsCom/YawErrorDensityChart.vue

@@ -1,105 +0,0 @@
-<!--
- * @Author: your name
- * @Date: 2025-02-13 11:04:01
- * @LastEditTime: 2025-02-19 10:13:21
- * @LastEditors: bogon
- * @Description: In User Settings Edit
- * @FilePath: /performance-test/src/views/performance/components/chartsCom/YawErrorDensityChart.vue
--->
-<template>
-  <div :ref="`plotlyChart-${index}`" style="width: 100%; height: 450px"></div>
-</template>
-
-<script>
-import Plotly from "plotly.js-dist";
-import axios from "axios";
-import { myMixin } from "@/mixins/chartRequestMixin";
-
-export default {
-  props: {
-    fileAddr: {
-      default: "",
-      type: String,
-    },
-    index: {
-      type: String,
-    },
-  },
-  data() {
-    return {
-      chartData: {
-        xData: [],
-        yData: [],
-        title: "",
-        xaixs: "",
-        yaixs: "",
-      },
-    };
-  },
-  mixins: [myMixin],
-  mounted() {
-    this.getData();
-  },
-  methods: {
-    async getData() {
-      if (this.fileAddr !== "") {
-        try {
-          this.loading = true;
-          this.cancelToken = axios.CancelToken.source();
-          console.log(this.cancelToken);
-          const resultChartsData = await axios.get(this.fileAddr, {
-            cancelToken: this.cancelToken.token,
-          });
-          console.log(resultChartsData);
-          this.chartData = resultChartsData.data;
-          this.drawChart();
-          this.isError = false;
-          this.loading = false;
-        } catch (error) {
-          this.isError = true;
-          this.loading = false;
-        }
-      }
-    },
-    drawDensityChart() {
-      const { xData, yData, title, xaixs, yaixs } = this.chartData;
-
-      // 确保数据有效
-      if (!xData || !yData || xData.length !== yData.length) {
-        console.error("xData 和 yData 长度不匹配!");
-        return;
-      }
-
-      // 配置图表数据
-      const trace = {
-        x: xData,
-        y: yData,
-        mode: "lines", // 绘制折线图
-        name: "概率密度函数",
-        type: "scattergl",
-        line: {
-          color: "blue",
-          width: 2,
-        },
-        fill: "tozeroy", // 填充曲线下面的区域
-        fillcolor: "rgba(99, 110, 252, 0.3)", // 曲线下面的填充颜色
-      };
-
-      // 图表布局配置
-      const layout = {
-        title: title || "概率密度函数图",
-        xaxis: {
-          title: xaixs || "X轴",
-        },
-        yaxis: {
-          title: yaixs || "概率密度函数",
-        },
-        showlegend: false,
-      };
-
-      // 使用 Plotly 渲染图表
-      Plotly.newPlot(this.$refs[`plotlyChart-${this.index}`], [trace], layout);
-    },
-  },
-};
-</script>

+ 4 - 0
src/views/performance/components/chartsCom/YewErrorBarChart.vue

@@ -44,6 +44,10 @@ export default {
     index: {
       type: String,
     },
+    setUpImgData: {
+      default: () => [],
+      type: Array,
+    },
   },
   mixins: [myMixin],
   data() {

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

@@ -55,6 +55,10 @@ export default {
         return "0";
       },
     },
+    setUpImgData: {
+      default: () => [],
+      type: Array,
+    },
   },
   mixins: [myMixin],
   data() {
@@ -82,6 +86,12 @@ export default {
       },
       deep: true,
     },
+    setUpImgData: {
+      handler(newType) {
+        this.drawChart();
+      },
+      deep: true,
+    },
   },
   mounted() {
     if (this.fileAddr) {
@@ -120,7 +130,6 @@ export default {
         return false;
       }
       const data = [];
-      console.log(this.chartData, "this.chartData");
       this.chartData &&
         this.chartData.data &&
         this.chartData.data.forEach((turbine, index) => {
@@ -176,6 +185,21 @@ export default {
         autosize: true, // 开启自适应
         barmode: this.chartType === "bar" ? "stack" : "group", // 如果是柱状图则启用堆叠
       };
+      const getChartSetUp = (axisTitle) => {
+        return this.setUpImgData.find((item) => item.text.includes(axisTitle));
+      };
+
+      const xChartSetUp = getChartSetUp(layout.xaxis.title);
+      if (xChartSetUp) {
+        layout.xaxis.dtick = xChartSetUp.dtick;
+        layout.xaxis.range = [xChartSetUp.min, xChartSetUp.max];
+      }
+
+      const yChartSetUp = getChartSetUp(layout.yaxis.title);
+      if (yChartSetUp) {
+        layout.yaxis.dtick = yChartSetUp.dtick;
+        layout.yaxis.range = [yChartSetUp.min, yChartSetUp.max];
+      }
       if (
         this.chartData.contract_Cp_curve_yData &&
         this.chartData.contract_Cp_curve_yData.length > 0

+ 0 - 149
src/views/performance/components/chartsCom/lineChart.vue

@@ -1,149 +0,0 @@
-<!--
- * @Author: your name
- * @Date: 2024-09-11 14:23:08
- * @LastEditTime: 2025-02-21 17:27:46
- * @LastEditors: bogon
- * @Description: In User Settings Edit
- * @FilePath: /performance-test/src/views/performance/components/chartsCom/lineChart.vue
--->
-<template>
-  <div>
-    <h1>大部件温度传感器分析</h1>
-    <div :id="`chart-${inds}`" style="width: 100%; height: 550px"></div>
-    <div id="chart-types" style="width: 100%; height: 550px"></div>
-  </div>
-</template>
-<script>
-// 总图和分图数据需要处理分开
-import { allTypesDatas } from "@/utils/allTypesOfAnalysisData.js";
-import Plotly from "plotly.js-dist";
-export default {
-  props: {
-    inds: {
-      default() {
-        return "0";
-      },
-      type: String,
-    }, //循环下标防止图表覆盖问题
-    lineData: {
-      default() {
-        return {};
-      },
-      type: Object,
-    }, //图表数据
-    comType: {
-      default() {
-        return "";
-      },
-      type: String,
-    }, //总图、分图
-    chartsType: {
-      default() {
-        return [];
-      },
-      type: Array,
-    },
-    chartData: {
-      default: () => {
-        return [
-          {
-            x: [0, 1, 2, 3, 4], // X轴数据
-            y: [0, 1, 4, 9, 16], // Y轴数据
-          },
-          {
-            x: [0, 1, 2, 3, 4], // X轴数据
-            y: [1, 3, 5, 7, 11], // Y轴数据
-          },
-          {
-            x: [0, 1, 2, 3, 4], // X轴数据
-            y: [2, 5, 8, 10, 13], // Y轴数据
-          },
-          {
-            x: [0, 1, 2, 3, 4], // X轴数据
-            y: [3, 6, 9, 12, 15], // Y轴数据
-          },
-          {
-            x: [0, 1, 2, 3, 4], // X轴数据
-            y: [10, 25, 20, 40, 35], // Y轴数据
-          },
-          {
-            x: [0, 1, 2, 3, 4], // X轴数据
-            y: [5, 10, 15, 10, 25], // Y轴数据
-          },
-        ];
-      },
-      type: Array,
-    },
-  },
-  name: "LineChart",
-  data() {
-    return {};
-  },
-  mounted() {
-    // this.initChart();
-    this.initChartsType();
-  },
-  methods: {
-    initChart() {
-      const lineDatas = allTypesDatas.filter(
-        (item) => item.analysisTypeCode === "temperature_large_components"
-      )[0];
-      const trace = {
-        x: this.chartData[0].x,
-        y: this.chartData[0].y,
-        mode: "lines", // 折线图模式
-        line: {
-          // color: "darkblue",
-          // color:'lightgrey',
-          color: "#2f123a", //齿轮箱高速轴温度分布
-          width: 2,
-        },
-        hovertemplate:
-          `${this.chartData.xaixs}:` +
-          ` %{x} <br> ` +
-          `${this.chartData.yaixs}:` +
-          "%{y} <br>",
-        type: "scatter", // 使用散点图的类型生成线
-      };
-      const layout = {
-        ...lineDatas.lableConfig,
-        autosize: true, // 开启自适应
-      };
-      const config = {
-        responsive: true, // 自适应
-      };
-
-      // 使用 Plotly 绘制图表
-      Plotly.newPlot(`chart-${this.inds}`, [trace], layout, config, {
-        responsive: true,
-      });
-    },
-    initChartsType() {
-      const lineDatas = allTypesDatas.filter(
-        (item) => item.analysisTypeCode === "temperature_large_components"
-      )[0];
-      const chartsType = lineDatas.chartsType[1].children.filter(
-        (item) => item.name === "发电机温度偏差:"
-      )[0];
-      const trace = chartsType.line_dash.map((item, ind) => {
-        return {
-          x: this.chartData[ind].x,
-          y: this.chartData[ind].y,
-          mode: "lines", // 折线图模式
-          name: item.name,
-          line: { color: item.color, dash: item.dash },
-          type: "scatter", // 使用散点图的类型生成线
-        };
-      });
-      const layout = { ...chartsType.lableConfig };
-      const config = {
-        responsive: true, // 自适应
-      };
-
-      // 使用 Plotly 绘制图表
-      Plotly.newPlot(`chart-types`, trace, layout, config);
-    },
-  },
-};
-</script>
-<style scoped></style>

+ 27 - 0
src/views/performance/components/chartsCom/lineChartsFen.vue

@@ -42,6 +42,10 @@ export default {
       type: String,
       default: "",
     },
+    setUpImgData: {
+      default: () => [],
+      type: Array,
+    },
   },
   mixins: [myMixin],
   data() {
@@ -59,6 +63,14 @@ export default {
       this.getData();
     }
   },
+  watch: {
+    setUpImgData: {
+      handler(newType) {
+        this.drawChart();
+      },
+      deep: true,
+    },
+  },
   beforeDestroy() {
     if (this.cancelToken) {
       this.cancelToken.cancel(
@@ -187,6 +199,21 @@ export default {
         autosize: true,
         barmode: this.chartType === "bar" ? "stack" : "group",
       };
+      const getChartSetUp = (axisTitle) => {
+        return this.setUpImgData.find((item) => item.text.includes(axisTitle));
+      };
+
+      const xChartSetUp = getChartSetUp(layout.xaxis.title);
+      if (xChartSetUp) {
+        layout.xaxis.dtick = xChartSetUp.dtick;
+        layout.xaxis.range = [xChartSetUp.min, xChartSetUp.max];
+      }
+
+      const yChartSetUp = getChartSetUp(layout.yaxis.title);
+      if (yChartSetUp) {
+        layout.yaxis.dtick = yChartSetUp.dtick;
+        layout.yaxis.range = [yChartSetUp.min, yChartSetUp.max];
+      }
 
       Plotly.react(`line-chart-fen-${this.index}`, finalData, layout, {
         responsive: true,

+ 37 - 12
src/views/performance/components/chartsCom/powerMarkers2DCharts.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2024-09-11 14:32:12
- * @LastEditTime: 2025-02-25 09:06:27
+ * @LastEditTime: 2025-02-26 15:01:26
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/components/chartsCom/powerMarkers2DCharts.vue
@@ -75,6 +75,10 @@ export default {
     index: {
       type: String,
     },
+    setUpImgData: {
+      default: () => [],
+      type: Array,
+    },
   },
   data() {
     return {
@@ -102,6 +106,12 @@ export default {
       },
       deep: true,
     },
+    setUpImgData: {
+      handler(newType) {
+        this.drawChart();
+      },
+      deep: true,
+    },
   },
   async mounted() {
     this.getData();
@@ -275,7 +285,21 @@ export default {
         plot_bgcolor: "#e5ecf6",
         gridcolor: "#fff", // 设置网格线颜色
       };
+      const getChartSetUp = (axisTitle) => {
+        return this.setUpImgData.find((item) => item.text.includes(axisTitle));
+      };
 
+      const xChartSetUp = getChartSetUp(layout.xaxis.title);
+      if (xChartSetUp) {
+        layout.xaxis.dtick = xChartSetUp.dtick;
+        layout.xaxis.range = [xChartSetUp.min, xChartSetUp.max];
+      }
+
+      const yChartSetUp = getChartSetUp(layout.yaxis.title);
+      if (yChartSetUp) {
+        layout.yaxis.dtick = yChartSetUp.dtick;
+        layout.yaxis.range = [yChartSetUp.min, yChartSetUp.max];
+      }
       // 配置工具栏按钮
       const config = {
         modeBarButtonsToAdd: [
@@ -307,17 +331,18 @@ export default {
       const traces = [];
       if (scatterTrace) traces.push(scatterTrace); // 如果有散点数据
       if (lineTrace) traces.push(lineTrace); // 如果有线图数据
-
-      // 使用 Plotly 绘制图表
-      Plotly.react(
-        this.$refs[`plotlyChart-${this.index}`], // 这里是对 DOM 元素的引用
-        traces,
-        layout,
-        config
-      ).then(() => {
-        // 确保图表加载完成后设置工具栏按钮
-        const plotElement = this.$refs[`plotlyChart-${this.index}`];
-        Plotly.relayout(plotElement, layout); // 使用 relayout 来确保自定义按钮应用
+      this.$nextTick(() => {
+        // 使用 Plotly 绘制图表
+        Plotly.react(
+          this.$refs[`plotlyChart-${this.index}`], // 这里是对 DOM 元素的引用
+          traces,
+          layout,
+          config
+        ).then(() => {
+          // 确保图表加载完成后设置工具栏按钮
+          const plotElement = this.$refs[`plotlyChart-${this.index}`];
+          Plotly.relayout(plotElement, layout); // 使用 relayout 来确保自定义按钮应用
+        });
       });
     },
 

+ 5 - 1
src/views/performance/components/chartsCom/yawErrorLine.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-22 09:42:59
- * @LastEditTime: 2025-02-24 17:36:01
+ * @LastEditTime: 2025-02-26 11:37:55
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/components/chartsCom/yawErrorLine.vue
@@ -65,6 +65,10 @@ export default {
         return "0";
       },
     },
+    setUpImgData: {
+      default: () => [],
+      type: Array,
+    },
   },
   mixins: [myMixin],
   data() {