Ver Fonte

性能分析页面重构+故障分析类型新增

liujiejie há 11 meses atrás
pai
commit
60bb2bb38f
45 ficheiros alterados com 1353 adições e 32 exclusões
  1. 1 0
      src/icons/svg/overview.svg
  2. 0 0
      src/icons/svg/overview1.svg
  3. 1 0
      src/icons/svg/overview2.svg
  4. 6 1
      src/styles/global.scss
  5. 4 1
      src/views/home/components/Menu.vue
  6. 17 0
      src/views/overview/components/analysis_information/index.vue
  7. 17 0
      src/views/overview/components/cp/index.vue
  8. 17 0
      src/views/overview/components/cp_trend/index.vue
  9. 17 0
      src/views/overview/components/cp_windspeed/index.vue
  10. 17 0
      src/views/overview/components/data_integrity_minute/index.vue
  11. 17 0
      src/views/overview/components/data_integrity_second/index.vue
  12. 17 0
      src/views/overview/components/fault/index.vue
  13. 17 0
      src/views/overview/components/min_pitch/index.vue
  14. 17 0
      src/views/overview/components/pitch_generator_speed/index.vue
  15. 17 0
      src/views/overview/components/pitch_power/index.vue
  16. 17 0
      src/views/overview/components/pitch_tsr_cp/index.vue
  17. 17 0
      src/views/overview/components/power_curve/index.vue
  18. 17 0
      src/views/overview/components/power_scatter/index.vue
  19. 17 0
      src/views/overview/components/power_scatter_2D/index.vue
  20. 17 0
      src/views/overview/components/production_indicator/index.vue
  21. 17 0
      src/views/overview/components/rated_power_windspeed/index.vue
  22. 17 0
      src/views/overview/components/rated_windspeed/index.vue
  23. 17 0
      src/views/overview/components/speed_power/index.vue
  24. 9 0
      src/views/overview/components/speed_torque/index.vue
  25. 17 0
      src/views/overview/components/temperature_environment/index.vue
  26. 17 0
      src/views/overview/components/temperature_large_components/index.vue
  27. 17 0
      src/views/overview/components/tsr/index.vue
  28. 17 0
      src/views/overview/components/tsr_cp_power/index.vue
  29. 19 0
      src/views/overview/components/tsr_cp_power_scatter/index.vue
  30. 17 0
      src/views/overview/components/tsr_trend/index.vue
  31. 17 0
      src/views/overview/components/tsr_windspeed/index.vue
  32. 17 0
      src/views/overview/components/wind_direction_frequency/index.vue
  33. 17 0
      src/views/overview/components/wind_spee/index.vue
  34. 17 0
      src/views/overview/components/wind_speed_frequency/index.vue
  35. 17 0
      src/views/overview/components/yaw_error/index.vue
  36. 17 0
      src/views/overview/components/yaw_error_density/index.vue
  37. 177 0
      src/views/overview/index.vue
  38. 252 0
      src/views/overview/js/assetssType.js
  39. 125 2
      src/views/performance/assetssDetail.vue
  40. 109 0
      src/views/performance/batchDetail.vue
  41. 122 17
      src/views/performance/components/EditAnalysis.vue
  42. 0 1
      src/views/performance/customAnalysis.vue
  43. 2 1
      src/views/performance/editAssets.vue
  44. 2 5
      src/views/system/menuMag/components/editDialog.vue
  45. 31 4
      src/views/system/menuMag/index.vue

+ 1 - 0
src/icons/svg/overview.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1736408487102" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3556" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M996.352 216.064A42.666667 42.666667 0 0 1 1024 256v725.333333a42.666667 42.666667 0 0 1-42.666667 42.666667H42.666667a42.666667 42.666667 0 0 1-42.666667-42.666667V554.666667a42.666667 42.666667 0 0 1 64.64-36.608l181.333333 108.8 147.370667-184.192a42.666667 42.666667 0 0 1 52.437333-11.52l226.517334 113.28 276.906666-316.544a42.666667 42.666667 0 0 1 47.146667-11.818667zM938.666667 369.493333l-223.872 255.872a42.666667 42.666667 0 0 1-51.2 10.069334l-225.152-112.554667-149.12 186.410667a42.666667 42.666667 0 0 1-55.253334 9.898666L85.333333 630.016V938.666667h853.333334V369.493333z" p-id="3557" fill="#909399"></path><path d="M1010.56 32.938667a42.666667 42.666667 0 0 1 1.834667 60.288l-341.333334 362.666666a42.666667 42.666667 0 0 1-50.133333 8.96l-225.152-112.64-149.12 186.453334A42.666667 42.666667 0 0 1 187.733333 546.133333l-170.666666-128a42.666667 42.666667 0 0 1 51.2-68.266666l137.557333 103.168L350.72 272a42.666667 42.666667 0 0 1 52.394667-11.52l227.626666 113.834667 319.573334-339.584a42.666667 42.666667 0 0 1 60.288-1.792z" p-id="3558" fill="#909399"></path><path d="M726.186667 115.029333a42.666667 42.666667 0 0 1 33.450666-50.218666l213.333334-42.666667a42.666667 42.666667 0 0 1 16.725333 83.712l-213.333333 42.666667a42.666667 42.666667 0 0 1-50.218667-33.493334z" p-id="3559" fill="#909399"></path></svg>

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
src/icons/svg/overview1.svg


+ 1 - 0
src/icons/svg/overview2.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1736408575390" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3929" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M128 469.33h341.33V128H128v341.33z m85.33-256H384V384H213.33V213.33zM938.16 300.03L724.4 86.27 509.54 301.12 723.3 514.88l214.86-214.85zM724.4 206.95l93.08 93.08-94.18 94.17-93.08-93.08 94.18-94.17zM128 896h341.33V554.67H128V896z m85.33-256H384v170.67H213.33V640zM554.67 896H896V554.67H554.67V896zM640 640h170.67v170.67H640V640z" fill="#909399" p-id="3930"></path></svg>

+ 6 - 1
src/styles/global.scss

@@ -7,7 +7,12 @@
 .el-menu-item.is-active {
   color: var(--primary-color) !important;
 }
-
+.el-menu--horizontal > .el-menu-item.is-active {
+  border-bottom: 2px solid var(--primary-color) !important;
+}
+.el-menu--horizontal > .el-submenu.is-active .el-submenu__title {
+  border-bottom: 2px solid var(--primary-color) !important;
+}
 .el-dialog__header {
   background-color: var(--primary-color) !important;
   color: var(--text-color) !important;

+ 4 - 1
src/views/home/components/Menu.vue

@@ -49,7 +49,9 @@
     >
       <template v-for="item in routerList">
         <el-submenu
-          v-if="item.children && item.children.length"
+          v-if="
+            item.children && item.children.length && item.meta?.hidden === false
+          "
           :index="item.path"
         >
           <template slot="title">
@@ -154,6 +156,7 @@ export default {
       ...this.routerList,
       ...this.$store.state.auth.dynamicRouter,
     ];
+    console.log(this.routerList, "routerList");
   },
   computed: {
     ...mapState({

+ 17 - 0
src/views/overview/components/analysis_information/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-09 17:40:53
+ * @LastEditTime: 2025-01-09 17:50:49
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/assetssMsg/index.vue
+-->
+<template>
+  <div>分析信息</div>
+</template>
+<script>
+export default {
+  name: "AnalysisInformation",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/cp/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-09 18:05:58
+ * @LastEditTime: 2025-01-10 09:28:15
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/cp/index.vue
+-->
+<template>
+  <div>风能利用系数和有功功率分析</div>
+</template>
+<script>
+export default {
+  name: "cp",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/cp_trend/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-09 18:06:09
+ * @LastEditTime: 2025-01-10 09:20:39
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/cp_trend/index.vue
+-->
+<template>
+  <div>风能利用系数时序分析</div>
+</template>
+<script>
+export default {
+  name: "cpTrend",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/cp_windspeed/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-09 18:08:00
+ * @LastEditTime: 2025-01-10 09:20:32
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/cp_windspeed/index.vue
+-->
+<template>
+  <div>风能利用系数和风速分析</div>
+</template>
+<script>
+export default {
+  name: "cpWindspeed",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/data_integrity_minute/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-09 17:54:02
+ * @LastEditTime: 2025-01-09 17:54:35
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/data_integrity_minute/index.vue
+-->
+<template>
+  <div>scada分钟级数据</div>
+</template>
+<script>
+export default {
+  name: "DataIntegrityMinute",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/data_integrity_second/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-09 17:55:01
+ * @LastEditTime: 2025-01-10 09:20:15
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/data_integrity_second/index.vue
+-->
+<template>
+  <div>秒级钟级SCADA数据完整度分析</div>
+</template>
+<script>
+export default {
+  name: "DataIntegritySecond",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/fault/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-10 09:26:53
+ * @LastEditTime: 2025-01-10 09:27:10
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/fault/index.vue
+-->
+<template>
+  <div>故障分析</div>
+</template>
+<script>
+export default {
+  name: "fault",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/min_pitch/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-09 18:08:13
+ * @LastEditTime: 2025-01-10 09:19:48
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/min_pitch/index.vue
+-->
+<template>
+  <div>最小桨距角分析</div>
+</template>
+<script>
+export default {
+  name: "minPitch",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/pitch_generator_speed/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-09 18:09:25
+ * @LastEditTime: 2025-01-10 09:19:31
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/pitch_generator_speed/index.vue
+-->
+<template>
+  <div>变桨和发电机转速协调性分析</div>
+</template>
+<script>
+export default {
+  name: "pitchGeneratorSpeed",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/pitch_power/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-09 18:09:41
+ * @LastEditTime: 2025-01-10 09:19:07
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/pitch_power/index.vue
+-->
+<template>
+  <div>变桨和有功功率协调性分析</div>
+</template>
+<script>
+export default {
+  name: "pitchPower",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/pitch_tsr_cp/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-09 18:09:55
+ * @LastEditTime: 2025-01-10 09:18:38
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/pitch_tsr_cp/index.vue
+-->
+<template>
+  <div>变桨和叶尖速比及风能利用系数分析</div>
+</template>
+<script>
+export default {
+  name: "pitchTsrCp",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/power_curve/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-09 18:10:08
+ * @LastEditTime: 2025-01-10 09:18:18
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/power_curve/index.vue
+-->
+<template>
+  <div>有功功率曲线分析</div>
+</template>
+<script>
+export default {
+  name: "powerCurve",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/power_scatter/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-09 18:10:22
+ * @LastEditTime: 2025-01-10 09:17:58
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/power_scatter/index.vue
+-->
+<template>
+  <div>逐月有功功率散点3D分析</div>
+</template>
+<script>
+export default {
+  name: "powerScatter",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/power_scatter_2D/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-09 18:10:35
+ * @LastEditTime: 2025-01-10 09:17:39
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/power_scatter_2D/index.vue
+-->
+<template>
+  <div>逐月有功功率散点2D分析</div>
+</template>
+<script>
+export default {
+  name: "powerScatter2D",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/production_indicator/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-10 09:25:25
+ * @LastEditTime: 2025-01-10 09:25:49
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/production_indicator/index.vue
+-->
+<template>
+  <div>生产指标效能分析</div>
+</template>
+<script>
+export default {
+  name: "production_indicator",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/rated_power_windspeed/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-09 18:10:47
+ * @LastEditTime: 2025-01-10 09:17:15
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/rated_power_windspeed/index.vue
+-->
+<template>
+  <div>额定功率和风速分析</div>
+</template>
+<script>
+export default {
+  name: "ratedPowerWindspeed",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/rated_windspeed/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-10 09:08:56
+ * @LastEditTime: 2025-01-10 09:17:01
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/rated_windspeed/index.vue
+-->
+<template>
+  <div>额定风速分析</div>
+</template>
+<script>
+export default {
+  name: "ratedWindspeed",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/speed_power/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-10 09:09:17
+ * @LastEditTime: 2025-01-10 09:16:40
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/speed_power/index.vue
+-->
+<template>
+  <div>发电机转速和有功功率分析</div>
+</template>
+<script>
+export default {
+  name: "speedPower",
+};
+</script>
+<style scoped lang="scss"></style>

+ 9 - 0
src/views/overview/components/speed_torque/index.vue

@@ -0,0 +1,9 @@
+<template>
+  <div>发电机转速和转矩分析</div>
+</template>
+<script>
+export default {
+  name: "speedTorque",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/temperature_environment/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-10 09:09:46
+ * @LastEditTime: 2025-01-10 09:15:43
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/temperature_environment/index.vue
+-->
+<template>
+  <div>环境温度传感器分析</div>
+</template>
+<script>
+export default {
+  name: "temperatureEnvironment",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/temperature_large_components/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-10 09:10:00
+ * @LastEditTime: 2025-01-10 09:15:34
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/temperature_large_components/index.vue
+-->
+<template>
+  <div>大部件温度传感器分析</div>
+</template>
+<script>
+export default {
+  name: "temperatureLargeComponents",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/tsr/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-10 09:10:11
+ * @LastEditTime: 2025-01-10 09:15:14
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/tsr/index.vue
+-->
+<template>
+  <div>叶尖速比和有功功率分析</div>
+</template>
+<script>
+export default {
+  name: "tsr",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/tsr_cp_power/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-10 09:10:24
+ * @LastEditTime: 2025-01-10 09:15:01
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/tsr_cp_power/index.vue
+-->
+<template>
+  <div>叶尖速比-风能利用系数-功率分析</div>
+</template>
+<script>
+export default {
+  name: "tsrCpPower",
+};
+</script>
+<style scoped lang="scss"></style>

+ 19 - 0
src/views/overview/components/tsr_cp_power_scatter/index.vue

@@ -0,0 +1,19 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-10 09:22:59
+ * @LastEditTime: 2025-01-10 09:23:45
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/index.vue
+-->
+<template>
+  <div>叶尖速比-Cp-功率散点分析</div>
+</template>
+<script>
+export default {
+  components: {
+    name: "tsr_cp_power_scatter",
+  },
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/tsr_trend/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-10 09:10:39
+ * @LastEditTime: 2025-01-10 09:14:38
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/tsr_trend/index.vue
+-->
+<template>
+  <div>叶尖速比时序分析</div>
+</template>
+<script>
+export default {
+  name: "tsrTrend",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/tsr_windspeed/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-10 09:10:59
+ * @LastEditTime: 2025-01-10 09:14:00
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/tsr_windspeed/index.vue
+-->
+<template>
+  <div>叶尖速比和风速分析</div>
+</template>
+<script>
+export default {
+  name: "tsrWindspeed",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/wind_direction_frequency/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-10 09:11:12
+ * @LastEditTime: 2025-01-10 09:13:44
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/wind_direction_frequency/index.vue
+-->
+<template>
+  <div>风向玫瑰分析</div>
+</template>
+<script>
+export default {
+  name: "windDirectionFrequency",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/wind_spee/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-10 09:11:23
+ * @LastEditTime: 2025-01-10 09:13:17
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/wind_spee/index.vue
+-->
+<template>
+  <div>风速均值分析</div>
+</template>
+<script>
+export default {
+  name: "windSpee",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/wind_speed_frequency/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-10 09:11:34
+ * @LastEditTime: 2025-01-10 09:12:56
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/wind_speed_frequency/index.vue
+-->
+<template>
+  <div>风速频率分析</div>
+</template>
+<script>
+export default {
+  name: "windSpeedFrequency",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/yaw_error/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-10 09:24:14
+ * @LastEditTime: 2025-01-10 09:24:37
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/yaw_error/index.vue
+-->
+<template>
+  <div>静态偏航误差分析</div>
+</template>
+<script>
+export default {
+  name: "yaw_error",
+};
+</script>
+<style scoped lang="scss"></style>

+ 17 - 0
src/views/overview/components/yaw_error_density/index.vue

@@ -0,0 +1,17 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-10 09:26:12
+ * @LastEditTime: 2025-01-10 09:26:31
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/overview/components/yaw_error_density/index.vue
+-->
+<template>
+  <div>动态偏航误差分析</div>
+</template>
+<script>
+export default {
+  name: "yaw_error_density",
+};
+</script>
+<style scoped lang="scss"></style>

+ 177 - 0
src/views/overview/index.vue

@@ -0,0 +1,177 @@
+<template>
+  <div class="global-variable">
+    <div class="left">
+      <el-input
+        class="filterInput"
+        placeholder="输入关键字进行过滤"
+        v-model="filterText"
+      >
+      </el-input>
+      <el-tree
+        class="filter-tree"
+        :data="data"
+        highlight-current
+        :props="defaultProps"
+        default-expand-all
+        :filter-node-method="filterNode"
+        ref="tree"
+      >
+      </el-tree>
+    </div>
+    <div class="right">
+      <el-menu
+        :default-active="activeIndex"
+        class="el-menu-demo"
+        mode="horizontal"
+        @select="handleSelect"
+      >
+        <template v-for="menuItem in assetssTypeData">
+          <el-submenu
+            :index="menuItem.type"
+            v-if="menuItem.children && menuItem.children.length"
+          >
+            <template slot="title">{{ menuItem.label }}</template>
+
+            <el-menu-item
+              :index="submenuItem.type"
+              v-for="submenuItem in menuItem.children"
+              >{{ submenuItem.label }}</el-menu-item
+            >
+          </el-submenu>
+          <el-menu-item :index="menuItem.type" v-else>{{
+            menuItem.label
+          }}</el-menu-item>
+        </template>
+      </el-menu>
+      <!-- 动态渲染组件 -->
+      <component :is="currentComponent"></component>
+    </div>
+  </div>
+</template>
+
+<script>
+import { assetssType } from "./js/assetssType";
+export default {
+  data() {
+    return {
+      filterText: "",
+      data: [
+        {
+          id: 1,
+          label: "一级 1",
+          children: [
+            {
+              id: 4,
+              label: "二级 1-1",
+              children: [
+                {
+                  id: 9,
+                  label: "三级 1-1-1",
+                },
+                {
+                  id: 10,
+                  label: "三级 1-1-2",
+                },
+              ],
+            },
+          ],
+        },
+        {
+          id: 2,
+          label: "一级 2",
+          children: [
+            {
+              id: 5,
+              label: "二级 2-1",
+            },
+            {
+              id: 6,
+              label: "二级 2-2",
+            },
+          ],
+        },
+        {
+          id: 3,
+          label: "一级 3",
+          children: [
+            {
+              id: 7,
+              label: "二级 3-1",
+            },
+            {
+              id: 8,
+              label: "二级 3-2",
+            },
+          ],
+        },
+      ],
+      defaultProps: {
+        children: "children",
+        label: "label",
+      },
+      currentComponent: () =>
+        import("./components/analysis_information/index.vue"), // 默认加载AnalysisInformation组件
+      assetssTypeData: [...assetssType],
+      activeIndex: "analysis_information", // 默认选中的菜单项
+    };
+  },
+  watch: {
+    filterText(val) {
+      this.$refs.tree.filter(val);
+    },
+  },
+
+  methods: {
+    // 点击树形节点时
+    handleNodeClick(data) {
+      console.log(data);
+      // 根据树形节点的label动态更新右侧菜单选中的项
+      //   this.updateMenuActiveIndex(data);
+    },
+
+    // 过滤树形节点的方法
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.label.indexOf(value) !== -1;
+    },
+
+    // 菜单选中项的事件
+    handleSelect(key, keyPath) {
+      console.log(key, keyPath);
+      this.currentComponent = () => import(`./components/${key}/index.vue`);
+    },
+  },
+};
+</script>
+
+<style scoped lang="scss">
+.global-variable {
+  display: flex;
+  .left {
+    width: 200px;
+    border-right: 1px solid #ebeef5;
+    padding-right: 20px;
+    .filterInput {
+      margin: 20px 0;
+    }
+  }
+  .right {
+    flex: 1;
+    padding-left: 20px;
+    overflow: hidden;
+    /* 横向滚动设置 */
+    .el-menu-demo {
+      max-width: 100%; /* 容器宽度为100% */
+      white-space: nowrap; /* 阻止换行 */
+      overflow-x: auto; /* 允许横向滚动 */
+      display: flex; /* 让子菜单元素保持在同一行 */
+    }
+  }
+  .el-menu-demo {
+    border-bottom: 1px solid #ebeef5;
+  }
+  ::v-deep .el-submenu__title {
+    padding: 0 10px !important;
+  }
+}
+</style>

+ 252 - 0
src/views/overview/js/assetssType.js

@@ -0,0 +1,252 @@
+/*
+ * @Author: your name
+ * @Date: 2025-01-09 16:34:15
+ * @LastEditTime: 2025-01-10 10:32:00
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/performance/js/assetssType.js
+ */
+export const assetssType = [
+  {
+    id: "1",
+    label: "分析信息",
+    type: "analysis_information",
+  },
+  {
+    id: "2",
+    label: "数据完整度分析",
+    type: "data_integrity",
+    children: [
+      {
+        id: "2-1",
+        label: "分钟级SCADA数据完整度分析",
+        type: "data_integrity_minute",
+      },
+      {
+        id: "2-2",
+        label: "秒级钟级SCADA数据完整度分析",
+        type: "data_integrity_second",
+      },
+    ],
+  },
+  {
+    id: "3",
+    label: "风资源分析",
+    type: "wind_resource",
+    children: [
+      {
+        id: "3-1",
+        label: "风速频率分析",
+        type: "wind_speed_frequency",
+      },
+      {
+        id: "3-2",
+        label: "风向玫瑰分析",
+        type: "wind_direction_frequency",
+      },
+      {
+        id: "3-3",
+        label: "风速均值分析",
+        type: "wind_spee",
+      },
+    ],
+  },
+  {
+    id: "4",
+    label: "功率曲线分析",
+    type: "power_curve_all",
+    children: [
+      {
+        id: "4-1",
+        label: "有功功率曲线分析",
+        type: "power_curve",
+      },
+      {
+        id: "4-2",
+        label: "逐月有功功率散点2D分析",
+        type: "power_scatter_2D",
+      },
+      {
+        id: "4-3",
+        label: "逐月有功功率散点3D分析",
+        type: "power_scatter",
+      },
+    ],
+  },
+  {
+    id: "5",
+    label: "额定功率分析",
+    type: "rated_power",
+    children: [
+      {
+        id: "5-1",
+        label: "额定功率和风速分析",
+        type: "rated_power_windspeed",
+      },
+      {
+        id: "5-2",
+        label: "额定风速分析",
+        type: "rated_windspeed",
+      },
+    ],
+  },
+  {
+    id: "6",
+    label: "性能特征分析",
+    type: "performance_characteristics",
+    children: [
+      {
+        id: "6-1",
+        label: "风能利用系数和有功功率分析",
+        type: "cp",
+      },
+      {
+        id: "6-2",
+        label: "风能利用系数和风速分析",
+        type: "cp_windspeed",
+      },
+      {
+        id: "6-3",
+        label: "风能利用系数时序分析",
+        type: "cp_trend",
+      },
+      {
+        id: "6-4",
+        label: "叶尖速比和有功功率分析",
+        type: "tsr",
+      },
+      {
+        id: "6-5",
+        label: "叶尖速比和风速分析",
+        type: "tsr_windspeed",
+      },
+      {
+        id: "6-6",
+        label: "叶尖速比时序分析",
+        type: "tsr_trend",
+      },
+      {
+        id: "6-7",
+        label: "叶尖速比-风能利用系数-功率分析",
+        type: "tsr_cp_power",
+      },
+      {
+        id: "6-8",
+        label: "变桨和叶尖速比及风能利用系数分析",
+        type: "pitch_tsr_cp",
+      },
+      {
+        id: "6-9",
+        label: "叶尖速比-风能利用系数-功率散点分析",
+        type: "tsr_cp_power_scatter",
+      },
+    ],
+  },
+  {
+    id: "7",
+    label: "变桨特征分析",
+    type: "pitch_characteristics",
+    children: [
+      {
+        id: "7-1",
+        label: "最小桨距角分析",
+        type: "min_pitch",
+      },
+    ],
+  },
+  {
+    id: "8",
+    label: "变桨-转速-转矩(功率)协调分析",
+    type: "pitch_speed_torque",
+    children: [
+      {
+        id: "8-1",
+        label: "变桨和有功功率协调性分析",
+        type: "pitch_power",
+      },
+      {
+        id: "8-2",
+        label: "变桨和发电机转速协调性分析",
+        type: "pitch_generator_speed",
+      },
+      {
+        id: "8-3",
+        label: "发电机转速和有功功率分析",
+        type: "speed_power",
+      },
+      {
+        id: "8-4",
+        label: "发电机转速和转矩分析",
+        type: "speed_torque",
+      },
+    ],
+  },
+  {
+    id: "9",
+    label: "温度传感器性能分析",
+    type: "temperature_sensor",
+    children: [
+      {
+        id: "9-1",
+        label: "环境温度传感器分析",
+        type: "temperature_environment",
+      },
+      {
+        id: "9-2",
+        label: "大部件温度传感器分析",
+        type: "temperature_large_components",
+      },
+    ],
+  },
+  {
+    id: "10",
+    label: "偏航系统分析",
+    type: "yaw_system",
+    children: [
+      {
+        id: "10-1",
+        label: "静态偏航误差分析",
+        type: "yaw_error",
+      },
+      {
+        id: "10-2",
+        label: "动态偏航误差分析",
+        type: "yaw_error_density",
+      },
+    ],
+  },
+  {
+    id: "11",
+    label: "运行指标",
+    type: "production_indicator",
+    children: [
+      {
+        id: "11-1",
+        label: "全场指标",
+        type: "production_indicator",
+      },
+      {
+        id: "11-2",
+        label: "机组指标",
+        type: "production_indicator",
+      },
+    ],
+  },
+  {
+    id: "12",
+    label: "故障分析",
+    type: "fault",
+    children: [
+      {
+        id: "12-1",
+        label: "全场故障统计",
+        type: "fault",
+      },
+      {
+        id: "12-2",
+        label: "机组故障统计",
+        type: "fault",
+      },
+    ],
+  },
+];

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

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2024-05-27 09:25:45
- * @LastEditTime: 2025-01-07 09:08:35
+ * @LastEditTime: 2025-01-09 09:41:40
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/assetssDetail.vue
@@ -176,7 +176,66 @@
           </template>
         </div>
       </template>
-
+      <template v-else-if="formInfo.analysisTypeCode === 'fault'">
+        <div>
+          <template v-for="itemCsv in zongFaultCsvData">
+            <el-table
+              :data="filteredData(itemCsv)"
+              border
+              style="width: 100%"
+              align="center"
+            >
+              <el-table-column prop="fault_detail" label="故障类型">
+              </el-table-column>
+              <el-table-column prop="count" sortable label="故障次数(次)">
+              </el-table-column>
+              <el-table-column
+                prop="fault_time_sum"
+                sortable
+                label="故障时长(秒)"
+              >
+              </el-table-column>
+              <el-table-column align="right">
+                <template slot="header" slot-scope="scope">
+                  <el-input
+                    v-model="search"
+                    size="mini"
+                    placeholder="输入故障类型关键字搜索"
+                  />
+                </template>
+              </el-table-column>
+            </el-table>
+          </template>
+          <template v-for="itemCsv in fenFaultCsvData">
+            <el-table
+              :data="filteredFenData(itemCsv)"
+              border
+              style="width: 100%"
+              align="center"
+            >
+              <el-table-column prop="wind_turbine_name" label="风机名称">
+              </el-table-column>
+              <el-table-column prop="count" sortable label="故障次数(次)">
+              </el-table-column>
+              <el-table-column
+                prop="fault_time"
+                sortable
+                label="故障时长(秒)"
+              >
+              </el-table-column>
+              <el-table-column align="right">
+                <template slot="header" slot-scope="scope">
+                  <el-input
+                    v-model="searchFen"
+                    size="mini"
+                    placeholder="输入风机名称关键字搜索"
+                  />
+                </template>
+              </el-table-column>
+            </el-table>
+          </template>
+        </div>
+      </template>
       <!-- 需要在这里添加三个分析类型排版布局 ,分析详情中 -->
       <div v-else>
         <el-card class="box-card analysisType" v-if="generalFiles.length > 0">
@@ -482,6 +541,8 @@ export default {
   },
   data() {
     return {
+      search: "",
+      searchFen: "",
       loadings: [],
       loading: false,
       fileCheckResult: null,
@@ -508,12 +569,47 @@ export default {
       graphFilesData: [],
       powerHtmlZongData: [],
       powerHtmlFenData: [],
+      zongFaultCsvHeader: [],
+      zongFaultCsvData: [],
+      fenFaultCsvHeader: [],
+      fenFaultCsvData: [],
     };
   },
   created() {
     //获取分析 分析类型、机组编号 列表
     this.getWindCodeList();
   },
+  computed: {
+    // 根据搜索关键字过滤数据
+    filteredData() {
+      return (itemCsv) => {
+        // 如果有搜索关键词,则过滤数据
+        if (this.search) {
+          return itemCsv.data.filter((item) => {
+            return item.fault_detail
+              .toLowerCase()
+              .includes(this.search.toLowerCase());
+          });
+        }
+        // 没有搜索关键词时返回所有数据
+        return itemCsv.data;
+      };
+    },
+    filteredFenData() {
+      return (itemCsv) => {
+        // 如果有搜索关键词,则过滤数据
+        if (this.searchFen) {
+          return itemCsv.data.filter((item) => {
+            return item.wind_turbine_name
+              .toLowerCase()
+              .includes(this.searchFen.toLowerCase());
+          });
+        }
+        // 没有搜索关键词时返回所有数据
+        return itemCsv.data;
+      };
+    },
+  },
   mounted() {
     this.initializeLoading();
     // this.chartsTypeConfig();
@@ -738,6 +834,15 @@ export default {
                 this.fetchCsvData("production_indicator", item.fileAddr);
               }
             });
+          } else if (this.formInfo.analysisTypeCode === "fault") {
+            //总图处理
+            response.data[0].generalFiles.map((item) => {
+              if (item.fileAddr) {
+                this.productionIndicatorCsvHeader = [];
+                this.productionIndicatorCsvData = [];
+                this.fetchCsvData("fault", item.fileAddr);
+              }
+            });
           }
         }
 
@@ -922,6 +1027,24 @@ export default {
                       .filter((row) => Object.keys(row).length)
                       .slice(0, result.data.length - 1),
                   }); // 过滤空行
+                } else if (analysisType === "fault") {
+                  if (Object.keys(result.data[0]).includes("fault_detail")) {
+                    //总图故障统计展示
+                    this.zongFaultCsvHeader.push(Object.keys(result.data[0]));
+                    this.zongFaultCsvData.push({
+                      data: result.data
+                        .filter((row) => Object.keys(row).length)
+                        .slice(0, result.data.length - 1),
+                    });
+                  } else {
+                    //分机型故障统计处理
+                    this.fenFaultCsvHeader.push(Object.keys(result.data[0]));
+                    this.fenFaultCsvData.push({
+                      data: result.data
+                        .filter((row) => Object.keys(row).length)
+                        .slice(0, result.data.length - 1),
+                    });
+                  }
                 }
               },
               error: (error) => {

+ 109 - 0
src/views/performance/batchDetail.vue

@@ -0,0 +1,109 @@
+<!--
+ * @Author: your name
+ * @Date: 2025-01-09 10:28:04
+ * @LastEditTime: 2025-01-09 15:02:30
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/performance/batchDetail.vue
+-->
+<template>
+  <div class="global-variable">
+    <!-- <el-card class="box-card"> -->
+    <el-descriptions class="margin-top" title="分析概览" :column="3">
+      <template slot="title">
+        <el-button
+          type="text"
+          style="font-size: 20px"
+          icon="el-icon-arrow-left"
+          @click="() => $router.push('/home/performance/batchMag')"
+        >
+          分析概览
+        </el-button>
+      </template>
+      <template slot="extra">
+        <el-button type="primary" size="small">数据转换</el-button>
+      </template>
+      <el-descriptions-item>
+        <template slot="label">
+          <i class="el-icon-user"></i>
+          关联风场
+        </template>
+        XXXXX风场
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template slot="label">
+          <i class="el-icon-mobile-phone"></i>
+          分析名称
+        </template>
+        XXXX
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template slot="label">
+          <i class="el-icon-location-outline"></i>
+          状态
+        </template>
+        <el-tag size="small">XX</el-tag>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template slot="label">
+          <i class="el-icon-tickets"></i>
+          创建时间
+        </template>
+        XXXXXX
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template slot="label">
+          <i class="el-icon-office-building"></i>
+          创建人
+        </template>
+        XXXXXXXX
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template slot="label">
+          <i class="el-icon-office-building"></i>
+          备注
+        </template>
+        XXXXXXXX
+      </el-descriptions-item>
+    </el-descriptions>
+    <!-- </el-card> -->
+    <el-tabs
+      class="tabsBox"
+      v-model="activeName"
+      type="card"
+      @tab-click="handleClick"
+    >
+      <!-- <el-tab-pane label="数据关联" name="first">
+        <DataAdministration />
+      </el-tab-pane> -->
+      <el-tab-pane label="性能分析" name="second">
+        <PerformanceAssetssMag></PerformanceAssetssMag>
+      </el-tab-pane>
+    </el-tabs>
+  </div>
+</template>
+<script>
+import DataAdministration from "../dataAdministration/index.vue";
+import PerformanceAssetssMag from "./assetssMag.vue";
+export default {
+  components: {
+    DataAdministration,
+    PerformanceAssetssMag,
+  },
+  data() {
+    return {
+      activeName: "second",
+    };
+  },
+  methods: {
+    handleClick(tab, event) {
+      console.log(tab, event);
+    },
+  },
+};
+</script>
+<style scoped lang="scss">
+.tabsBox {
+  margin-top: 20px;
+}
+</style>

+ 122 - 17
src/views/performance/components/EditAnalysis.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2024-05-29 09:14:23
- * @LastEditTime: 2025-01-07 09:08:52
+ * @LastEditTime: 2025-01-09 09:41:56
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/components/EditAnalysis.vue
@@ -147,26 +147,67 @@
             </template>
           </div>
         </el-col>
-        <el-col :span="24" v-if="form.configAnalysis === '故障统计'"
+        <el-col :span="24" v-if="form.configAnalysis === 'fault'"
           ><div class="left">
-            <el-table
-              :data="tableData"
-              border
-              style="width: 100%"
-              align="center"
-            >
-              <el-table-column prop="date" label="故障次数(次)">
-              </el-table-column>
-              <el-table-column prop="name" label="故障时长(秒)">
-              </el-table-column>
-              <el-table-column prop="name" label="损失电量(KW/h)">
-              </el-table-column>
-            </el-table>
+            <template v-for="itemCsv in zongFaultCsvData">
+              <el-table
+                :data="filteredData(itemCsv)"
+                border
+                style="width: 100%"
+                align="center"
+              >
+                <el-table-column prop="fault_detail" label="故障类型">
+                </el-table-column>
+                <el-table-column prop="count" sortable label="故障次数(次)">
+                </el-table-column>
+                <el-table-column
+                  prop="fault_time_sum"
+                  sortable
+                  label="故障时长(秒)"
+                >
+                </el-table-column>
+                <el-table-column align="right">
+                  <template slot="header" slot-scope="scope">
+                    <el-input
+                      v-model="search"
+                      size="mini"
+                      placeholder="输入故障类型关键字搜索"
+                    />
+                  </template>
+                </el-table-column>
+              </el-table>
+            </template>
+            <template v-for="itemCsv in fenFaultCsvData">
+              <el-table
+                :data="filteredFenData(itemCsv)"
+                border
+                style="width: 100%"
+                align="center"
+              >
+                <el-table-column prop="wind_turbine_name" label="风机名称">
+                </el-table-column>
+                <el-table-column prop="count" sortable label="故障次数(次)">
+                </el-table-column>
+                <el-table-column
+                  prop="fault_time"
+                  sortable
+                  label="故障时长(秒)"
+                >
+                </el-table-column>
+                <el-table-column align="right">
+                  <template slot="header" slot-scope="scope">
+                    <el-input
+                      v-model="searchFen"
+                      size="mini"
+                      placeholder="输入风机名称关键字搜索"
+                    />
+                  </template>
+                </el-table-column>
+              </el-table>
+            </template>
           </div>
         </el-col>
-
         <!-- 其他类型展示的 图表 ,只展示图表不必要展示表格 -->
-
         <template v-if="form.configAnalysis === 'power_curve'">
           <el-col :span="24">
             <div
@@ -599,6 +640,8 @@ export default {
   },
   data() {
     return {
+      search: "",
+      searchFen: "",
       tableData: [],
       noData: false,
       htmlLoading: false,
@@ -645,6 +688,10 @@ export default {
       graphFilesData: [],
       powerHtmlZongData: [],
       powerHtmlFenData: [],
+      zongFaultCsvHeader: [],
+      zongFaultCsvData: [],
+      fenFaultCsvHeader: [],
+      fenFaultCsvData: [],
     };
   },
   watch: {
@@ -656,6 +703,37 @@ export default {
       },
     },
   },
+  computed: {
+    // 根据搜索关键字过滤数据
+    filteredData() {
+      return (itemCsv) => {
+        // 如果有搜索关键词,则过滤数据
+        if (this.search) {
+          return itemCsv.data.filter((item) => {
+            return item.fault_detail
+              .toLowerCase()
+              .includes(this.search.toLowerCase());
+          });
+        }
+        // 没有搜索关键词时返回所有数据
+        return itemCsv.data;
+      };
+    },
+    filteredFenData() {
+      return (itemCsv) => {
+        // 如果有搜索关键词,则过滤数据
+        if (this.searchFen) {
+          return itemCsv.data.filter((item) => {
+            return item.wind_turbine_name
+              .toLowerCase()
+              .includes(this.searchFen.toLowerCase());
+          });
+        }
+        // 没有搜索关键词时返回所有数据
+        return itemCsv.data;
+      };
+    },
+  },
   created() {
     //获取分析 分析类型、机组编号 列表
     // this.getWindCodeList();
@@ -788,6 +866,15 @@ export default {
                 this.fetchCsvData("production_indicator", item.fileAddr);
               }
             });
+          } else if (this.form.configAnalysis === "fault") {
+            //总图处理
+            response.data[0].generalFiles.map((item) => {
+              if (item.fileAddr) {
+                this.productionIndicatorCsvHeader = [];
+                this.productionIndicatorCsvData = [];
+                this.fetchCsvData("fault", item.fileAddr);
+              }
+            });
           }
         }
 
@@ -978,6 +1065,24 @@ export default {
                       .filter((row) => Object.keys(row).length)
                       .slice(0, result.data.length - 1),
                   }); // 过滤空行
+                } else if (analysisType === "fault") {
+                  if (Object.keys(result.data[0]).includes("fault_detail")) {
+                    //总图故障统计展示
+                    this.zongFaultCsvHeader.push(Object.keys(result.data[0]));
+                    this.zongFaultCsvData.push({
+                      data: result.data
+                        .filter((row) => Object.keys(row).length)
+                        .slice(0, result.data.length - 1),
+                    });
+                  } else {
+                    //分机型故障统计处理
+                    this.fenFaultCsvHeader.push(Object.keys(result.data[0]));
+                    this.fenFaultCsvData.push({
+                      data: result.data
+                        .filter((row) => Object.keys(row).length)
+                        .slice(0, result.data.length - 1),
+                    });
+                  }
                 }
               },
               error: (error) => {

+ 0 - 1
src/views/performance/customAnalysis.vue

@@ -50,7 +50,6 @@
           </el-popover>
         </template>
       </el-tab-pane>
-
       <el-tab-pane name="chart" class="chartsTab">
         <span slot="label" class="iconFont">
           <el-tooltip

+ 2 - 1
src/views/performance/editAssets.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2024-05-27 09:26:31
- * @LastEditTime: 2024-09-30 16:05:33
+ * @LastEditTime: 2025-01-10 15:25:07
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/editAssets.vue
@@ -19,6 +19,7 @@
         ></el-col
       >
     </el-row>
+    <!-- <analysis-event :activeName="activeName"></analysis-event> -->
     <el-tabs v-model="activeName" @tab-click="handleClick">
       <el-tab-pane label="分析事件" name="first">
         <analysis-event :activeName="activeName"></analysis-event>

+ 2 - 5
src/views/system/menuMag/components/editDialog.vue

@@ -40,11 +40,8 @@
           placeholder="请输入菜单标识"
         ></el-input>
       </el-form-item>
-      <el-form-item
-        label="菜单图标"
-        prop="piconUrl"
-        v-if="activeName !== '3' && activeName !== '2'"
-      >
+      <el-form-item label="菜单图标" prop="piconUrl" v-if="activeName !== '3'">
+        <!-- v-if="activeName !== '3' && activeName !== '2'" -->
         <el-popover
           placement="bottom-start"
           width="460"

+ 31 - 4
src/views/system/menuMag/index.vue

@@ -57,7 +57,7 @@
         :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
         ref="table"
       >
-        <el-table-column prop="permissionName" label="菜单名称">
+        <el-table-column prop="permissionName" min-width="120" label="菜单名称">
         </el-table-column>
         <el-table-column
           prop="permissionType"
@@ -76,9 +76,31 @@
           </template>
         </el-table-column>
 
-        <el-table-column prop="permissionCode" label="权限标识" align="center">
+        <el-table-column
+          min-width="120"
+          prop="permissionCode"
+          label="权限标识"
+          align="center"
+        >
         </el-table-column>
-        <el-table-column prop="permissionUrl" label="路径" align="center">
+        <el-table-column
+          min-width="120"
+          prop="permissionUrl"
+          label="路径"
+          align="center"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="permissionShow"
+          label="是否显示"
+          align="center"
+          width="100"
+        >
+          <template slot-scope="scope">
+            <span>{{
+              scope.row.permissionShow === 1 ? "显示" : "不显示"
+            }}</span>
+          </template>
         </el-table-column>
         <el-table-column
           prop="permissionState"
@@ -90,7 +112,12 @@
             <span>{{ scope.row.permissionState === 1 ? "启用" : "停用" }}</span>
           </template>
         </el-table-column>
-        <el-table-column fixed="right" label="操作" align="center">
+        <el-table-column
+          min-width="120"
+          fixed="right"
+          label="操作"
+          align="center"
+        >
           <template slot-scope="scope">
             <el-button
               v-hasPermi="['system:menu:edit']"

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff