Biao 3 年 前
コミット
f86b1953bf
100 ファイル変更40583 行追加6658 行削除
  1. 3 2
      .env.development
  2. 3 2
      .env.production
  3. BIN
      public/static/img/_s-背景.png
  4. BIN
      public/static/img/矢量智能对象.png
  5. 20 9
      src/App.vue
  6. 13 0
      src/api/cockpit/boosterStation/index.js
  7. 46 5
      src/api/cockpit/matrix/index.js
  8. 8 31
      src/api/economic/index.js
  9. 102 0
      src/api/wisdomOverhaul/energy/index.js
  10. 39 0
      src/api/wisdomOverhaul/fault/index.js
  11. 21 0
      src/api/wisdomOverhaul/grade/index.js
  12. 201 0
      src/api/wisdomOverhaul/health/index.js
  13. 47 0
      src/api/wisdomOverhaul/lifecycle/index.js
  14. 13 0
      src/api/wisdomOverhaul/one/index.js
  15. 74 0
      src/api/wisdomOverhaul/reliability/index.js
  16. 44 0
      src/api/wisdomOverhaul/windResources/index.js
  17. 0 2
      src/assets/styles/el-override/el-card.less
  18. 4 0
      src/assets/styles/form.less
  19. 9 4
      src/assets/styles/theme/light/light-jsc.less
  20. 1 1
      src/components/arcgis/arcgis.vue
  21. 9 3
      src/components/chart/bar/list-bar-chart2.vue
  22. 1 0
      src/components/chart/bar/multiple-bar-chart.vue
  23. 1 1
      src/components/chart/combination/area-line-chart.vue
  24. 316 0
      src/components/chart/line/DayPowerChart.vue
  25. 3 4
      src/components/chart/line/double-line-chart.vue
  26. 1 0
      src/components/chart/line/marker-line-chart.vue
  27. 1 1
      src/components/chart/line/multiple-y-line-chart.vue
  28. 123 65
      src/components/chart/radar/radar-chart.vue
  29. 17 5
      src/components/coms/cards/percent-card-2.vue
  30. 23 6
      src/components/coms/collapse/collapse-list.vue
  31. 2 1
      src/components/coms/panel/panel.vue
  32. 6 0
      src/components/coms/table/group-table.vue
  33. 1 1
      src/components/coms/table/table-unpage.vue
  34. 43 19
      src/components/coms/wt-chooser/wt-chooser.vue
  35. 251 0
      src/components/dialog/index.vue
  36. 1 1
      src/components/other/cesium/static/index.vue
  37. 739 22
      src/components/other/healthReport/index.vue
  38. 10 0
      src/router/index.js
  39. 1 1
      src/store/index.js
  40. 10 17
      src/views/Agc/Agc.vue
  41. 73 23
      src/views/Agc/components/agc-panel.vue
  42. 123 144
      src/views/Decision/Decision1Mx.vue
  43. 47 94
      src/views/Decision/Decision2.vue
  44. 2 2
      src/views/Decision/Decision2Cjdb.vue
  45. 2 2
      src/views/Decision/Decision2Cndb.vue
  46. 19 20
      src/views/Decision/Decision2Xldb.vue
  47. 1 1
      src/views/Decision/Decision2Xmdb.vue
  48. 2 2
      src/views/Decision/Decision3.vue
  49. 63 241
      src/views/Decision/Decision3Db.vue
  50. 211 67
      src/views/HealthControl/Health10.vue
  51. 125 42
      src/views/HealthControl/Health2.vue
  52. 50 41
      src/views/HealthControl/Health5.vue
  53. 199 65
      src/views/HealthControl/Health6.vue
  54. 22 17
      src/views/HealthControl/Health8.vue
  55. 28 42
      src/views/HealthControl/HealthTab1.vue
  56. 46 34
      src/views/HealthControl/HealthTab2.vue
  57. 172 85
      src/views/HealthControl/HealthTab3.vue
  58. 121 72
      src/views/HealthControl/HealthTab4.vue
  59. 3 2
      src/views/HealthControl/assess/assessindex.vue
  60. 74 35
      src/views/HealthControl/healthLineChart.vue
  61. 231 65
      src/views/HealthControl/healthLineChart2.vue
  62. 118 0
      src/views/HealthControl/zhpj/healthpieChart.vue
  63. 94 312
      src/views/Home/Home.vue
  64. 1853 0
      src/views/Home/Home1.vue
  65. 6 6
      src/views/Home/components/coulometric-analysis.vue
  66. 67 33
      src/views/Home/components/map.vue
  67. 166 215
      src/views/Home/components/map/CL_FDC.vue
  68. 34 318
      src/views/Home/components/map/DX_FDC.vue
  69. 25 22
      src/views/Home/components/map/KB_FDC.vue
  70. 932 0
      src/views/Home/components/map/SX.vue
  71. 166 452
      src/views/Home/components/map/SY_FDC.vue
  72. 23 11
      src/views/Home/components/map/svg-map-nx.vue
  73. 51 47
      src/views/Home/components/power-plan.vue
  74. 0 55
      src/views/Home/components/power-review.vue
  75. 2 2
      src/views/Home/components/weather.vue
  76. 4 2
      src/views/Knowledge/Knowledge1.vue
  77. 4 0
      src/views/Knowledge/knowinfo.vue
  78. 566 180
      src/views/LightMatrix1/LightMatrix1.vue
  79. 775 100
      src/views/LightMatrix2/LightMatrix2.vue
  80. 940 103
      src/views/LightMatrix3/LightMatrix3.vue
  81. 670 651
      src/views/NewPages/alarm-center-1.vue
  82. 19 23
      src/views/NewPages/alarm-center-2.vue
  83. 154 95
      src/views/NewPages/alarm-center-gzfx.vue
  84. 173 95
      src/views/NewPages/alarm-center-yjfx.vue
  85. 1 13
      src/views/NewPages/daily.vue
  86. 9 233
      src/views/NewPages/dj1.vue
  87. 24 8
      src/views/NewPages/form.vue
  88. 10 7
      src/views/NewPages/history-search.vue
  89. 35 272
      src/views/NewPages/power-benchmarking.vue
  90. 26 26
      src/views/NewPages/station.vue
  91. 8 7
      src/views/NewPages/statisticAnalysis.vue
  92. 5 1
      src/views/SandTable/SandTable.vue
  93. 9 7
      src/views/Status/Status.vue
  94. 63 59
      src/views/Status/components/status-panel.vue
  95. 561 2004
      src/views/WindSite/components/boosterstation/BoosterStation.js
  96. 7251 0
      src/views/WindSite/components/boosterstation/cl.vue
  97. 4858 0
      src/views/WindSite/components/boosterstation/dx.vue
  98. 16338 0
      src/views/WindSite/components/boosterstation/kb.vue
  99. 722 0
      src/views/WindSite/components/boosterstation/previewPicture.vue
  100. 0 0
      src/views/WindSite/pages/BoosterStation.vue

+ 3 - 2
.env.development

@@ -1,2 +1,3 @@
-VUE_APP_API=http://10.83.68.97:8020
-VUE_APP_Matrix=http://10.83.68.97:8170
+VUE_APP_API=http://10.83.68.96:8020
+VUE_APP_Matrix=http://10.83.68.96:8170
+VUE_APP_ADAPTERURL=http://10.83.68.205:8011

+ 3 - 2
.env.production

@@ -1,2 +1,3 @@
-VUE_APP_API=http://10.83.68.97:8020
-VUE_APP_Matrix=http://10.83.68.97:8170
+VUE_APP_API=http://10.83.68.96:8020
+VUE_APP_Matrix=http://10.83.68.96:8170
+VUE_APP_ADAPTERURL=http://10.83.68.205:8011

BIN
public/static/img/_s-背景.png


BIN
public/static/img/矢量智能对象.png


+ 20 - 9
src/App.vue

@@ -253,7 +253,7 @@ l16.229-16.229l16.229,16.229l42.867-42.867C115.034,45.228,109.133,42.189,102.956
         :collapse="true"
         text-color="#ffffff"
         active-text-color="#6262a2"
-        background-color="#36348e"
+        background-color="#3d67a2"
         @select="selectMenu"
         v-if="hideMenus === '0'"
       >
@@ -288,7 +288,7 @@ l16.229-16.229l16.229,16.229l42.867-42.867C115.034,45.228,109.133,42.189,102.956
       class="main-body"
       :style="
         $store.state.themeName === 'light' && hideMenus === '0'
-          ? 'margin-left: 66px; max-width  : calc(100vw - 54px - 12px);'
+          ? 'margin-left: 52px; max-width  : calc(100vw - 54px - 12px);'
           : ''
       "
     >
@@ -314,9 +314,8 @@ import Menu from "@/views/layout/Menu.vue";
 import Header from "@/views/layout/Header.vue";
 import LoginPage from "./views/layout/login-page.vue";
 import sisView from "./views/sisView/index.vue";
-
 import SvgIcon from "@com/coms/icon/svg-icon.vue";
-
+//  import MessageBridge from "@tools/MessageBridge";
 import $ from "jquery";
 export default {
   components: {
@@ -348,7 +347,9 @@ export default {
       "class",
       themeName === "dark" || themeName === "light" ? themeName : "dark"
     );
-
+    // let mb = MessageBridge.getInstance();
+    // let windturbine = [{ key: "/topic/windturbine", action: this.windturbineMessage }];
+    // mb.register(windturbine);
     // that.$nextTick(() => {
     //   that.API.requestData({
     //     isMust: false, // 请求是否携带 token ,默认为 true ,可缺省
@@ -379,6 +380,9 @@ export default {
   },
 
   methods: {
+    windturbineMessage(msg) {
+      console.log(msg);
+    },
     // 切换子系统事件
     HeaderMenuClick(data) {
       this.root = data.id;
@@ -400,7 +404,7 @@ export default {
       this.menuIndex = menuIndex;
     },
     clearBackground() {
-      return
+      return;
       let body = $("body.light");
       if (!body) body = $("body.dark");
       body.css({
@@ -602,10 +606,17 @@ body {
 .el-table__body tr.hover-row > td.el-table__cell {
   background-color: rgba(2, 2, 2) !important;
 }
-#appBody.light .el-table th.el-table__cell > .cell{
-  height: 8.2vh!important;
+#appBody.light .el-table th.el-table__cell > .cell {
+  height: 8.2vh !important;
 }
-.power-benchmarking-page .top .top-left .table.el-table thead tr:last-child th .cell{
+.power-benchmarking-page
+  .top
+  .top-left
+  .table.el-table
+  thead
+  tr:last-child
+  th
+  .cell {
   height: 116px !important;
 }
 </style>

+ 13 - 0
src/api/cockpit/boosterStation/index.js

@@ -0,0 +1,13 @@
+import request from "../../../tools/request";
+//数据刷新
+const refreshData = (keys) => {
+    return request({
+        baseURL: process.env.VUE_APP_ADAPTERURL,
+        url: `/ts/latest?keys=${keys}`,
+        method: "get",
+    });
+};
+
+export default {
+    refreshData,
+}

+ 46 - 5
src/api/cockpit/matrix/index.js

@@ -54,6 +54,13 @@ const matrixPush = (showLoading) => {
         method: "get",
     });
 };
+// const matrixPush = (showLoading) => {
+//     return request({
+//         showLoading,
+//         url: `/consumer/matrix/matrixDatas`,
+//         method: "get",
+//     });
+// };
 //全风场简单矩阵
 const findSimpleMatrixAll = (data) => {
     return request({
@@ -122,8 +129,9 @@ const windfarmAllAjax = () => {
     });
 };
 //风机信息列表
-const findWtInfoList = (data) => {
+const findWtInfoList = (showLoading, data) => {
     return request({
+        showLoading,
         baseURL: process.env.VUE_APP_Matrix,
         url: `monitorwt/findWtInfoList?wpId=${data.wpId}`,
         method: "get",
@@ -166,13 +174,42 @@ const matrixMatrixByWpIdPush = (data) => {
 const monitorFindGeneralAppearance = (data) => {
     return request({
         baseURL: process.env.VUE_APP_Matrix,
-        url: `monitor/findGeneralAppearance?wpId=${data.wpId}`, 
+        url: `monitor/findGeneralAppearance?wpId=${data.wpId}`,
+        method: "get",
+    });
+};
+//光伏所有矩阵信息
+const findPVSimpleMatrixAll = () => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `matrix/findPVSimpleMatrixAll`,
+        method: "get",
+    });
+};
+//逆变器监视
+const findInverterInfo = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `monitorinverter/findInverterInfo?wtId=${data.wtId}`,
+        method: "get",
+    });
+};
+//逆变器开网频率
+const findInverterPowerLine = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `monitorinverter/findInverterPowerLine?wtId=${data.wtId}`,
+        method: "get",
+    });
+};
+//光伏矩阵
+const matrixDetialGfPush = () => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `matrix/matrixDetialGfPush`,
         method: "get",
     });
 };
-
-
-
 
 export default {
     findBasicDataInfo,
@@ -196,4 +233,8 @@ export default {
     genresetFindPowerInfo,
     matrixMatrixByWpIdPush,
     monitorFindGeneralAppearance,
+    findPVSimpleMatrixAll,
+    findInverterInfo,
+    findInverterPowerLine,
+    matrixDetialGfPush,
 }

+ 8 - 31
src/api/economic/index.js

@@ -6,6 +6,13 @@ const benchmarking = (data) => {
         method: "get",
     });
 };
+//风机绩效榜
+const benchmarkingmx = (data) => {
+    return request({
+        url: `/consumer/benchmarking/fjjxbmx?wpids=${data.wpids}&projectids=${data.projectids}&lineids=${data.lineids}&beginDate=${data.beginDate}&endDate=${data.endDate}&type=${data.type}&target=${data.target}&sort=${data.sort}`,
+        method: "get",
+    });
+};
 const benchmarkingLineList = (data) => {
     return request({
         url: `/consumer/benchmarking/lineList?projects=${data.projects}`,
@@ -45,12 +52,6 @@ const targetdataJnjpkpi = (data) => {
     });
 };
 //风机绩效榜明细
-const benchmarkingWplist1 = (data) => {
-    return request({
-        url: `/consumer/benchmarking/wplist`,
-        method: "get",
-    });
-};
 
 // const benchmarkingLineList1 = (data) => {
 //     return request({
@@ -65,12 +66,6 @@ const benchmarkingDetails = (data) => {
         method: "get",
     });
 };
-const benchmarkingWplist2 = () => {
-    return request({
-        url: `/consumer/benchmarking/wplist`,
-        method: "get",
-    });
-}
 const benchmarkingWxssl = (data) => {
     return request({
         url: `/consumer/benchmarking/wxssl?wpids=${data.wpids}&projectids=${data.projectids}&lineids=${data.lineids}&beginDate=${data.beginDate}&endDate=${data.endDate}&target=${data.target}&sort=${data.sort}`,
@@ -582,34 +577,18 @@ const paramComparisonGeneratingCurve = (data) => {
 
 };
 
-//等级评估--获取表格数据
-const levelAssessmentList = (data) => {
-    return request({
-        url: `/consumer/levelAssessment/list?recorddate=${data.recorddate}&type=${data.type}&wpid=${data.wpId}&orderby=${data.orderby}&isAsc=${data.isAsc}`,
-        method: "get",
-    });
-};
-//等级评估--对比
-const levelAssessmentComparison = (data) => {
-    return request({
-        url: `/consumer/levelAssessment/comparison?id1=${data.gaid1}&id2=${data.gaid2}`,
-        method: "get",
-    });
-};
 
 
 export default {
     benchmarking,
+    benchmarkingmx,
     benchmarkingLineList,
     benchmarkingWplist,
     benchmarkingProjectList,
     benchmarkingDbmainbottom,
     benchmarkingDbmaintop,
     targetdataJnjpkpi,
-    benchmarkingWplist1,
-    // benchmarkingLineList1,
     benchmarkingDetails,
-    benchmarkingWplist2,
     benchmarkingWxssl,
     benchmarkingCndb,
     benchmarkingCjdb,
@@ -677,6 +656,4 @@ export default {
     paramComparisonEquipmentStructure,
     paramComparisonEquipmentParams,
     paramComparisonGeneratingCurve,
-    levelAssessmentList,
-    levelAssessmentComparison
 }

+ 102 - 0
src/api/wisdomOverhaul/energy/index.js

@@ -0,0 +1,102 @@
+import request from "../../../tools/request";
+
+
+const yawGetPassRate = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `yaw/getPassRate?wtId=${data.wtId}&beginDate=${data.beginDate}&endDate=${data.endDate}&type=${data.type}`,
+        method: "get",
+    });
+};
+const yawGetTotalRanges = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `yaw/getTotalRanges?wtId=${data.wtId}&beginDate=${data.beginDate}&endDate=${data.endDate}&type=${data.type}`,
+        method: "get",
+    });
+};
+const yawGetRanges = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `yaw/getRanges?wtId=${data.wtId}&beginDate=${data.beginDate}&endDate=${data.endDate}&type=${data.type}&value=${data.value}`,
+        method: "get",
+    });
+};
+const scatterScatterWtAjax = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `scatter/scatterWtAjax?wtId=${data.wtId}&year=${data.year}&month=${data.month}`,
+        method: "get",
+    });
+};
+const powersaturationPowersaturationamonutlist = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `powersaturation/powersaturationamonutlist?wtId=${data.wtId}&pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
+        method: "post",
+    });
+};
+const powersaturationPowersaturationamonutchart = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `powersaturation/powersaturationamonutchart?wtId=${data.wtId}`,
+        method: "get",
+    });
+};
+const powersaturationPowersaturationmonthlist = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `powersaturation/powersaturationmonthlist?wtId=${data.wtId}&year=${data.year}&month=${data.month}&pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
+        method: "post",
+    });
+};
+const powersaturationPowersaturationmonthchart = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `powersaturation/powersaturationmonthchart?wtId=${data.wtId}&year=${data.year}&month=${data.month}`,
+        method: "get",
+    });
+};
+const powersaturationPowersaturationlist = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `powersaturation/powersaturationlist?wtId=${data.wtId}&recorddate=${data.recorddate}&pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
+        method: "post",
+    });
+};
+const powersaturationPowersaturationchart = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `powersaturation/powersaturationchart?wtId=${data.wtId}&recorddate=${data.recorddate}`,
+        method: "get",
+    });
+};
+const leaderboardCurvefittingmainList = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `leaderboard/curvefittingmainList?isAsc=${data.isAsc}&wpId=${data.wpId}&recorddate=${data.recorddate}&pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
+        method: "post",
+    });
+};
+
+
+
+
+
+export default {
+    yawGetPassRate,
+    yawGetTotalRanges,
+    yawGetRanges,
+    scatterScatterWtAjax,
+    powersaturationPowersaturationamonutlist,
+    powersaturationPowersaturationamonutchart,
+    powersaturationPowersaturationmonthlist,
+    powersaturationPowersaturationmonthchart,
+    powersaturationPowersaturationlist,
+    powersaturationPowersaturationchart,
+    leaderboardCurvefittingmainList,
+
+
+
+
+}

+ 39 - 0
src/api/wisdomOverhaul/fault/index.js

@@ -0,0 +1,39 @@
+import request from "../../../tools/request";
+
+//等级评估--获取表格数据
+const powercompareProjectAjax = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `powercompare/projectAjax?wpIds=${data.wpIds}`,
+        method: "get",
+    });
+};
+const stopanalysisStopAnalysisList = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `health/stopAnalysisList?wpId=${data.wpId}&isAsc=${data.isAsc}&modelId=${data.modelId}&typeId=${data.typeId}`,
+        method: "get",
+    });
+};
+const stopanalysisStopAnalysisTree = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `health/stopAnalysisTree?mainId=${data.mainId}&wtId=${data.wtId}&values=${data.values}`,
+        method: "get",
+    });
+};  
+const eventGetShutdownevent = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/fault/getShutdownevent?pageNum=${data.tablepar.pageNum}&pageSize=${data.tablepar.pageSize}&beginDate=${data.beginDate}&endDate=${data.endDate}&wpId=${data.wpId}&type=${data.type}&wtId=${data.wtId}`,
+        method: "post",
+    });
+};
+
+
+export default {
+    powercompareProjectAjax,
+    stopanalysisStopAnalysisList,
+    stopanalysisStopAnalysisTree,
+    eventGetShutdownevent,
+}

+ 21 - 0
src/api/wisdomOverhaul/grade/index.js

@@ -0,0 +1,21 @@
+import request from "../../../tools/request";
+
+//等级评估--获取表格数据
+const levelAssessmentList = (data) => {
+    return request({
+        url: `/consumer/levelAssessment/list?recorddate=${data.recorddate}&type=${data.type}&wpid=${data.wpId}&orderby=${data.orderby}&isAsc=${data.isAsc}`,
+        method: "get",
+    });
+};
+//等级评估--对比
+const levelAssessmentComparison = (data) => {
+    return request({
+        url: `/consumer/levelAssessment/comparison?id1=${data.gaid1}&id2=${data.gaid2}`,
+        method: "get",
+    });
+};
+
+export default {
+    levelAssessmentList,
+    levelAssessmentComparison
+}

+ 201 - 0
src/api/wisdomOverhaul/health/index.js

@@ -0,0 +1,201 @@
+import request from "../../../tools/request";
+const requestRecommen = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `${data.url}`,
+        method: "get",
+    });
+};
+const recommen = (url, data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `${url}?rid=${data.rid}`,
+        method: "post",
+        data: data
+    });
+};
+const findAllChartjz = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `recommen/findAllChartjz?wpId=${data.wpId}&type=${data.type}`,
+        method: "get",
+    });
+};
+const recommenRecommenConfirmedList = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `recommen/recommenConfirmedList`,
+        method: "get",
+    });
+};
+const powercompareWindturbineAjax = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `powercompare/windturbineAjax?wpId=${data.wpId}`,
+        method: "get",
+    });
+};
+const recommenUnfinishedList = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `recommen/unfinishedList?wpId=${data.wpId}&wtId=${data.wtId}&beginDate=${data.beginDate}&endDate=${data.endDate}`,
+        method: "get",
+    });
+};
+const recommenFindMainTrack = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `recommen/findMainTrack?rid=${data.rid}`,
+        method: "get",
+    });
+};
+const recommenFinishedList = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `recommen/unfinishedList?wpId=${data.wpId}&wtId=${data.wtId}&beginDate=${data.beginDate}&endDate=${data.endDate}`,
+        method: "get",
+    });
+};
+const healthmainFindAllMap = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `health/findAllMap`,
+        method: "get",
+    });
+};
+const healthoperationCountWpwarn = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/health/countWpwarn?type=${data.type}`,
+        method: "get",
+    });
+};
+const healthoperationCountStop = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/health/countStop?type=${data.type}`,
+        method: "get",
+    });
+};
+const healthoperationCountWpOrProStatus = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/health/countWpOrProStatus?type=${data.type}`,
+        method: "get",
+    });
+};
+const healthoperationFindWpOrProStatusForHistory = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/health/findWpOrProStatusForHistory?type=${data.type}&status=${data.status}`,
+        method: "get",
+    });
+};
+const healthmainFindHealthMatrixMap = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/health/findHealthMatrixMap`,
+        method: "get",
+    });
+};
+const powercompareWindfarmAjax = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `powercompare/windfarmAjax`,
+        method: "get",
+    });
+};
+const wtHealthListWindTurbineHealthList = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/health/windTurbineHealthList?wpId=${data.wpId}`,
+        method: "get",
+    });
+};
+const healthsubHsFjValueIndex = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `health/hsFjValueIndex?wtId=${data.wtId}`,
+        method: "get",
+    });
+};
+const healthsubGadaytop5 = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `health/gadaytop5?wtId=${data.wtId}`,
+        method: "get",
+    });
+};
+const healthsubQueryStopTop10 = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `health/queryStopTop10?wtId=${data.wtId}`,
+        method: "get",
+    });
+};
+const healthsubGetWtMttrandMtbfByBj = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `health/getWtMttrandMtbfByBj?wtId=${data.wtId}`,
+        method: "get",
+    });
+};
+const healthsubFindPowerChar = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `health/findPowerChar?wtId=${data.wtId}`,
+        method: "get",
+    });
+};
+const healthsubGetWeatherRealDay5Info = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `health/getWeatherRealDay5Info?wpId=${data.wpId}`,
+        method: "get",
+    });
+};
+const healthsubFindWtHisValueForBj = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `health/findWtHisValueForBj?wtId=${data.wtId}`,
+        method: "get",
+    });
+};
+const healthreportHealthReport = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `healthreport/healthReport?wtid=${data.wtid}&date=${data.date}`,
+        method: "get",
+    });
+};
+
+
+
+
+
+export default {
+    requestRecommen,
+    recommen,
+    findAllChartjz,
+    recommenRecommenConfirmedList,
+    powercompareWindturbineAjax,
+    recommenUnfinishedList,
+    recommenFindMainTrack,
+    recommenFinishedList,
+    healthmainFindAllMap,
+    healthoperationCountWpwarn,
+    healthoperationCountStop,
+    healthoperationCountWpOrProStatus,
+    healthoperationFindWpOrProStatusForHistory,
+    healthmainFindHealthMatrixMap,
+    powercompareWindfarmAjax,
+    wtHealthListWindTurbineHealthList,
+    healthsubHsFjValueIndex,
+    healthsubGadaytop5,
+    healthsubQueryStopTop10,
+    healthsubGetWtMttrandMtbfByBj,
+    healthsubFindPowerChar,
+    healthsubGetWeatherRealDay5Info,
+    healthsubFindWtHisValueForBj,
+    healthreportHealthReport,
+}

+ 47 - 0
src/api/wisdomOverhaul/lifecycle/index.js

@@ -0,0 +1,47 @@
+import request from "../../../tools/request";
+
+
+const companiesList = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/reliability/companies`,
+        method: "get",
+    });
+};
+const warehouseList = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/health/warehouse`,
+        method: "get",
+    });
+};
+const polineList = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `poline/list?vendor=${data.vendor}&ponum=${data.ponum}&warehouse=${data.warehouse}&starttime=${data.starttime}&endtime=${data.endtime}&pagenum=${data.pagenum}&pagesize=${data.pagesize}`,
+        method: "get",
+    });
+};
+const windturbineList = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/reliability/windturbine?wtnum=${data.wtid}`,
+        method: "get",
+    });
+};
+const equoperationrecordList = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/reliability/equoperationrecordList?wtid=${data.wtid}&starttime=${data.starttime}&endtime=${data.endtime}&type=${data.type}&pagenum=${data.pagenum}&pagesize=${data.pagesize}`,
+        method: "post",
+    });
+};
+
+export default {
+    companiesList,
+    warehouseList,
+    polineList,
+    windturbineList,
+    equoperationrecordList
+
+}

+ 13 - 0
src/api/wisdomOverhaul/one/index.js

@@ -0,0 +1,13 @@
+import request from "../../../tools/request";
+
+const analysisDetail = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/analysis/detail?station=${data.station}&startTs=${data.startTs}&endTs=${data.endTs}&interval=${data.interval}&wtId=${data.wtId}&name=${data.name}`,
+        method: "get",
+    });
+};
+
+export default {
+    analysisDetail
+}

+ 74 - 0
src/api/wisdomOverhaul/reliability/index.js

@@ -0,0 +1,74 @@
+import request from "../../../tools/request";
+
+const analysisDetail = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/analysis/detail?station=${data.station}&startTs=${data.startTs}&endTs=${data.endTs}&interval=${data.interval}&wtId=${data.wtId}&name=${data.name}`,
+        method: "get",
+    });
+};
+const countQuery = (showLoading,data) => {
+    return request({
+        showLoading,
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `alarm/findEarlyWarningAnalysis?stationid=${data.stationid}&startdate=${data.startdate}&enddate=${data.enddate}`,
+        method: "get",
+    });
+};
+// 预警分析
+const radarGzfx = (showLoading,data) => {
+    return request({
+        showLoading,
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `radar/gzfx?stId=${data.stId}&Date=${data.Date}`,
+        method: "get",
+    });
+};
+const treeType = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/alarm/treeType`,
+        method: "get",
+    });
+};
+const shutdownList = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `alarm/findRecentFault?stId=${data.stId}&endDate=${data.endDate}&startDate=${data.startDate}`,
+        method: "get",
+    });
+};
+const earlyWarn = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/reliability/earlyWarn?wpid=${data.wpid}&date=${data.date}`,
+        method: "get",
+    });
+};
+const failurestatistics = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/reliability/failurestatistics?wpid=${data.wpid}&date=${data.date}`,
+        method: "get",
+    });
+};
+
+// 雷达图
+const radarYjfx = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `/health/radar/yjfx?stationid=${data.stationid}&date=${data.date}`,
+        method: "get",
+    });
+};
+
+export default {
+    analysisDetail,
+    countQuery,
+    treeType,
+    shutdownList,
+    earlyWarn,
+    failurestatistics,
+    radarGzfx,
+    radarYjfx
+}

+ 44 - 0
src/api/wisdomOverhaul/windResources/index.js

@@ -0,0 +1,44 @@
+import request from "../../../tools/request";
+const scatterAjax = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `scatter/scatterAjax?wpId=${data.wpId}&pjId=${data.pjId}&lnId=${data.lnId}&year=${data.year}&wpId=${data.month}&month=${data.month}`,
+        method: "get",
+    });
+};
+const projectAjax = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `powercompare/projectAjax?wpIds=${data.wpIds}`,
+        method: "get",
+    });
+};
+const lineWpIdAjax = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `powercompare/lineWpIdAjax?wpId=${data.wpId}`,
+        method: "get",
+    });
+};
+const getWinddirection = (data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `winddirection/getWinddirection?wpId=${data.wpId}&recorddate=${data.recorddate}`,
+        method: "get",
+    });
+};
+const goodness = (url,data) => {
+    return request({
+        baseURL: process.env.VUE_APP_Matrix,
+        url: `${url}?wpId=${data.wpId}&recorddate=${data.recorddate}`,
+        method: "get",
+    });
+};
+
+export default {
+    scatterAjax,
+    projectAjax,
+    lineWpIdAjax,
+    getWinddirection,
+    goodness,
+}

+ 0 - 2
src/assets/styles/el-override/el-card.less

@@ -2,8 +2,6 @@
   .el-card {
     background: transparent;
     border-color: fade(@gray, 50);
-    border-radius: 0;
-
     .el-card__header {
       color: @gray-l;
       background: fade(@gray, 20);

+ 4 - 0
src/assets/styles/form.less

@@ -81,6 +81,10 @@
       flex: 0 0 auto;
       margin-left: 50px;
     }
+    .query-actions1 {
+      flex: 0 0 auto;
+     
+    }
   }
 
   input {

+ 9 - 4
src/assets/styles/theme/light/light-jsc.less

@@ -314,7 +314,7 @@
     }
 
     .lightMenu.show {
-        width     : 54px;
+        width     : 46px;
         transition: @transition;
     }
 
@@ -360,15 +360,20 @@
     }
 
     .lightMenu .el-sub-menu__title {
-        text-align    : center;
-        vertical-align: middle;
-        padding       : 0 20px;
+            display: flex;
+            justify-content: center;
         transition    : @transition;
     }
+    .lightMenu .el-sub-menu__title:hover{
+        background-color: rgb(28 67 122)!important;
+        transition: 0.7s!important;
+        border-radius: 0;
+    }
 
     .lightMenu .el-sub-menu__title i {
         color     : #fff;
         transition: @transition;
+        font-size: 18px;
     }
 	
 	.el-popper.is-light.is-pure .el-menu--popup {

+ 1 - 1
src/components/arcgis/arcgis.vue

@@ -344,7 +344,7 @@
                     attributes: {},
                     popupTemplate: null
                 };
-                console.log(item)
+            
                 let graphic = new Graphic(item);
                 img_graphics.push(graphic);
                 img_graphicsLayer.add(graphic);

+ 9 - 3
src/components/chart/bar/list-bar-chart2.vue

@@ -68,6 +68,9 @@ export default {
       firstAnimation: true,
     };
   },
+  created() {
+   
+  },
   computed: {
     datas() {
       return this.list.map((t) => {
@@ -164,7 +167,8 @@ export default {
                   return param.data.name;
                 },
                 textStyle: {
-                  color: this.$store.state.themeName === "dark" ? "#7a8385" : "#000",
+                  color:
+                    this.$store.state.themeName === "dark" ? "#7a8385" : "#000",
                   fontSize: 12,
                 },
               },
@@ -199,7 +203,8 @@ export default {
             type: "pictorialBar",
             itemStyle: {
               normal: {
-                color: this.$store.state.themeName === "dark" ? "#20314f" : "#000",
+                color:
+                  this.$store.state.themeName === "dark" ? "#20314f" : "#000",
               },
             },
             animation: this.firstAnimation,
@@ -234,7 +239,8 @@ export default {
                 },
                 rich: {
                   f: {
-                    color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
+                    color:
+                      this.$store.state.themeName === "dark" ? "#fff" : "#000",
                     fontSize: 14,
                     lineHeight: 20,
                     fontFamily: "Bicubik",

+ 1 - 0
src/components/chart/bar/multiple-bar-chart.vue

@@ -364,6 +364,7 @@ export default {
     },
   },
   created() {
+ 
     this.$nextTick(() => {
       this.id = "pie-chart-" + util.newGUID();
     });

+ 1 - 1
src/components/chart/combination/area-line-chart.vue

@@ -292,7 +292,7 @@ export default {
       );
     },
     initChart () {
-      console.log("units:",this.units)
+    
       let that = this;
       let chart = echarts.init(this.$el);
 

+ 316 - 0
src/components/chart/line/DayPowerChart.vue

@@ -0,0 +1,316 @@
+<template>
+  <div class="chart" :id="id"></div>
+</template>
+
+<script>
+import util from "@/helper/util.js";
+import partten from "@/helper/partten.js";
+import * as echarts from "echarts";
+
+export default {
+  name: "double-line-chart",
+  componentName: "double-line-chart",
+  props: {
+    width: {
+      type: String,
+      default: "100%",
+    },
+    height: {
+      type: String,
+      default: "13.889vh",
+    },
+    // 传入数据
+    list: {
+      type: Array,
+      default: () => [
+        {
+          title: "绿线",
+          smooth: true,
+          value: [
+            {
+              text: "",
+              value: 0,
+            },
+            {
+              text: "0:00",
+              value: 20,
+            },
+            {
+              text: "10:00",
+              value: 1,
+            },
+            {
+              text: "11:00",
+              value: 40,
+            },
+            {
+              text: "12:00",
+              value: 10,
+            },
+            {
+              text: "13:00",
+              value: 15,
+            },
+            {
+              text: "14:00",
+              value: 30,
+            },
+            {
+              text: "15:00",
+              value: 40,
+            },
+            {
+              text: "",
+              value: 10,
+            },
+          ],
+        },
+        {
+          title: "黄线",
+          smooth: true,
+          value: [
+            {
+              text: "",
+              value: 0,
+            },
+            {
+              text: "0:00",
+              value: 40,
+            },
+            {
+              text: "10:00",
+              value: 20,
+            },
+            {
+              text: "11:00",
+              value: 20,
+            },
+            {
+              text: "12:00",
+              value: 10,
+            },
+            {
+              text: "13:00",
+              value: 40,
+            },
+            {
+              text: "14:00",
+              value: 50,
+            },
+            {
+              text: "15:00",
+              value: 40,
+            },
+            {
+              text: "",
+              value: 10,
+            },
+          ],
+        },
+      ],
+    },
+    // 单位
+    unit: {
+      type: String,
+      default: "",
+    },
+    showLegend: {
+      type: Boolean,
+      default: false,
+    },
+  },
+  data() {
+    return {
+      id: "",
+      chart: null,
+      color: ["#05bb4c", "#f8de5b", "#4b55ae", "#fa8c16", "#1DA0D7", "#DD5044"],
+      newlist: null,
+    };
+  },
+  watch: {
+    list: {
+      handler(newValue, oldValue) {
+        this.newlist = newValue;
+        this.$nextTick(() => {
+          this.initChart();
+        });
+      },
+      deep: true,
+    },
+    "$store.state.themeName"() {
+      this.initChart();
+    },
+  },
+  computed: {
+    colorValue() {
+      return partten.getColor(this.color);
+    },
+    datas() {
+      return this.newlist.map((t) => {
+        return t.value;
+      });
+    },
+    legend() {
+      if (this.newlist) {
+        return this.newlist.map((t) => {
+          return t.title;
+        });
+      }
+    },
+    xdata() {
+      return this.newlist[0]?.value.map((t) => {
+        return t.speed;
+      });
+    },
+    series() {
+      let result = [];
+      this.newlist.forEach((value, index) => {
+        result.push({
+          name: value.name,
+          type: "line",
+          // smooth: value.smooth,
+          showSymbol: false,
+          zlevel: index,
+          lineStyle: {
+            normal: {
+              color: this.color[index],
+              width: 1,
+            },
+          },
+          yAxisIndex: value.yAxisIndex ||0,
+          data: value.value.map((t) => {
+            return t.actualpower;
+          }),
+        });
+      });
+
+      return result;
+    },
+    yAxis() {
+      let result = [];
+      result.push({
+        type: "value",
+        name: this.unit,
+        axisLabel: {
+          formatter: "{value}",
+          fontSize: util.vh(14),
+        },
+        boundaryGap: false,
+        //分格线
+        splitLine: {
+          show: false,
+        },
+      });
+      return result;
+    },
+  },
+  methods: {
+    resize() {},
+    initChart() {
+      const chart = echarts.init(this.$el);
+
+      let option = {
+        color: this.color,
+        tooltip: {
+          trigger: "axis",
+          backgroundColor:
+            this.$store.state.themeName === "dark"
+              ? "rgba(0,0,0,0.4)"
+              : "rgba(255,255,255,0.4)",
+          borderColor:
+            this.$store.state.themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
+          textStyle: {
+            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
+            fontSize: util.vh(16),
+          },
+        },
+        legend: {
+          show: this.showLegend,
+          data: this.legend,
+          right: 56,
+          icon: "circle",
+          itemWidth: 6,
+          inactiveColor:
+            this.$store.state.themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
+          textStyle: {
+            color:
+              this.$store.state.themeName === "dark"
+                ? partten.getColor("grayl")
+                : "#000",
+            fontSize: 12,
+          },
+        },
+        grid: {
+          top: 16,
+          left: 40,
+          right: 15,
+          bottom: 24,
+        },
+        xAxis: [
+          {
+            type: "category",
+            boundaryGap: false,
+            axisLabel: {
+              formatter: "{value}",
+              textStyle: {
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? partten.getColor("gray")
+                    : "#000",
+                fontSize: util.vh(10),
+              },
+            },
+            data: this.xdata,
+          },
+        ],
+        yAxis: this.yAxis,
+        series: this.series,
+      };
+
+      chart.clear();
+      chart.setOption(option);
+
+      this.resize = function () {
+        chart.resize();
+      };
+
+      window.addEventListener("resize", this.resize);
+    },
+  },
+  created() {
+    this.$nextTick(() => {
+      this.id = "pie-chart-" + util.newGUID();
+    });
+    this.newlist = this.list;
+    console.warn(this.list);
+    console.warn(this.newlist);
+  },
+  mounted() {
+    this.$nextTick(() => {
+      this.$el.style.width = this.width;
+      this.$el.style.height = this.height;
+      this.initChart();
+    });
+  },
+  updated() {
+    this.$nextTick(() => {
+      this.initChart();
+    });
+  },
+  unmounted() {
+    window.removeEventListener("resize", this.resize);
+  },
+};
+</script>
+
+<style lang="less">
+.chart {
+  width: 100%;
+  height: 100%;
+  display: inline-block;
+}
+</style>

+ 3 - 4
src/components/chart/line/double-line-chart.vue

@@ -130,7 +130,6 @@ export default {
   watch: {
     list: {
       handler(newValue, oldValue) {
-        console.warn(newValue);
         this.newlist = newValue;
         this.$nextTick(() => {
           this.initChart();
@@ -167,9 +166,9 @@ export default {
       let result = [];
       this.newlist.forEach((value, index) => {
         result.push({
-          name: value.title,
+          name: value.name,
           type: "line",
-          smooth: value.smooth,
+          // smooth: value.smooth,
           showSymbol: false,
           zlevel: index,
           lineStyle: {
@@ -178,7 +177,7 @@ export default {
               width: 1,
             },
           },
-          yAxisIndex: value.yAxisIndex,
+          yAxisIndex: value.yAxisIndex ||0,
           data: value.value.map((t) => {
             return t.value;
           }),

+ 1 - 0
src/components/chart/line/marker-line-chart.vue

@@ -304,6 +304,7 @@ export default {
   },
   created() {
     this.id = "pie-chart-" + util.newGUID();
+    // console.log('list',this.list);
   },
   mounted() {
     this.$nextTick(() => {

+ 1 - 1
src/components/chart/line/multiple-y-line-chart.vue

@@ -239,7 +239,7 @@
                 const chart = echarts.init(this.$el);
 
                 let option = this.option(themeName);
-                console.log(option)
+           
                 chart.clear();
                 chart.setOption(option);
 

+ 123 - 65
src/components/chart/radar/radar-chart.vue

@@ -51,7 +51,11 @@ export default {
           ],
           data: [
             {
-              value: [44200, 14200, 20000, 35000, 50000, 38000, 44200, 14200, 20000, 35000, 50000, 38000, 44200, 14200, 20000, 35000, 50000, 38000, 20000, 35000, 50000, 38000],
+              value: [
+                44200, 14200, 20000, 35000, 50000, 38000, 44200, 14200, 20000,
+                35000, 50000, 38000, 44200, 14200, 20000, 35000, 50000, 38000,
+                20000, 35000, 50000, 38000,
+              ],
               name: "NAME",
             },
           ],
@@ -64,52 +68,52 @@ export default {
       id: "",
       chart: null,
       lineStyles: [],
-	  green:{
-	        areaStyle: {
-	          color: "rgba(165,228,175, 0.9)",
-	        },
-	        lineStyle: {
-	          color: "rgba(255,255,255, 0.85)",
-	        },
-	        itemStyle: {
-	          color: "rgba(165,228,175, 0.5)",
-	          borderColor: "rgba(255,255,255, 0.5)",
-	          borderWidth: 0.5,
-	        },
-	      },
-	  blue:{
-	        areaStyle: {
-	          color: 'rgba(75,85,174, 0.9)',
-	        },
-	        lineStyle: {
-	          color: "rgba(255,255,255, 0.85)",
-	        },
-	        itemStyle: {
-	          color:'rgba(75,85,174, 0.9)',
-	          borderColor: "rgba(255,255,255, 0.5)",
-	          borderWidth: 0.5,
-	        },
-	      }
+      green: {
+        areaStyle: {
+          color: "rgba(165,228,175, 0.9)",
+        },
+        lineStyle: {
+          color: "rgba(255,255,255, 0.85)",
+        },
+        itemStyle: {
+          color: "rgba(165,228,175, 0.5)",
+          borderColor: "rgba(255,255,255, 0.5)",
+          borderWidth: 0.5,
+        },
+      },
+      blue: {
+        areaStyle: {
+          color: "rgba(75,85,174, 0.9)",
+        },
+        lineStyle: {
+          color: "rgba(255,255,255, 0.85)",
+        },
+        itemStyle: {
+          color: "rgba(75,85,174, 0.9)",
+          borderColor: "rgba(255,255,255, 0.5)",
+          borderWidth: 0.5,
+        },
+      },
     };
   },
   computed: {},
   methods: {
     initChart() {
-		let themeName = '';
-		let theme = this.$store.state.themeName;
-		if(theme == 'dark' || theme == 'light'){
-			themeName = theme;
-		}else{
-			themeName = theme.split(' ')[1];
-		}
+      let themeName = "";
+      let theme = this.$store.state.themeName;
+      if (theme == "dark" || theme == "light") {
+        themeName = theme;
+      } else {
+        themeName = theme.split(" ")[1];
+      }
       let chart = echarts.init(this.$el);
 
       let maxValue = -1;
-	  if(themeName === "dark"){
-	  	this.lineStyles = [this.green,this.blue];
-	  }else{
-	  	this.lineStyles = [this.blue,this.green];
-	  }
+      if (themeName === "dark") {
+        this.lineStyles = [this.green, this.blue];
+      } else {
+        this.lineStyles = [this.blue, this.green];
+      }
       if (this.value.data)
         this.value.data.forEach((item, index) => {
           item.value.forEach((value) => {
@@ -117,9 +121,12 @@ export default {
               maxValue = value;
             }
           });
-          item.areaStyle = this.lineStyles[index % this.lineStyles.length].areaStyle;
-          item.lineStyle = this.lineStyles[index % this.lineStyles.length].lineStyle;
-          item.itemStyle = this.lineStyles[index % this.lineStyles.length].itemStyle;
+          item.areaStyle =
+            this.lineStyles[index % this.lineStyles.length].areaStyle;
+          item.lineStyle =
+            this.lineStyles[index % this.lineStyles.length].lineStyle;
+          item.itemStyle =
+            this.lineStyles[index % this.lineStyles.length].itemStyle;
         });
       maxValue *= 1.5;
 
@@ -140,13 +147,19 @@ export default {
         },
         tooltip: {
           trigger: "item",
-          backgroundColor: this.$store.state.themeName === "dark" ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.5)",
-			borderColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
-			textStyle: {
-			  color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
+          backgroundColor:
+            this.$store.state.themeName === "dark"
+              ? "rgba(0,0,0,0.4)"
+              : "rgba(255,255,255,0.5)",
+          borderColor:
+            this.$store.state.themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
+          textStyle: {
+            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
             fontSize: util.vh(16),
           },
-          position: function(pos, params, dom, rect, size) {
+          position: function (pos, params, dom, rect, size) {
             // 鼠标在左侧时 tooltip 显示到右侧,鼠标在右侧时 tooltip 显示到左侧。
             var obj = { top: 60 };
             obj[["left", "right"][+(pos[0] < size.viewSize[0] / 2)]] = 5;
@@ -164,20 +177,29 @@ export default {
             nameGap: "4",
             name: {
               textStyle: {
-                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? partten.getColor("gray")
+                    : "#000",
                 fontSize: 12,
                 padding: [0, 16],
               },
             },
             axisLine: {
               lineStyle: {
-                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") + 40 : "#000"  + 40,
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? partten.getColor("gray") + 40
+                    : "#000" + 40,
               },
             },
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") + 40 : "#000"  + 40,
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? partten.getColor("gray") + 40
+                    : "#000" + 40,
               },
             },
             splitArea: {
@@ -198,7 +220,10 @@ export default {
             },
             axisLine: {
               lineStyle: {
-                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") + 40 : "#000"  + 40,
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? partten.getColor("gray") + 40
+                    : "#000" + 40,
                 shadowBlur: 1,
                 shadowColor: "#fff",
                 shadowOffsetX: 0.5,
@@ -208,7 +233,10 @@ export default {
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") + 40 : "#000"  + 40,
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? partten.getColor("gray") + 40
+                    : "#000" + 40,
                 shadowColor: "#fff",
                 shadowBlur: 0,
                 shadowOffsetX: 0.5,
@@ -232,13 +260,19 @@ export default {
             },
             axisLine: {
               lineStyle: {
-                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") + 40 : "#000"  + 40,
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? partten.getColor("gray") + 40
+                    : "#000" + 40,
               },
             },
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? partten.getColor("gray")
+                    : "#000",
               },
             },
             splitArea: {
@@ -256,7 +290,10 @@ export default {
                     },
                     {
                       offset: 1,
-                      color: this.$store.state.themeName === "dark" ? partten.getColor("green") + 60 : partten.getColor("deepblue") + 60, // 100% 处的颜色
+                      color:
+                        this.$store.state.themeName === "dark"
+                          ? partten.getColor("green") + 60
+                          : partten.getColor("deepblue") + 60, // 100% 处的颜色
                     },
                   ],
                   global: false, // 缺省为 false
@@ -275,13 +312,19 @@ export default {
             },
             axisLine: {
               lineStyle: {
-                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") + 40 : "#000"  + 40,
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? partten.getColor("gray") + 40
+                    : "#000" + 40,
               },
             },
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? partten.getColor("gray")
+                    : "#000",
               },
             },
             splitArea: {
@@ -299,7 +342,10 @@ export default {
                     },
                     {
                       offset: 1,
-                      color: this.$store.state.themeName === "dark" ? partten.getColor("green") + 60 : partten.getColor("deepblue") + 60, // 100% 处的颜色
+                      color:
+                        this.$store.state.themeName === "dark"
+                          ? partten.getColor("green") + 60
+                          : partten.getColor("deepblue") + 60, // 100% 处的颜色
                     },
                   ],
                   global: false, // 缺省为 false
@@ -318,13 +364,19 @@ export default {
             },
             axisLine: {
               lineStyle: {
-                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") + 40 : "#000"  + 40,
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? partten.getColor("gray") + 40
+                    : "#000" + 40,
               },
             },
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? partten.getColor("gray")
+                    : "#000",
               },
             },
             splitArea: {
@@ -345,13 +397,19 @@ export default {
             },
             axisLine: {
               lineStyle: {
-                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") + 40 : "#000"  + 40,
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? partten.getColor("gray") + 40
+                    : "#000" + 40,
               },
             },
             splitLine: {
               lineStyle: {
                 width: 1,
-                color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? partten.getColor("gray")
+                    : "#000",
               },
             },
             splitArea: {
@@ -391,10 +449,10 @@ export default {
     });
   },
   watch: {
-      "$store.state.themeName"() {
-        this.initChart();
-      },
+    "$store.state.themeName"() {
+      this.initChart();
     },
+  },
 };
 </script>
 

+ 17 - 5
src/components/coms/cards/percent-card-2.vue

@@ -1,7 +1,12 @@
 <template>
   <div class="percent-card">
     <div class="card-chart">
-      <percent-bar width="5.926vh" height="5.926vh" :value="percent" :color="color" />
+      <percent-bar
+        width="5.926vh"
+        height="5.926vh"
+        :value="percent"
+        :color="color"
+      />
       <div class="card-title gray">{{ title }}</div>
     </div>
     <div class="card-info">
@@ -22,6 +27,9 @@
 // 使用位置 驾驶舱首页 计划电量完成情况 中的百分比卡片
 import PercentBar from "../../chart/bar/percent-bar.vue";
 export default {
+    created() {
+    
+    },
   components: {
     PercentBar,
   },
@@ -36,6 +44,7 @@ export default {
     },
     TotalValue: {
       type: Number,
+      String,
       default: 0,
     },
     ActualText: {
@@ -44,18 +53,21 @@ export default {
     },
     ActualValue: {
       type: Number,
-      default: 100,
+      String,
+      default: 0,
     },
     color: {
       type: String,
       default: "green",
-    }
+    },
   },
+
   computed: {
     percent() {
-      // return parseInt((this.ActualValue / this.TotalValue) * 100);
-      return parseInt((this.TotalValue / this.ActualValue) * 100);
+      return this.TotalValue=== 0? 0 :parseInt((this.TotalValue / this.ActualValue) * 100);
     },
+
+  
   },
 };
 </script>

+ 23 - 6
src/components/coms/collapse/collapse-list.vue

@@ -21,8 +21,14 @@
             @click.stop="itemClick(item, j)"
             :class="{ active: itemIndex == j }"
           >
-            <span class="dot" :class="'bg-' + item.color"></span>
-            <span class="value"> {{ item.text }}</span>
+            <div
+              class="dot-box"
+              @click="actives(item, j)"
+              :class="this.Nums === j ? 'bj' : ''"
+            >
+              <span class="dot" :class="'bg-' + item.color"></span>
+              <span class="value"> {{ item.text }}</span>
+            </div>
           </div>
         </div>
       </div>
@@ -38,6 +44,7 @@ export default {
   components: {},
   // 传入参数
   props: {
+    //传来的id
     // 标题 ""不显示
     title: {
       type: String,
@@ -126,12 +133,18 @@ export default {
     return {
       menuIndex: 0,
       itemIndex: 0,
+      Nums: 0,
     };
   },
   // 函数
   methods: {
+    actives(x,j) {
+      this.Nums = j;
+      // console.log( this.Nums);
+    },
     menuClick(index) {
-      if(index === 0){
+      this.Nums = 0;
+      if (index === 0) {
         this.$emit("onClick");
       }
       if (this.menuIndex == index) {
@@ -162,7 +175,6 @@ export default {
         });
       });
     },
-  
   },
   // 生命周期钩子
   beforeCreate() {
@@ -170,6 +182,7 @@ export default {
   },
   created() {
     // 创建后
+    // console.log(this.list);
   },
   beforeMount() {
     // 渲染前
@@ -178,8 +191,6 @@ export default {
     this.wpId = this.$route.params.wpId || "";
     this.wtId = this.$route.params.wtId || "";
     this.setDefaultActiveMenu(this.list);
-
-
   },
   beforeUpdate() {
     // 数据更新前
@@ -198,6 +209,9 @@ export default {
 
 <style lang="less">
 .com-collapse {
+  .bj {
+    background-color: rgb(47, 56, 108);
+  }
   .collapse-box {
     cursor: pointer;
 
@@ -247,5 +261,8 @@ export default {
       }
     }
   }
+  .value:hover {
+    // background-color: antiquewhite;
+  }
 }
 </style>

+ 2 - 1
src/components/coms/panel/panel.vue

@@ -73,11 +73,12 @@ export default {
 
   .panel-header {
     display: flex;
-    font-size: 12px;
+    font-size: 14px;
     padding-left: 1.185vh;
     background: rgba(255, 255, 255, 10%);
     line-height: 27px;
     margin-bottom: 0.7407vh;
+    height: 27px;
 
     .panel-title {
       color: fade(#fff, 75);

+ 6 - 0
src/components/coms/table/group-table.vue

@@ -2,6 +2,7 @@
   <el-table class="custom-table" :show-summary="summary" :class="customClass" stripe :data="data.data" :height="height" style="width: 100%" @cell-click="onClick" @header-click="onHeaderClick" ref="groupTable">
     <template v-for="(col, cIndex) in data.column" :key="col">
       <el-table-column v-if="col.child && col.child.length > 0" :label="col.name" :key="col">
+  
         <el-table-column
           v-for="(sub, sindex) in col.child"
           :key="sub"
@@ -21,7 +22,10 @@
             <slot :name="sub.field" :column="sub" :row="item.row" :all="item" :data="item.row[item.field]"></slot>
           </template>
         </el-table-column>
+        
+
       </el-table-column>
+
       <el-table-column
         v-if="!col.child"
         :label="col.name"
@@ -38,6 +42,7 @@
           <slot :name="col.field" :column="col" :row="item.row" :all="item" :data="item.row[col.field]"></slot>
         </template>
       </el-table-column>
+      
     </template>
   </el-table>
   <el-pagination class="mg-t-8"
@@ -189,6 +194,7 @@ export default {
   },
   mounted() {
     // 渲染后
+    console.log(this.data,555555555555555555);
   },
   beforeUpdate() {},
   updated() {},

+ 1 - 1
src/components/coms/table/table-unpage.vue

@@ -154,7 +154,7 @@ export default {
       if (col.click) col.click(event, data);
     },
     onSort(col) {
-      // console.log(222222222);
+    
       if (col.sortable == true) {
         this.sortCol = col.field;
         switch (this.sortType) {

+ 43 - 19
src/components/coms/wt-chooser/wt-chooser.vue

@@ -4,8 +4,19 @@
       <div class="query-item">
         <div class="lable">风场:</div>
         <div class="search-input">
-          <el-select v-model="wpId" clearable placeholder="请选择风场" popper-class="select" @change="getWtList">
-            <el-option v-for="item in wpList" :key="item.id" :label="item.name" :value="item.id">
+          <el-select
+            v-model="wpId"
+            clearable
+            placeholder="请选择风场"
+            popper-class="select"
+            @change="getWtList"
+          >
+            <el-option
+              v-for="item in wpList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            >
             </el-option>
           </el-select>
         </div>
@@ -13,8 +24,19 @@
       <div class="query-item">
         <div class="lable">风机:</div>
         <div class="search-input">
-          <el-select v-model="wtId" clearable placeholder="请选择风机" popper-class="select" @change="wtChange">
-            <el-option v-for="item in wtList" :key="item.id" :label="item.name" :value="item.id">
+          <el-select
+            v-model="wtId"
+            clearable
+            placeholder="请选择风机"
+            popper-class="select"
+            @change="wtChange"
+          >
+            <el-option
+              v-for="item in wtList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            >
             </el-option>
           </el-select>
         </div>
@@ -24,15 +46,15 @@
 </template>
 
 <script>
+import api from "@api/wisdomOverhaul/health/index.js";
 export default {
   // 传参
   props: {
-    wpId: { type: String, default: "MHS_FDC" },
-    wtId: { type: String, default: "MG01_01" },
+    wpId: { type: String, default: "CL_FDC" },
+    wtId: { type: String, default: "CL01_GC" },
   },
   // 事件
-  emits: {
-  },
+  emits: {},
   data() {
     return {
       wpList: [],
@@ -44,20 +66,22 @@ export default {
     this.getWtList();
   },
   methods: {
-    async getWpList() {
-      const { data } = await this.API.requestData({
-        subUrl: "powercompare/windfarmAjax",
+    getWpList() {
+      api.powercompareWindfarmAjax().then((res) => {
+        this.wpList = res.data;
+        // this.wpId = res.data[0].name;
       });
-      this.wpList = data.data;
     },
-    async getWtList() {
-      const { data } = await this.API.requestData({
-        subUrl: "powercompare/windturbineAjax",
-        data: {
+    getWtList() {
+      api
+        .powercompareWindturbineAjax({
           wpId: this.wpId,
-        },
-      });
-      this.wtList = data.data;
+        })
+        .then((res) => {
+      
+          this.wtList = res.data;
+          // this.wtId = res.data[0].name;
+        });
     },
     wtChange() {
       this.$emit("change", { wtId: this.wtId, wpId: this.wpId });

+ 251 - 0
src/components/dialog/index.vue

@@ -0,0 +1,251 @@
+<template>
+  <el-dialog
+    title="风机详情"
+    width="75%"
+    top="10vh"
+    @opened="opened()"
+    @closed="closed()"
+    :show-close="true"
+    class="my-info-dialog"
+    custom-class="modal"
+    :close-on-click-modal="false"
+  >
+    <div class="body">
+      <div class="wind-site-info-body">
+        <div class="info-menu">
+          <div
+            class="info-menu-item"
+            v-for="(item, index) in InfoBtns.data"
+            :key="item"
+            :class="{ active: InfoBtns.activeIndex == index }"
+            @click="onInfoMenuItemClick(item, index)"
+          >
+            {{ item.text }}
+          </div>
+        </div>
+        <el-row style="height: calc(100% - 45px)">
+          <!-- 基本信息 使用 v-if 每次点击重新加载  -->
+          <!-- 使用 v-show 首次全部加载 之后隐藏 点击后显示 -->
+          <base-info v-show="InfoBtns.activeIndex == 0" ref="baseInfo" />
+          <!-- <base-info v-if="InfoBtns.activeIndex == 2" /> -->
+          <!-- <div class="windParts"> -->
+            <div
+            :style="
+              $store.state.themeName === 'dark'
+                ? 'text-align:center;'
+                : 'text-align:center;background:#fff;'
+            "
+          >
+            <StandAloneImg
+              class="sai"
+              v-show="InfoBtns.activeIndex != 0"
+              :activeIndex="InfoBtns.activeIndex"
+              @selectSvg="selectSvg"
+            ></StandAloneImg>
+          </div>
+          <div class="saigs">
+            <generator
+            v-show="InfoBtns.activeIndex != 0"
+            :index="InfoBtns.activeIndex"
+            :data="sourceMap"
+            ref="generator"
+          ></generator>
+          </div>
+          
+          <!-- </div> -->
+          
+        </el-row>
+      </div>
+    </div>
+  </el-dialog>
+</template>
+<script>
+import BaseInfo from "../../views/WindSite/pages/Info/Base-Info.vue";
+import StandAloneImg from "../../views/WindSite/pages/Info/StandAloneImg.vue";
+import generator from "../../views/WindSite/pages/Info/pages/generator.vue";
+import api from "@api/cockpit/matrix/index.js";
+import BASE from "@tools/basicTool.js";
+export default {
+  props: {
+    wpId: {
+      type: String,
+      default: "",
+    },
+    wtId: {
+      type: String,
+      default: "",
+    },
+  },
+  data() {
+    return {
+      timmer: '',
+      InfoBtns: {
+        activeIndex: 0,
+        data: [
+          {
+            id: "base-info",
+            text: "基本信息",
+          },
+          {
+            id: "generator",
+            text: "发电机",
+          },
+          {
+            id: "gear-box",
+            text: "齿轮箱",
+          },
+          {
+            id: "pitch",
+            text: "变桨",
+          },
+          {
+            id: "yaw",
+            text: "偏航",
+          },
+          {
+            id: "hydraulic-pressure",
+            text: "液压",
+          },
+          {
+            id: "cabin-info",
+            text: "机舱信息",
+          },
+          // {
+          //   id: "principal-axis",
+          //   text: "主轴",
+          // },
+        ],
+      },
+    };
+  },
+  components: {
+    BaseInfo,
+    StandAloneImg,
+    generator,
+  },
+  methods: {
+    opened() {
+    this.$nextTick(() => {
+      this.getWtInfo();
+      this.timmer = setInterval(() => {
+        this.getWtInfo();
+      }, this.$store.state.websocketTimeSec);
+    });
+    },
+    closed() {
+      clearInterval(this.timmer);
+      this.timmer = null;
+    },
+    onInfoMenuItemClick(item, index) {
+      this.InfoBtns.activeIndex = index;
+    },
+    selectSvg(index) {
+      this.InfoBtns.activeIndex = index;
+    },
+    // 获取风机信息
+    getWtInfo() {
+      api
+        .findWtInfo({
+          wtId: this.wtId,
+        })
+        .then((res) => {
+          let map = ["bjmap", "fdjmap", "clxmap", "yymap", "phmap", "jcmap"];
+          let data = res.data;
+          for (var key in data) {
+            if (map.includes(key) && key.endsWith("map")) {
+              let json = data[key];
+              let arrayai = [];
+              let arraydi = [];
+              for (var i = 0; i < json.length; i++) {
+                let obj = {
+                  name: json[i][0],
+                  unit: json[i][1],
+                  value: json[i][3],
+                };
+                if (json[i][2] == "ai") arrayai.push(obj);
+                else arraydi.push(obj);
+              }
+              data[key] = { ai: arrayai, di: arraydi };
+            }
+          }
+          this.sourceMap = data;
+          this.$refs.baseInfo.dataDeal(data)
+          this.$refs.generator.dataDeal(data)
+        });
+    },
+  },
+};
+</script>
+<style lang="less" scoped>
+.body {
+  height: 70vh;
+}
+.wind-site-info {
+  display: flex;
+
+  .sai {
+    width: 65%;
+  }
+
+  .saig {
+    position: absolute;
+    width: 100%;
+    bottom: 0;
+  }
+
+  .wind-site-menu {
+    flex: 0 0 13.889vh;
+    color: @gray;
+    background: fade(@darkgray, 10);
+    height: calc(100vh - 122px);
+
+    .wind-site-title {
+      font-size: 14px;
+      font-weight: 600;
+      padding: 16px;
+    }
+  }
+}
+.wind-site-info-body {
+  flex: auto;
+  padding-left: 1.481vh;
+  height: 100%;
+
+  .info-menu {
+    width: 100%;
+    margin-bottom: 10px;
+    .info-menu-item {
+      display: inline-block;
+      border: 1px solid fade(@darkgray, 80);
+      border-radius: 2px;
+      color: @gray;
+      font-size: @fontsize-s;
+      letter-spacing: 1px;
+      cursor: pointer;
+      width: 12.5%;
+      height: 30px;
+      line-height: 30px;
+      text-align: center;
+
+      &.active {
+        color: @white;
+        background: fade(@purple, 60);
+        border-color: fade(@purple, 60);
+      }
+
+      & + .info-menu-item {
+        margin-left: 2.2vh;
+      }
+    }
+  }
+}
+.windParts{
+  display: flex;
+  flex-direction: row;
+}
+.saigs{
+  position: absolute;
+  bottom: 0;
+  left: 28px;
+}
+</style>

+ 1 - 1
src/components/other/cesium/static/index.vue

@@ -295,7 +295,7 @@ export default {
       });
     },
     windyF() {
-      console.log(1111, this.windy);
+  
       var windy = new Windy(response, this.viewer);
       if (this.windy == null) {
         this.flyto(20000000);

ファイルの差分が大きいため隠しています
+ 739 - 22
src/components/other/healthReport/index.vue


+ 10 - 0
src/router/index.js

@@ -369,6 +369,16 @@ const routes = [{
 		component: () =>
 			import( /* webpackChunkName: "fs" */ "../views/NewPages/statisticAnalysis.vue"),
 	},
+
+	// ----------------------------
+
+// {
+// 	path: "/others/pieChart",
+// 	name: "statisticAnalysis",
+// 	component: () =>
+// 		import( /* webpackChunkName: "fs" */ "../views/HealthControl/zhpj/healthpieChart.vue"),
+// },
+//--------------------
 	//报表管理-统计分析-表底
 	{
 		path: "/others/statisticAnalysis/form",

+ 1 - 1
src/store/index.js

@@ -6,7 +6,7 @@ const debug = process.env.NODE_ENV !== 'production';
 
 // 默认状态
 const state = {
-  websocketTimeSec: 5000,
+  websocketTimeSec: 1000,
   loading: false, //全局 - 加载中....
   themeName: localStorage.getItem("themeName") || "dark", // 主题
   menuData: [],

+ 10 - 17
src/views/Agc/Agc.vue

@@ -106,12 +106,12 @@ export default {
                   value: [],
                 },
                 {
-                  title: "实际功率",
+                  title: "限电指令",
                   yAxisIndex: 0,
                   value: [],
                 },
                 {
-                  title: "限电指令",
+                  title: "实际功率",
                   yAxisIndex: 0,
                   value: [],
                 },
@@ -121,30 +121,23 @@ export default {
                   value: [],
                 },
               ];
-
               keys.forEach((key, keyIndex) => {
                 pEle.tb.forEach((cEle, cIndex) => {
-                  tb[keyIndex].value.push({ text: new Date(cEle.time).formatDate("hh:mm"), value: cEle[keys[keyIndex]] || 0 });
+                  tb[keyIndex].value.push({ text: new Date(cEle.time).formatDate("hh:mm"), value: cEle[keys[keyIndex]] || '--' });
                 });
               });
 
               pEle.tb = tb;
+              // console.log('datas',datas);
               datas.push(pEle);
             });
+            console.log(datas);
             this.datas = datas;
           } else {
             this.datas = datas;
           }
       })
-      // that.API.requestData({
-      //   showLoading,
-      //   method: "POST",
-      //   subUrl: "genreset/getAgcValues",
-      //   timeout: 600000,
-      //   success(res) {
-          
-      //   },
-      // });
+
     },
   },
 
@@ -195,10 +188,10 @@ export default {
     flex-wrap: wrap;
 
     .panel-item {
-      width: calc(25% - 12px);
-      height: 29vh;
-      margin-left: 16px;
-      margin-bottom: 16px;
+      width: calc(49% - 12px);
+      height: 38vh;
+      margin-right: 30px;
+      margin-bottom:  80px;
 
       &:nth-child(4n + 1) {
         margin-left: 0;

+ 73 - 23
src/views/Agc/components/agc-panel.vue

@@ -1,18 +1,24 @@
 <template>
-  <ComPanel v-if="data && data.jcxx" :title="data.jcxx.name || '---'" :icon="data.jcxx.icon" :subTitle="data.jcxx.ddmc || '---'" :color="data.jcxx.color">
+  <ComPanel
+    v-if="data && data.jcxx"
+    :title="data.jcxx.name || '---'"
+    :icon="data.jcxx.icon"
+    :subTitle="data.jcxx.ddmc || '---'"
+    :color="data.jcxx.color"
+  >
     <table class="panel-table">
       <tbody>
         <tr>
           <td colspan="2">
             <div class="data-item">
-              <span class="data-item-name">有功设定限值</span>
+              <span class="data-item-name">限电指令:</span>
               <span class="data-item-count">{{ data.jcxx.AGC002 }}</span>
               <span class="data-item-unit">MW</span>
             </div>
           </td>
           <td colspan="2">
             <div class="data-item">
-              <span class="data-item-name">出线功率</span>
+              <span class="data-item-name">实际功率:</span>
               <span class="data-item-count">{{ data.jcxx.AGC001 }}</span>
               <span class="data-item-unit">MW</span>
             </div>
@@ -21,15 +27,15 @@
         <tr>
           <td colspan="2">
             <div class="data-item">
-              <span class="data-item-name">AGC可调上限</span>
+              <span class="data-item-name">AGC可调上限</span>
               <span class="data-item-count">{{ data.jcxx.AGC003 }}</span>
               <span class="data-item-unit">MW</span>
             </div>
           </td>
           <td colspan="2">
             <div class="data-item">
-              <span class="data-item-name">理论功率</span>
-              <span class="data-item-count">{{ data.jcxx.ZZSGL }}</span>
+              <span class="data-item-name">理论功率</span>
+              <span class="data-item-count">{{ (data.jcxx.ZZSGL/1000).toFixed(2) }}</span>
               <span class="data-item-unit">MW</span>
             </div>
           </td>
@@ -37,14 +43,14 @@
         <tr>
           <td colspan="2">
             <div class="data-item">
-              <span class="data-item-name">AGC可调下限</span>
+              <span class="data-item-name">AGC可调下限</span>
               <span class="data-item-count">{{ data.jcxx.AGC004 }}</span>
               <span class="data-item-unit">MW</span>
             </div>
           </td>
           <td colspan="2">
             <div class="data-item">
-              <span class="data-item-name">预测功率</span>
+              <span class="data-item-name">预测功率</span>
               <span class="data-item-count">{{ data.jcxx.ycgl || 0 }}</span>
               <span class="data-item-unit">MW</span>
             </div>
@@ -54,37 +60,72 @@
           <td>
             <div class="data-item">
               <span class="data-item-name">AGC投入</span>
-              <i :class="'data-item-icon fa fa-chrome ' + (data.jcxx.AGC006 === 1 ? 'red' : 'green')"></i>
+              <i
+                :class="
+                  'data-item-icon fa fa-chrome ' +
+                  (data.jcxx.AGC006 === 1 ? 'red' : 'green')
+                "
+              ></i>
             </div>
           </td>
           <td>
             <div class="data-item">
               <span class="data-item-name">AGC远方</span>
-              <i :class="'data-item-icon fa fa-chrome ' + (data.jcxx.AGC005 === 1 ? 'red' : 'green')"></i>
+              <i
+                :class="
+                  'data-item-icon fa fa-chrome ' +
+                  (data.jcxx.AGC005 === 1 ? 'red' : 'green')
+                "
+              ></i>
             </div>
           </td>
           <td>
             <div class="data-item">
               <span class="data-item-name">有功增闭锁</span>
-              <i :class="'data-item-icon fa fa-chrome ' + (data.jcxx.AGC008 === 1 ? 'red' : 'green')"></i>
+              <i
+                :class="
+                  'data-item-icon fa fa-chrome ' +
+                  (data.jcxx.AGC008 === 1 ? 'red' : 'green')
+                "
+              ></i>
             </div>
           </td>
           <td>
             <div class="data-item">
               <span class="data-item-name">有功减闭锁</span>
-              <i :class="'data-item-icon fa fa-chrome ' + (data.jcxx.AGC007 === 1 ? 'red' : 'green')"></i>
+              <i
+                :class="
+                  'data-item-icon fa fa-chrome ' +
+                  (data.jcxx.AGC007 === 1 ? 'red' : 'green')
+                "
+              ></i>
             </div>
           </td>
         </tr>
       </tbody>
     </table>
-    <!-- 查看默认实例去除末尾参数 :list 即可 -->
-    <DoubleLineChart v-if="chartType === 'double'" height="13.889vh" :list="data.tb || chartData" @chartClick="chartClick($event)" :isChartClick="true"></DoubleLineChart>
+    <!-- 查看默认实例去除末尾参数 :list 即可   图 -->
+    <DoubleLineChart
+      v-if="chartType === 'double'"
+      height="20vh"
+      :list="data.tb || chartData"
+      @chartClick="chartClick($event)"
+      :isChartClick="true"
+    ></DoubleLineChart>
     <!-- <MultipleLineChart v-if="chartType === 'multiple'" height="13.889vh" :list="data.tb || chartData" :hoverType="'axis'"></MultipleLineChart> -->
-  	<el-dialog v-model="dialogVisible" width="70%" top="10vh" custom-class="modal"
-			:close-on-click-modal="true">
-      <DoubleLineChart height="70vh" :list="data.tb || chartData" myUnit='MW'></DoubleLineChart>
-		</el-dialog>
+    <el-dialog
+      v-model="dialogVisible"
+      width="70%"
+      top="10vh"
+      custom-class="modal"
+      :close-on-click-modal="true"
+    >
+      <DoubleLineChart
+        height="70vh"
+        :list="data.tb || chartData"
+        myUnit="MW"
+      ></DoubleLineChart>
+    </el-dialog>
   </ComPanel>
 </template>
 
@@ -124,7 +165,7 @@ export default {
   // 数据
   data() {
     return {
-      dialogVisible:false,
+      dialogVisible: false,
       list: [
         {
           title: "平均风速",
@@ -233,9 +274,9 @@ export default {
   },
   // 函数
   methods: {
-    chartClick(){
+    chartClick() {
       this.dialogVisible = true;
-    }
+    },
   },
   // 生命周期钩子
   beforeCreate() {
@@ -243,6 +284,7 @@ export default {
   },
   created() {
     // 创建后
+    // console.log(999999,this.chartData);
   },
   beforeMount() {
     // 渲染前
@@ -256,6 +298,7 @@ export default {
         value: [],
       },
     ];
+
   },
   beforeUpdate() {
     // 数据更新前
@@ -279,9 +322,15 @@ export default {
     background-color: fade(@gray, 20);
     padding: 0.278vh;
     padding-left: 0.7407vh;
-    font-size: 1.204vh;
+    font-size: 1.504vh;
     display: flex;
     flex-direction: row;
+    height: 30px;
+    padding-left: 45px;
+    padding-right: 80px;
+    align-items: center;
+
+
 
     .data-item-name {
       color: @gray;
@@ -290,7 +339,8 @@ export default {
     .data-item-count {
       color: @green;
       margin-left: auto;
-      margin-right: 0.556vh;
+      margin-right:2.7vh;
+
     }
 
     .data-item-unit {

+ 123 - 144
src/views/Decision/Decision1Mx.vue

@@ -395,14 +395,8 @@ export default {
   },
   methods: {
     ChangZhanVal() {
-      var that = this;
-      that.API.requestData({
-        method: "GET",
-        baseURL: "http://10.83.66.220:8020/",
-        subUrl: "benchmarking/wplist",
-        success(res) {
-          that.ChangZhan = res.data;
-        },
+      api.benchmarkingWplist({}).then((res) => {
+        this.ChangZhan = res.data;
       });
     },
     ChangZhanChange(val) {
@@ -414,17 +408,10 @@ export default {
       this.XiangMuVal(val);
     },
     XiangMuVal(val) {
-      var that = this;
-      that.API.requestData({
-        method: "GET",
-        baseURL: "http://10.83.66.220:8020/",
-        subUrl: "benchmarking/projectList",
-        data: {
-          wpids: val,
-        },
-        success(res) {
-          that.XiangMu = res.data;
-        },
+      api.benchmarkingProjectList({
+        wpids: val,
+      }).then((res) => {
+        this.XiangMu = res.data;
       });
     },
     XiangMuChange(val) {
@@ -435,17 +422,10 @@ export default {
       this.XianLuVal(val);
     },
     XianLuVal(val) {
-      var that = this;
-      that.API.requestData({
-        method: "GET",
-        baseURL: "http://10.83.66.220:8020/",
-        subUrl: "benchmarking/lineList",
-        data: {
-          projects: val,
-        },
-        success(res) {
-          that.XianLu = res.data;
-        },
+      api.benchmarkingLineList({
+        projects: val,
+      }).then((res) => {
+        this.XianLu = res.data
       });
     },
     XianLuChange(val) {
@@ -488,118 +468,118 @@ export default {
         return end;
       }
     },
-    AjaxCommon() {
-      var that = this;
-      that.API.requestData({
-        method: "GET",
-        baseURL: "http://10.83.66.220:8020/",
-        subUrl: "http://10.83.66.220:8020/mx",
-        data: {
-          wpids: that.value1,
-          projectids: that.value2,
-          lineids: that.value3,
-          beginDate: that.value4,
-          endDate: that.value5,
-          type: that.TypeClass,
-          target: "",
-          sort: "",
-        },
-        success(res) {
-          var name = [],
-            data = [],
-            llfdl = [],
-            legend = [
-              "实际电量",
-              "故障损失",
-              "故障受累",
-              "检修受累",
-              "电网受累",
-              "天气受累",
-              "限电降出",
-              "限电停机",
-              "待风损失",
-              "手动停机",
-              "正常发电",
-              "缺陷降出",
-            ],
-            data2 = []; //项目列表
-
-          if (that.value1.length) {
-            let arr = [];
-            let hj = res.data.pop();
-            res.data.forEach((ele, index) => {
-              arr[ele.id.split("_")[1] - 1] = ele;
-            });
-            arr.push(hj);
-            res.data = arr;
-          }
-
-          res.data.forEach((item, index) => {
-            name.push(item.name);
-            llfdl.push(item.llfdl);
-            data.push([
-              item.sjfdl,
-              item.fjhjx1,
-              item.fjhjx2,
-              item.jhjx1,
-              item.jhjx2,
-              item.sl1,
-              item.sl2,
-              item.xd1,
-              item.xd2,
-              item.xn1,
-              item.xn2,
-              item.xn3,
-              item.xn4,
-            ]);
-            data2.push({
-              index: index + 1,
-              name: item.name,
-              llfdl: item.llfdl,
-              sjfdl: item.sjfdl,
-              speed: item.speed,
-              fjhjx1: item.fjhjx1,
-              fjhjx2: item.fjhjx2,
-              jhjx1: item.jhjx1,
-              jhjx2: item.jhjx2,
-              sl1: item.sl1,
-              sl2: item.sl2,
-              xd1: item.xd1,
-              xd2: item.xd2,
-              xn1: item.xn1,
-              xn2: item.xn2,
-              xn3: item.xn3,
-              xn4: item.xn4,
-              fnlly: item.fnlly,
-              is_light: false,
-            });
-          });
-          name.pop();
-          data.pop();
-          llfdl.pop();
-          if (data.length > 0) {
-            let arr1 = [];
-            const length = data[0].length;
-            for (var i = 0; i < length; i++) {
-              let arr2 = [];
-              data.forEach((ele) => {
-                arr2.push(ele[i]);
-              });
-              arr1.push(arr2);
-            }
-            that.lineData = llfdl;
-            that.bardata = {
-              area: name,
-              legend: legend,
-              data: arr1,
-            };
-          }
-          that.tableDataEnd = data2[data2.length - 1];
-          data2.pop();
-          that.tableData.data = data2;
-        },
-      });
-    },
+    // AjaxCommon() {
+    //   var that = this;
+    //   that.API.requestData({
+    //     method: "GET",
+    //     baseURL: "http://10.83.66.220:8020/",
+    //     subUrl: "http://10.83.66.220:8020/mx",
+    //     data: {
+    //       wpids: that.value1,
+    //       projectids: that.value2,
+    //       lineids: that.value3,
+    //       beginDate: that.value4,
+    //       endDate: that.value5,
+    //       type: that.TypeClass,
+    //       target: "",
+    //       sort: "",
+    //     },
+    //     success(res) {
+    //       var name = [],
+    //         data = [],
+    //         llfdl = [],
+    //         legend = [
+    //           "实际电量",
+    //           "故障损失",
+    //           "故障受累",
+    //           "检修受累",
+    //           "电网受累",
+    //           "天气受累",
+    //           "限电降出",
+    //           "限电停机",
+    //           "待风损失",
+    //           "手动停机",
+    //           "正常发电",
+    //           "缺陷降出",
+    //         ],
+    //         data2 = []; //项目列表
+
+    //       if (that.value1.length) {
+    //         let arr = [];
+    //         let hj = res.data.pop();
+    //         res.data.forEach((ele, index) => {
+    //           arr[ele.id.split("_")[1] - 1] = ele;
+    //         });
+    //         arr.push(hj);
+    //         res.data = arr;
+    //       }
+
+    //       res.data.forEach((item, index) => {
+    //         name.push(item.name);
+    //         llfdl.push(item.llfdl);
+    //         data.push([
+    //           item.sjfdl,
+    //           item.fjhjx1,
+    //           item.fjhjx2,
+    //           item.jhjx1,
+    //           item.jhjx2,
+    //           item.sl1,
+    //           item.sl2,
+    //           item.xd1,
+    //           item.xd2,
+    //           item.xn1,
+    //           item.xn2,
+    //           item.xn3,
+    //           item.xn4,
+    //         ]);
+    //         data2.push({
+    //           index: index + 1,
+    //           name: item.name,
+    //           llfdl: item.llfdl,
+    //           sjfdl: item.sjfdl,
+    //           speed: item.speed,
+    //           fjhjx1: item.fjhjx1,
+    //           fjhjx2: item.fjhjx2,
+    //           jhjx1: item.jhjx1,
+    //           jhjx2: item.jhjx2,
+    //           sl1: item.sl1,
+    //           sl2: item.sl2,
+    //           xd1: item.xd1,
+    //           xd2: item.xd2,
+    //           xn1: item.xn1,
+    //           xn2: item.xn2,
+    //           xn3: item.xn3,
+    //           xn4: item.xn4,
+    //           fnlly: item.fnlly,
+    //           is_light: false,
+    //         });
+    //       });
+    //       name.pop();
+    //       data.pop();
+    //       llfdl.pop();
+    //       if (data.length > 0) {
+    //         let arr1 = [];
+    //         const length = data[0].length;
+    //         for (var i = 0; i < length; i++) {
+    //           let arr2 = [];
+    //           data.forEach((ele) => {
+    //             arr2.push(ele[i]);
+    //           });
+    //           arr1.push(arr2);
+    //         }
+    //         that.lineData = llfdl;
+    //         that.bardata = {
+    //           area: name,
+    //           legend: legend,
+    //           data: arr1,
+    //         };
+    //       }
+    //       that.tableDataEnd = data2[data2.length - 1];
+    //       data2.pop();
+    //       that.tableData.data = data2;
+    //     },
+    //   });
+    // },
     mxClick() {
       this.$router.push("/decision/decision1");
     },
@@ -696,7 +676,7 @@ export default {
     },
     AjaxCommon() {
       api
-        .benchmarking({
+        .benchmarkingmx({
           wpids: this.value1,
           projectids: this.value2,
           lineids: this.value3,
@@ -707,7 +687,6 @@ export default {
           sort: "",
         })
         .then((res) => {
-          console.log(res);
           var name = [],
             data = [],
             llfdl = [],

+ 47 - 94
src/views/Decision/Decision2.vue

@@ -94,7 +94,7 @@
           </div>
         </div>
       </div>
-      <div class="query-actions">
+      <div :class="detailShow == 2 ? 'query-actions1 ' : 'query-actions'">
         <button class="btn green">搜索</button>
         <button class="btn" @click="dbfx">对标分析</button>
         <button class="btn">导出</button>
@@ -146,7 +146,7 @@
       <div>
         <panel title="损失电量分析">
           <multiple-bar-chart
-            :height="'calc(100vh - 21.5vh - 500px)'"
+            :height="'calc(100vh - 26.5vh - 500px)'"
             :list="analyis"
             :customerTooltip="true"
             @tooltip="tooltip"
@@ -178,7 +178,7 @@
     >
       <dayinfo
         :radarValue="radarValue"
-		:title="[windNum,windNum2]"
+        :title="[windNum, windNum2]"
         :windNum="windNum"
         :windNum2="windNum2"
         :tabs="tabs"
@@ -209,6 +209,7 @@ export default {
   },
   data() {
     let that = this;
+  
     return {
       tableIdArr: [], //放checkbox的id数组
       tableId: [],
@@ -229,7 +230,7 @@ export default {
             template: () => {
               return "<input class='check curCheckBox' type='CheckBox' />";
             },
-            click: function(event, data) {
+            click: function (event, data) {
               var dataId = that.tableIdArr[data.index - 1];
               if (event.target.checked == false && that.checkLength <= 2) {
                 that.tableId.forEach((item, i) => {
@@ -434,27 +435,27 @@ export default {
             field: "cz",
             is_num: false,
             is_light: false,
-            template: function() {
+            template: function () {
               return "<a class='action'>详情</a>";
             },
-            click: function(event, data) {
+            click: function (event, data) {
               var dataId = that.tableIdArr[data.index - 1];
               that.clearDb();
               that.detailShow = 2;
-              var that = this;
 
-              api.benchmarkingDetails({
+              api
+                .benchmarkingDetails({
                   id: dataId,
                   beginDate: that.value4,
                   endDate: that.value5,
                   target: "",
                   sort: "",
-              }).then((res) => {
-             var dataTab = [];
+                })
+                .then((res) => {
+                  var dataTab = [];
                   res.data.forEach((item, index) => {
                     that.tableIdArr.push(item.id);
 
-                    console.log(this,that)
                     dataTab.push({
                       //表格
                       index: index + 1,
@@ -486,57 +487,7 @@ export default {
                     });
                   });
                   that.tableDataDetail.data = dataTab;
-              });
-
-              // that.API.requestData({
-              //   method: "GET",
-              //   baseURL: "http://10.83.66.220:8020/",
-              //   subUrl: "benchmarking/details",
-              //   data: {
-              //     id: dataId,
-              //     beginDate: that.value4,
-              //     endDate: that.value5,
-              //     target: "",
-              //     sort: "",
-              //   },
-              //   success(res) {
-              //     var dataTab = [];
-              //     res.data.forEach((item, index) => {
-              //       that.tableIdArr.push(item.id);
-
-              //       dataTab.push({
-              //         //表格
-              //         index: index + 1,
-              //         fdl: item.fdl,
-              //         name: item.name,
-              //         zhpm: item.zhpm,
-              //         gzssdl: item.gzssdl,
-              //         jxssdlpm: item.jxssdlpm,
-              //         jxssdl: item.jxssdl,
-              //         xnssdlpm: item.xnssdlpm,
-              //         xnssdl: item.xnssdl,
-              //         xdssdlpm: item.xdssdlpm,
-              //         xdssdl: item.xdssdl,
-              //         slssdlpm: item.slssdlpm,
-              //         slssdl: item.slssdl,
-              //         fnlylpm: item.fnlylpm,
-              //         fnlyl: item.fnlyl,
-              //         gzsslpm: item.gzsslpm,
-              //         gzssl: item.gzssl,
-              //         jxsslpm: item.jxsslpm,
-              //         jxssl: item.jxssl,
-              //         qflpm: item.qflpm,
-              //         qfl: item.qfl,
-              //         xnsslpm: item.xnsslpm,
-              //         xnssl: item.xnssl,
-              //         slsslpm: item.slsslpm,
-              //         slssl: item.slssl,
-              //         is_light: false,
-              //       });
-              //     });
-              //     that.tableDataDetail.data = dataTab;
-              //   },
-              // });
+                });
             },
           },
         ],
@@ -563,10 +514,10 @@ export default {
             field: "check",
             is_num: false,
             is_light: false,
-            template: function() {
+            template: function () {
               return "<input class='check curCheckBox checkItem' type='CheckBox'/>";
             },
-            click: function(event, data) {
+            click: function (event, data) {
               var dataId = that.tableIdArr[data.index - 1];
               if (event.target.checked == false && that.checkLength <= 2) {
                 that.tableId.forEach((item, i) => {
@@ -770,15 +721,11 @@ export default {
   },
   methods: {
     ChangZhanVal() {
-
-      api.benchmarkingWplist2({
-      }).then((res) => {
-         //   that.value2.push(res.data[0].id);
-          this.ChangZhan = res.data;
-          //  that.AjaxCommon();
-          this.XiangMuVal(this.value2);
-          console.log("resCHANzhan:", res.data);
-          console.log("value2:", this.value2);
+      api.benchmarkingWplist({}).then((res) => {
+        //   that.value2.push(res.data[0].id);
+        this.ChangZhan = res.data;
+        //  that.AjaxCommon();
+        this.XiangMuVal(this.value2);
       });
 
       // var that = this;
@@ -799,19 +746,20 @@ export default {
     ChangZhanChange(val) {
       this.value1 = val;
       this.value2 = [];
-    //   this.value2 = val;
+      //   this.value2 = val;
       this.value3 = [];
       this.AjaxCommon();
       this.XiangMuVal(val);
       this.clearDb();
     },
     XiangMuVal(val) {
-
- api.benchmarkingProjectList({
-        wpids: val,
-      }).then((res) => {
-       this.XiangMu = res.data;
-      });
+      api
+        .benchmarkingProjectList({
+          wpids: val,
+        })
+        .then((res) => {
+          this.XiangMu = res.data;
+        });
 
       // var that = this;
       // that.API.requestData({
@@ -831,17 +779,18 @@ export default {
       this.value2 = val;
       this.value3 = [];
       this.AjaxCommon();
-    //   this.XiangMuVal(val);
+      //   this.XiangMuVal(val);
       this.XianLuVal(val);
       this.clearDb();
     },
     XianLuVal(val) {
-
-      api.benchmarkingLineList({
-         projects: val,
-      }).then((res) => {
-        this.XianLu = res.data;
-      });
+      api
+        .benchmarkingLineList({
+          projects: val,
+        })
+        .then((res) => {
+          this.XianLu = res.data;
+        });
 
       // var that = this;
       // that.API.requestData({
@@ -888,18 +837,18 @@ export default {
       }
     },
     AjaxCommon() {
-
-      api.benchmarkingWxssl({
-         wpids: this.value1,
+      api
+        .benchmarkingWxssl({
+          wpids: this.value1,
           projectids: this.value2,
           lineids: this.value3,
           beginDate: this.value4,
           endDate: this.value5,
           target: "",
           sort: "",
-      }).then((res) => {
-         this.ajaxData = res.data;
-          console.log("resData:", res);
+        })
+        .then((res) => {
+          this.ajaxData = res.data;
           var dataTab = [], //表格
             fdl = [],
             cz = [],
@@ -1024,7 +973,7 @@ export default {
           this.outerLl = ll;
 
           this.analyis = analyis;
-      });
+        });
 
       // var that = this;
       // that.API.requestData({
@@ -1368,6 +1317,10 @@ export default {
 </script>
 
 <style lang="less">
+// .actions-B {
+//   flex: 0 0 auto;
+//   margin-left: 50px;
+// }
 .decision-page-2 {
   .content .project-table {
     tbody {

+ 2 - 2
src/views/Decision/Decision2Cjdb.vue

@@ -96,7 +96,7 @@
       <div>
         <panel title="损失电量分析">
           <multiple-bar-chart
-            :height="'calc(100vh - 21.3vh - 500px)'"
+            :height="'calc(100vh - 23.3vh - 500px)'"
             :list="analyis"
             :customerTooltip="true"
             @tooltip="tooltip"
@@ -714,7 +714,7 @@ export default {
   methods: {
     ChangZhanVal() {
 
-api.benchmarkingWplist2({
+api.benchmarkingWplist({
         
       }).then((res) => {
         this.ChangZhan = res.data;

+ 2 - 2
src/views/Decision/Decision2Cndb.vue

@@ -77,7 +77,7 @@
         <el-col :span="24" class="pd-l-8">
           <panel title="损失电量分析">
             <multiple-bar-chart
-              height="30vh"
+              height="28vh"
               :list="analyis"
               :customerTooltip="true"
               @tooltip="tooltip"
@@ -692,7 +692,7 @@ export default {
     ChangZhanVal() {
 
 
-api.benchmarkingWplist2({
+api.benchmarkingWplist({
        
       }).then((res) => {
         this.ChangZhan = res.data;

+ 19 - 20
src/views/Decision/Decision2Xldb.vue

@@ -94,7 +94,7 @@
           </div>
         </div>
       </div>
-      <div class="query-actions">
+      <div :class="detailShow == 2 ? 'query-actions1' : 'query-actions'">
         <button class="btn green">搜索</button>
         <button class="btn" @click="dbfx">对标分析</button>
         <button class="btn">导出</button>
@@ -160,7 +160,7 @@
     >
       <dayinfo
         :radarValue="radarValue"
-		:title="[windNum,windNum2]"
+        :title="[windNum, windNum2]"
         :windNum="windNum"
         :windNum2="windNum2"
         :tabs="tabs"
@@ -755,10 +755,10 @@ export default {
     this.value4 = this.getTime(1);
     this.value5 = this.getTime(2);
 
-    api.benchmarkingWplist1({}).then((res) => {
+    api.benchmarkingWplist({}).then((res) => {
       this.value1.push(res.data[0].id);
       this.AjaxCommon();
-      this.ChangZhanChange(this.value1)
+      this.ChangZhanChange(this.value1);
     });
 
     // that.API.requestData({
@@ -773,7 +773,7 @@ export default {
   },
   methods: {
     ChangZhanVal() {
-      api.benchmarkingWplist1({}).then((res) => {
+      api.benchmarkingWplist({}).then((res) => {
         this.oneData = res.data[0].id;
         this.ChangZhan = res.data;
       });
@@ -828,14 +828,13 @@ export default {
       this.clearDb();
     },
     XianLuVal(val) {
-
-      api.benchmarkingLineList({
-        projects: val,
-      }).then((res) => {
-        this.XianLu = res.data;
-      });
-
-
+      api
+        .benchmarkingLineList({
+          projects: val,
+        })
+        .then((res) => {
+          this.XianLu = res.data;
+        });
 
       // var that = this;
       // that.API.requestData({
@@ -882,17 +881,18 @@ export default {
       }
     },
     AjaxCommon() {
-
-      api.benchmarkingXldb({
-        wpids: this.value1,
+      api
+        .benchmarkingXldb({
+          wpids: this.value1,
           projectids: this.value2,
           lineids: this.value3,
           beginDate: this.value4,
           endDate: this.value5,
           target: "",
           sort: "",
-      }).then((res) => {
-         this.ajaxData = res.data;
+        })
+        .then((res) => {
+          this.ajaxData = res.data;
           var dataTab = [], //表格
             fdl = [],
             cz = [],
@@ -1018,8 +1018,7 @@ export default {
           this.outerLl = ll;
 
           this.analyis = analyis;
-      });
-
+        });
 
       // var that = this;
       // that.API.requestData({

+ 1 - 1
src/views/Decision/Decision2Xmdb.vue

@@ -724,7 +724,7 @@ export default {
   },
   methods: {
     ChangZhanVal() {
-      api.benchmarkingWplist2({}).then((res) => {
+      api.benchmarkingWplist({}).then((res) => {
         this.ChangZhan = res.data;
         this.AjaxCommon();
       });

+ 2 - 2
src/views/Decision/Decision3.vue

@@ -136,7 +136,7 @@
       </el-row>
       <panel title="损失电量分析">
         <multiple-bar-chart
-          :height="'calc(100vh - 21.3vh - 430px)'"
+          :height="'calc(100vh - 23.3vh - 430px)'"
           :list="analyis"
           :customerTooltip="true"
           @tooltip="tooltip"
@@ -783,7 +783,7 @@ export default {
   methods: {
     ChangZhanVal() {
 
-      api.benchmarkingWplist2().then((res) => {
+      api.benchmarkingWplist().then((res) => {
         this.ChangZhan = res.data;
       });
 

+ 63 - 241
src/views/Decision/Decision3Db.vue

@@ -143,7 +143,7 @@
 </template>
 
 <script>
-import DoubleLineChart from "../../components/chart/line/double-line-chart.vue";
+import DoubleLineChart from "../../components/chart/line/DayPowerChart.vue";
 import NormalRadarChart from "../../components/chart/radar/normal-radar-chart.vue";
 import SvgIcon from "../../components/coms/icon/svg-icon.vue";
 import ToolbarPanel from "../../components/coms/panel/toolbar-panel.vue";
@@ -225,21 +225,11 @@ export default {
   },
   methods: {
     ChangZhanVal() {
-      api.benchmarkingWplist1({}).then((res) => {
+      api.benchmarkingWplist({}).then((res) => {
         this.ChangZhan = res.data;
-        this.value1 = res.data[0].code
-        this.XiangMuVal(res.data[0].code)
+        this.value1 = res.data[0].code;
+        this.XiangMuVal(res.data[0].code);
       });
-
-      // var that = this;
-      // that.API.requestData({
-      //   method: "GET",
-      //   baseURL: "http://10.83.66.220:8020/",
-      //   subUrl: "benchmarking/wplist",
-      //   success(res) {
-      //     that.ChangZhan = res.data;
-      //   },
-      // });
     },
     ChangZhanChange(val) {
       this.value1 = val;
@@ -250,26 +240,13 @@ export default {
     XiangMuVal(val) {
       api
         .benchmarkingWtList({
-          wpid: val?val:'',
+          wpid: val ? val : "",
         })
         .then((res) => {
           this.XiangMu = res.data;
-          this.value2.push(res.data[0].id)
+          this.value2.push(res.data[0].id);
           this.AjaxCommon();
         });
-
-      // var that = this;
-      // that.API.requestData({
-      //   method: "GET",
-      //   baseURL: "http://10.83.66.220:8020/",
-      //   subUrl: "benchmarking/wtList",
-      //   data: {
-      //     wpid: val,
-      //   },
-      //   success(res) {
-      //     that.XiangMu = res.data;
-      //   },
-      // });
     },
     XiangMuChange(val) {
       var that = this;
@@ -293,6 +270,7 @@ export default {
       }
     },
     AjaxCommon() {
+      this.list = []
       api
         .ajaxName({
           ajaxName: this.ajaxName,
@@ -392,109 +370,6 @@ export default {
           this.tableData.data = data2;
         });
 
-      // var that = this;
-      // that.API.requestData({
-      //   method: "GET",
-      //   baseURL: "http://10.83.66.220:8020/",
-      //   subUrl: "benchmarking/" + that.ajaxName,
-      //   data: {
-
-      //     wpid: that.value1,
-      //     wtids: that.value2,
-      //     date: that.value4,
-      //     target: "",
-      //     sort: "",
-      //   },
-      //   success(res) {
-      //     var data = res.data,
-      //       data2 = [],
-      //       chart = [],
-      //       fzy = [],
-      //       fzyArr = [],
-      //       jfpl = [],
-      //       jfplArr = [];
-      //     let thisItem = [];
-      //     jfpl = data.pop(); //静风频率
-      //     fzy = data.pop(); //风资源
-      //     if (fzy["1"] == null) {
-      //       that.BASE.showMsg({
-      //         msg: "此风机无数据",
-      //         type: "success",
-      //       });
-      //       return false;
-      //     }
-      //     data.forEach((ele, index) => {
-      //       for (let key in ele) {
-      //         if (key !== "name") {
-      //           thisItem.push(ele[key]);
-      //         }
-      //       }
-      //     });
-
-      //     var count = thisItem.length / data.length;
-
-      //     data.forEach((item, index) => {
-      //       data2.push({
-      //         index: index + 1,
-      //         name: item.name,
-      //         data1: thisItem[index * count],
-      //         data2: count >= 2 ? thisItem[index * count + 1] : [],
-      //         data3: count >= 3 ? thisItem[index * count + 2] : [],
-      //         data4: count >= 4 ? thisItem[index * count + 3] : [],
-      //         data5: count >= 5 ? thisItem[index * count + 4] : [],
-      //         is_light: false,
-      //       });
-      //     });
-
-      //     Object.keys(fzy).map((key) => {
-      //       fzyArr.push(fzy[key]);
-      //     });
-      //     Object.keys(jfpl).map((key) => {
-      //       jfplArr.push(jfpl[key]);
-      //     });
-      //     fzyArr.pop();
-      //     var jfplName = jfplArr.pop();
-      //     var indicator = [
-      //       "北",
-      //       "北北西",
-      //       "北西",
-      //       "西北西",
-      //       "西",
-      //       "西南西",
-      //       "南西",
-      //       "南南西",
-      //       "南",
-      //       "南南东",
-      //       "东南",
-      //       "东南东",
-      //       "东",
-      //       "东北东",
-      //       "北东",
-      //       "北北东",
-      //     ];
-
-      //     var fzyDataArr = [];
-      //     fzyArr.forEach((item, index) => {
-      //       var arr = [];
-      //       item.forEach((e, i) => {
-      //         arr.push(e.value);
-      //       });
-      //       fzyDataArr.push([
-      //         {
-      //           indicator: indicator,
-      //           data: [
-      //             {
-      //               value: arr,
-      //             },
-      //           ],
-      //           name: jfplArr[index],
-      //         },
-      //       ]);
-      //     });
-      //     that.fzyData = fzyDataArr;
-      //     that.tableData.data = data2;
-      //   },
-      // });
 
       api
         .benchmarkingDjhxdbbottom({
@@ -503,115 +378,62 @@ export default {
           date: this.value4,
         })
         .then((res) => {
-          console.log(res);
-          var data = res.data;
-          var arrName = [],
-            arrKey = [],
-            arrData = [],
-            tempArray = [];
-          data.forEach((ele) => {
-            for (let key in ele) {
-              if (key !== "name") {
-                arrKey.push(key);
-                arrData.push(ele[key]);
-              } else {
-                arrName.push(ele[key]);
-              }
-            }
-          });
-          this.listName = arrName;
-          for (var i = 0; i < arrKey.length - 1; i++) {
-            //冒泡排序
-            for (var j = 0; j < arrKey.length - 1 - i; j++) {
-              if (parseInt(arrKey[j]) > parseInt(arrKey[j + 1])) {
-                var temp = arrKey[j];
-                arrKey[j] = arrKey[j + 1];
-                arrKey[j + 1] = temp;
-                var temp2 = arrData[j];
-                arrData[j] = arrData[j + 1];
-                arrData[j + 1] = temp2;
-              }
-            }
+          console.log(res.data);
+     
+          // var data = res.data;
+          // var arrName = [],
+          //   arrKey = [],
+          //   arrData = [],
+          //   tempArray = [];
+          // data?.forEach((ele) => {
+          //   for (let key in ele) {
+          //     if (key !== "name") {
+          //       arrKey.push(key);
+          //       arrData.push(ele[key]);
+          //     } else {
+          //       arrName.push(ele[key]);
+          //     }
+          //   }
+          // });
+          // this.listName = arrName;
+          // for (var i = 0; i < arrKey.length - 1; i++) {
+          //   //冒泡排序
+          //   for (var j = 0; j < arrKey.length - 1 - i; j++) {
+          //     if (parseInt(arrKey[j]) > parseInt(arrKey[j + 1])) {
+          //       var temp = arrKey[j];
+          //       arrKey[j] = arrKey[j + 1];
+          //       arrKey[j + 1] = temp;
+          //       var temp2 = arrData[j];
+          //       arrData[j] = arrData[j + 1];
+          //       arrData[j + 1] = temp2;
+          //     }
+          //   }
+          // }
+          // for (var i = 0; i < data.length; i++) {
+          //   var arr = [];
+          //   arrData.forEach((e, index) => {
+          //     if (index * data.length + i < arrData.length) {
+          //       arr.push({
+          //         text: arrKey[index * data.length + i],
+          //         value: arrData[index * data.length + i],
+          //       });
+          //     }
+          //   });
+          //   tempArray.push({
+          //     title: arrName[i],
+          //     value: arr,
+          //   });
+          // }
+          // this.list = res.data;
+          
+          for (const key in res.data) {
+            let obj = {}
+            obj.name = key
+            obj.value = res.data[key]
+            this.list.push(obj)
           }
-          for (var i = 0; i < data.length; i++) {
-            var arr = [];
-            arrData.forEach((e, index) => {
-              if (index * data.length + i < arrData.length) {
-                arr.push({
-                  text: arrKey[index * data.length + i],
-                  value: arrData[index * data.length + i],
-                });
-              }
-            });
-            tempArray.push({
-              title: arrName[i],
-              value: arr,
-            });
-          }
-          console.log(tempArray);
-          this.list = tempArray;
+          console.log(" this.list", this.list);
         });
-
-      // that.API.requestData({
-      //   method: "GET",
-      //   baseURL: "http://10.83.66.220:8020/",
-      //   subUrl: "benchmarking/djhxdbbottom",
-      //   data: {
-      //     wpid: that.value1,
-      //     wtids: that.value2,
-      //     date: that.value4,
-      //   },
-      //   success(res) {
-      //     console.log(res);
-      //     var data = res.data;
-
-      //     var arrName = [],
-      //       arrKey = [],
-      //       arrData = [],
-      //       tempArray = [];
-      //     data.forEach((ele) => {
-      //       for (let key in ele) {
-      //         if (key !== "name") {
-      //           arrKey.push(key);
-      //           arrData.push(ele[key]);
-      //         } else {
-      //           arrName.push(ele[key]);
-      //         }
-      //       }
-      //     });
-      //     that.listName = arrName;
-      //     for (var i = 0; i < arrKey.length - 1; i++) {
-      //       //冒泡排序
-      //       for (var j = 0; j < arrKey.length - 1 - i; j++) {
-      //         if (parseInt(arrKey[j]) > parseInt(arrKey[j + 1])) {
-      //           var temp = arrKey[j];
-      //           arrKey[j] = arrKey[j + 1];
-      //           arrKey[j + 1] = temp;
-      //           var temp2 = arrData[j];
-      //           arrData[j] = arrData[j + 1];
-      //           arrData[j + 1] = temp2;
-      //         }
-      //       }
-      //     }
-      //     for (var i = 0; i < data.length; i++) {
-      //       var arr = [];
-      //       arrData.forEach((e, index) => {
-      //         if (index * data.length + i < arrData.length) {
-      //           arr.push({
-      //             text: arrKey[index * data.length + i],
-      //             value: arrData[index * data.length + i],
-      //           });
-      //         }
-      //       });
-      //       tempArray.push({
-      //         title: arrName[i],
-      //         value: arr,
-      //       });
-      //     }
-      //     console.log(tempArray);
-      //     that.list = tempArray;
-      //   },
-      // });
     },
     reset() {
       //重置
@@ -623,8 +445,8 @@ export default {
     TypeClick(val) {
       this.TypeClass = val;
       // 重置状态start
-      this.value1 = "";
-      this.value2 = "";
+      // this.value1 = "";
+      // this.value2 = "";
       this.value4 = this.getTime(1);
       this.ajaxName = this.ajaxArr[val];
       this.AjaxCommon();

+ 211 - 67
src/views/HealthControl/Health10.vue

@@ -30,9 +30,13 @@
                 <tr>
                   <th rowspan="1" class="type1" style="width: 50px"></th>
                   <th rowspan="1" class="type1" style="width: 105px">健康度</th>
-                  <th rowspan="2" class="type1" style="width: 400px">MTBF(H/H)</th>
+                  <th rowspan="2" class="type1" style="width: 400px">
+                    MTBF(H/H)
+                  </th>
                   <th rowspan="1" class="type1" style="width: 180px"></th>
-                  <th rowspan="1" class="type1" style="width: 100px">MTTR(H)</th>
+                  <th rowspan="1" class="type1" style="width: 100px">
+                    MTTR(H)
+                  </th>
                 </tr>
               </thead>
             </table>
@@ -45,13 +49,22 @@
                         {{ item[1] }}
                       </td>
                       <td style="width: 105px">
-                        <div :style="'background-color: ' + item[0] + ';width:10px;height:10px;margin:0 auto;'"></div>
+                        <div
+                          :style="
+                            'background-color: ' +
+                            item[0] +
+                            ';width:10px;height:10px;margin:0 auto;'
+                          "
+                        ></div>
                       </td>
                       <td style="width: 400px">
                         <div class="percent-item">
                           {{ item[3] }}%
                           <div class="percent-bar" style="margin-right: 4px">
-                            <div class="percent-value" :style="'width:' + item[3] + '%'"></div>
+                            <div
+                              class="percent-value"
+                              :style="'width:' + item[3] + '%'"
+                            ></div>
                           </div>
                           <!-- 剩余9999/建个故障9999 -->
                           {{ item[4] }}
@@ -74,9 +87,17 @@
       <el-col :span="12">
         <div class="chart-title">
           <div class="title-panel" style="">
-            <span style="text-align: left; padding-left: 20px; font-size: 12px">故障信息 </span>
-            <span class="des-title">预计损失电量<span class="num">73824.0</span><span class="unit">Kwh</span></span>
-            <span class="des-title">预计检修时长<span class="num">29.33</span><span class="unit">H</span></span>
+            <span style="text-align: left; padding-left: 20px; font-size: 12px"
+              >故障信息
+            </span>
+            <span class="des-title"
+              >预计损失电量<span class="num">73824.0</span
+              ><span class="unit">Kwh</span></span
+            >
+            <span class="des-title"
+              >预计检修时长<span class="num">29.33</span
+              ><span class="unit">H</span></span
+            >
           </div>
           <!-- <img-line-chart
             height="270px"
@@ -87,13 +108,17 @@
     </el-row>
     <div class="fc-info mg-b-16">
       <panel :title="'曲线'" :showLine="false">
-        <zoom-line-chart height="28vh" :list="powerChartData.value" :units="powerChartData.units" />
+        <zoom-line-chart
+          height="28vh"
+          :list="powerChartData.value"
+          :units="powerChartData.units"
+        />
       </panel>
     </div>
     <HealthReport
       :show="healthReportShow"
       :params="reportparams"
-	  ref="eport"
+      ref="eport"
       @closed="
         (res) => {
           this.healthReportShow = false;
@@ -112,6 +137,7 @@ import ZoomLineChart from "../../components/chart/line/zoom-line-chart.vue";
 import HealthReport from "@com/other/healthReport/index.vue";
 import WeatherLineChart from "@com/chart/line/weather-line-chart.vue";
 import WtChooser from "@com/coms/wt-chooser/wt-chooser.vue";
+import api from "@api/wisdomOverhaul/health/index.js";
 
 export default {
   setup() {},
@@ -170,7 +196,7 @@ export default {
             click(e, row) {
               // that.recorddate = row.date;
               that.healthReportShow = true;
-			  that.$refs.eport.getReport(that.wtId,row.date);
+              that.$refs.eport.getReport(that.wtId, row.date);
             },
           },
         ],
@@ -242,7 +268,11 @@ export default {
             name: "故障名称",
             field: "v1",
             template: function (data) {
-              return "<div style='overflow: hidden;text-overflow:ellipsis;white-space: nowrap;'>" + data + "</div>";
+              return (
+                "<div style='overflow: hidden;text-overflow:ellipsis;white-space: nowrap;'>" +
+                data +
+                "</div>"
+              );
             },
           },
           {
@@ -329,19 +359,16 @@ export default {
       this.getWeather();
     },
     switchWt(data) {
-      this.$router.push(`/health/health10/${data.wpId}/${data.wtId}`);
+      // this.$router.push(`/health/health10/${data.wpId}/${data.wtId}`);
       this.init();
     },
     // 获取等级评价
     getTop5() {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "healthsub/gadaytop5",
-        data: {
-          wtId: that.wtId,
-        },
-        success(res) {
+      api
+        .healthsubGadaytop5({
+          wtId: this.wtId,
+        })
+        .then((res) => {
           let top5TableData = [];
           let index = 1;
           for (let key in res.data) {
@@ -355,9 +382,33 @@ export default {
             });
             index++;
           }
-          that.top5Table.data = top5TableData;
-        },
-      });
+          this.top5Table.data = top5TableData;
+        });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   subUrl: "healthsub/gadaytop5",
+      //   data: {
+      //     wtId: that.wtId,
+      //   },
+      //   success(res) {
+      //     let top5TableData = [];
+      //     let index = 1;
+      //     for (let key in res.data) {
+      //       let ele = res.data[key];
+      //       top5TableData.push({
+      //         index,
+      //         date: ele[1],
+      //         rank: ele[2],
+      //         wpId: ele[3],
+      //         wtId: ele[4],
+      //       });
+      //       index++;
+      //     }
+      //     that.top5Table.data = top5TableData;
+      //   },
+      // });
     },
 
     // 渲染健康报告表格
@@ -366,7 +417,9 @@ export default {
       for (let i = 0; i < day; i++) {
         tableData.push({
           index: i + 1,
-          date: new Date(new Date().getTime() - 3600 * 1000 * 24 * (i + 1)).formatDate("yyyy-MM-dd hh:mm:ss"),
+          date: new Date(
+            new Date().getTime() - 3600 * 1000 * 24 * (i + 1)
+          ).formatDate("yyyy-MM-dd hh:mm:ss"),
           wtId: this.wtId,
         });
       }
@@ -375,14 +428,11 @@ export default {
 
     // 获取等级评价
     getTop10() {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "healthsub/queryStopTop10",
-        data: {
-          wtId: that.wtId,
-        },
-        success(res) {
+      api
+        .healthsubQueryStopTop10({
+          wtId: this.wtId,
+        })
+        .then((res) => {
           let leftData = [];
           let rightData = [];
 
@@ -390,8 +440,12 @@ export default {
             const item = {
               index: index + 1,
               warnDesc: ele.warnDesc,
-              startTime: new Date(ele.startTime).formatDate("yyyy-MM-dd hh:mm:ss"),
-              stopTime: new Date(ele.stopTime).formatDate("yyyy-MM-dd hh:mm:ss"),
+              startTime: new Date(ele.startTime).formatDate(
+                "yyyy-MM-dd hh:mm:ss"
+              ),
+              stopTime: new Date(ele.stopTime).formatDate(
+                "yyyy-MM-dd hh:mm:ss"
+              ),
               stopHours: ele.stopHours,
             };
             if (index < 5) {
@@ -401,22 +455,48 @@ export default {
             }
           });
 
-          that.top10TableLeft.data = leftData;
-          that.top10TableRight.data = rightData;
-        },
-      });
+          this.top10TableLeft.data = leftData;
+          this.top10TableRight.data = rightData;
+        });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   subUrl: "healthsub/queryStopTop10",
+      //   data: {
+      //     wtId: that.wtId,
+      //   },
+      //   success(res) {
+      //     let leftData = [];
+      //     let rightData = [];
+
+      //     res.data.forEach((ele, index) => {
+      //       const item = {
+      //         index: index + 1,
+      //         warnDesc: ele.warnDesc,
+      //         startTime: new Date(ele.startTime).formatDate("yyyy-MM-dd hh:mm:ss"),
+      //         stopTime: new Date(ele.stopTime).formatDate("yyyy-MM-dd hh:mm:ss"),
+      //         stopHours: ele.stopHours,
+      //       };
+      //       if (index < 5) {
+      //         leftData.push(item);
+      //       } else {
+      //         rightData.push(item);
+      //       }
+      //     });
+
+      //     that.top10TableLeft.data = leftData;
+      //     that.top10TableRight.data = rightData;
+      //   },
+      // });
     },
 
     // 获取八大部件
     getMtbfByBj() {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "healthsub/getWtMttrandMtbfByBj",
-        data: {
-          wtId: that.wtId,
-        },
-        success(res) {
+
+      api.healthsubGetWtMttrandMtbfByBj({
+         wtId: this.wtId,
+      }).then((res) => {
           let partsArray = [];
           for (let key in res.data) {
             let linChartData = [];
@@ -429,22 +509,40 @@ export default {
             res.data[key].push(linChartData);
             partsArray.push(res.data[key]);
           }
-          that.partsArray = partsArray;
-        },
+          this.partsArray = partsArray;
       });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   subUrl: "healthsub/getWtMttrandMtbfByBj",
+      //   data: {
+      //     wtId: that.wtId,
+      //   },
+      //   success(res) {
+      //     let partsArray = [];
+      //     for (let key in res.data) {
+      //       let linChartData = [];
+      //       res.data[key][2].split(",").forEach((ele, index) => {
+      //         linChartData.push({
+      //           text: index + 1,
+      //           value: ele,
+      //         });
+      //       });
+      //       res.data[key].push(linChartData);
+      //       partsArray.push(res.data[key]);
+      //     }
+      //     that.partsArray = partsArray;
+      //   },
+      // });
     },
 
     // 获取发电曲线
     getFindPowerChar() {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "healthsub/findPowerChar",
-        data: {
-          wtId: that.wtId,
-        },
-        success(res) {
-          let chartUnits = ["(WM)", "(m/s)"];
+      api.healthsubFindPowerChar({
+         wtId: this.wtId,
+      }).then((res) => {
+             let chartUnits = ["(WM)", "(m/s)"];
           let chartData = [
             {
               title: "理论功率",
@@ -477,21 +575,64 @@ export default {
               value: res.data.ssfs[index],
             });
           });
-          that.powerChartData.value = chartData;
-          that.powerChartData.units = chartUnits;
-        },
+          this.powerChartData.value = chartData;
+          this.powerChartData.units = chartUnits;
       });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   subUrl: "healthsub/findPowerChar",
+      //   data: {
+      //     wtId: that.wtId,
+      //   },
+      //   success(res) {
+      //     let chartUnits = ["(WM)", "(m/s)"];
+      //     let chartData = [
+      //       {
+      //         title: "理论功率",
+      //         yAxisIndex: 0,
+      //         value: [],
+      //       },
+      //       {
+      //         title: "实际功率",
+      //         yAxisIndex: 0,
+      //         value: [],
+      //       },
+      //       {
+      //         title: "实时风速",
+      //         yAxisIndex: 1,
+      //         value: [],
+      //       },
+      //     ];
+
+      //     res.data.timearr.forEach((time, index) => {
+      //       chartData[0].value.push({
+      //         text: new Date(time).formatDate("MM-dd hh:mm"),
+      //         value: res.data.llgl[index],
+      //       });
+      //       chartData[1].value.push({
+      //         text: new Date(time).formatDate("MM-dd hh:mm"),
+      //         value: res.data.sjgl[index],
+      //       });
+      //       chartData[2].value.push({
+      //         text: new Date(time).formatDate("MM-dd hh:mm"),
+      //         value: res.data.ssfs[index],
+      //       });
+      //     });
+      //     that.powerChartData.value = chartData;
+      //     that.powerChartData.units = chartUnits;
+      //   },
+      // });
     },
 
     // 获取天气信息
     async getWeather() {
-      const { data } = await this.API.requestData({
-        method: "POST",
-        subUrl: "healthsub/getWeatherRealDay5Info",
-        data: { wpId: this.wpId },
-      });
-      // console.log(data);
-      if (data && data.data) {
+
+      api.healthsubGetWeatherRealDay5Info({
+        wpId: this.wpId
+      }).then((res) => {
+          if (res.data && res.data.data) {
         this.weatherData = data.data.ls;
         // const list = [];
         // data.data.ls.forEach((element) => {
@@ -500,6 +641,9 @@ export default {
         // list.push();
         // });
       }
+      });
+
+
     },
   },
 };

+ 125 - 42
src/views/HealthControl/Health2.vue

@@ -2,13 +2,21 @@
   <div class="health-2">
     <div class="power-info mg-b-16">
       <div class="info-tab">
-        <div class="tab" :class="type === '2' ? 'active' : ''" @click="changeDate('2')">
+        <div
+          class="tab"
+          :class="type === '2' ? 'active' : ''"
+          @click="changeDate('2')"
+        >
           <i class="svg-icon svg-icon svg-icon-sm">
             <svg-icon :svgid="'svg-h-day'" />
           </i>
           <span> 7日健康趋势 </span>
         </div>
-        <div class="tab" :class="type === '3' ? 'active' : ''" @click="changeDate('3')">
+        <div
+          class="tab"
+          :class="type === '3' ? 'active' : ''"
+          @click="changeDate('3')"
+        >
           <i class="svg-icon svg-icon svg-icon-sm">
             <svg-icon :svgid="'svg-h-month'" />
           </i>
@@ -21,8 +29,12 @@
       </div>
       <div class="info-chart">
         <!-- <panel class="info-chart-panel" :title="'损失电量分析'"> -->
-           <panel class="info-chart-panel" :title="'健康趋势'">
-          <vertival-bar-line-chart :bardata="bardata" :lineData="lineData" :height="'250px'" />
+        <panel class="info-chart-panel" :title="'健康趋势'">
+          <vertival-bar-line-chart
+            :bardata="bardata"
+            :lineData="lineData"
+            :height="'250px'"
+          />
         </panel>
       </div>
     </div>
@@ -37,36 +49,54 @@
           </div>
           <div class="tag">
             <div class="tag-title">实时风速</div>
-            <div class="tag-value">{{ item.sjfs }}<span class="unit">m/s</span></div>
+            <div class="tag-value">
+              {{ item.sjfs }}<span class="unit">m/s</span>
+            </div>
           </div>
           <div class="tag">
             <div class="tag-title">预测风速</div>
-            <div class="tag-value">{{ item.ycfs }}<span class="unit">m/s</span></div>
+            <div class="tag-value">
+              {{ item.ycfs }}<span class="unit">m/s</span>
+            </div>
           </div>
           <div class="tag">
             <div class="tag-title">健康度(优)</div>
-            <div class="tag-value">{{ item.ysl }}<span class="unit">台</span></div>
+            <div class="tag-value">
+              {{ item.ysl }}<span class="unit">台</span>
+            </div>
           </div>
           <div class="tag">
             <div class="tag-title">健康度(良)</div>
-            <div class="tag-value">{{ item.lsl }}<span class="unit">台</span></div>
+            <div class="tag-value">
+              {{ item.lsl }}<span class="unit">台</span>
+            </div>
           </div>
           <div class="tag">
             <div class="tag-title">健康度(差)</div>
-            <div class="tag-value">{{ item.csl }}<span class="unit">台</span></div>
+            <div class="tag-value">
+              {{ item.csl }}<span class="unit">台</span>
+            </div>
           </div>
         </div>
         <div class="health-info">
           <div class="title">
             设备健康度
             <div class="actions">
-              <div class="action" :class="item.showType === '1' ? 'active' : ''" @click="changeWpShowType(index, '1')">
+              <div
+                class="action"
+                :class="item.showType === '1' ? 'active' : ''"
+                @click="changeWpShowType(index, '1')"
+              >
                 <i class="svg-icon svg-icon-sm">
                   <svg-icon :svgid="'svg-wind-site'" />
                 </i>
                 比例
               </div>
-              <div class="action" :class="item.showType === '2' ? 'active' : ''" @click="changeWpShowType(index, '2')">
+              <div
+                class="action"
+                :class="item.showType === '2' ? 'active' : ''"
+                @click="changeWpShowType(index, '2')"
+              >
                 <i class="svg-icon svg-icon-sm">
                   <svg-icon :svgid="'svg-wind-site'" />
                 </i>
@@ -76,11 +106,26 @@
           </div>
           <div class="info-body">
             <div class="proportion-info" v-show="item.showType === '1'">
-              <thermometer-chart :value="item.jkd" :height="'120px'" :width="'80px'" />
-              <dashboard :value="item.csl" :max="item.jrts" :height="'150px'" :width="'150px'" />
+              <thermometer-chart
+                :value="item.jkd"
+                :height="'120px'"
+                :width="'80px'"
+              />
+              <dashboard
+                :value="item.csl"
+                :max="item.jrts"
+                :height="'150px'"
+                :width="'150px'"
+              />
             </div>
-             <div class="device-list" v-show="item.showType === '2'">
-              <div class="item orange" v-for="(gzItem, gzIndex) in item.gzId" :key="gzIndex">{{ gzItem.name }}</div>
+            <div class="device-list" v-show="item.showType === '2'">
+              <div
+                class="item orange"
+                v-for="(gzItem, gzIndex) in item.gzId"
+                :key="gzIndex"
+              >
+                {{ gzItem.name }}
+              </div>
             </div>
           </div>
         </div>
@@ -99,9 +144,17 @@ import ThermometerChart from "../../components/chart/other/thermometer-chart.vue
 import SvgIcon from "../../components/coms/icon/svg-icon.vue";
 import Panel from "../../components/coms/panel/panel.vue";
 import Table from "../../components/coms/table/table.vue";
+import api from "@api/wisdomOverhaul/health/index.js";
 export default {
   setup() {},
-  components: { SvgIcon, Panel, VertivalBarLineChart, ThermometerChart, Dashboard, Table },
+  components: {
+    SvgIcon,
+    Panel,
+    VertivalBarLineChart,
+    ThermometerChart,
+    Dashboard,
+    Table,
+  },
   data() {
     return {
       type: "2",
@@ -157,45 +210,75 @@ export default {
   methods: {
     // 获取顶部柱状图数据
     requestData() {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        timeout: 8000,
-        subUrl: "recommen/findAllChartjz",
-        data: {
+      api
+        .findAllChartjz({
           wpId: "0",
-          type: that.type,
-        },
-        success(res) {
+          type: this.type,
+        })
+        .then((res) => {
           if (res.code == 200) {
-            that.bardata.legend = ["优数量", "良数量", "差数量"];
-            that.lineData = res.data.lvchart;
-            that.bardata.area = res.data.datechart;
-            that.bardata.data[2] = res.data.cslchart;
-            that.bardata.data[1] = res.data.lslchart;
-            that.bardata.data[0] = res.data.yslchart;
+            this.bardata.legend = ["优数量", "良数量", "差数量"];
+            this.lineData = res.data.lvchart;
+            this.bardata.area = res.data.datechart;
+            this.bardata.data[2] = res.data.cslchart;
+            this.bardata.data[1] = res.data.lslchart;
+            this.bardata.data[0] = res.data.yslchart;
           }
-        },
-      });
+        });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   timeout: 8000,
+      //   subUrl: "recommen/findAllChartjz",
+      //   data: {
+      //     wpId: "0",
+      //     type: that.type,
+      //   },
+      //   success(res) {
+      //     if (res.code == 200) {
+      //       that.bardata.legend = ["优数量", "良数量", "差数量"];
+      //       that.lineData = res.data.lvchart;
+      //       that.bardata.area = res.data.datechart;
+      //       that.bardata.data[2] = res.data.cslchart;
+      //       that.bardata.data[1] = res.data.lslchart;
+      //       that.bardata.data[0] = res.data.yslchart;
+      //     }
+      //   },
+      // });
     },
 
     getAllMap() {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "healthmain/findAllMap",
-        success(res) {
-          res.data.wpmap.forEach((ele) => {
+      api.healthmainFindAllMap({
+      }).then((res) => {
+              res.data.wpmap.forEach((ele) => {
             if (ele.tqyb < 10) ele.tqyb = "0" + ele.tqyb;
             ele.showType = "1";
             ele.svgIcon = "svg-" + ele.tqyb;
           });
 
-          that.wpmap = res.data.wpmap;
+          this.wpmap = res.data.wpmap;
 
-          that.tableData.data = res.data.gzls;
-        },
+          this.tableData.data = res.data.gzls;
       });
+
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   subUrl: "healthmain/findAllMap",
+      //   success(res) {
+      //     res.data.wpmap.forEach((ele) => {
+      //       if (ele.tqyb < 10) ele.tqyb = "0" + ele.tqyb;
+      //       ele.showType = "1";
+      //       ele.svgIcon = "svg-" + ele.tqyb;
+      //     });
+
+      //     that.wpmap = res.data.wpmap;
+
+      //     that.tableData.data = res.data.gzls;
+      //   },
+      // });
     },
 
     // 改变风场显示类型

+ 50 - 41
src/views/HealthControl/Health5.vue

@@ -3,45 +3,62 @@
     <!-- 当内容超出页面时 添加 el-scrollbar 即可自动添加滚动条 -->
     <el-scrollbar>
       <div class="health-matrix">
-        <div class="health-matrix-panel" v-for="(item, index) in stationsList" :key="index">
+        <div
+          class="health-matrix-panel"
+          v-for="(item, index) in stationsList"
+          :key="index"
+        >
           <div class="header">
             <i class="svg-icon svg-icon-sm svg-icon-white">
               <svg-icon :svgid="'svg-wind-site'" />
             </i>
-            <span class="title">{{item.name}}健康矩阵列表</span>
+            <span class="title">{{ item.name }}健康矩阵列表</span>
             <div class="tools">
               <div class="tool-block">
                 <div class="legend bg-green"></div>
                 <div class="legend-text green">良好数量</div>
-                <div class="legend-value">{{item.lhsl}}</div>
+                <div class="legend-value">{{ item.lhsl }}</div>
               </div>
               <div class="tool-block">
                 <div class="legend bg-purple"></div>
                 <div class="legend-text purple">正常数量</div>
-                <div class="legend-value">{{item.zcsl}}</div>
+                <div class="legend-value">{{ item.zcsl }}</div>
               </div>
               <div class="tool-block">
                 <div class="legend bg-yellow"></div>
                 <div class="legend-text yellow">注意数量</div>
-                <div class="legend-value">{{item.zysl}}</div>
+                <div class="legend-value">{{ item.zysl }}</div>
               </div>
               <div class="tool-block">
                 <div class="legend bg-orange"></div>
                 <div class="legend-text orange">严重数量</div>
-                <div class="legend-value">{{item.yzsl}}</div>
+                <div class="legend-value">{{ item.yzsl }}</div>
               </div>
             </div>
           </div>
           <div class="body">
             <div class="matrix">
-              <div class="item" v-for="(ele, num) in windturbineList[index]" :key="num" @click="onClickJump(ele)"> 
-                <div v-if="parseInt(ele.fjzt) == 1" class="green">{{ele.wtnum}}号</div>
-                <div v-if="parseInt(ele.fjzt) == 2" class="purple">{{ele.wtnum}}号</div>
-                <div v-if="parseInt(ele.fjzt) == 3" class="yellow">{{ele.wtnum}}号</div>
-                <div v-if="parseInt(ele.fjzt) == 4" class="orange">{{ele.wtnum}}号</div>
+              <div
+                class="item"
+                v-for="(ele, num) in windturbineList[index]"
+                :key="num"
+                @click="onClickJump(ele)"
+              >
+                <div v-if="parseInt(ele.fjzt) == 1" class="green">
+                  {{ ele.wtnum }}号
+                </div>
+                <div v-if="parseInt(ele.fjzt) == 2" class="purple">
+                  {{ ele.wtnum }}号
+                </div>
+                <div v-if="parseInt(ele.fjzt) == 3" class="yellow">
+                  {{ ele.wtnum }}号
+                </div>
+                <div v-if="parseInt(ele.fjzt) == 4" class="orange">
+                  {{ ele.wtnum }}号
+                </div>
               </div>
-              <div class="blank" v-for="index of 25" :key="index"></div> 
-            </div> 
+              <div class="blank" v-for="index of 25" :key="index"></div>
+            </div>
           </div>
         </div>
       </div>
@@ -51,49 +68,41 @@
 
 <script>
 import SvgIcon from "../../components/coms/icon/svg-icon.vue";
+import api from "@api/wisdomOverhaul/health/index.js";
 export default {
   setup() {},
   components: { SvgIcon },
   data() {
     return {
-      stationsList:[], 
-      windturbineList:[]
+      stationsList: [],
+      windturbineList: [],
     };
   },
-  created(){
-    this.getHealthMatrix()
+  created() {
+    this.getHealthMatrix();
   },
-  methods:{
+  methods: {
     // 健康矩阵数据
     getHealthMatrix() {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "healthmain/findHealthMatrixMap",
-        success(res) {
-          if (res.code == 200) {
-            that.stationsList.push(res.data.fczbmap.MHS_FDC)
-            that.stationsList.push(res.data.fczbmap.NSS_FDC)
-            that.stationsList.push(res.data.fczbmap.QS_FDC)
-            that.stationsList.push(res.data.fczbmap.SBQ_FDC)
-            that.stationsList.push(res.data.fczbmap.XS_FDC)
-            that.windturbineList.push(res.data.fjmap[0]) //麻黄山
-            that.windturbineList.push(res.data.fjmap[1]) //牛首山
-            that.windturbineList.push(res.data.fjmap[2]) //青山
-            that.windturbineList.push(res.data.fjmap[3]) //石板泉
-            that.windturbineList.push(res.data.fjmap[4]) //香山
-          }
-        },
+      api.healthmainFindHealthMatrixMap().then((res) => {
+        if (res.code == 200) {
+          this.stationsList.push(res.data.fczbmap.CL_FDC);
+          this.stationsList.push(res.data.fczbmap.DX_FDC);
+          this.stationsList.push(res.data.fczbmap.KB_FDC);
+          this.windturbineList.push(res.data.fjmap[0]); //崇礼
+          this.windturbineList.push(res.data.fjmap[1]); //代县
+          this.windturbineList.push(res.data.fjmap[2]); //康宝
+        }
       });
     },
     // 跳转按钮
-    onClickJump(item){
+    onClickJump(item) {
       console.warn(item);
-       this.$router.push({
-        path: `/health/health0/${item.wpId}/${item.wtId}`
+      this.$router.push({
+        path: `/health/health0/${item.wpId}/${item.wtId}`,
       });
-    }
-  }
+    },
+  },
 };
 </script>
 

+ 199 - 65
src/views/HealthControl/Health6.vue

@@ -2,13 +2,21 @@
   <div class="health-6">
     <div class="header-info mg-b-16">
       <div class="selections">
-        <div class="item" @click="tabSelect('1')" :class="{ active: type === '1' }">
+        <div
+          class="item"
+          @click="tabSelect('1')"
+          :class="{ active: type === '1' }"
+        >
           <i class="svg-icon svg-icon-sm">
             <svg-icon :svgid="'svg-wind-site'" />
           </i>
           <span>风场</span>
         </div>
-        <div class="item" @click="tabSelect('2')" :class="{ active: type === '2' }">
+        <div
+          class="item"
+          @click="tabSelect('2')"
+          :class="{ active: type === '2' }"
+        >
           <i class="svg-icon svg-icon-sm">
             <svg-icon :svgid="'svg-h-project'" />
           </i>
@@ -17,22 +25,22 @@
       </div>
       <div class="state" v-if="false">
         <div class="state-item green">
-          <div class="dot "></div>
+          <div class="dot"></div>
           <div class="text">良好数量:</div>
           <div class="value">999</div>
         </div>
         <div class="state-item purple">
-          <div class="dot "></div>
+          <div class="dot"></div>
           <div class="text">正常数量:</div>
           <div class="value">999</div>
         </div>
         <div class="state-item yellow">
-          <div class="dot "></div>
+          <div class="dot"></div>
           <div class="text">注意数量:</div>
           <div class="value">999</div>
         </div>
         <div class="state-item orange">
-          <div class="dot "></div>
+          <div class="dot"></div>
           <div class="text">严重数量:</div>
           <div class="value">999</div>
         </div>
@@ -41,12 +49,20 @@
     <row :type="'flex'" class="mg-b-16">
       <Col :span="12">
         <panel :title="'报警统计图'" :showLine="false">
-          <dual-pie-chart :innerData="healPieData" :outerData="healPieData" :height="'230px'" />
+          <dual-pie-chart
+            :innerData="healPieData"
+            :outerData="healPieData"
+            :height="'230px'"
+          />
         </panel>
       </Col>
       <Col :span="12">
         <panel :title="'故障统计图'" :showLine="false">
-          <dual-pie-chart :innerData="stopPieData" :outerData="stopPieData" :height="'230px'" />
+          <dual-pie-chart
+            :innerData="stopPieData"
+            :outerData="stopPieData"
+            :height="'230px'"
+          />
         </panel>
       </Col>
       <!-- <Col :span="16">
@@ -63,7 +79,12 @@
     </row>
     <div class="mg-b-16">
       <panel :title="'健康状态占比'" :showLine="false">
-        <bar-line-chart :bardata="barData" :lineData="[]" :height="'230px'" :pageSize="6" />
+        <bar-line-chart
+          :bardata="barData"
+          :lineData="[]"
+          :height="'230px'"
+          :pageSize="6"
+        />
       </panel>
     </div>
     <div class="mg-b-16 curStyle">
@@ -71,10 +92,18 @@
         <MultipleLineChart :list="statusData" :units="['']" :height="'230px'" />
       </panel>
       <div class="selections">
-        <div class="item" @click="changeStatus('1')" :class="{ green: status === '1' }">
+        <div
+          class="item"
+          @click="changeStatus('1')"
+          :class="{ green: status === '1' }"
+        >
           良好
         </div>
-        <div class="item" @click="changeStatus('2')" :class="{ green: status === '2' }">
+        <div
+          class="item"
+          @click="changeStatus('2')"
+          :class="{ green: status === '2' }"
+        >
           注意
         </div>
       </div>
@@ -90,9 +119,18 @@ import Col from "../../components/coms/grid/col.vue";
 import Row from "../../components/coms/grid/row.vue";
 import SvgIcon from "../../components/coms/icon/svg-icon.vue";
 import Panel from "../../components/coms/panel/panel.vue";
+import api from "@api/wisdomOverhaul/health/index.js";
 export default {
   setup() {},
-  components: { SvgIcon, Panel, MultipleLineChart, BarLineChart, Row, Col, DualPieChart },
+  components: {
+    SvgIcon,
+    Panel,
+    MultipleLineChart,
+    BarLineChart,
+    Row,
+    Col,
+    DualPieChart,
+  },
   data() {
     return {
       type: "2",
@@ -120,14 +158,11 @@ export default {
 
     // 获取健康走势图
     getWpwarn() {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "healthoperation/countWpwarn",
-        data: {
-          type: that.type,
-        },
-        success(res) {
+      api
+        .healthoperationCountWpwarn({
+          type: this.type,
+        })
+        .then((res) => {
           let healPieData = [];
 
           res.data.forEach((ele) => {
@@ -138,21 +173,39 @@ export default {
             });
           });
 
-          that.healPieData = healPieData;
-        },
-      });
+          this.healPieData = healPieData;
+        });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   subUrl: "healthoperation/countWpwarn",
+      //   data: {
+      //     type: that.type,
+      //   },
+      //   success(res) {
+      //     let healPieData = [];
+
+      //     res.data.forEach((ele) => {
+      //       healPieData.push({
+      //         value: ele.value,
+      //         unit: "次",
+      //         name: ele.name,
+      //       });
+      //     });
+
+      //     that.healPieData = healPieData;
+      //   },
+      // });
     },
 
     // 获取故障统计图
     getStop() {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "healthoperation/countStop",
-        data: {
-          type: that.type,
-        },
-        success(res) {
+      api
+        .healthoperationCountStop({
+          type: this.type,
+        })
+        .then((res) => {
           let stopPieData = [];
 
           res.data.forEach((ele) => {
@@ -163,21 +216,39 @@ export default {
             });
           });
 
-          that.stopPieData = stopPieData;
-        },
-      });
+          this.stopPieData = stopPieData;
+        });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   subUrl: "healthoperation/countStop",
+      //   data: {
+      //     type: that.type,
+      //   },
+      //   success(res) {
+      //     let stopPieData = [];
+
+      //     res.data.forEach((ele) => {
+      //       stopPieData.push({
+      //         value: ele.value,
+      //         unit: "次",
+      //         name: ele.name,
+      //       });
+      //     });
+
+      //     that.stopPieData = stopPieData;
+      //   },
+      // });
     },
 
     // 获取健康状态占比
     getWpOrProStatus() {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "healthoperation/countWpOrProStatus",
-        data: {
-          type: that.type,
-        },
-        success(res) {
+      api
+        .healthoperationCountWpOrProStatus({
+          type: this.type,
+        })
+        .then((res) => {
           let barData = {
             area: res.data.name,
             legend: ["良好数量", "正常数量", "注意数量", "严重数量"],
@@ -197,32 +268,59 @@ export default {
             barData.data[i].push(res.data.yzList[i]);
           }
 
-          that.barData = barData;
-        },
-      });
+          this.barData = barData;
+        });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   subUrl: "healthoperation/countWpOrProStatus",
+      //   data: {
+      //     type: that.type,
+      //   },
+      //   success(res) {
+      //     let barData = {
+      //       area: res.data.name,
+      //       legend: ["良好数量", "正常数量", "注意数量", "严重数量"],
+      //       data: [],
+      //     };
+
+      //     let length = res.data.name.length;
+
+      //     for (let i = 0; i < length; i++) {
+      //       barData.data.push([]);
+      //     }
+
+      //     for (let i = 0; i < length; i++) {
+      //       barData.data[i].push(res.data.lhList[i]);
+      //       barData.data[i].push(res.data.hgList[i]);
+      //       barData.data[i].push(res.data.zyList[i]);
+      //       barData.data[i].push(res.data.yzList[i]);
+      //     }
+
+      //     that.barData = barData;
+      //   },
+      // });
     },
 
     // 获取健康状态
     getStatus() {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "healthoperation/findWpOrProStatusForHistory",
-        data: {
-          type: that.type,
-          status: that.status,
-        },
-        success(res) {
+      api
+        .healthoperationFindWpOrProStatusForHistory({
+          type: this.type,
+          status: this.status,
+        })
+        .then((res) => {
           let statusData = [];
 
           const time = res.data.time;
           for (let key in res.data) {
             if (key !== "name" && key !== "time") {
               let item = res.data[key];
-				
+
               let statusItem = {
                 title: res.data.name[0][key],
-				smooth:true,
+                smooth: true,
                 value: [],
               };
 
@@ -237,9 +335,45 @@ export default {
             }
           }
 
-          that.statusData = statusData;
-        },
-      });
+          this.statusData = statusData;
+        });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   subUrl: "healthoperation/findWpOrProStatusForHistory",
+      //   data: {
+      //     type: that.type,
+      //     status: that.status,
+      //   },
+      //   success(res) {
+      //     let statusData = [];
+
+      //     const time = res.data.time;
+      //     for (let key in res.data) {
+      //       if (key !== "name" && key !== "time") {
+      //         let item = res.data[key];
+
+      //         let statusItem = {
+      //           title: res.data.name[0][key],
+      //           smooth: true,
+      //           value: [],
+      //         };
+
+      //         time.forEach((text, index) => {
+      //           statusItem.value.push({
+      //             text: text,
+      //             value: item[index],
+      //           });
+      //         });
+
+      //         statusData.push(statusItem);
+      //       }
+      //     }
+
+      //     that.statusData = statusData;
+      //   },
+      // });
     },
 
     tabSelect(type) {
@@ -267,10 +401,10 @@ export default {
       top: 0;
       width: 50%;
       justify-content: flex-end;
-color: @gray;
+      color: @gray;
       .item {
-		  margin-right: 15px;
-		  cursor: pointer;
+        margin-right: 15px;
+        cursor: pointer;
         // flex: 0 0 80px;
         // text-align: center;
         // line-height: 33px;
@@ -283,9 +417,9 @@ color: @gray;
         // justify-content: center;
         // align-items: center;
         // cursor: pointer;
-		.green{
-			color: @green;
-		}
+        .green {
+          color: @green;
+        }
         &:hover,
         &.active {
           // background: fade(@green, 20);

+ 22 - 17
src/views/HealthControl/Health8.vue

@@ -114,6 +114,7 @@
 
 <script>
 import TableLineChart from "../../components/chart/line/table-line-chart.vue";
+import api from "@api/wisdomOverhaul/health/index.js";
 export default {
   setup() {},
   components: { TableLineChart },
@@ -159,33 +160,37 @@ export default {
       return this.colorval[val];
     },
     async search() {
-      const { data } = await this.API.requestData({
-        subUrl: "powercompare/windfarmAjax",
-      });
-      this.options = data.data;
-      this.value1 = data.data[0].id;
+      const { data } = await api.powercompareWindfarmAjax();
+      // console.log(data, 6666666666666666666666);
+      this.options = data;
+      this.value1 = data[0].id;
       this.searchWindTurbineHealthList();
     },
     async searchWindTurbineHealthList() {
-      const { data } = await this.API.requestData({
-        subUrl: "wtHealthList/windTurbineHealthList",
-        method: "POST",
-        data: {
-          wpId: this.value1,
-        },
+      const { data } = await api.wtHealthListWindTurbineHealthList({
+        wpId: this.value1,
       });
-      this.tableData = data.data;
-      console.warn(data.data);
-      data.data.forEach((k) => {
-        let arr =[]
+
+      // this.API.requestData({
+      //   subUrl: "wtHealthList/windTurbineHealthList",
+      //   method: "POST",
+      //   data: {
+      //     wpId: this.value1,
+      //   },
+      // });
+      // console.log(data,88888888888888888);  
+      this.tableData = data;
+      console.warn(data);
+      data.forEach((k) => {
+        let arr = [];
         k.futureHealth.forEach((e, index) => {
           let obj = {
             text: index,
             value: e,
           };
-          arr.push(obj)
+          arr.push(obj);
         });
-        k.futureHealth = arr
+        k.futureHealth = arr;
       });
       console.warn(this.tableData);
     },

+ 28 - 42
src/views/HealthControl/HealthTab1.vue

@@ -107,6 +107,7 @@ import VertivalBarLineChart from "../../components/chart/combination/health-bar-
 import SvgIcon from "../../components/coms/icon/svg-icon.vue";
 import Panel from "../../components/coms/panel/panel.vue";
 import HealthReport from "../../components/other/healthReport/index.vue";
+import api from "@api/wisdomOverhaul/health/index.js";
 
 export default {
   components: { SvgIcon, Panel, VertivalBarLineChart, HealthReport },
@@ -223,58 +224,43 @@ export default {
     },
     // 健康报告推荐
     requestRecommen(url) {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: url,
-        success(res) {
-          if (res.code == 200) that.recommenList = res.data;
-        },
-      });
+      api.requestRecommen({
+        url:url
+      }).then(res =>{
+        if (res.code == 200) this.recommenList = res.data;
+      })
     },
     // 操作推荐内容(提交/取消)
     requestOption(url, rid) {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: url,
-        data: { rid: rid },
-        success(res) {
-          if (res.code == 200) that.onClickRecommon(that.recommenIndex);
-        },
-      });
+      let data ={
+        rid: rid
+      }
+      api.recommen(url,data).then(res =>{
+         if (res.code == 200) this.onClickRecommon(that.recommenIndex);
+      })
     },
     // 操作推荐内容全部(提交/取消)
     requestOptionAll(url) {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: url,
-        data: { typeid: that.recommenIndex },
-        success(res) {
-          if (res.code == 200) that.onClickRecommon(that.recommenIndex);
-        },
-      });
+      let data = { typeid: this.recommenIndex }
+      api.recommen(url,data).then(res =>{
+         if (res.code == 200) this.onClickRecommon(that.recommenIndex);
+      })
     },
     // 损失电量分析  type:1 表示24小时健康趋势,2 表示七天健康趋势 3 表示30天健康趋势
     requestCoulometry(type) {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        timeout: 8000,
-        subUrl: "recommen/findAllChartjz",
-        data: { wpId: 0, type: type },
-        success(res) {
-          if (res.code == 200) {
-            that.bardata.legend = ["优数量", "良数量", "差数量"];
-            that.lineData = res.data.lvchart;
-            that.bardata.area = res.data.datechart;
-            that.bardata.data[2] = res.data.cslchart;
-            that.bardata.data[1] = res.data.lslchart;
-            that.bardata.data[0] = res.data.yslchart;
+      api.findAllChartjz({
+        wpId: 0,
+        type: type
+      }).then(res =>{
+        if (res.code == 200) {
+            this.bardata.legend = ["优数量", "良数量", "差数量"];
+            this.lineData = res.data.lvchart;
+            this.bardata.area = res.data.datechart;
+            this.bardata.data[2] = res.data.cslchart;
+            this.bardata.data[1] = res.data.lslchart;
+            this.bardata.data[0] = res.data.yslchart;
           }
-        },
-      });
+      })
     },
   },
 };

+ 46 - 34
src/views/HealthControl/HealthTab2.vue

@@ -27,7 +27,11 @@
       </div>
     </div>
     <div class="health-report">
-      <panel class="health-report-panel" :title="'已推荐风机'" :showLine="false">
+      <panel
+        class="health-report-panel"
+        :title="'已推荐风机'"
+        :showLine="false"
+      >
         <div class="report-items scroll">
           <div class="item" v-for="(item, index) in recommenList" :key="index">
             <div class="title">
@@ -36,16 +40,24 @@
             </div>
             <div class="info">
               <p>推荐理由:{{ item.reason }}</p>
-              <p>推荐检修时间:{{ new Date(item.recodedate).formatDate("yyyy-MM-dd hh:mm:ss") }}</p>
+              <p>
+                推荐检修时间:{{
+                  new Date(item.recodedate).formatDate("yyyy-MM-dd hh:mm:ss")
+                }}
+              </p>
               <p>推荐时间对应风速:{{ item.speed }} m/s</p>
-              <p>判断时间:{{ new Date(item.createdate).formatDate("yyyy-MM-dd hh:mm:ss")}}</p>
+              <p>
+                判断时间:{{
+                  new Date(item.createdate).formatDate("yyyy-MM-dd hh:mm:ss")
+                }}
+              </p>
             </div>
           </div>
         </div>
       </panel>
     </div>
   </div>
-  <health-report :show="reportshow" :params="reportparams" @closed="closed"/>
+  <health-report :show="reportshow" :params="reportparams" @closed="closed" />
 </template>
 
 <script>
@@ -53,6 +65,7 @@ import VertivalBarLineChart from "../../components/chart/combination/health-bar-
 import SvgIcon from "../../components/coms/icon/svg-icon.vue";
 import Panel from "../../components/coms/panel/panel.vue";
 import HealthReport from "../../components/other/healthReport/index.vue";
+import api from "@api/wisdomOverhaul/health/index.js";
 
 export default {
   components: { SvgIcon, Panel, VertivalBarLineChart, HealthReport },
@@ -61,7 +74,12 @@ export default {
       infoList: [
         // {title: '24小时健康趋势', svgid: 'svg-24-houre', active: false, type: 'houre'},
         { title: "7日健康趋势", svgid: "svg-h-day", active: true, type: "day" },
-        { title: "30日健康趋势", svgid: "svg-h-month", active: false, type: "month"},
+        {
+          title: "30日健康趋势",
+          svgid: "svg-h-month",
+          active: false,
+          type: "month",
+        },
       ],
       bardata: { area: [], legend: [], data: [] }, // 损失电量分析echart数值
       lineData: [],
@@ -102,33 +120,27 @@ export default {
     },
     // 损失电量分析  type:1 表示24小时健康趋势,2 表示七天健康趋势 3 表示30天健康趋势
     requestCoulometry(type) {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        timeout: 8000,
-        subUrl: "recommen/findAllChartjz",
-        data: { wpId: 0, type: type },
-        success(res) {
-          if (res.code == 200) {
-            that.bardata.legend = ["优数量", "良数量", "差数量"];
-            that.lineData = res.data.lvchart;
-            that.bardata.area = res.data.datechart;
-            that.bardata.data[2] = res.data.cslchart;
-            that.bardata.data[1] = res.data.lslchart;
-            that.bardata.data[0] = res.data.yslchart;
+      api
+        .findAllChartjz({
+          wpId: 0,
+          type: type,
+        })
+        .then((res) => {
+              if (res.code == 200) {
+            this.bardata.legend = ["优数量", "良数量", "差数量"];
+            this.lineData = res.data.lvchart;
+            this.bardata.area = res.data.datechart;
+            this.bardata.data[2] = res.data.cslchart;
+            this.bardata.data[1] = res.data.lslchart;
+            this.bardata.data[0] = res.data.yslchart;
           }
-        },
-      });
+        });
     },
-     // 已确认健康报告推荐
+    // 已确认健康报告推荐
     requestRecommen() {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: 'recommen/recommenConfirmedList',
-        success(res) {
-          if (res.code == 200) that.recommenList = res.data;
-        },
+
+        api.recommenRecommenConfirmedList().then((res) => {
+        if (res.code == 200) this.recommenList = res.data;
       });
     },
   },
@@ -277,11 +289,11 @@ export default {
           p {
             margin: 0;
             line-height: 2;
-            overflow:hidden; 
-            text-overflow:ellipsis;
-            display:-webkit-box; 
-            -webkit-box-orient:vertical;
-            -webkit-line-clamp:2; 
+            overflow: hidden;
+            text-overflow: ellipsis;
+            display: -webkit-box;
+            -webkit-box-orient: vertical;
+            -webkit-line-clamp: 2;
           }
 
           .actions {

+ 172 - 85
src/views/HealthControl/HealthTab3.vue

@@ -76,10 +76,16 @@
       <ComTable :data="tableData" height="80vh"></ComTable>
     </div>
     <div class="dialog-box">
-      <el-dialog title="消缺跟踪" v-model="dialogVisible" width="950px" custom-class="modal" :close-on-click-modal="false">
-        <info-track :formdata="trackDate"/>
-      </el-dialog>   
-    </div> 
+      <el-dialog
+        title="消缺跟踪"
+        v-model="dialogVisible"
+        width="950px"
+        custom-class="modal"
+        :close-on-click-modal="false"
+      >
+        <info-track :formdata="trackDate" />
+      </el-dialog>
+    </div>
   </div>
 </template>
 
@@ -87,64 +93,67 @@
 import InfoTrack from "./infotrack.vue";
 import ComTable from "@com/coms/table/table.vue";
 import SvgIcon from "../../components/coms/icon/svg-icon.vue";
+import api from "@api/wisdomOverhaul/health/index.js";
+
+import api1 from "@api/economic/index.js";
 
 export default {
   components: { InfoTrack, ComTable, SvgIcon },
   data() {
-    const that = this
+    const that = this;
     return {
       stations: [], // 场站
       windturbines: [], // 风机
       station: "",
-      windturbine: "",
+      windturbine: "CL01_001",
       starts: "",
       endts: new Date(),
       tableData: {
         column: [
-          { 
+          {
             name: "场站",
             field: "wfname",
-			width:'150px',
-            is_light: false
+            width: "150px",
+            is_light: false,
           },
-          { 
+          {
             name: "风机编号",
             field: "wtid",
-			width:'150px',
-            is_light: false
+            width: "150px",
+            is_light: false,
           },
-          { 
+          {
             name: "任务开始时间",
-			width:'200px',
+            width: "200px",
             field: "operationdate",
-            is_light: false
+            is_light: false,
           },
-          { 
+          {
             name: "任务接受时间",
-			width:'200px',
+            width: "200px",
             field: "departuretime",
-            is_light: false
+            is_light: false,
           },
-          { 
+          {
             name: "检修原因",
             field: "reason",
-            is_light: false
+            is_light: false,
           },
-          { 
+          {
             name: "受否下单",
-			width:'100px',
+            width: "100px",
             field: "ismain",
-            is_light: false
+            is_light: false,
           },
-          { 
+          {
             name: "任务状态",
-			width:'150px',
+            width: "150px",
             field: "status",
-            is_light: false
+            is_light: false,
           },
           {
             name: "操作",
-			width:'100px',
+            width: "100px",
             field: "",
             is_num: false,
             is_light: false,
@@ -154,7 +163,8 @@ export default {
             click(e, row) {
               that.onClickTrack(row);
             },
-          },],
+          },
+        ],
         data: [],
       },
       dialogVisible: false,
@@ -162,7 +172,9 @@ export default {
     };
   },
   created() {
-    this.starts = new Date(new Date().setMonth(new Date().getMonth()-2)).formatDate("yyyy-MM-dd");
+    this.starts = new Date(
+      new Date().setMonth(new Date().getMonth() - 2)
+    ).formatDate("yyyy-MM-dd");
     this.requestStations();
   },
   methods: {
@@ -171,86 +183,161 @@ export default {
       this.requestUnfinishedList();
     },
     // 消缺跟踪
-    onClickTrack(row){
+    onClickTrack(row) {
       this.requestTrack(row);
     },
     // 获取场站
     requestStations() {
-      let that = this;
-      that.API.requestData({
-        method: "GET",
-        subUrl: "powercompare/windfarmAjax",
-        success(res) {
-          if (res.code == 200) {
-            that.stations = res.data;
-            that.station = that.stations[3].id;
-            that.requestUnfinishedList();
-          }
-        },
+      api1.benchmarkingWplist({}).then((res) => {
+        if (res.code == 200) {
+          this.stations = res.data;
+          this.station = this.stations[0]?.id;
+        //  this.windturbine = this.windturbines[0]?.id;
+          this.requestUnfinishedList();
+        }
       });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "GET",
+      //   subUrl: "powercompare/windfarmAjax",
+      //   success(res) {
+      //     if (res.code == 200) {
+      //       that.stations = res.data;
+      //       that.station = that.stations[3].id;
+      //       that.requestUnfinishedList();
+      //     }
+      //   },
+      // });
     },
     // 获取风机
     requestWindturbines(wpid) {
-      let that = this;
-      that.API.requestData({
-        method: "GET",
-        subUrl: "powercompare/windturbineAjax",
-        data: { wpId: wpid },
-        success(res) {
-          if (res.code == 200) that.windturbines = res.data;
-        },
-      });
+      api
+        .powercompareWindturbineAjax({
+          wpId: wpid,
+        })
+        .then((res) => {
+          if (res.code == 200) {
+            this.windturbines = res.data;
+         this.windturbine = this.windturbines[0].id;
+
+          }
+        });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "GET",
+      //   subUrl: "powercompare/windturbineAjax",
+      //   data: { wpId: wpid },
+      //   success(res) {
+      //     if (res.code == 200) that.windturbines = res.data;
+      //   },
+      // });
     },
     // 获取未完成消缺单列表
     requestUnfinishedList() {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "recommen/unfinishedList",
-        data: {
-          wpId: that.station,
-          wtId: that.windturbine,
-          beginDate: new Date(that.starts).formatDate("yyyy-MM-dd"),
-          endDate: new Date(that.endts).formatDate("yyyy-MM-dd"),
-        },
-        success(res) {
+      api
+        .recommenUnfinishedList({
+          wpId: this.station,
+          wtId: this.windturbine,
+          beginDate: new Date(this.starts).formatDate("yyyy-MM-dd"),
+          endDate: new Date(this.endts).formatDate("yyyy-MM-dd"),
+        })
+        .then((res) => {
           if (res.code == 200) {
-            that.tableData.data = []
-            res.data.forEach(item => {
+            this.tableData.data = [];
+            res.data.forEach((item) => {
               let obj = {
                 wfname: item.wfname,
                 wtid: item.wtid,
-                operationdate: item.operationdate?new Date(item.operationdate).formatDate("yyyy-MM-dd hh:mm:ss"):'',
-                departuretime: item.departuretime?new Date(item.departuretime).formatDate("yyyy-MM-dd hh:mm:ss"):'',
+                operationdate: item.operationdate
+                  ? new Date(item.operationdate).formatDate(
+                      "yyyy-MM-dd hh:mm:ss"
+                    )
+                  : "",
+                departuretime: item.departuretime
+                  ? new Date(item.departuretime).formatDate(
+                      "yyyy-MM-dd hh:mm:ss"
+                    )
+                  : "",
                 reason: item.reason,
                 ismain: item.ismain,
                 status: item.status,
-                rid: item.rid
-              }
-              that.tableData.data.push(obj)
-          });
+                rid: item.rid,
+              };
+              this.tableData.data.push(obj);
+            });
           }
-        },
-      });
+        });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   subUrl: "recommen/unfinishedList",
+      //   data: {
+      //     wpId: that.station,
+      //     wtId: that.windturbine,
+      //     beginDate: new Date(that.starts).formatDate("yyyy-MM-dd"),
+      //     endDate: new Date(that.endts).formatDate("yyyy-MM-dd"),
+      //   },
+      //   success(res) {
+      //     if (res.code == 200) {
+      //       that.tableData.data = [];
+      //       res.data.forEach((item) => {
+      //         let obj = {
+      //           wfname: item.wfname,
+      //           wtid: item.wtid,
+      //           operationdate: item.operationdate
+      //             ? new Date(item.operationdate).formatDate(
+      //                 "yyyy-MM-dd hh:mm:ss"
+      //               )
+      //             : "",
+      //           departuretime: item.departuretime
+      //             ? new Date(item.departuretime).formatDate(
+      //                 "yyyy-MM-dd hh:mm:ss"
+      //               )
+      //             : "",
+      //           reason: item.reason,
+      //           ismain: item.ismain,
+      //           status: item.status,
+      //           rid: item.rid,
+      //         };
+      //         that.tableData.data.push(obj);
+      //       });
+      //     }
+      //   },
+      // });
     },
     // 通过消缺单获得详细信息
-    requestTrack(row){
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "recommen/findMainTrack",
-        data: {
+    requestTrack(row) {
+      api
+        .recommenFindMainTrack({
           rid: row.rid,
-        },
-        success(res) {
+        })
+        .then((res) => {
           if (res.code == 200) {
-            that.trackDate = res.data
-            console.warn(that.trackDate);
-             that.dialogVisible = true
+            this.trackDate = res.data;
+            console.warn(this.trackDate);
+            this.dialogVisible = true;
           }
-        },
-      });
-    }
+        });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   subUrl: "recommen/findMainTrack",
+      //   data: {
+      //     rid: row.rid,
+      //   },
+      //   success(res) {
+      //     if (res.code == 200) {
+      //       that.trackDate = res.data;
+      //       console.warn(that.trackDate);
+      //       that.dialogVisible = true;
+      //     }
+      //   },
+      // });
+    },
   },
   watch: {
     station(val) {

+ 121 - 72
src/views/HealthControl/HealthTab4.vue

@@ -84,26 +84,26 @@
         custom-class="modal"
         :close-on-click-modal="false"
       > -->
-         <el-dialog
+      <el-dialog
         title="消缺跟踪"
         v-model="dialogVisible"
         width="1200px"
         custom-class="modal"
         :close-on-click-modal="false"
       >
-        <info-history :formdata="trackDate"/>
+        <info-history :formdata="trackDate" />
       </el-dialog>
     </div>
-	<el-dialog
-	  title="消缺历史"
-	  v-model="history"
-	  width="1400px"
-	  height="800px"
-	  custom-class="modal"
-	  :close-on-click-modal="false"
-	>
-	<History :formdata="trackDate"/>
-	</el-dialog>
+    <el-dialog
+      title="消缺历史"
+      v-model="history"
+      width="1400px"
+      height="800px"
+      custom-class="modal"
+      :close-on-click-modal="false"
+    >
+      <History :formdata="trackDate" />
+    </el-dialog>
   </div>
 </template>
 
@@ -113,42 +113,44 @@ import History from "./healthTab4History.vue";
 import ComTable from "@com/coms/table/table.vue";
 import SvgIcon from "../../components/coms/icon/svg-icon.vue";
 import { warn } from "@vue/runtime-core";
+import api from "@api/wisdomOverhaul/health/index.js";
+import api1 from "@api/economic/index.js";
 
 export default {
-  components: { InfoHistory, ComTable, SvgIcon ,History},
+  components: { InfoHistory, ComTable, SvgIcon, History },
   data() {
     const that = this;
     return {
-	  history:false,
+      history: false,
       stations: [], // 场站
       windturbines: [], // 风机
       station: "",
-      windturbine: "",
+      windturbine: "CL01_001",
       starts: "",
       endts: new Date(),
       tableData: {
         column: [
           {
             name: "场站",
-			width:'120px',
+            width: "120px",
             field: "wfname",
             is_light: false,
           },
           {
             name: "风机编号",
-			width:'100px',
+            width: "100px",
             field: "wtid",
             is_light: false,
           },
           {
             name: "任务开始时间",
-			width:'150px',
+            width: "150px",
             field: "operationdate",
             is_light: false,
           },
           {
             name: "任务接受时间",
-			width:'150px',
+            width: "150px",
             field: "departuretime",
             is_light: false,
           },
@@ -164,7 +166,7 @@ export default {
           },
           {
             name: "操作",
-			width:'170px',
+            width: "170px",
             field: "",
             is_num: false,
             is_light: false,
@@ -172,13 +174,13 @@ export default {
               return "<el-button type='text' style='cursor: pointer;' value='gz'>消缺跟踪</el-button>&nbsp;&nbsp;<el-button type='text' style='cursor: pointer;' value='ls'>消缺历史</el-button>";
             },
             click(e, row) {
-				if('gz' == event.target.getAttribute("value")){
-					that.onClickTrack(row);
-				}
-				if('ls' == event.target.getAttribute("value")){
-					that.requestTrack(row);
-					that.history = true;
-				}
+              if ("gz" == event.target.getAttribute("value")) {
+                that.onClickTrack(row);
+              }
+              if ("ls" == event.target.getAttribute("value")) {
+                that.requestTrack(row);
+                that.history = true;
+              }
             },
           },
         ],
@@ -200,7 +202,7 @@ export default {
     },
     // 消缺跟踪
     onClickTrack(row) {
-	  this.dialogVisible = true;
+      this.dialogVisible = true;
       this.requestTrack(row);
     },
     // 历史查询
@@ -209,46 +211,48 @@ export default {
     },
     // 获取场站
     requestStations() {
-      let that = this;
-      that.API.requestData({
-        method: "GET",
-        subUrl: "powercompare/windfarmAjax",
-        success(res) {
+      api1.benchmarkingWplist({}).then((res) => {
+        if (res.code == 200) {
           if (res.code == 200) {
-            that.stations = res.data;
-            that.station = that.stations[3].id;
-            that.requestFinishedList();
+            this.stations = res.data;
+            this.station = this.stations[0].id;
+            this.requestFinishedList();
           }
-        },
+        }
       });
     },
     // 获取风机
     requestWindturbines(wpid) {
-      let that = this;
-      that.API.requestData({
-        method: "GET",
-        subUrl: "powercompare/windturbineAjax",
-        data: { wpId: wpid },
-        success(res) {
-          if (res.code == 200) that.windturbines = res.data;
-        },
-      });
+      api
+        .powercompareWindturbineAjax({
+          wpId: wpid,
+        })
+        .then((res) => {
+          if (res.code == 200) this.windturbines = res.data;
+        });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "GET",
+      //   subUrl: "powercompare/windturbineAjax",
+      //   data: { wpId: wpid },
+      //   success(res) {
+      //     if (res.code == 200) that.windturbines = res.data;
+      //   },
+      // });
     },
     // 获取已完成消缺单列表
     requestFinishedList() {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "recommen/finishedList",
-        data: {
-          wpId: that.station,
-          wtId: that.windturbine,
-          beginDate: new Date(that.starts).formatDate("yyyy-MM-dd"),
-          endDate: new Date(that.endts).formatDate("yyyy-MM-dd"),
-        },
-        success(res) {
+      api
+        .recommenFinishedList({
+          wpId: this.station,
+          wtId: this.windturbine,
+          beginDate: new Date(this.starts).formatDate("yyyy-MM-dd"),
+          endDate: new Date(this.endts).formatDate("yyyy-MM-dd"),
+        })
+        .then((res) => {
           if (res.code == 200) {
-            that.tableData.data = [];
+            this.tableData.data = [];
             res.data.forEach((item) => {
               let obj = {
                 wfname: item.wfname,
@@ -267,28 +271,73 @@ export default {
                 repairedcomment: item.repairedcomment,
                 rid: item.rid,
               };
-              that.tableData.data.push(obj);
+              this.tableData.data.push(obj);
             });
           }
-        },
-      });
+        });
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   subUrl: "recommen/finishedList",
+      //   data: {
+      //     wpId: that.station,
+      //     wtId: that.windturbine,
+      //     beginDate: new Date(that.starts).formatDate("yyyy-MM-dd"),
+      //     endDate: new Date(that.endts).formatDate("yyyy-MM-dd"),
+      //   },
+      //   success(res) {
+      //     if (res.code == 200) {
+      //       that.tableData.data = [];
+      //       res.data.forEach((item) => {
+      //         let obj = {
+      //           wfname: item.wfname,
+      //           wtid: item.wtid,
+      //           operationdate: item.operationdate
+      //             ? new Date(item.operationdate).formatDate(
+      //                 "yyyy-MM-dd hh:mm:ss"
+      //               )
+      //             : "",
+      //           departuretime: item.departuretime
+      //             ? new Date(item.departuretime).formatDate(
+      //                 "yyyy-MM-dd hh:mm:ss"
+      //               )
+      //             : "",
+      //           reason: item.reason,
+      //           repairedcomment: item.repairedcomment,
+      //           rid: item.rid,
+      //         };
+      //         that.tableData.data.push(obj);
+      //       });
+      //     }
+      //   },
+      // });
     },
     // 通过消缺单获得详细信息
     requestTrack(row) {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "recommen/findMainTrack",
-        timeout: 30000,
-        data: {
-          rid: row.rid,
-        },
-        success(res) {
+
+      api.recommenFindMainTrack({
+         rid: row.rid,
+      }).then((res) => {
           if (res.code == 200) {
-            that.trackDate = res.data;
+            this.trackDate = res.data;
           }
-        },
       });
+
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   subUrl: "recommen/findMainTrack",
+      //   timeout: 30000,
+      //   data: {
+      //     rid: row.rid,
+      //   },
+      //   success(res) {
+      //     if (res.code == 200) {
+      //       that.trackDate = res.data;
+      //     }
+      //   },
+      // });
     },
   },
   watch: {

+ 3 - 2
src/views/HealthControl/assess/assessindex.vue

@@ -112,7 +112,8 @@
 import ComTable from "@/components/coms/table/table-unpage.vue";
 import Dayinfo from "../dayinfo.vue";
 import GradeHistory from "../gradeHistory.vue";
-import api from "@api/economic/index.js";
+import api1 from "@api/economic/index.js";
+import api from "@api/wisdomOverhaul/grade/index.js"
 import { registerLoading } from "echarts";
 export default {
   name: "gradeassessment",
@@ -446,7 +447,7 @@ export default {
     },
     // 场站
     ChangZhanVal() {
-      api.benchmarkingWplist({}).then((res) => {
+      api1.benchmarkingWplist({}).then((res) => {
         this.ChangZhan = res.data;
         this.value1 = res.data[0].id;
       });

+ 74 - 35
src/views/HealthControl/healthLineChart.vue

@@ -1,80 +1,119 @@
 <template>
   <div class="pageBox">
     <wt-chooser @change="switchWt" :wpId="wpId" :wtId="wtId"></wt-chooser>
-    <simple-line-chart :height="'100px'" v-for="(item, index) in chartData" :key="index" :title="item.title" :data="item.data" :color="item.color" :lineTitle="item.lineTitle" />
+    <simple-line-chart
+      :height="'100px'"
+      v-for="(item, index) in chartData"
+      :key="index"
+      :title="item.title"
+      :data="item.data"
+      :color="item.color"
+      :lineTitle="item.lineTitle"
+    />
   </div>
 </template>
 
 <script>
 import SimpleLineChart from "../../components/chart/line/simple-line-chart.vue";
-import WtChooser from "@com/coms/wt-chooser/wt-chooser.vue"
+import WtChooser from "@com/coms/wt-chooser/wt-chooser.vue";
+import api from "@api/wisdomOverhaul/health/index.js";
 export default {
   setup() {},
-  components: { SimpleLineChart ,WtChooser},
+  components: { SimpleLineChart,WtChooser },
   data() {
     return {
-      chartData:[]
+      chartData: [],
     };
   },
 
   created() {
+    // console.log(this.$route.params);
     this.wtId = this.$route.params.wtId;
     this.wpId = this.$route.params.wpId;
+    // this.wtId='CL01_001'
     this.requestData();
+    
   },
-  
-  methods:{
-    switchWt(data){
-      this.$router.push(`/health/health4/healthLineChart/${data.wpId}/${data.wtId}`);
+
+  methods: {
+    switchWt(data) {
+      this.$router.push(
+        `/health/health4/healthLineChart/${data.wpId}/${data.wtId}`
+      );
       this.wtId = this.$route.params.wtId;
       this.wpId = this.$route.params.wpId;
       this.requestData();
     },
-    requestData(){
-      let that=this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "healthsub/hsFjValueIndex",
-        data:{
-          wtId: that.wtId
-        },
-        success(res) {
-
-          const color=["green","yellow","purple","blue","orange"];
-          let chartData=[];
-          let lineTitle=[];
+    requestData() {
+      api
+        .healthsubHsFjValueIndex({
+          wtId: this.wtId,
+        })
+        .then((res) => {
+          // console.log(res);
+          const color = ["green", "yellow", "purple", "blue", "orange"];
+          let chartData = [];
+          let lineTitle = [];
 
-          res.data.xData.forEach(ele=>{
+          res.data.xData.forEach((ele) => {
             lineTitle.push(new Date(ele).formatDate("hh:mm"));
           });
 
-          res.data.datasets.forEach((ele,index)=>{
+          res.data.datasets.forEach((ele, index) => {
             chartData.push({
-              title:ele.name,
-              data:ele.data,
-              color:color[index],
-              lineTitle
+              title: ele.name,
+              data: ele.data,
+              color: color[index],
+              lineTitle,
             });
           });
-          that.chartData=chartData;
-        },
-      });
-    }
-  }
+          this.chartData = chartData;
+        });
+
+      // let that=this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   subUrl: "healthsub/hsFjValueIndex",
+      //   data:{
+      //     wtId: that.wtId
+      //   },
+      //   success(res) {
+
+      //     const color=["green","yellow","purple","blue","orange"];
+      //     let chartData=[];
+      //     let lineTitle=[];
+
+      //     res.data.xData.forEach(ele=>{
+      //       lineTitle.push(new Date(ele).formatDate("hh:mm"));
+      //     });
+
+      //     res.data.datasets.forEach((ele,index)=>{
+      //       chartData.push({
+      //         title:ele.name,
+      //         data:ele.data,
+      //         color:color[index],
+      //         lineTitle
+      //       });
+      //     });
+      //     that.chartData=chartData;
+      //   },
+      // });
+    },
+  },
 };
 </script>
 
 <style lang="less" scoped>
 .pageBox {
   width: 100%;
-  height:calc(100% - 1.481vh * 2);
+  height: calc(100% - 1.481vh * 2);
   display: flex;
   flex-direction: column;
   justify-content: space-between;
 
-  .chart{
+  .chart {
     width: 100%;
-    height:25%;
+    height: 25%;
   }
 }
 </style>

+ 231 - 65
src/views/HealthControl/healthLineChart2.vue

@@ -19,7 +19,11 @@
       </div>
       <div class="info-chart">
         <panel class="info-chart-panel" :title="'健康趋势'">
-          <vertival-bar-line-chart :height="'310px'" :bardata="bardata" :lineData="lineData"/>
+          <vertival-bar-line-chart
+            :height="'310px'"
+            :bardata="bardata"
+            :lineData="lineData"
+          />
         </panel>
       </div>
     </div>
@@ -40,25 +44,41 @@ import NormalLineChart from "../../components/chart/line/normal-line-chart.vue";
 import SvgIcon from "../../components/coms/icon/svg-icon.vue";
 import Panel from "../../components/coms/panel/panel.vue";
 import Table from "../../components/coms/table/table.vue";
-import WtChooser from "@com/coms/wt-chooser/wt-chooser.vue"
+import WtChooser from "@com/coms/wt-chooser/wt-chooser.vue";
+import api from "@api/wisdomOverhaul/health/index.js";
+
 export default {
   setup() {},
-  components: { SvgIcon, Panel, VertivalBarLineChart, NormalLineChart, Table, WtChooser },
+  components: {
+    SvgIcon,
+    Panel,
+    VertivalBarLineChart,
+    NormalLineChart,
+    Table,
+    WtChooser,
+  },
   data() {
     return {
       infoList: [
         // {title: '24小时健康趋势', svgid: 'svg-24-houre', active: false, type: 'houre'},
         { title: "7日健康趋势", svgid: "svg-h-day", active: true, type: "day" },
-        { title: "30日健康趋势", svgid: "svg-h-month", active: false, type: "month"},
+        {
+          title: "30日健康趋势",
+          svgid: "svg-h-month",
+          active: false,
+          type: "month",
+        },
       ],
       tableData: {
         column: [
-          { name: "部件名称",field: "name" },
-          { name: "MTBF(h)",field: "v1", is_num: true },
-          { name: "MTTR(h)",field: "v2", is_num: true },
-          { name: "损失电量(kw/h)",field: "v3",is_num: true },
-          { name: "当前状态",field: "v4",
-            template: function(data) {
+          { name: "部件名称", field: "name" },
+          { name: "MTBF(h)", field: "v1", is_num: true },
+          { name: "MTTR(h)", field: "v2", is_num: true },
+          { name: "损失电量(kw/h)", field: "v3", is_num: true },
+          {
+            name: "当前状态",
+            field: "v4",
+            template: function (data) {
               if (data == 1) return "<div class='dot green'></div>";
               else if (data == 2) return "<div class='dot purple'></div>";
               else if (data == 3) return "<div class='dot yellow'></div>";
@@ -72,25 +92,27 @@ export default {
       lineData: [],
       wtId: undefined,
       wpId: undefined,
-      hisValue: {},  //健康走势图
+      hisValue: {}, //健康走势图
     };
   },
   created() {
     this.init();
   },
-  methods:{
-    init(){
+  methods: {
+    init() {
       this.wtId = this.$route.params.wtId;
       this.wpId = this.$route.params.wpId;
       this.requestCoulometry(2);
       this.requestHisValue();
       this.requestMttrrand();
     },
-    switchWt(data){
-      this.$router.push(`/health/health4/healthLineChart2/${data.wpId}/${data.wtId}`);
+    switchWt(data) {
+      this.$router.push(
+        `/health/health4/healthLineChart2/${data.wpId}/${data.wtId}`
+      );
       this.init();
     },
-     // 未确认缺陷按钮下的健康趋势选项
+    // 未确认缺陷按钮下的健康趋势选项
     onClickInfo(item) {
       this.infoList.forEach((element) => {
         if (item.type == element.type) {
@@ -109,65 +131,209 @@ export default {
     },
     // 损失电量分析  type:1 表示24小时健康趋势,2 表示七天健康趋势 3 表示30天健康趋势
     requestCoulometry(type) {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        timeout: 8000,
-        subUrl: "recommen/findAllChartjz",
-        data: { wpId: 0, type: type },
-        success(res) {
+      api
+        .findAllChartjz({
+          wpId: 0,
+          type: type,
+        })
+        .then((res) => {
           if (res.code == 200) {
-            that.bardata.legend = ["优数量", "良数量", "差数量"];
-            that.lineData = res.data.lvchart;
-            that.bardata.area = res.data.datechart;
-            that.bardata.data[2] = res.data.cslchart;
-            that.bardata.data[1] = res.data.lslchart;
-            that.bardata.data[0] = res.data.yslchart;
+            this.bardata.legend = ["优数量", "良数量", "差数量"];
+            this.lineData = res.data.lvchart;
+            this.bardata.area = res.data.datechart;
+            this.bardata.data[2] = res.data.cslchart;
+            this.bardata.data[1] = res.data.lslchart;
+            this.bardata.data[0] = res.data.yslchart;
           }
-        },
-      });
+        });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   timeout: 8000,
+      //   subUrl: "recommen/findAllChartjz",
+      //   data: { wpId: 0, type: type },
+      //   success(res) {
+      //     if (res.code == 200) {
+      //       that.bardata.legend = ["优数量", "良数量", "差数量"];
+      //       that.lineData = res.data.lvchart;
+      //       that.bardata.area = res.data.datechart;
+      //       that.bardata.data[2] = res.data.cslchart;
+      //       that.bardata.data[1] = res.data.lslchart;
+      //       that.bardata.data[0] = res.data.yslchart;
+      //     }
+      //   },
+      // });
     },
     //风机健康走势图
-    requestHisValue(){
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "healthsub/findWtHisValueForBj",
-        data: { wtId: that.wtId },
-        success(res) {
-          if(res.code == 200){
+    requestHisValue() {
+      api
+        .healthsubFindWtHisValueForBj({
+          wtId: this.wtId,
+        })
+        .then((res) => {
+          if (res.code == 200) {
             let data = res.data;
-            data.time = data.time.slice(0, 65)
-            that.hisValue = data
+            data.time = data.time.slice(0, 65);
+            this.hisValue = data;
           }
-        },
-      });
+        });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   subUrl: "healthsub/findWtHisValueForBj",
+      //   data: { wtId: that.wtId },
+      //   success(res) {
+      //     if (res.code == 200) {
+      //       let data = res.data;
+      //       data.time = data.time.slice(0, 65);
+      //       that.hisValue = data;
+      //     }
+      //   },
+      // });
     },
     //部件健康情况
-    requestMttrrand(){
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "healthsub/getWtMttrandMtbfByBj",
-        data: { wtId: that.wtId },
-        success(res) {
-          if(res.code == 200){
+    requestMttrrand() {
+      api
+        .healthsubGetWtMttrandMtbfByBj({
+          wtId: this.wtId,
+        })
+        .then((res) => {
+          if (res.code == 200) {
             let data = res.data;
-            that.tableData.data = [
-              {name:data.clx[1], v1:data.clx[4], v2:data.clx[5], v3:data.clx[6], v4:data.clx[0]},
-              {name:data.fdj[1], v1:data.fdj[4], v2:data.fdj[5], v3:data.fdj[6], v4:data.fdj[0]},
-              {name:data.bj[1], v1:data.bj[4], v2:data.bj[5], v3:data.bj[6], v4:data.bj[0]},
-              {name:data.zk[1], v1:data.zk[4], v2:data.zk[5], v3:data.zk[6], v4:data.zk[0]},
-              {name:data.zz[1], v1:data.zz[4], v2:data.zz[5], v3:data.zz[6], v4:data.zz[0]},
-              {name:data.ph[1], v1:data.ph[4], v2:data.ph[5], v3:data.ph[6], v4:data.ph[0]},
-              {name:data.jc[1], v1:data.jc[4], v2:data.jc[5], v3:data.jc[6], v4:data.jc[0]},
-              {name:data.bpq[1], v1:data.bpq[4], v2:data.bpq[5], v3:data.bpq[6], v4:data.bpq[0]},
-            ]
+            this.tableData.data = [
+              {
+                name: data.clx[1],
+                v1: data.clx[4],
+                v2: data.clx[5],
+                v3: data.clx[6],
+                v4: data.clx[0],
+              },
+              {
+                name: data.fdj[1],
+                v1: data.fdj[4],
+                v2: data.fdj[5],
+                v3: data.fdj[6],
+                v4: data.fdj[0],
+              },
+              {
+                name: data.bj[1],
+                v1: data.bj[4],
+                v2: data.bj[5],
+                v3: data.bj[6],
+                v4: data.bj[0],
+              },
+              {
+                name: data.zk[1],
+                v1: data.zk[4],
+                v2: data.zk[5],
+                v3: data.zk[6],
+                v4: data.zk[0],
+              },
+              {
+                name: data.zz[1],
+                v1: data.zz[4],
+                v2: data.zz[5],
+                v3: data.zz[6],
+                v4: data.zz[0],
+              },
+              {
+                name: data.ph[1],
+                v1: data.ph[4],
+                v2: data.ph[5],
+                v3: data.ph[6],
+                v4: data.ph[0],
+              },
+              {
+                name: data.jc[1],
+                v1: data.jc[4],
+                v2: data.jc[5],
+                v3: data.jc[6],
+                v4: data.jc[0],
+              },
+              {
+                name: data.bpq[1],
+                v1: data.bpq[4],
+                v2: data.bpq[5],
+                v3: data.bpq[6],
+                v4: data.bpq[0],
+              },
+            ];
           }
-        },
-      });
-    }
-  }
+        });
+
+      // let that = this;
+      // that.API.requestData({
+      //   method: "POST",
+      //   subUrl: "healthsub/getWtMttrandMtbfByBj",
+      //   data: { wtId: that.wtId },
+      //   success(res) {
+      //     if (res.code == 200) {
+      //       let data = res.data;
+      //       that.tableData.data = [
+      //         {
+      //           name: data.clx[1],
+      //           v1: data.clx[4],
+      //           v2: data.clx[5],
+      //           v3: data.clx[6],
+      //           v4: data.clx[0],
+      //         },
+      //         {
+      //           name: data.fdj[1],
+      //           v1: data.fdj[4],
+      //           v2: data.fdj[5],
+      //           v3: data.fdj[6],
+      //           v4: data.fdj[0],
+      //         },
+      //         {
+      //           name: data.bj[1],
+      //           v1: data.bj[4],
+      //           v2: data.bj[5],
+      //           v3: data.bj[6],
+      //           v4: data.bj[0],
+      //         },
+      //         {
+      //           name: data.zk[1],
+      //           v1: data.zk[4],
+      //           v2: data.zk[5],
+      //           v3: data.zk[6],
+      //           v4: data.zk[0],
+      //         },
+      //         {
+      //           name: data.zz[1],
+      //           v1: data.zz[4],
+      //           v2: data.zz[5],
+      //           v3: data.zz[6],
+      //           v4: data.zz[0],
+      //         },
+      //         {
+      //           name: data.ph[1],
+      //           v1: data.ph[4],
+      //           v2: data.ph[5],
+      //           v3: data.ph[6],
+      //           v4: data.ph[0],
+      //         },
+      //         {
+      //           name: data.jc[1],
+      //           v1: data.jc[4],
+      //           v2: data.jc[5],
+      //           v3: data.jc[6],
+      //           v4: data.jc[0],
+      //         },
+      //         {
+      //           name: data.bpq[1],
+      //           v1: data.bpq[4],
+      //           v2: data.bpq[5],
+      //           v3: data.bpq[6],
+      //           v4: data.bpq[0],
+      //         },
+      //       ];
+      //     }
+      //   },
+      // });
+    },
+  },
 };
 </script>
 

+ 118 - 0
src/views/HealthControl/zhpj/healthpieChart.vue

@@ -0,0 +1,118 @@
+<template>
+  <div class="chart" :id="id"></div>
+</template>
+
+<script>
+import * as echarts from "echarts";
+import util from "@/helper/util.js";
+
+export default {
+  props: {
+    width: {
+      type: String,
+      default: "28.519vh",
+    },
+    height: {
+      type: String,
+      default: "28.519vh",
+    },
+  },
+  data() {
+    return {
+      id: "",
+      chart: null,
+    };
+  },
+  created() {
+    this.id = "pie-chart-" + util.newGUID();
+  },
+  mounted() {
+    this.$el.style.width = this.width;
+    this.$el.style.height = this.height;
+    this.chart = echarts.init(this.$el);
+    this.initEcharts();
+  },
+  methods: {
+    initEcharts() {
+      const option = {
+        angleAxis: {
+          type: "category",
+          data: ["北", "东北", "东", "东南", "南", "西南", "西", "西北"],
+        },
+        color: [
+          {
+            type: "linear",
+            x: 0,
+            y: 0,
+            x2: 1,
+            y2: 2,
+            colorStops: [
+              {
+                offset: 0,
+                color: "red", // 0% 处的颜色
+              },
+              {
+                offset: 1,
+                color: "blue", // 100% 处的颜色
+              },
+            ],
+            global: false, // 缺省为 false
+          },
+        ],
+
+        radiusAxis: {},
+        polar: {},
+        tooltip: {
+          trigger: "item",
+          // formatter: '555'
+        },
+        series: [
+          {
+            type: "bar",
+            data: [2, 0.5, 1, 1.2, 1.6, 2, 1, 0.5],
+            coordinateSystem: "polar",
+            // name: "[0.0:2.5]",
+            stack: "a",
+            emphasis: {
+              focus: "series",
+            },
+          },
+        ],
+        textStyle: {
+          color: "#9a60b4",
+          fontSize: "19",
+          fontWeight: 800,
+        },
+        // legend: {
+        //   show: false,
+        //   data: [
+        //     "[0.0:2.5]",
+        //     "[2.5:5.0]",
+        //     "[5.0:7.5]",
+        //     "[7.5:10.0]",
+        //     "[10.0:12.5]",
+        //     "[12.5:15.0]",
+        //     "[15.0:17.5]",
+        //     "[17.5:20.0]",
+        //   ],
+        //   // orient: "vertical", //设置显示顺序,默认水平(水平,竖直)
+        //   // x:0, //水平位置
+        //   // y: 70, //竖直位置
+        //   itemGap: 5, // 设置间距
+        //   textStyle: {
+        //     color: "#fff",
+        //   }, //文本样式
+        // },
+      };
+      this.chart.setOption(option); // 渲染页面
+    },
+  },
+};
+</script>
+<style lang="less" scoped>
+.chart {
+  width: 100%;
+  height: 100%;
+  display: inline-block;
+}
+</style>

+ 94 - 312
src/views/Home/Home.vue

@@ -5,7 +5,7 @@
         <Row type="flex" class="weather">
           <Col :span="24">
             <com-panel
-              :title="tqmap.name || '---'"
+              :title="tqmap.name"
               :sub-title="nowTime + ' 实况'"
               icon="fa fa-map-marker"
             >
@@ -43,7 +43,7 @@
       <div class="top-mid-panel">
         <Map
           :wpId="wpId"
-          :day="String(jczbmap.aqts || '---')"
+          :day="String(jczbmap.aqts)"
           :data="fcmap"
           :xtData="xtmap"
           @mapClick="changeShowType"
@@ -59,7 +59,7 @@
               <!-- 避免故障、提升率、降低率、风能利用率、设备可利用率、综合场用电率、存在隐患风机 -->
               <coulometric-analysis
                 :bmgz="gxkmap.tjsl"
-                :tsl="30"
+                :tsl="0"
                 :jdl="gxkmap.tjl"
                 :fnlyl="wxssmap.yfnlyl"
                 :sbklyl="gxkmap.ysbklyl"
@@ -84,7 +84,7 @@
         </Row>
       </div>
     </Row>
-    <Row type="flex" style="height: calc(40vh - 236px); margin-top: 20px">
+    <Row type="flex" style="height: calc(40vh - 236px); margin-top: 30px">
       <Col :span="12">
         <toolbar-panel
           :title="
@@ -656,7 +656,7 @@
                   </div>
                   <div class="value">
                     <span class="text gray">未知</span>
-                    <span>---</span>
+                    <span>0</span>
                   </div>
                 </div>
               </div>
@@ -931,6 +931,23 @@ export default {
   },
 
   methods: {
+
+       mGetDate(){
+     var date = new Date();
+     var year = date.getFullYear();
+     var month = date.getMonth()+1;
+     var d = new Date(year, month, 0);
+     return d.getDate();
+},
+
+    getDAY(){
+  //  let curDate = new Date();
+  //  let curMonth = curDate.getMonth(); //当前月份 需要加1
+  //  curDate.setMonth(curMonth+1); 
+  //  curDate.setDate(0) //关键
+  //  curDate.getDate(); //计算的当月总天数
+   return this.mGetDate()-new Date().getDate()?this.mGetDate()-new Date().getDate():1 // new Date().getDate()当前几号  总天数-当前即可
+    },
     // 打开天气弹窗
     openWeatherDialog() {
       api
@@ -968,45 +985,6 @@ export default {
           this.weatherChart = weatherChart;
           this.showWeatherDialog = true;
         });
-      // let that = this;
-      // that.API.requestData({
-      //   method: "POST",
-      //   subUrl: "genreset/getWeatherRealDay5Info",
-      //   data: {
-      //     wpId: that.wpId,
-      //   },
-      //   success(res) {
-      //     const keys = ["wd", "sd"];
-      //     let weatherChart = [
-      //       {
-      //         title: "温度",
-      //         smooth: true,
-      //         value: [],
-      //       },
-      //       {
-      //         title: "湿度",
-      //         smooth: true,
-      //         value: [],
-      //       },
-      //     ];
-
-      //     res.data.ls.forEach((ele) => {
-      //       ele.time = new Date(ele.time).formatDate("yyyy-MM-dd hh:mm");
-      //     });
-
-      //     keys.forEach((key, keyIndex) => {
-      //       res.data.ls.forEach((ele) => {
-      //         weatherChart[keyIndex].value.push({
-      //           text: ele.time,
-      //           value: ele[key],
-      //         });
-      //       });
-      //     });
-      //     that.tqmap5 = res.data.ls;
-      //     that.weatherChart = weatherChart;
-      //     that.showWeatherDialog = true;
-      //   },
-      // });
     },
 
     // 请求服务
@@ -1044,7 +1022,7 @@ export default {
               subUrl: "genreset/findGLDetail",
               targetName: "bzgl",
               dialogType: "powerLineChart",
-              max: res.data.jczbmap.zjts,
+              max: res.data.jczbmap.zjrl,
             },
             {
               title: "应发功率",
@@ -1053,7 +1031,7 @@ export default {
               subUrl: "genreset/findGLDetail",
               targetName: "yfgl",
               dialogType: "powerLineChart",
-              max: res.data.jczbmap.zjts,
+              max: res.data.jczbmap.zjrl,
             },
             {
               title: "实际功率",
@@ -1062,10 +1040,9 @@ export default {
               subUrl: "genreset/findGLDetail",
               targetName: "sjgl",
               dialogType: "powerLineChart",
-              max: res.data.jczbmap.zjts,
+              max: res.data.jczbmap.zjrl,
             },
           ];
-          // console.log('res.data.jczbmap',res.data.jczbmap);
           this.jczbmap = res.data.jczbmap;
           this.wxssmap = res.data.wxssmap;
           this.gxkmap = res.data.gxkmap;
@@ -1095,11 +1072,12 @@ export default {
             },
             {
               name: "当月预测电量",
-              value: res.data.jczbmap.yycfdl,
+              value: ((res.data.jczbmap.yfdl+res.data.jczbmap.rycfdl)*(this.getDAY())* 1.08).toFixed(2),
+              // 预测电量临时算法=(月发电量+日预测发电量*(日历天数-当前日数))*预测发电量系数
               // total: res.data.jczbmap.yfdlsx,
               total:
                 res.data.jczbmap.yycfdl >= res.data.jczbmap.yfdl
-                  ? res.data.jczbmap.yycfdl + 200
+                  ? ((res.data.jczbmap.yfdl+res.data.jczbmap.rycfdl)*(this.getDAY())* 1.08).toFixed(2) + 200
                   : res.data.jczbmap.yfdl + 200,
             },
             {
@@ -1112,7 +1090,6 @@ export default {
                   : res.data.jczbmap.yfdl + 200,
             },
           ];
-
           this.planData = {
             yfdl: res.data.jczbmap.yfdl,
             nfdl: res.data.jczbmap.nfdl,
@@ -1122,113 +1099,6 @@ export default {
             nwcl: res.data.gxkmap.nwcl,
           };
         });
-
-      // let that = this;
-      // that.API.requestData({
-      //   showLoading,
-      //   method: "POST",
-      //   subUrl: "genreset/findBasicDataInfo",
-      //   timeout: 60000,
-      //   data: {
-      //     id: that.wpId,
-      //   },
-      //   success(res) {
-      //     that.powerData = [
-      //       {
-      //         title: that.wpId === '-2' || that.wpId.indexOf('GDC') !== -1 ? "日照强度" : "风速",
-
-      //         dialogTitle: that.wpId == 0 ? '详情' : that.wpId === '-2' || that.wpId.indexOf('GDC') !== -1 ? "日照强度详情" : "风速详情",
-      //         subUrl: "genreset/findGLDetail",
-      //         targetName: "ssfs",
-      //         dialogType: "powerLineChart",
-      //         max: 30,
-      //       },
-      //       {
-      //         title: "保证功率",
-      //         value: res.data.jczbmap.bzgl,
-      //         dialogTitle: "保证功率详情",
-      //         subUrl: "genreset/findGLDetail",
-      //         targetName: "bzgl",
-      //         dialogType: "powerLineChart",
-      //         max: res.data.jczbmap.zjts,
-      //       },
-      //       {
-      //         title: "应发功率",
-      //         value: res.data.jczbmap.yfgl,
-      //         dialogTitle: "应发功率详情",
-      //         subUrl: "genreset/findGLDetail",
-      //         targetName: "yfgl",
-      //         dialogType: "powerLineChart",
-      //         max: res.data.jczbmap.zjts,
-      //       },
-      //       {
-      //         title: "实际功率",
-      //         value: res.data.jczbmap.sjgl,
-      //         dialogTitle: "实际功率详情",
-      //         subUrl: "genreset/findGLDetail",
-      //         targetName: "sjgl",
-      //         dialogType: "powerLineChart",
-      //         max: res.data.jczbmap.zjts,
-      //       },
-      //     ];
-
-      //     that.jczbmap = res.data.jczbmap;
-      //     that.wxssmap = res.data.wxssmap;
-      //     that.gxkmap = res.data.gxkmap;
-      //     that.mxztmap = res.data.mxztmap;
-      //     that.fcmap = res.data.fcmap;
-      //     that.xtmap = res.data.xtmap;
-      //     that.tqmap = res.data.tqmap;
-
-      //     that.ForecastPower = [
-      //       {
-      //         name: "当日预测电量",
-      //         value: res.data.jczbmap.rycfdl,
-      //         // total: res.data.jczbmap.rfdlsx,
-      //         total:
-      //           res.data.jczbmap.rycfdl >= res.data.jczbmap.rfdl
-      //             ? res.data.jczbmap.rycfdl + 100
-      //             : res.data.jczbmap.rfdl + 100,
-      //       },
-      //       {
-      //         name: "实际发电量",
-      //         value: res.data.jczbmap.rfdl,
-      //         // total: res.data.jczbmap.rfdlsx,
-      //         total:
-      //           res.data.jczbmap.rycfdl >= res.data.jczbmap.rfdl
-      //             ? res.data.jczbmap.rycfdl + 100
-      //             : res.data.jczbmap.rfdl + 100,
-      //       },
-      //       {
-      //         name: "当月预测电量",
-      //         value: res.data.jczbmap.yycfdl,
-      //         // total: res.data.jczbmap.yfdlsx,
-      //         total:
-      //           res.data.jczbmap.yycfdl >= res.data.jczbmap.yfdl
-      //             ? res.data.jczbmap.yycfdl + 200
-      //             : res.data.jczbmap.yfdl + 200,
-      //       },
-      //       {
-      //         name: "实际发电量",
-      //         value: res.data.jczbmap.yfdl,
-      //         // total: res.data.jczbmap.yfdlsx,
-      //         total:
-      //           res.data.jczbmap.yycfdl >= res.data.jczbmap.yfdl
-      //             ? res.data.jczbmap.yycfdl + 200
-      //             : res.data.jczbmap.yfdl + 200,
-      //       },
-      //     ];
-
-      //     that.planData = {
-      //       yfdl: res.data.jczbmap.yfdl,
-      //       nfdl: res.data.jczbmap.nfdl,
-      //       yfdljh: res.data.gxkmap.yfdljh,
-      //       nfdljh: res.data.gxkmap.nfdljh,
-      //       ywcl: res.data.gxkmap.ywcl,
-      //       nwcl: res.data.gxkmap.nwcl,
-      //     };
-      //   },
-      // });
     },
 
     getCharts() {
@@ -1324,18 +1194,16 @@ export default {
           ];
 
           rdlKey.forEach((keyEle, keyIndex) => {
-              // console.log(7777777777,keyEle,keyIndex);
-              // console.log(res);
-              res.data.rdlvos.forEach((cEle) => {
-                DayPower.value[keyIndex].value.push({
-                  text: cEle.timestr,
-                  value: cEle[keyEle],
-                });
+            res.data?.rdlvos?.forEach((cEle) => {
+              DayPower.value[keyIndex].value.push({
+                text: cEle.timestr,
+                value: cEle[keyEle],
               });
+            });
           });
 
           glKey.forEach((keyEle, keyIndex) => {
-            res.data.glvos.forEach((cEle) => {
+            res?.data?.glvos.forEach((cEle) => {
               Powertrend[keyIndex].value.push({
                 text: new Date(cEle.time).formatDate("hh:mm"),
                 value: cEle[keyEle],
@@ -1346,122 +1214,6 @@ export default {
           this.DayPower = DayPower;
           this.Powertrend = Powertrend;
         });
-
-      // let that = this;
-      // that.API.requestData({
-      //   method: "POST",
-      //   subUrl: "genreset/findPowerInfo",
-      //   data: {
-      //     id: that.wpId,
-      //   },
-      //   success(res) {
-      //     let rdlKey = ["value1", "value2", "value3", "speed"];
-      // let dw = {
-      //   units:"",
-      //   title:""
-      // };
-      // that.wpId === '-2' || that.wpId.indexOf('GDC') !== -1 ?
-      // dw={
-      //   units:"(w/㎡)",
-      //   title:"日照"
-      // } : dw={
-      //   units:"(m/s)",
-      //   title:"风速"
-      // };
-      //     let DayPower = {
-      //       units: ["(万kWh)", dw.units],
-      //       value: [
-      //         {
-      //           title: "发电量",
-      //           yAxisIndex: 0,
-      //           value: [],
-      //         },
-      //         {
-      //           title: "上网电量",
-      //           yAxisIndex: 0,
-      //           value: [],
-      //         },
-      //         {
-      //           title: "购网电量",
-      //           yAxisIndex: 0,
-      //           value: [],
-      //         },
-      //         {
-      //           title: dw.title,
-      //           yAxisIndex: 1,
-      //           value: [],
-      //         },
-      //       ],
-      //     };
-
-      //     let glKey = [
-      //       "value2",
-      //       "value1",
-      //       "value5",
-      //       "value4",
-      //       "value7",
-      //       "value6",
-      //     ];
-      //     let Powertrend = [
-      //       {
-      //         title: "实发功率",
-      //         smooth: true,
-      //         value: [],
-      //       },
-      //       {
-      //         title: "理论功率",
-      //         smooth: true,
-      //         value: [],
-      //       },
-      //       {
-      //         title: "保证功率",
-      //         smooth: true,
-      //         value: [],
-      //       },
-      //       {
-      //         title: "4小时预测功率",
-      //         smooth: true,
-      //         value: [],
-      //       },
-      //       {
-      //         title: "24小时预测功率",
-      //         smooth: true,
-      //         value: [],
-      //       },
-      //       {
-      //         title: that.wpId === '-2' ? "日照强度" : "平均风速",
-      //         smooth: true,
-      //         value: [],
-      //       },
-      //       {
-      //         title: "72小时预测功率",
-      //         smooth: true,
-      //         value: [],
-      //       },
-      //     ];
-
-      //     rdlKey.forEach((keyEle, keyIndex) => {
-      //       res.data.rdlvos.forEach((cEle) => {
-      //         DayPower.value[keyIndex].value.push({
-      //           text: cEle.timestr,
-      //           value: cEle[keyEle],
-      //         });
-      //       });
-      //     });
-
-      //     glKey.forEach((keyEle, keyIndex) => {
-      //       res.data.glvos.forEach((cEle) => {
-      //         Powertrend[keyIndex].value.push({
-      //           text: new Date(cEle.time).formatDate("hh:mm"),
-      //           value: cEle[keyEle],
-      //         });
-      //       });
-      //     });
-
-      //     that.DayPower = DayPower;
-      //     that.Powertrend = Powertrend;
-      //   },
-      // });
     },
 
     // 点击地图展示类型
@@ -1543,21 +1295,6 @@ export default {
         this.dialogData = res.data;
         this.dialogType = dialogType;
       });
-
-      // let that = this;
-      // that.API.requestData({
-      //   method: "POST",
-      //   subUrl,
-      //   data: {
-      //     id: that.wpId,
-      //     targetName,
-      //   },
-      //   success(res) {
-      //     that.dialogShow = true;
-      //     that.dialogData = res.data;
-      //     that.dialogType = dialogType;
-      //   },
-      // });
     },
 
     // 点击安全天数下的场站按钮重置数据
@@ -1584,21 +1321,6 @@ export default {
           this.dialogType = "table";
           this.dialogShow = true;
         });
-
-      // let that = this;
-
-      // that.API.requestData({
-      //   method: "POST",
-      //   subUrl: "/genreset/getForecastwindspeedInfo",
-      //   data: {
-      //     wpId: that.wpId,
-      //   },
-      //   success(res) {
-      //     that.dialogData = res.data;
-      //     that.dialogType = "table";
-      //     that.dialogShow = true;
-      //   },
-      // });
     },
 
     // 显示功率复核图表
@@ -1993,4 +1715,64 @@ export default {
     }
   }
 }
+.haha{
+  height: 100px;
+  width: 150px;
+  position: relative;
+  border-radius: 10px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  background-image: linear-gradient(45deg, gold, deeppink);
+  animation: hue 3s infinite linear;
+  &::before,
+  &::after {
+    content: "";
+    position: absolute;
+    top: -15px;
+    bottom: -15px;
+    left: -15px;
+    right: -15px;
+    border: 5px solid #24acf2;
+    border-image: linear-gradient(45deg, gold, deeppink) 1;
+    clip-path: inset(0px round 10px);
+    animation: clippath 3s infinite linear;
+  }
+  &::after {
+    animation: clippath 3s infinite -1.5s linear;
+  }
+  span {
+    color: white;
+    font-size: 20px;
+  }
+}
+@keyframes hue {
+  0% {
+    filter: hue-rotate(0deg);
+  }
+  100% {
+    filter: hue-rotate(360deg);
+  }
+}
+
+@keyframes clippath {
+  0% {
+    clip-path: inset(0 0 95% 0);
+    filter: hue-rotate(0deg);
+  }
+  25% {
+    clip-path: inset(0 95% 0 0);
+  }
+  50% {
+    clip-path: inset(95% 0 0 0);
+  }
+  75% {
+    clip-path: inset(0 0 0 95%);
+  }
+  100% {
+    clip-path: inset(0 0 95% 0);
+    filter: hue-rotate(360deg);
+  }
+}
+
 </style>

ファイルの差分が大きいため隠しています
+ 1853 - 0
src/views/Home/Home1.vue


+ 6 - 6
src/views/Home/components/coulometric-analysis.vue

@@ -90,15 +90,15 @@ export default {
     // 电量分析
     return {
       // 增发电量
-      AddElectricity: 30,
+      AddElectricity: 0,
       // 避免故障
-      bmgz_: 32,
+      bmgz_: 0,
       // 提升率
       tsl_: 0,
       // 降低率
-      jdl_: '61',
+      jdl_: "0",
       // 风能利用率
-      fnlyl_: 0,
+      fnlyl_: " 0",
       // 设备科利用率
       sbklyl_: 0,
       // 综合场用电率
@@ -108,9 +108,9 @@ export default {
     };
   },
   mounted() {
-    this.bmgz_ = this.bmgz ? this.bmgz : 32;
+    this.bmgz_ = this.bmgz ? this.bmgz : 0;
     this.tsl_ = this.tsl;
-    this.jdl_ = this.jdl_ ? this.jdl_ : 61;
+    this.jdl_ = this.jdl_ ? this.jdl_ : 0;
     this.fnlyl_ = this.fnlyl;
     this.sbklyl_ = this.sbklyl;
     this.zhcydl_ = this.zhcydl;

+ 67 - 33
src/views/Home/components/map.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="map">
-    <div :class="$store.state.themeName === 'light'?'light':'back'"></div>
+    <div :class="$store.state.themeName === 'light' ? 'light' : 'back'"></div>
     <div class="security-days">
       <div class="text">安全天数:</div>
       <div class="num">
@@ -26,9 +26,11 @@
       </div>
     </div> -->
     <div class="name-box" v-if="currentMode != 'NX'">
-      <div class="name-box-title" @click="onBackStation">{{ currentTitle }}</div>
+      <div class="name-box-title" @click="onBackStation">
+        {{ currentTitle }}
+      </div>
       <div class="name-box-period" v-show="currentPeriod != 'ZERO'">
-        <span class="name-box-period-label">{{textType}}:</span>
+        <span class="name-box-period-label">{{ textType }}:</span>
         <span class="name-box-period-value"
           >{{ currentName }}{{ currentPeriod }}</span
         >
@@ -118,26 +120,51 @@
     </div>
     <div class="map-img">
       <!-- 地图总览 -->
-      <SvgMapNX v-if="mapName === 'nx'" :show="showType" :data="sourceMap" :xtData="xtMap" @clickLabel="clickLabel" ></SvgMapNX>
-	  
+      <SvgMapNX
+        v-if="mapName === 'nx'"
+        :show="showType"
+        :data="sourceMap"
+        :xtData="xtMap"
+        @clickLabel="clickLabel"
+      ></SvgMapNX>
+
       <!-- 崇礼风电场 -->
-      <CLFDC v-if="mapName === 'CL_FDC'" :data="sourceMap" @clickFj="clickFj" @changePeriod="changePeriod" ></CLFDC>
-	  
+      <CLFDC
+        v-if="mapName === 'CL_FDC'"
+        :data="sourceMap"
+        @clickFj="clickFj"
+        @changePeriod="changePeriod"
+      ></CLFDC>
+
       <!-- 康保风电场 -->
-      <KBFDC v-if="mapName === 'KB_FDC'" :data="sourceMap" @clickFj="clickFj" @changePeriod="changePeriod" ></KBFDC>
-	  
+      <KBFDC
+        v-if="mapName === 'KB_FDC'"
+        :data="sourceMap"
+        @clickFj="clickFj"
+        @changePeriod="changePeriod"
+      ></KBFDC>
+
       <!-- 代县风电场 -->
-      <DXFDC v-if="mapName === 'DX_FDC'" :data="sourceMap" @clickFj="clickFj" @changePeriod="changePeriod" ></DXFDC>
-	  
+      <DXFDC
+        v-if="mapName === 'DX_FDC'"
+        :data="sourceMap"
+        @clickFj="clickFj"
+        @changePeriod="changePeriod"
+      ></DXFDC>
+
       <!-- 寿阳风电场 -->
-      <SYFDC v-if="mapName === 'SY_FDC'" :data="sourceMap" @clickFj="clickFj" @changePeriod="changePeriod" ></SYFDC>
-	  
+      <SYFDC
+        v-if="mapName === 'SY_FDC'"
+        :data="sourceMap"
+        @clickFj="clickFj"
+        @changePeriod="changePeriod"
+      ></SYFDC>
     </div>
   </div>
 </template>
 
 <script>
-// 宁夏地图总览
+// 河北地图总览
 import SvgMapNX from "./map/svg-map-nx.vue";
 
 // 崇礼风电场
@@ -161,7 +188,7 @@ export default {
     KBFDC,
     DXFDC,
     SYFDC,
- 
+
     SvgIcon,
   },
   props: {
@@ -171,7 +198,7 @@ export default {
     },
     day: {
       type: String,
-      default: "---",
+      default: "0",
     },
     data: {
       type: Object,
@@ -185,17 +212,20 @@ export default {
 
   mounted() {
     this.fcId = this.wpId;
-    // console.log('安全天数',this.day);
-    this.safeDay = this.day;
+    if (this.day == "undefined") {
+      this.safeDay = "0";
+    } else {
+      this.safeDay = this.day;
+    }
     this.sourceMap = this.data;
     this.xtMap = this.xtData;
   },
   // 数据
   data() {
     return {
-		textType:'期次',
+      textType: "期次",
       fcId: "",
-      safeDay: "",
+      safeDay: "0",
       showType: "all",
       sourceMap: {},
       mapIndex: -1,
@@ -238,7 +268,7 @@ export default {
       this.activeTab = index;
       this.showType = showType;
       let wpId = showType === "all" ? "0" : showType === "fc" ? "-1" : "-2";
-      this.safeDay = "---";
+      this.safeDay = "0";
       this.mapName = "nx";
       this.$emit("mapClicks", wpId, this.tabs[index].text);
     },
@@ -254,31 +284,35 @@ export default {
       this.mapIndex = 1;
       this.$emit("mapClick", wpId, planBtnName);
     },
-    clickFj(wpId, planBtnName,textType) {
+    clickFj(wpId, planBtnName, textType) {
       this.$emit("mapClick", wpId, planBtnName);
     },
-    changePeriod: function (name, period,textType) {
-		if(textType){
-			this.textType = '期次'
-		}else{
-			this.textType = '线路'
-		}
+    changePeriod: function (name, period, textType) {
+      if (textType) {
+        this.textType = "期次";
+      } else {
+        this.textType = "线路";
+      }
       this.currentName = name;
       this.currentPeriod = period;
       this.currentMode = "SUB";
     },
     // 返回当前场站
-    onBackStation(){
-      this.currentPeriod = "ZERO"
+    onBackStation() {
+      this.currentPeriod = "ZERO";
       this.$emit("backStation");
-    }
+    },
   },
   watch: {
     wpId(res) {
       this.fcId = res;
     },
     day(res) {
-      this.safeDay = res;
+      if (res == "undefined") {
+        this.safeDay = "0";
+      } else {
+        this.safeDay = res;
+      }
     },
     data(res) {
       this.sourceMap = res;
@@ -296,7 +330,7 @@ export default {
   width: 100%;
   height: 100%;
 
-  .light{
+  .light {
     position: fixed;
     z-index: -1;
     width: 100vw;

ファイルの差分が大きいため隠しています
+ 166 - 215
src/views/Home/components/map/CL_FDC.vue


ファイルの差分が大きいため隠しています
+ 34 - 318
src/views/Home/components/map/DX_FDC.vue


ファイルの差分が大きいため隠しています
+ 25 - 22
src/views/Home/components/map/KB_FDC.vue


ファイルの差分が大きいため隠しています
+ 932 - 0
src/views/Home/components/map/SX.vue


ファイルの差分が大きいため隠しています
+ 166 - 452
src/views/Home/components/map/SY_FDC.vue


ファイルの差分が大きいため隠しています
+ 23 - 11
src/views/Home/components/map/svg-map-nx.vue


+ 51 - 47
src/views/Home/components/power-plan.vue

@@ -12,24 +12,26 @@
       "
     >
       <Col :span="12">
-        <!-- <percent-card-2 :title="'月完成率' + parseInt((planData.yfdl / planData.yfdljh) * 100) + '%'" TotalText="实际" ActualText="计划" :TotalValue="planData.yfdl" :ActualValue="planData.yfdljh" :percent="planData.ywcl" /> -->
+        <!-- <percent-card-2 :title="'月完成率' + parseInt((planData.yfdl / planData.yfdljh) * 100) 
+        + '%'" TotalText="实际" ActualText="计划" :TotalValue="planData.yfdl" :ActualValue="planData.yfdljh" :percent="planData.ywcl" /> -->
         <percent-card-2
           :title="''"
           TotalText="月实际"
           ActualText="月计划"
-          :TotalValue="planData.yfdl"
-          :ActualValue="planData.yfdljh"
+          :TotalValue="((planData.yfdl)*100).toFixed(1)"
+          :ActualValue="((planData.yfdljh)*10).toFixed(1)"
           :percent="planData.ywcl"
         />
       </Col>
       <Col :span="12">
-        <!-- <percent-card-2 :title="'年完成率' + parseInt((planData.nfdl / planData.nfdljh) * 100) + '%'" TotalText="实际" ActualText="计划" :TotalValue="planData.nfdl" :ActualValue="planData.nfdljh" :percent="planData.nwcl" /> -->
+        <!-- <percent-card-2 :title="'年完成率' + parseInt((planData.nfdl / planData.nfdljh) * 100)
+         + '%'" TotalText="实际" ActualText="计划" :TotalValue="planData.nfdl" :ActualValue="planData.nfdljh" :percent="planData.nwcl" /> -->
         <percent-card-2
           :title="''"
           TotalText="年实际"
           ActualText="年计划"
-          :TotalValue="planData.nfdl"
-          :ActualValue="planData.nfdljh"
+          :TotalValue="((planData.nfdl)*100).toFixed(1)"
+          :ActualValue="((planData.nfdljh)*10).toFixed(1)"
           :percent="planData.nwcl"
         />
       </Col>
@@ -100,7 +102,6 @@ export default {
     },
   },
   mounted() {
-    this.planData = this.data;
     this.wpId = this.id;
     this.tabs[0].text = this.title;
   },
@@ -124,57 +125,60 @@ export default {
       };
       api.findInfo(subUrl, data).then((res) => {
         let key = [
-            {
-              key: "value1",
-              title: "月计划发电量",
-            },
-            {
-              key: "value2",
-              title: "年计划发电量",
-            },
-            {
-              key: "value3",
-              title: "月发电量",
-            },
-            {
-              key: "value4",
-              title: "年发电量",
-            },
-          ];
-
-          let doneLineChartData = {
-            // 图表所用单位
-            units: [""],
-            value: [],
-          };
+          {
+            key: "value1",
+            title: "月计划发电量",
+          },
+          {
+            key: "value2",
+            title: "年计划发电量",
+          },
+          {
+            key: "value3",
+            title: "月发电量",
+          },
+          {
+            key: "value4",
+            title: "年发电量",
+          },
+        ];
 
-          key.forEach((keyEle, keyIndex) => {
-            doneLineChartData.value.push({
-              title: keyEle.title,
-              yAxisIndex: 0, // 使用单位
-              value: [],
-            });
+        let doneLineChartData = {
+          // 图表所用单位
+          units: [""],
+          value: [],
+        };
 
-            res.data.forEach((ele) => {
-              doneLineChartData.value[keyIndex].value.push({
-                text: ele.name,
-                value: ele[keyEle.key],
-              });
-            });
+        key.forEach((keyEle, keyIndex) => {
+          doneLineChartData.value.push({
+            title: keyEle.title,
+            yAxisIndex: 0, // 使用单位
+            value: [],
           });
 
-          this.$emit("chartClick", {
-            dialogTitle,
-            dialogType,
-            data: doneLineChartData,
+          res.data.forEach((ele) => {
+            doneLineChartData.value[keyIndex].value.push({
+              text: ele.name,
+              value: ele[keyEle.key],
+            });
           });
-      })
+        });
 
+        this.$emit("chartClick", {
+          dialogTitle,
+          dialogType,
+          data: doneLineChartData,
+        });
+      });
     },
   },
 
   watch: {
     data(res) {
+      Object.keys(res).forEach(function (key) {
+        // if (parseInt(res[key]) === res[key])
+          res[key] = (res[key] / 100).toFixed(2);
+      });
       this.planData = res;
     },
     id(res) {

+ 0 - 55
src/views/Home/components/power-review.vue

@@ -94,61 +94,6 @@ export default {
           data: powerLineChartData,
         });
       });
-      // let that = this;
-      // that.API.requestData({
-      //   method: "POST",
-      //   subUrl,
-      //   data: {
-      //     id: that.wpId,
-      //     targetName,
-      //   },
-      //   success(res) {
-      //     let powerLineChartData = {
-      //       // 图表所用单位
-      //       units: [""],
-      //       value: [],
-      //     };
-
-      //     res.data.forEach((pEle, pIndex) => {
-      //       powerLineChartData.value.push({
-      //         title: pEle[0].name,
-      //         yAxisIndex: 0,
-      //         smooth: true,
-      //         value: [],
-      //       });
-
-      //       pEle.forEach((cEle) => {
-      //         powerLineChartData.value[pIndex].value.push({
-      //           text: new Date(cEle.time).formatDate("hh:mm:ss"),
-      //           value: cEle.value1,
-      //         });
-      //       });
-      //     });
-
-      //     // let powerLineChartData = [];
-
-      //     // res.data.forEach((pEle, pIndex) => {
-      //     //   powerLineChartData.push({
-      //     //     title: pEle[0].name,
-      //     //     smooth: true,
-      //     //     value: [],
-      //     //   });
-
-      //     //   pEle.forEach((cEle) => {
-      //     //     powerLineChartData[pIndex].value.push({
-      //     //       text: new Date(cEle.time).formatDate("hh:mm:ss"),
-      //     //       value: cEle.value1,
-      //     //     });
-      //     //   });
-      //     // });
-
-      //     that.$emit("chartClick", {
-      //       dialogTitle,
-      //       dialogType,
-      //       data: powerLineChartData,
-      //     });
-      //   },
-      // });
     },
   },
 

+ 2 - 2
src/views/Home/components/weather.vue

@@ -79,8 +79,8 @@ export default {
       visibility: "20KM", //能见度
       humidity: "75.0%", // 湿度
       pressure: "994kPa", // 气压
-      sunrise: "08:10", // 日出
-      sunset: "17:39", // 日落
+      sunrise: "06:45", // 日出
+      sunset: "18:17", // 日落
     };
   },
 

+ 4 - 2
src/views/Knowledge/Knowledge1.vue

@@ -73,6 +73,7 @@ import api from "@api/maintenance/expertKnowledge/index.js";
 export default {
   components: { ComTable, KnowInfo },
   data() {
+    const that = this;
     return {
       faultLevels: ["1级", "2级", "3级", "4级", "5级"], // 故障等级
       downTypes: ["正常停机", "快速停机", "紧急停机"], // 停机类型
@@ -132,7 +133,7 @@ export default {
               return "<el-button type='text' style='cursor: pointer;'>详细信息</el-button>";
             },
             click(e, row) {
-              this.getInformation(row);
+              that.getInformation5(row);
             },
           },
         ],
@@ -153,7 +154,8 @@ export default {
       this.requestInfoList();
     },
     // 查看详细信息
-    getInformation(item) {
+    getInformation5(item) {
+      console.log(item);
       this.dialogVisible = true;
       this.infoData = item;
     },

+ 4 - 0
src/views/Knowledge/knowinfo.vue

@@ -39,6 +39,10 @@ export default {
 
   mounted() {
     this.infoObj = this.data;
+    console.log('this.infoObj',this.infoObj);
+  },
+  created(){
+    
   },
 
   watch: {

+ 566 - 180
src/views/LightMatrix1/LightMatrix1.vue

@@ -1,206 +1,218 @@
 <template >
-	<el-scrollbar>
-  <div class="light-matrix">
-    <Row class="panel-2" type="">
-      <Col :span="12" class="left-50-16">
-        <div class="panel">
-          <div class="dot left top"></div>
-          <div class="dot left bottom"></div>
-          <div class="dot right top"></div>
-          <div class="dot right bottom"></div>
-          <div class="item">
-            <div class="loop"></div>
-            <span class="svg-icon svg-icon-gray svg-icon-md">
-              <SvgIcon svgid="svg-wind-site"></SvgIcon>
-            </span>
-          </div>
-          <div class="item write" @click="changeShow('jrfj_FDC')">
-            <div class="curStyle">
-              <div>接入风机</div>
-              <div>{{ sourceMap.fcjrnum || "---" }}</div>
+  <el-scrollbar>
+    <div
+      :class="
+        $store.state.themeName === 'dark' ? 'dark-matrix' : 'light-matrix'
+      "
+    >
+      <Row class="panel-2" type="">
+        <Col :span="12" class="left-50-16">
+          <div class="panel">
+            <div class="dot left top"></div>
+            <div class="dot left bottom"></div>
+            <div class="dot right top"></div>
+            <div class="dot right bottom"></div>
+            <div class="item">
+              <div class="loop"></div>
+              <span class="svg-icon svg-icon-gray svg-icon-md">
+                <SvgIcon svgid="svg-wind-site"></SvgIcon>
+              </span>
             </div>
-          </div>
-          <div class="item blue" @click="changeShow('yx_FDC', 1)">
-            <div class="curStyle">
-              <div>· 运行</div>
-              <div>{{ sourceMap.fcyxnum || "---" }}</div>
+            <div class="item Add " @click="changeShow('jrfj_FDC')">
+              <div class="curStyle">
+                <div>接入风机</div>
+                <div>{{ sourceMap.fcjrnum || "---" }}</div>
+              </div>
             </div>
-          </div>
-          <div class="item green" @click="changeShow('dj_FDC', 0)">
-            <div class="curStyle">
-              <div>· 待机</div>
-              <div>{{ sourceMap.fcdjnum || "---" }}</div>
+            <div class="item blue" @click="changeShow('yx_FDC', 1)">
+              <div class="curStyle">
+                <div>· 运行</div>
+                <div>{{ sourceMap.fcyxnum || "---" }}</div>
+              </div>
             </div>
-          </div>
-          <div class="item pink" @click="changeShow('xd_FDC', 5)">
-            <div class="curStyle">
-              <div>· 限电</div>
-              <div>{{ sourceMap.fcxdnum || "---" }}</div>
+            <div class="item green " @click="changeShow('dj_FDC', 0)">
+              <div class="curStyle">
+                <div>· 待机</div>
+                <div>{{ sourceMap.fcdjnum || "---" }}</div>
+              </div>
             </div>
-          </div>
-          <div class="item red" @click="changeShow('gz_FDC', 2)">
-            <div class="curStyle">
-              <div>· 故障</div>
-              <div>{{ sourceMap.fcgznum || "---" }}</div>
+            <div class="item pink" @click="changeShow('xd_FDC', 5)">
+              <div class="curStyle">
+                <div>· 限电</div>
+                <div>{{ sourceMap.fcxdnum || "---" }}</div>
+              </div>
             </div>
-          </div>
-          <div class="item orange" @click="changeShow('jx_FDC', 4)">
-            <div class="curStyle">
-              <div>· 检修</div>
-              <div>{{ sourceMap.fcwhnum || "---" }}</div>
+            <div class="item red" @click="changeShow('gz_FDC', 2)">
+              <div class="curStyle">
+                <div>· 故障</div>
+                <div>{{ sourceMap.fcgznum || "---" }}</div>
+              </div>
             </div>
-          </div>
-          <div class="item write" @click="changeShow('sl_FDC', 6)">
-            <div class="curStyle">
-              <div>· 受累</div>
-              <div>{{ sourceMap.fcslnum || "---" }}</div>
+            <div class="item orange" @click="changeShow('jx_FDC', 4)">
+              <div class="curStyle">
+                <div>· 检修</div>
+                <div>{{ sourceMap.fcwhnum || "---" }}</div>
+              </div>
             </div>
-          </div>
-          <div class="item gray" @click="changeShow('lx_FDC', 3)">
-            <div class="curStyle">
-              <div>· 离线</div>
-              <div>{{ sourceMap.fclxnum || "---" }}</div>
+            <div class="item write" @click="changeShow('sl_FDC', 6)">
+              <div class="curStyle">
+                <div>· 受累</div>
+                <div>{{ sourceMap.fcslnum || "---" }}</div>
+              </div>
             </div>
-          </div>
-        </div>
-      </Col>
-      <Col :span="12" class="left-50-16">
-        <div class="panel">
-          <div class="dot left top"></div>
-          <div class="dot left bottom"></div>
-          <div class="dot right top"></div>
-          <div class="dot right bottom"></div>
-          <div class="item">
-            <div class="loop"></div>
-            <span class="svg-icon svg-icon-gray svg-icon-md">
-              <SvgIcon
-                :svgid="'svg-photovoltaic'"
-                style="margin: 3px 0px -3px 1px"
-              ></SvgIcon>
-            </span>
-          </div>
-          <div class="item write" @click="changeShow('jrfj1_GDC')">
-            <div class="curStyle">
-              <div>逆变器</div>
-              <div>{{ sourceMap.gfjrnum || "---" }}</div>
+            <div class="item gray" @click="changeShow('lx_FDC', 3)">
+              <div class="curStyle">
+                <div>· 离线</div>
+                <div>{{ sourceMap.fclxnum || "---" }}</div>
+              </div>
             </div>
           </div>
-          <div class="item blue" @click="changeShow('yx1_GDC', 1)">
-            <div class="curStyle">
-              <div>· 运行</div>
-              <div>{{ sourceMap.gfyxnum || "---" }}</div>
+        </Col>
+        <Col :span="12" class="left-50-16">
+          <div class="panel">
+            <div class="dot left top"></div>
+            <div class="dot left bottom"></div>
+            <div class="dot right top"></div>
+            <div class="dot right bottom"></div>
+            <div class="item">
+              <div class="loop"></div>
+              <span class="svg-icon svg-icon-gray svg-icon-md">
+                <SvgIcon
+                  :svgid="'svg-photovoltaic'"
+                  style="margin: 3px 0px -3px 1px"
+                ></SvgIcon>
+              </span>
             </div>
-          </div>
-          <div class="item greenv" @click="changeShow('dj1_GDC', 0)">
-            <div class="curStyle">
-              <div>· 待机</div>
-              <div>{{ sourceMap.gfdjnum || "---" }}</div>
+            <div class="item Add " @click="changeShow('jrfj1_GDC')">
+              <div class="curStyle">
+                <div>逆变器</div>
+                <div>{{ sourceMap.gfjrnum || "---" }}</div>
+              </div>
             </div>
-          </div>
-          <div class="item pink" @click="changeShow('xd1_GDC', 5)">
-            <div class="curStyle">
-              <div>· 限电</div>
-              <div>{{ sourceMap.gfxdnum || "---" }}</div>
+            <div class="item blue" @click="changeShow('yx1_GDC', 1)">
+              <div class="curStyle">
+                <div>· 运行</div>
+                <div>{{ sourceMap.gfyxnum || "---" }}</div>
+              </div>
             </div>
-          </div>
-          <div class="item red" @click="changeShow('gz1_GDC', 2)">
-            <div class="curStyle">
-              <div>· 故障</div>
-              <div>{{ sourceMap.gfgznum || "---" }}</div>
+            <div class="item green " @click="changeShow('dj1_GDC', 0)">
+              <div class="curStyle">
+                <div>· 待机</div>
+                <div>{{ sourceMap.gfdjnum || "---" }}</div>
+              </div>
             </div>
-          </div>
-          <div class="item orange" @click="changeShow('jx1_GDC', 4)">
-            <div class="curStyle">
-              <div>· 检修</div>
-              <div>{{ sourceMap.gfwhnum || "---" }}</div>
+            <div class="item pink" @click="changeShow('xd1_GDC', 5)">
+              <div class="curStyle">
+                <div>· 限电</div>
+                <div>{{ sourceMap.gfxdnum || "---" }}</div>
+              </div>
             </div>
-          </div>
-          <div class="item write" @click="changeShow('sl1_GDC', 6)">
-            <div class="curStyle">
-              <div>· 受累</div>
-              <div>{{ sourceMap.gfslnum || "---" }}</div>
+            <div class="item red" @click="changeShow('gz1_GDC', 2)">
+              <div class="curStyle">
+                <div>· 故障</div>
+                <div>{{ sourceMap.gfgznum || "---" }}</div>
+              </div>
             </div>
-          </div>
-          <div class="item gray curStyle" @click="changeShow('lx1_GDC', 3)">
-            <div class="curStyle">
-              <div>· 离线</div>
-              <div>{{ sourceMap.gflxnum || "---" }}</div>
+            <div class="item orange" @click="changeShow('jx1_GDC', 4)">
+              <div class="curStyle">
+                <div>· 检修</div>
+                <div>{{ sourceMap.gfwhnum || "---" }}</div>
+              </div>
+            </div>
+            <div class="item write" @click="changeShow('sl1_GDC', 6)">
+              <div class="curStyle">
+                <div>· 受累</div>
+                <div>{{ sourceMap.gfslnum || "---" }}</div>
+              </div>
+            </div>
+            <div class="item gray curStyle" @click="changeShow('lx1_GDC', 3)">
+              <div class="curStyle">
+                <div>· 离线</div>
+                <div>{{ sourceMap.gflxnum || "---" }}</div>
+              </div>
             </div>
           </div>
-        </div>
-      </Col>
-    </Row>
-    <div class="panel-box">
-      <div v-for="(pItem, pIndex) in sourceMap.fjmap" :key="pIndex">
-        <div class="panel-title" v-if="sourceMap.fjmap[pIndex][0].wpId.includes('FDC')">
-          <div class="panel-title-name">
-            <i class="svg-icon svg-icon-sm svg-icon-green">
-              <SvgIcon :svgid="'svg-wind-site'"></SvgIcon>
-            </i>
-            <span>{{
-              sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId].name ||
+        </Col>
+      </Row>
+      <div class="panel-box">
+        <div v-for="(pItem, pIndex) in sourceMap.fjmap" :key="pIndex">
+          <div
+            class="panel-title"
+            v-if="sourceMap.fjmap[pIndex][0].wpId.includes('FDC')"
+          >
+            <div class="panel-title-name">
+              <i class="svg-icon svg-icon-sm svg-icon-green">
+                <SvgIcon :svgid="'svg-wind-site'"></SvgIcon>
+              </i>
+              <span>{{
+                sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId].name ||
                 "------"
-            }}</span>
-            <div
-              class="sub-title-item"
-              v-for="(fcItem, fcIndex) in fcStateArray"
-              :key="fcIndex"
-            > 
+              }}</span>
+              <div
+                class="sub-title-item"
+                v-for="(fcItem, fcIndex) in fcStateArray"
+                :key="fcIndex"
+              >
                 <span class="sub-title">{{ fcItem.text }}</span>
                 <span class="sub-count" :class="fcItem.color">{{
-                  sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId][fcItem.key]
+                  sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId][fcItem.key]||'0'
                 }}</span>
+              </div>
             </div>
           </div>
-        </div>
-        <div class="panel-title" v-if="sourceMap.fjmap[pIndex][0].wpId.includes('GDC')">
-          <div class="panel-title-name">
-            <i class="svg-icon svg-icon-sm svg-icon-green">
-              <SvgIcon :svgid="'svg-wind-site'"></SvgIcon>
-            </i>
-            <span>{{
-              sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId].name ||
+          <div
+            class="panel-title"
+            v-if="sourceMap.fjmap[pIndex][0].wpId.includes('GDC')"
+          >
+            <div class="panel-title-name">
+              <i class="svg-icon svg-icon-sm svg-icon-green">
+                <SvgIcon :svgid="'svg-wind-site'"></SvgIcon>
+              </i>
+              <span>{{
+                sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId].name ||
                 "------"
-            }}</span>
-            <div
-              class="sub-title-item"
-              v-for="(fcItem, fcIndex) in fcStateArray1"
-              :key="fcIndex"
-            > 
+              }}</span>
+              <div
+                class="sub-title-item"
+                v-for="(fcItem, fcIndex) in fcStateArray1"
+                :key="fcIndex"
+              >
                 <span class="sub-title">{{ fcItem.text }}</span>
                 <span class="sub-count" :class="fcItem.color">{{
-                  sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId][fcItem.key]
+                  sourceMap.fczbmap[sourceMap.fjmap[pIndex][0].wpId][fcItem.key]||'0'
                 }}</span>
+              </div>
             </div>
           </div>
-        </div>
-        <div class="panel-body">
-          <div
-            class="card"
-            v-for="(cItem, cIndex) of pItem"
-            :key="cIndex"
-            v-show="cItem.isShow"
-            :class="cItem.color"
-            @click="goDetails(cItem)"
-          >
-            {{ cItem.wtId.substring(cItem.wtId.length - 3) }}
+          <div class="panel-body">
+            <div
+              class="card"
+              v-for="(cItem, cIndex) of pItem"
+              :key="cIndex"
+              v-show="cItem.isShow"
+              :class="cItem.color"
+              @click="goDetails(cItem)"
+            >
+              {{ cItem.wtId.substring(cItem.wtId.length - 3) }}
+            </div>
+            <!-- 站位用 保证卡片布局最后一行不会有问题 -->
+            <i class="blank" v-for="i in pItem.length" :key="i"></i>
+            <!-- <i class="blank" v-for="i in pItem.length" :key="i"></i> -->
           </div>
-          <!-- 站位用 保证卡片布局最后一行不会有问题 -->
-          <i class="blank" v-for="i in pItem.length" :key="i"></i>
         </div>
       </div>
     </div>
-  </div>
   </el-scrollbar>
+  <Dialog v-model="detialDisplay" :wpId='stationId' :wtId='windId'></Dialog>
 </template>
 
 <script>
 import Row from "@/components/coms/grid/row.vue";
 import Col from "@/components/coms/grid/col.vue";
 import SvgIcon from "@com/coms/icon/svg-icon.vue";
+import Dialog from "@/components/dialog/index.vue";
 import api from "@api/cockpit/matrix/index.js";
 import util from "@/helper/util.js";
-
 import store from "@store/index.js";
 import { isNumber } from "util";
 import { setInterval, clearInterval } from "timers";
@@ -213,6 +225,7 @@ export default {
     Row,
     Col,
     SvgIcon,
+    Dialog,
   },
 
   // 数据
@@ -222,10 +235,13 @@ export default {
       sourceMap: {}, // 核心数据
       fillCategory: null, // 过滤条件
       fillFjzt: null, // 过滤条件
+      detialDisplay: false,
+      stationId: '',
+      windId: '',
       fcStateArray: [
         {
           text: "接入台数",
-          color: "write",
+          color: "",
           key: "jrts",
         },
         {
@@ -240,7 +256,7 @@ export default {
         },
         {
           text: "限电台数",
-          color: "purple",
+          color: "pink",
           key: "xdts",
         },
         {
@@ -255,7 +271,7 @@ export default {
         },
         {
           text: "受累台数",
-          color: "write",
+          color: "black",
           key: "slts",
         },
         {
@@ -265,44 +281,44 @@ export default {
         },
         {
           text: "风速",
-          color: "gray",
+          color: "gray1",
           key: "ssfs",
         },
         {
           text: "预测功率",
-          color: "gray",
+          color: "gray1",
           key: "ycgl",
         },
         {
           text: "保证功率",
-          color: "gray",
+          color: "gray1",
           key: "bzgl",
         },
         {
           text: "应发功率",
-          color: "gray",
+          color: "gray1",
           key: "yfgl",
         },
         {
           text: "实际功率",
-          color: "gray",
+          color: "gray1",
           key: "sjgl",
         },
         {
           text: "AGC指令",
-          color: "gray",
+          color: "gray1",
           key: "agcygsd",
         },
         {
           text: "出线功率",
-          color: "gray",
+          color: "gray1",
           key: "agccxyg",
         },
       ],
       fcStateArray1: [
         {
           text: "接入台数",
-          color: "write",
+          color: "",
           key: "jrts",
         },
         {
@@ -411,8 +427,8 @@ export default {
       //     this.fillCategory = null;
       //     this.fillFjzt = null;
       //   } else {
-          this.fillCategory = category;
-          this.fillFjzt = fjzt;
+      this.fillCategory = category;
+      this.fillFjzt = fjzt;
       //   }
       // }
 
@@ -467,15 +483,17 @@ export default {
           this.sourceMap = {};
         }
       });
-      
     },
 
     // 查看风机详情
     goDetails(item) {
       if (item.wpId.indexOf("FDC") !== -1) {
-        this.$router.push({
-          path: `/monitor/windsite/info/${item.wpId}/${item.wtId}`,
-        });
+        this.detialDisplay = true
+        this.stationId = item.wpId
+        this.windId = item.wtId
+        // this.$router.push({
+        //   path: `/monitor/windsite/info/${item.wpId}/${item.wtId}`,
+        // });
       } else {
         this.$router.push({
           path: `windsite/inverter-info/${item.wpId}/${item.wtId}`,
@@ -569,6 +587,371 @@ export default {
       }
 
       &.write {
+        background-color: black;
+        // color: @write;
+        color: #fff;
+      }
+      &.Add{
+         color: #000 !important;
+         font-size: 17px;
+         font-weight: 700;
+      }
+      &.green {
+       background-color: #24a13a!important;
+        // color: @green;
+        color: #fff !important;
+      }
+
+      &.blue {
+        background-color: #00a5db;
+        // color: @darkBlue;
+        color: #fff;
+      }
+
+      &.pink {
+       background-color: #b10e7e;
+        // color: @pink;
+        color: #fff;
+      }
+
+      &.red {
+        background-color: #cb2020;
+        // color: @red;
+        color: #fff;
+      }
+
+      &.orange {
+         background-color: fade(@orange, 100%);
+        // color: @orange;
+        color: #fff;
+      }
+
+      &.gray {
+         background-color: #929ca3;
+        color: #fff !important;
+      }
+
+      div {
+        line-height: 2.222vh;
+
+        &:first-child {
+          font-size: @fontsize-s;
+        }
+        &:last-child {
+          font-size: @fontsize;
+          // font-family: "Bicubik";
+        }
+      }
+    }
+
+    .item2 {
+      flex: 1;
+      display: flex;
+      width: 20%;
+      flex-wrap: wrap;
+
+      .name {
+        color: @gray;
+        width: 50%;
+        text-align: center;
+      }
+
+      .num2 {
+        width: 50%;
+        color: @yellow;
+        text-align: left;
+      }
+
+      .num1 {
+        width: 50%;
+        color: @yellow;
+        text-align: center;
+        position: relative;
+
+        &::after {
+          content: "";
+          position: absolute;
+          width: 1.481vh;
+          height: 0.556vh;
+          background-color: @yellow;
+          left: 1.204vh;
+          top: 0.741vh;
+        }
+      }
+
+      .num3 {
+        width: 50%;
+        color: @yellow;
+        text-align: left;
+      }
+    }
+  }
+
+  .panel-box {
+    margin-top: 0.7407vh;
+    flex-grow: 1;
+
+    .panel-title {
+      width: 100%;
+      line-height: @titleHeight;
+      background-color: fade(@darkgray, 40%);
+
+      .panel-title-name {
+        width: 99%;
+        font-size: 14px;
+        color: @green;
+        display: flex;
+        flex-wrap: wrap;
+        align-items: center;
+        justify-content: center;
+        padding-left: 16px;
+
+        i {
+          margin-right: 0.7407vh;
+        }
+
+        .sub-title-item {
+          display: flex;
+          flex: 1;
+
+          .sub-title {
+            flex: 0 0 auto;
+            color: #000000;
+            font-size: 14px;
+            margin: 0 0.556vh 0 1.481vh;
+            font-weight: bold;
+          }
+
+          .sub-count {
+            flex: 1 0 auto;
+            font-size: 14px;
+            // font-family: "Bicubik";
+           font-weight: 500!important;
+
+            &.black {
+              color: #ffffff!important;
+              background-color: black;
+              display: flex;
+              align-items: center;
+              justify-content: center;
+            }
+            &.black1 {
+              color: black;
+              display: flex;
+              align-items: center;
+              font-weight: 800;
+            }
+
+            &.green {
+              color: @green;
+              color: #ffffff !important;
+              background-color: #24a13a;
+              display: flex;
+              align-items: center;
+              justify-content: center;
+            }
+
+            &.blue {
+              color: @darkBlue;
+              color: #ffffff;
+              background-color: #00a5db;
+              display: flex;
+              align-items: center;
+              justify-content: center;
+            }
+
+            &.pink {
+              color: #ffffff;
+              background-color: #b10e7e;
+              display: flex;
+              align-items: center;
+              justify-content: center;
+            }
+
+            &.red {
+              color: @red;
+              color: #ffffff;
+              background-color: #cb2020;
+              display: flex;
+              align-items: center;
+              justify-content: center;
+            }
+
+            &.orange {
+              color: @orange;
+              color: #ffffff;
+              background-color: #ff7800;
+              display: flex;
+              align-items: center;
+              justify-content: center;
+            }
+
+            &.gray1 {
+              color: #000 !important;
+              font-weight: 800;
+              display: flex;
+              align-items: center!important;
+              justify-content: center!important;
+            }
+            &.gray {
+              color: #fff !important;
+              background-color: #929ca3;
+              display: flex;
+              align-items: center!important;
+              justify-content: center!important;
+            }
+          }
+        }
+      }
+    }
+
+    .panel-body {
+      height: calc(100% - 7.407vh);
+      padding: 0.3704vh;
+      width: 100%;
+      display: flex;
+      flex-direction: row;
+      flex-wrap: wrap;
+      justify-content: space-between;
+      justify-content: flex-start;
+
+      .blank {
+        margin-right:100px;
+        flex: 1 0 42px;
+      }
+
+      .card {
+        text-align: center;
+        height: 20px;
+        line-height: 20px;
+        margin-right: 2px;
+        margin-top: 2px;
+        flex: 1 0 140px;
+        cursor: pointer;
+      }
+
+      .card {
+        border-radius: 0.37vh;
+        padding: 0.185vh 0.3704vh;
+        text-align: center;
+        border: 0.093vh solid;
+        font-size: 12px;
+
+        &.write {
+          color: @black;
+          border-color: @write;
+          background-color: @write;
+        }
+
+        &.green {
+          border-color: @green;
+          color: #ffffff !important;
+          background-color: #24a13a;
+        }
+
+        &.blue {
+          color: #ffffff;
+          background-color: #00a5db;
+          border-color: @darkBlue;
+        }
+
+        &.pink {
+          color: #ffffff;
+          background-color: #b10e7e;
+          border-color: @pink;
+        }
+
+        &.red {
+          color: @write;
+          border-color: @red;
+          background-color: @red;
+        }
+
+        &.orange {
+          color: #ffffff;
+          background-color: #ff7800;
+          border-color: @orange;
+        }
+
+        &.gray {
+          color: #fff !important;
+          background-color: #929ca3;
+          border-color: @darkgray;
+        }
+      }
+    }
+  }
+  .curStyle {
+    cursor: pointer;
+    text-align: center;
+  }
+}
+// ---------------------------------------------------------------------------
+.dark-matrix {
+  // width: calc(100% - 1.111vh);
+  height: calc(100vh - 7.222vh);
+  display: flex;
+  flex-direction: column;
+
+  .panel-2 {
+    .left-50-16 {
+      width: calc(50% - 0.741vh);
+    }
+  }
+
+  .panel {
+    width: 100%;
+    border: 0.093vh solid @darkgray;
+    position: relative;
+    padding: 0.7407vh 1.4815vh;
+    background-color: fade(@darkgray, 20%);
+    display: flex;
+
+    .dot {
+      width: 0.185vh;
+      height: 0.185vh;
+      border-radius: 50%;
+      background-color: @write;
+      position: absolute;
+
+      &.left {
+        left: 0.37vh;
+      }
+
+      &.right {
+        right: 0.37vh;
+      }
+
+      &.top {
+        top: 0.37vh;
+      }
+
+      &.bottom {
+        bottom: 0.37vh;
+      }
+    }
+
+    .item {
+      flex: 1;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      flex-direction: column;
+      color: @write;
+      position: relative;
+
+      .loop {
+        position: absolute;
+        width: 4.444vh;
+        height: 4.444vh;
+        border-radius: 50%;
+        border: 0.093vh solid @darkgray;
+        background-color: fade(@darkgray, 20);
+        left: calc(50% - 2.222vh);
+        top: calc(50% - 2.222vh);
+      }
+
+      &.write {
         color: @write;
       }
 
@@ -734,14 +1117,17 @@ export default {
       justify-content: flex-start;
 
       .blank {
-        margin-right: 2px;
-        flex: 1 0 40px;
+        margin-right: 5px;
+        flex: 1 0 42px;
       }
 
       .card {
-        margin-right: 2px;
+        text-align: center;
+        height: 20px;
+        line-height: 20px;
+        margin-right: 5.2px;
         margin-top: 2px;
-        flex: 1 0 40px;
+        flex: 1 0 120px;
         cursor: pointer;
       }
 

ファイルの差分が大きいため隠しています
+ 775 - 100
src/views/LightMatrix2/LightMatrix2.vue


ファイルの差分が大きいため隠しています
+ 940 - 103
src/views/LightMatrix3/LightMatrix3.vue


ファイルの差分が大きいため隠しています
+ 670 - 651
src/views/NewPages/alarm-center-1.vue


+ 19 - 23
src/views/NewPages/alarm-center-2.vue

@@ -59,6 +59,8 @@
 import Panel3 from "../../components/coms/panel/panel3.vue";
 import Table2 from "../../components/coms/table/table2.vue";
 import FX from "./alarm-center-gzfx.vue";
+import apis from "@api/wisdomOverhaul/health/index.js";
+import api from "@api/wisdomOverhaul/reliability/index.js";
 export default {
   components: { Panel3, Table2,FX },
   data () {
@@ -138,7 +140,7 @@ export default {
         ],
         data: [
           {
-            name: "MG01_01",
+            name: "",
             v1: {
               count: 12,
               time: 0,
@@ -159,21 +161,20 @@ export default {
   methods: {
     tabSelect (tab) { },
     async search () {
-      const { data } = await this.API.requestData({
-        subUrl: "powercompare/windfarmAjax",
-      });
-      this.wpoptions = data.data;
-      this.wpvalue = data.data[0].id;
+
+      apis.powercompareWindfarmAjax({
+      }).then((res) => {
+       
+         this.wpoptions = res.data;
+      this.wpvalue = res.data?.[0]?.id;
       this.searchData();
-    },
-    async searchTree () {
-      const { data } = await this.API.requestData({
-        baseURL: "http://192.168.1.18:8075/",
-        subUrl: "Stoptype/treeType",
       });
 
-      
-      this.cascaderOptions = data.data;
+    
+    },
+    async searchTree () {
+      const { data } = await api.treeType()
+      this.cascaderOptions = data;
       let arr = [];
       let columnObj = [
         {
@@ -181,7 +182,7 @@ export default {
           field: "name",
         },
       ];
-      data.data.forEach((e) => {
+      data?.data?.forEach((e) => {
         let obj = {
           name: e.name,
           field: e.name,
@@ -196,18 +197,13 @@ export default {
     },
     async searchData () {
 		let enddate = new Date(Date.parse(new Date(this.enddate)) + (24*3600*1000)).formatDate("yyyy-MM-dd");
-      const { data } = await this.API.requestData({
-		  showLoading:true,
-        baseURL: "http://192.168.1.18:8075/",
-        subUrl: "shutdown/list",
-        data: {
-          stId: this.wpvalue,
+      const { data } = await api.shutdownList({
+        stId: this.wpvalue,
           endDate: new Date(this.startdate).formatDate("yyyy-MM-dd"),
           startDate: enddate,
-        },
-      });
+      })
       ////////
-      const resData = data.data;
+      const resData = data;
       // const resData =this.resdata;
       const column = this.columnObj;
       let dataAll = []; // 总数据集合

+ 154 - 95
src/views/NewPages/alarm-center-gzfx.vue

@@ -1,102 +1,161 @@
 <template>
-	<div>
-		<el-row>
-			<el-col :span="24">
-				<panel :title="'日雷达图'" class="radar-panel" :icon="'svg-wind-site'">
-					<div class="wind-info">
-						<dual-pie-chart height="40vh" width='55vh' :innerData="rzdfsData" :outerData="rzdfsData" />
-					</div>
-				</panel>
-			</el-col>
-		</el-row>
-		<el-row>
-			<el-col :span="12">
-				<panel :title="'月雷达图'" class="radar-panel" :icon="'svg-wind-site'">
-					<div class="wind-info">
-						<dual-pie-chart height="32vh" width='55vh' :innerData="yzdfsData" :outerData="yzdfsData" />
-					</div>
-				</panel>
-			</el-col>
-			<el-col :span="12">
-				<panel :title="'年雷达图'" class="radar-panel" :icon="'svg-wind-site'">
-					<div class="wind-info">
-						<dual-pie-chart height="32vh" width='55vh' :innerData="nzdfsData" :outerData="nzdfsData" />
-					</div>
-				</panel>
-			</el-col>
-		</el-row>
-	</div>
+  <div>
+    <el-row>
+      <el-col :span="24">
+        <panel :title="'日雷达图'" class="radar-panel" :icon="'svg-wind-site'">
+          <div class="wind-info">
+            <dual-pie-chart
+              height="40vh"
+              width="55vh"
+              :innerData="rzdfsData"
+              :outerData="rzdfsData"
+            />
+          </div>
+        </panel>
+      </el-col>
+    </el-row>
+    <el-row>
+      <el-col :span="12">
+        <panel :title="'月雷达图'" class="radar-panel" :icon="'svg-wind-site'">
+          <div class="wind-info">
+            <dual-pie-chart
+              height="32vh"
+              width="55vh"
+              :innerData="yzdfsData"
+              :outerData="yzdfsData"
+            />
+          </div>
+        </panel>
+      </el-col>
+      <el-col :span="12">
+        <panel :title="'年雷达图'" class="radar-panel" :icon="'svg-wind-site'">
+          <div class="wind-info">
+            <dual-pie-chart
+              height="32vh"
+              width="55vh"
+              :innerData="nzdfsData"
+              :outerData="nzdfsData"
+            />
+          </div>
+        </panel>
+      </el-col>
+    </el-row>
+  </div>
 </template>
 
 <script>
-	import panel from "@/components/coms/panel/panel.vue";
-	import DualPieChart from "@/components/chart/pie/dual-pie-chart.vue";
-	export default {
-		components: {
-			panel,
-			DualPieChart
-		},
-		props:{
-			date: {
-			  type: String,
-			  default: "2021-06-06",
-			},
-			wpid: {
-			  type: String,
-			  default: "MHS_FDC",
-			},
-		},
-		data() {
-			return {
-				rzdfsData: [],
-				yzdfsData: [],
-				nzdfsData: [],
-			}
-		},
-		created() {
-			this.searchData();
-		},
-		methods: {
-			searchData(){
-				var that = this;
-				that.API.requestData({
-					method: "GET",
-					subUrl: "radar/yjfx",
-					showLoading:true,
-					data:{
-						stationid:that.wpid,
-						date:that.date
-					},
-					success(res) {
-						let key = ['测风系统','传动链','发电机','变桨系统','齿轮箱','液压系统','偏航系统','机舱','其它','塔底柜'];
-						let year = Object.values(res.data[0][0]),
-							month = Object.values(res.data[1][0]),
-							day = Object.values(res.data[2][0]);
-						let yearData = [],
-							monthData = [],
-							dayData = [];
-						key.forEach((ele,index)=>{
-							yearData.push({
-							  name: ele,
-							  value: parseFloat(year[index])
-							})
-							monthData.push({
-							  name: ele,
-							  value: parseFloat(month[index])
-							})
-							dayData.push({
-							  name: ele,
-							  value: parseFloat(day[index])
-							})
-						})
-						that.nzdfsData = yearData;
-						that.yzdfsData = monthData;
-						that.rzdfsData = dayData;
-					},
-				});
-			}
-		},
-	};
+import panel from "@/components/coms/panel/panel.vue";
+import DualPieChart from "@/components/chart/pie/dual-pie-chart.vue";
+import api from "@api/wisdomOverhaul/reliability/index.js";
+export default {
+  components: {
+    panel,
+    DualPieChart,
+  },
+  props: {
+    date: {
+      type: String,
+      default: "2021-06-06",
+    },
+    wpid: {
+      type: String,
+      default: "MHS_FDC",
+    },
+  },
+  data() {
+    return {
+      rzdfsData: [],
+      yzdfsData: [],
+      nzdfsData: [],
+    };
+  },
+  created() {
+    this.searchData();
+  },
+  methods: {
+    searchData() {
+      api
+        .radarYjfx({
+          stationid: this.wpid,
+          date: this.date,
+        })
+        .then((res) => {
+          let key = [
+            "测风系统",
+            "传动链",
+            "发电机",
+            "变桨系统",
+            "齿轮箱",
+            "液压系统",
+            "偏航系统",
+            "机舱",
+            "其它",
+            "塔底柜",
+          ];
+          let year = Object.values(res.data[0][0]),
+            month = Object.values(res.data[1][0]),
+            day = Object.values(res.data[2][0]);
+          let yearData = [],
+            monthData = [],
+            dayData = [];
+          key.forEach((ele, index) => {
+            yearData.push({
+              name: ele,
+              value: parseFloat(year[index]),
+            });
+            monthData.push({
+              name: ele,
+              value: parseFloat(month[index]),
+            });
+            dayData.push({
+              name: ele,
+              value: parseFloat(day[index]),
+            });
+          });
+          this.nzdfsData = yearData;
+          this.yzdfsData = monthData;
+          this.rzdfsData = dayData;
+        });
+
+      // var that = this;
+      // that.API.requestData({
+      // 	method: "GET",
+      // 	subUrl: "radar/yjfx",
+      // 	showLoading:true,
+      // 	data:{
+      // 		stationid:that.wpid,
+      // 		date:that.date
+      // 	},
+      // 	success(res) {
+      // 		let key = ['测风系统','传动链','发电机','变桨系统','齿轮箱','液压系统','偏航系统','机舱','其它','塔底柜'];
+      // 		let year = Object.values(res.data[0][0]),
+      // 			month = Object.values(res.data[1][0]),
+      // 			day = Object.values(res.data[2][0]);
+      // 		let yearData = [],
+      // 			monthData = [],
+      // 			dayData = [];
+      // 		key.forEach((ele,index)=>{
+      // 			yearData.push({
+      // 			  name: ele,
+      // 			  value: parseFloat(year[index])
+      // 			})
+      // 			monthData.push({
+      // 			  name: ele,
+      // 			  value: parseFloat(month[index])
+      // 			})
+      // 			dayData.push({
+      // 			  name: ele,
+      // 			  value: parseFloat(day[index])
+      // 			})
+      // 		})
+      // 		that.nzdfsData = yearData;
+      // 		that.yzdfsData = monthData;
+      // 		that.rzdfsData = dayData;
+      // 	},
+      // });
+    },
+  },
+};
 </script>
 
 <style>

+ 173 - 95
src/views/NewPages/alarm-center-yjfx.vue

@@ -1,102 +1,180 @@
 <template>
-	<div>
-		<el-row>
-			<el-col :span="24">
-				<panel :title="'日雷达图'" class="radar-panel" :icon="'svg-wind-site'">
-					<div class="wind-info">
-						<dual-pie-chart height="40vh" width='55vh' :innerData="rzdfsData" :outerData="rzdfsData" />
-					</div>
-				</panel>
-			</el-col>
-		</el-row>
-		<el-row>
-			<el-col :span="12">
-				<panel :title="'月雷达图'" class="radar-panel" :icon="'svg-wind-site'">
-					<div class="wind-info">
-						<dual-pie-chart height="30vh" width='55vh' :innerData="yzdfsData" :outerData="yzdfsData" />
-					</div>
-				</panel>
-			</el-col>
-			<el-col :span="12">
-				<panel :title="'年雷达图'" class="radar-panel" :icon="'svg-wind-site'">
-					<div class="wind-info">
-						<dual-pie-chart height="30vh" width='55vh' :innerData="nzdfsData" :outerData="nzdfsData" />
-					</div>
-				</panel>
-			</el-col>
-		</el-row>
-	</div>
+  <div>
+    <el-row>
+      <el-col :span="24">
+        <panel :title="'日雷达图'" class="radar-panel" :icon="'svg-wind-site'">
+          <div class="wind-info">
+            <dual-pie-chart
+              height="40vh"
+              width="55vh"
+              :innerData="rzdfsData"
+              :outerData="rzdfsData"
+            />
+          </div>
+        </panel>
+      </el-col>
+    </el-row>
+    <el-row>
+      <el-col :span="12">
+        <panel :title="'月雷达图'" class="radar-panel" :icon="'svg-wind-site'">
+          <div class="wind-info">
+            <dual-pie-chart
+              height="30vh"
+              width="55vh"
+              :innerData="yzdfsData"
+              :outerData="yzdfsData"
+            />
+          </div>
+        </panel>
+      </el-col>
+      <el-col :span="12">
+        <panel :title="'年雷达图'" class="radar-panel" :icon="'svg-wind-site'">
+          <div class="wind-info">
+            <dual-pie-chart
+              height="30vh"
+              width="55vh"
+              :innerData="nzdfsData"
+              :outerData="nzdfsData"
+            />
+          </div>
+        </panel>
+      </el-col>
+    </el-row>
+  </div>
 </template>
 
 <script>
-	import panel from "@/components/coms/panel/panel.vue";
-	import DualPieChart from "@/components/chart/pie/dual-pie-chart.vue";
-	export default {
-		components: {
-			panel,
-			DualPieChart
-		},
-		props:{
-			date: {
-			  type: String,
-			  default: "2021-06-06",
-			},
-			wpid: {
-			  type: String,
-			  default: "MHS_FDC",
-			},
-		},
-		data() {
-			return {
-				rzdfsData: [],
-				yzdfsData: [],
-				nzdfsData: [],
-			}
-		},
-		created() {
-			this.searchData();
-		},
-		methods: {
-			searchData(){
-				var that = this;
-				that.API.requestData({
-					method: "GET",
-					subUrl: "radar/gzfx",
-					showLoading:true,
-					data:{
-						stId:that.wpid,
-						Date:that.date
-					},
-					success(res) {
-						let key = ['变桨','变频器','齿轮箱','发电机','风机其它','滑环','机舱加热','控制','冷却','偏航','液压','主轴'];
-						let year = Object.values(res.data[0][0]),
-							month = Object.values(res.data[1][0]),
-							day = Object.values(res.data[2][0]);
-						let yearData = [],
-							monthData = [],
-							dayData = [];
-						key.forEach((ele,index)=>{
-							yearData.push({
-							  name: ele,
-							  value: parseFloat(year[index])
-							})
-							monthData.push({
-							  name: ele,
-							  value: parseFloat(month[index])
-							})
-							dayData.push({
-							  name: ele,
-							  value: parseFloat(day[index])
-							})
-						})
-						that.nzdfsData = yearData;
-						that.yzdfsData = monthData;
-						that.rzdfsData = dayData;
-					},
-				});
-			}
-		},
-	};
+import panel from "@/components/coms/panel/panel.vue";
+import DualPieChart from "@/components/chart/pie/dual-pie-chart.vue";
+import api from "@api/wisdomOverhaul/reliability/index.js";
+export default {
+  components: {
+    panel,
+    DualPieChart,
+  },
+  props: {
+    date: {
+      type: String,
+      default: "2021-06-06",
+    },
+    wpid: {
+      type: String,
+      default: "MHS_FDC",
+    },
+  },
+  data() {
+    return {
+      rzdfsData: [],
+      yzdfsData: [],
+      nzdfsData: [],
+    };
+  },
+  created() {
+    this.searchData();
+  },
+  methods: {
+    searchData() {
+
+
+      api
+        .radarGzfx({
+         stId: this.wpid,
+          Date: this.date,
+        })
+        .then((res) => {
+             let key = [
+            "变桨",
+            "变频器",
+            "齿轮箱",
+            "发电机",
+            "风机其它",
+            "滑环",
+            "机舱加热",
+            "控制",
+            "冷却",
+            "偏航",
+            "液压",
+            "主轴",
+          ];
+          let year = Object.values(res.data[0][0]),
+            month = Object.values(res.data[1][0]),
+            day = Object.values(res.data[2][0]);
+          let yearData = [],
+            monthData = [],
+            dayData = [];
+          key.forEach((ele, index) => {
+            yearData.push({
+              name: ele,
+              value: parseFloat(year[index]),
+            });
+            monthData.push({
+              name: ele,
+              value: parseFloat(month[index]),
+            });
+            dayData.push({
+              name: ele,
+              value: parseFloat(day[index]),
+            });
+          });
+          this.nzdfsData = yearData;
+          this.yzdfsData = monthData;
+          this.rzdfsData = dayData;
+        });
+
+
+
+    //   var that = this;
+    //   that.API.requestData({
+    //     method: "GET",
+    //     subUrl: "radar/gzfx",
+    //     showLoading: true,
+    //     data: {
+    //       stId: that.wpid,
+    //       Date: that.date,
+    //     },
+    //     success(res) {
+    //       let key = [
+    //         "变桨",
+    //         "变频器",
+    //         "齿轮箱",
+    //         "发电机",
+    //         "风机其它",
+    //         "滑环",
+    //         "机舱加热",
+    //         "控制",
+    //         "冷却",
+    //         "偏航",
+    //         "液压",
+    //         "主轴",
+    //       ];
+    //       let year = Object.values(res.data[0][0]),
+    //         month = Object.values(res.data[1][0]),
+    //         day = Object.values(res.data[2][0]);
+    //       let yearData = [],
+    //         monthData = [],
+    //         dayData = [];
+    //       key.forEach((ele, index) => {
+    //         yearData.push({
+    //           name: ele,
+    //           value: parseFloat(year[index]),
+    //         });
+    //         monthData.push({
+    //           name: ele,
+    //           value: parseFloat(month[index]),
+    //         });
+    //         dayData.push({
+    //           name: ele,
+    //           value: parseFloat(day[index]),
+    //         });
+    //       });
+    //       that.nzdfsData = yearData;
+    //       that.yzdfsData = monthData;
+    //       that.rzdfsData = dayData;
+    //     },
+    //   });
+    },
+  },
+};
 </script>
 
 <style>

+ 1 - 13
src/views/NewPages/daily.vue

@@ -2,11 +2,7 @@
   <div class="daily">
     <h1 class="tit">国电电力河北新能源日报</h1>
     <div class="daily-table">
-      <el-table
-       
-        :data="tableData"
-        :row-class-name="tableRowClassName"
-      >
+      <el-table :data="tableData" :row-class-name="tableRowClassName">
         <el-table-column
           prop="foreignkeyname"
           align="center"
@@ -137,7 +133,6 @@ export default {
     };
   },
   created() {
-    // console.log(this.dateArea);
     this.getList();
   },
   methods: {
@@ -189,13 +184,6 @@ export default {
 </script>
 
 <style lang="less" scoped>
-/deep/.el-table .warning-row {
-  background: rgb(34, 34, 33);
-}
-
-// /deep/.el-table .success-row {
-//   background: #f0f9eb;
-// }
 .daily {
   .tit {
     text-align: center;

+ 9 - 233
src/views/NewPages/dj1.vue

@@ -127,7 +127,7 @@
       </panel>
       <div class="table-info">
         <panel class="table-panel" :title="'当日报警记录'" :showLine="false">
-          <Table :data="warnTableData" :canScroll="true" :height="'30.5vh'" />
+          <Table :data="warnTableData" :canScroll="true" :height="'25.5vh'" />
           <div class="page-box">
             <el-pagination
               v-show="BjjllistTotal != 0"
@@ -139,8 +139,9 @@
             </el-pagination>
           </div>
         </panel>
+
         <panel class="table-panel" :title="'当日故障记录'" :showLine="false">
-          <Table :data="stopTableData" :canScroll="true" :height="'30.5vh'" />
+          <Table :data="stopTableData" :canScroll="true" :height="'25.5vh'" />
           <div class="page-box">
             <el-pagination
               v-show="GzjllistTotal != 0"
@@ -153,7 +154,7 @@
           </div>
         </panel>
         <panel class="table-panel" :title="'当日限电记录'" :showLine="false">
-          <Table :data="xdTableData" :canScroll="true" :height="'30.5vh'" />
+          <Table :data="xdTableData" :canScroll="true" :height="'25.5vh'" />
           <div class="page-box">
             <el-pagination
               v-show="XdjllistTotal != 0"
@@ -1204,20 +1205,6 @@ export default {
           this.form = res.data || {};
           this.dialogShow = true;
         });
-
-      // that.API.requestData({
-      //   method: "POST",
-      //   subUrl: "goodness/plotBandAjax",
-      //   data: {
-      //     wtId: item.data.wtId,
-      //     beginDate: item.data.beginDate,
-      //     endDate: item.data.endDate,
-      //   },
-      //   success(res) {
-      //     that.form = res.data || {};
-      //     that.dialogShow = true;
-      //   },
-      // });
     },
 
     // tab1 - 获取电量图表数据
@@ -1285,7 +1272,7 @@ export default {
           wtId: this.wtId,
           recorddate: this.recorddate,
           pageNum: this.BpageNum,
-          pageSize: 11,
+          pageSize: 9,
         })
         .then((res) => {
           res.data.list.forEach((ele) => {
@@ -1303,7 +1290,7 @@ export default {
       api
         .goodnessGzjllist({
           pageNum: this.GpageNum,
-          pageSize: 11,
+          pageSize: 9,
           wtId: this.wtId,
           recorddate: this.recorddate,
         })
@@ -1319,27 +1306,6 @@ export default {
           this.stopTableData.data = res.data.list;
           this.GzjllistTotal = res.data.total;
         });
-
-      // let that = this;
-      // that.API.requestData({
-      //   method: "POST",
-      //   subUrl: "goodness/gzjllist",
-      //   data: {
-      //     wtId: that.wtId,
-      //     recorddate: that.recorddate,
-      //   },
-      //   success(res) {
-      //     res.data.list.forEach((ele) => {
-      //       ele.stopTime = new Date(ele.stopTime).formatDate(
-      //         "yyyy-MM-dd hh:mm:ss"
-      //       );
-      //       ele.starttime = ele.starttime
-      //         ? new Date(ele.starttime).formatDate("yyyy-MM-dd hh:mm:ss")
-      //         : "";
-      //     });
-      //     that.stopTableData.data = res.data.list;
-      //   },
-      // });
     },
 
     // tab1 - 获取当日限电数据
@@ -1349,7 +1315,7 @@ export default {
           wtId: this.wtId,
           recorddate: this.recorddate,
           pageNum: this.XpageNum,
-          pageSize: 11,
+          pageSize: 9,
         })
         .then((res) => {
           res.data.list.forEach((ele) => {
@@ -1363,27 +1329,6 @@ export default {
           this.xdTableData.data = res.data.list;
           this.XdjllistTotal = res.data.total;
         });
-
-      // let that = this;
-      // that.API.requestData({
-      //   method: "POST",
-      //   subUrl: "goodness/xdjllist",
-      //   data: {
-      //     wtId: that.wtId,
-      //     recorddate: that.recorddate,
-      //   },
-      //   success(res) {
-      //     res.data.list.forEach((ele) => {
-      //       ele.stopTime = new Date(ele.stopTime).formatDate(
-      //         "yyyy-MM-dd hh:mm:ss"
-      //       );
-      //       ele.starttime = ele.starttime
-      //         ? new Date(ele.starttime).formatDate("yyyy-MM-dd hh:mm:ss")
-      //         : "";
-      //     });
-      //     that.xdTableData.data = res.data.list;
-      //   },
-      // });
     },
 
     // tab2 - 获取日发电量信息
@@ -1396,19 +1341,6 @@ export default {
         .then((res) => {
           this.dayPowerInfo = res.data;
         });
-
-      // let that = this;
-      // that.API.requestData({
-      //   method: "POST",
-      //   subUrl: "goodness/wadAjax",
-      //   data: {
-      //     wtId: that.wtId,
-      //     recorddate: that.recorddate,
-      //   },
-      //   success(res) {
-      //     that.dayPowerInfo = res.data;
-      //   },
-      // });
     },
 
     // tab2 - 获取当月报警排行
@@ -1421,19 +1353,6 @@ export default {
         .then((res) => {
           this.monthWarnRecordData.data = res.data;
         });
-
-      // let that = this;
-      // that.API.requestData({
-      //   method: "POST",
-      //   subUrl: "goodness/bjphlist",
-      //   data: {
-      //     wtId: that.wtId,
-      //     recorddate: that.recorddate,
-      //   },
-      //   success(res) {
-      //     that.monthWarnRecordData.data = res.data;
-      //   },
-      // });
     },
 
     // tab2 - 获取当月报警排行
@@ -1477,48 +1396,6 @@ export default {
 
           this.powerLineChartData = powerLineChartData;
         });
-
-      // let that = this;
-      // that.API.requestData({
-      //   method: "POST",
-      //   subUrl: "goodness/glchat",
-      //   data: {
-      //     wtId: that.wtId,
-      //     recorddate: that.recorddate,
-      //   },
-      //   success(res) {
-      //     const keyArray = ["value2", "value3", "value4"];
-
-      //     let powerLineChartData = [
-      //       {
-      //         title: "实际拟合功率",
-      //         yAxisIndex: 0,
-      //         value: [],
-      //       },
-      //       {
-      //         title: "最优功率",
-      //         yAxisIndex: 0,
-      //         value: [],
-      //       },
-      //       {
-      //         title: "保证功率",
-      //         yAxisIndex: 0,
-      //         value: [],
-      //       },
-      //     ];
-
-      //     keyArray.forEach((keyEle, keyIndex) => {
-      //       res.data.forEach((ele, index) => {
-      //         powerLineChartData[keyIndex].value.push({
-      //           text: index + 1,
-      //           value: ele[keyEle],
-      //         });
-      //       });
-      //     });
-
-      //     that.powerLineChartData = powerLineChartData;
-      //   },
-      // });
     },
 
     // tab2 - 获取当月报警排行
@@ -1550,38 +1427,6 @@ export default {
 
           this.windResourcesData = windResourcesData;
         });
-
-      // let that = this;
-      // that.API.requestData({
-      //   method: "POST",
-      //   subUrl: "goodness/fjfzy",
-      //   data: {
-      //     wtId: that.wtId,
-      //     recorddate: that.recorddate,
-      //   },
-      //   success(res) {
-      //     that.jfplStr = res.data.jfpl || "";
-
-      //     let windResourcesData = {
-      //       indicator: [],
-      //       data: [
-      //         {
-      //           name: "",
-      //           value: [],
-      //         },
-      //       ],
-      //     };
-
-      //     if (res.data.data) {
-      //       res.data.data.forEach((ele) => {
-      //         windResourcesData.indicator.push(ele.name);
-      //         windResourcesData.data[0].value.push(ele.data1);
-      //       });
-      //     }
-
-      //     that.windResourcesData = windResourcesData;
-      //   },
-      // });
     },
 
     // tab3,tab4 - 获取玫瑰图
@@ -1630,54 +1475,8 @@ export default {
           }
           mgtData.data[0].value.reverse();
           this[dataKey] = mgtData;
+          console.log(8888888);
         });
-
-      // let that = this;
-      // that.API.requestData({
-      //   method: "POST",
-      //   subUrl,
-      //   data,
-      //   success(res) {
-      //     that[dataKey.split("Data")[0] + "Str"] = res.data.jfpl || "";
-
-      //     let mgtData = {
-      //       indicator: [],
-      //       data: [
-      //         {
-      //           name: "",
-      //           value: [],
-      //         },
-      //       ],
-      //     };
-
-      //     if (res.data.data) {
-      //       mgtData.indicator = [
-      //         "北",
-      //         "北北西",
-      //         "北西",
-      //         "西北西",
-      //         "西",
-      //         "西南西",
-      //         "南西",
-      //         "南南西",
-      //         "南",
-      //         "南南东",
-      //         "东南",
-      //         "东南东",
-      //         "东",
-      //         "东北东",
-      //         "北东",
-      //         "北北东",
-      //       ];
-      //       res.data.data.forEach((ele) => {
-      //         // mgtData.indicator.push(ele.name);
-      //         mgtData.data[0].value.push(ele.data1);
-      //       });
-      //     }
-      //     mgtData.data[0].value.reverse();
-      //     that[dataKey] = mgtData;
-      //   },
-      // });
     },
 
     // tab5 - 获取饼图
@@ -1704,30 +1503,6 @@ export default {
           });
           this[dataKey] = pieChart;
         });
-
-      // let that = this;
-      // that.API.requestData({
-      //   method: "POST",
-      //   subUrl,
-      //   data: {
-      //     wtId: that.wtId,
-      //     recorddate: that.recorddate,
-      //     type,
-      //   },
-      //   success(res) {
-      //     let pieChart = [];
-
-      //     res.data.forEach((ele) => {
-      //       pieChart.push({
-      //         name: ele.name,
-      //         value: ele.value2,
-      //         unit: "(m/s)",
-      //       });
-      //     });
-
-      //     that[dataKey] = pieChart;
-      //   },
-      // });
     },
 
     // 切换tab
@@ -1978,6 +1753,7 @@ export default {
   .tab-5 {
     .panel-body {
       padding: 16px;
+      // height: 50px;
     }
   }
 }

+ 24 - 8
src/views/NewPages/form.vue

@@ -10,20 +10,20 @@
         :data="tableData"
         :header-cell-style="{
           height: '40px',
-          background: 'rgba(83, 98, 104,0.2)',
+          background: 'rgba(22, 31, 30,1)',
           color: '#b2bdc0',
           'border-bottom': '0px solid red',
         }"
         :cell-style="{
           height: '40px',
-
+          background: 'rgba(0, 0, 0,1)',
           'border-bottom': 'solid 0px #242424',
         }"
         stripe
         style="
           width: 100%;
           margin-bottom: 10px;
-          background: 'rgba(83, 98, 104)';
+          background: 'rgba(83, 98, 104,1)';
         "
       >
         <el-table-column
@@ -34,7 +34,7 @@
             : ''"
           :key="index"
           :prop="i"
-          :label="i === 'name' ? '名字' : i === 'date' ? '日期' : i"
+          :label="i === 'name' ? '名字' : i === 'date' ? '日期' : i.slice(2)"
           :fixed="i === 'name' || i === 'date' ? 'left' : null"
           width="160"
           align="center"
@@ -66,7 +66,6 @@ export default {
   data() {
     return {
       tableData: [],
-      tableTit: [],
       timeNow: {},
     };
   },
@@ -84,18 +83,27 @@ export default {
           for (let i = 0; i < res.data.length ? res.data.length : ""; i++) {
             for (let key in res.data[i]) {
               if (key === "date") {
-                res.data[i][key] = new Date(res.data[i][key]).formatDate("yyyy-MM-dd");
+                res.data[i][key] = new Date(res.data[i][key]).formatDate(
+                  "yyyy-MM-dd"
+                );
               }
             }
           }
+
+          // for (let x of res.data) {
+          //   for (let y in x) {
+          //    y = y.substring(y.indexOf("_", y.indexOf("_")) + 1);
+          //   }
+          // }
           this.tableData = res.data;
+          // console.log(" res.data", res.data);
         });
     },
     // 表格
     handleClick(row) {},
     back() {
       this.$router.push({
-        path: "/decision/statisticAnalysis",
+        path: "/others/statisticAnalysis",
         query: {
           theday: this.timeNow.theday,
           wpid: this.timeNow.wpid,
@@ -106,7 +114,7 @@ export default {
     },
     blackCZ() {
       this.$router.push({
-        path: "/decision/statisticAnalysis/station",
+        path: "/others/statisticAnalysis/station",
         query: {
           theday: this.timeNow.theday,
           wpid: this.timeNow.wpid,
@@ -137,4 +145,12 @@ export default {
 /deep/.el-table__fixed::before {
   height: 0;
 }
+/deep/.main-body
+  .el-table.el-table--striped
+  .el-table__body
+  tr.el-table__row--striped
+  td {
+  opacity: 1 !important;
+  background-color: yellowgreen;
+}
 </style>

+ 10 - 7
src/views/NewPages/history-search.vue

@@ -18,13 +18,13 @@
             </el-date-picker>
           </div>
         </div>
-        <div class="query-item">
+        <!-- <div class="query-item">
           <div class="lable">间隔:</div>
           <div class="search-input">
             <el-input v-model="form.interval" type="number"></el-input>
           </div>
-        </div>
-        <div class="query-item">
+        </div> -->
+        <!-- <div class="query-item">
           <div class="lable">间隔:</div>
           <div class="search-input">
             <el-checkbox
@@ -33,7 +33,7 @@
               :border="true"
             ></el-checkbox>
           </div>
-        </div>
+        </div> -->
         <div class="query-item">
           <div class="lable"></div>
           <div class="search-input">
@@ -316,8 +316,8 @@ export default {
       }
     },
     last() {
-      if (this.active-- < 0) {
-        this.active = 0;
+      if (this.active-- <= 1) {
+        this.active = 1;
       }
     },
     reset() {
@@ -664,7 +664,10 @@ export default {
   }
 }
 .el-checkbox__input {
-  display: block;
+ display: block;
+}
+.el-checkbox__label{
+  padding-left: 0;
 }
 .steps {
   margin: 30px;

+ 35 - 272
src/views/NewPages/power-benchmarking.vue

@@ -11,12 +11,14 @@
             <svg-icon :svgid="'svg-flash'" />
           </i>
         </div>
+        <!-- 累计增发电量 -->
         <div class="info">
           <div class="title">累计增发电量</div>
-          <div class="value">{{ increasescapacity }}</div>
+          <div class="value">0</div>
           <div class="unit">万kWh</div>
         </div>
       </div>
+      <!--   理论电量平衡分析法 -->
       <div
         class="static-items"
         :style="
@@ -35,6 +37,7 @@
           <div class="item" v-for="(item, index) of analyselist" :key="index">
             <div class="title">{{ item.name }}</div>
             <div class="value">{{ item.actual }}%</div>
+            
             <div class="up-down">
               <div class="up-down-item">
                 <span class="name">环</span>
@@ -73,6 +76,7 @@
                 <span class="value">{{ item.yoy }}%</span>
               </div>
             </div>
+
             <div class="percent">
               <div class="percent-box">
                 <div
@@ -88,9 +92,12 @@
               </div>
               <div class="value">{{ item.expect }}%</div>
             </div>
+
+
           </div>
         </div>
       </div>
+      <!-- 管理效率指标 -->
       <div
         class="static-items"
         :style="
@@ -105,6 +112,7 @@
           </i>
           管理效率指标
         </div>
+
         <div class="items">
           <div class="item" v-for="(item, index) of managelist" :key="index">
             <div class="title">{{ item.name }}</div>
@@ -165,6 +173,7 @@
           </div>
         </div>
       </div>
+      <!--  其它经济性指标 -->
       <div
         class="static-items"
         :style="
@@ -240,6 +249,7 @@
         </div>
       </div>
     </div>
+
     <div class="top">
       <div class="top-left">
         <div class="top-left-header">
@@ -288,7 +298,7 @@
               </div>
             </div> -->
           </div>
-          <div class="header-right">
+          <!-- <div class="header-right">
             <div
               class="right-btn"
               :class="{ active: btnIndex == 0 }"
@@ -296,10 +306,11 @@
             >
               风电
             </div>
-            <!-- <div class="right-btn" :class="{ active: btnIndex == 1 }" @click="rightBtnClick(1)">光伏</div> -->
+            <div class="right-btn" :class="{ active: btnIndex == 1 }" @click="rightBtnClick(1)">光伏</div>
             <span class="right-btn">光伏</span>
-          </div>
+          </div> -->
         </div>
+        <!-- 中间数据 -->
         <group-table
           :customClass="'table'"
           :data="eltableData"
@@ -332,6 +343,7 @@
         </group-table>
       </div>
     </div>
+<!-- 指标分析 -->
     <div class="bottom">
       <panel :title="'指标分析'">
         <multiple-bar-chart
@@ -355,8 +367,8 @@ export default {
     return {
       selecttionIndex: 2,
       btnIndex: 0,
-      increasescapacity: 0, //增发电量
-      ChangZhan:[],
+      increasescapacity: 0, //累计增发电量{{ increasescapacity }}
+      ChangZhan: [],
       analyselist: [
         //理论平衡分析法
         { name: "风能利用率", label: "windenergy" },
@@ -384,7 +396,7 @@ export default {
             name: "",
             child: [
               {
-                name: "区域公司",
+                name: "场站",
                 field: "name",
                 width: 80,
               },
@@ -656,7 +668,9 @@ export default {
         .then((res) => {
           if (res.code == 200) {
             res.data.forEach((item) => {
-              item.name = this.ChangZhan.filter(val => item.foreignkeyid === val.id)[0].name
+              item.name = this.ChangZhan.filter(
+                (val) => item.foreignkeyid === val.id
+              )[0].name;
               item.mark = this.filter(item.mark);
               item.theoreticalpower = this.filter(item.theoreticalpower);
               item.actualpower = this.filter(item.actualpower);
@@ -811,62 +825,62 @@ export default {
                   Number(item[3].mttf)
               ),
               availability: this.filter(
-                (Number(item[0].availability) +
+                 (Number(item[0].availability) +
                   Number(item[1].availability) +
                   Number(item[2].availability) +
                   Number(item[3].availability)) /
                   4
               ),
               availabilityfactor: this.filter(
-                (Number(item[0].availabilityfactor) +
+                 (Number(item[0].availabilityfactor) +
                   Number(item[1].availabilityfactor) +
                   Number(item[2].availabilityfactor) +
                   Number(item[3].availabilityfactor)) /
                   4
               ),
               failurelossrate: this.filter(
-                (Number(item[0].failurelossrate) +
+                 (Number(item[0].failurelossrate) +
                   Number(item[1].failurelossrate) +
                   Number(item[2].failurelossrate) +
                   Number(item[3].failurelossrate)) /
                   4
               ),
               mainlossrate: this.filter(
-                (Number(item[0].mainlossrate) +
+                 (Number(item[0].mainlossrate) +
                   Number(item[1].mainlossrate) +
                   Number(item[2].mainlossrate) +
                   Number(item[3].mainlossrate)) /
                   4
               ),
               mttr: this.filter(
-                Number(item[0].mttr) +
+                 Number(item[0].mttr) +
                   Number(item[1].mttr) +
                   Number(item[2].mttr) +
                   Number(item[3].mttr)
               ),
               hiddentimely: this.filter(
-                (Number(item[0].hiddentimely) +
+                 (Number(item[0].hiddentimely) +
                   Number(item[1].hiddentimely) +
                   Number(item[2].hiddentimely) +
                   Number(item[3].hiddentimely)) /
                   4
               ),
               resettimelyrate: this.filter(
-                (Number(item[0].resettimelyrate) +
+                 (Number(item[0].resettimelyrate) +
                   Number(item[1].resettimelyrate) +
                   Number(item[2].resettimelyrate) +
                   Number(item[3].resettimelyrate)) /
                   4
               ),
               statetransitionrate: this.filter(
-                (Number(item[0].statetransitionrate) +
+                 (Number(item[0].statetransitionrate) +
                   Number(item[1].statetransitionrate) +
                   Number(item[2].statetransitionrate) +
                   Number(item[3].statetransitionrate)) /
                   4
               ),
               eliminationrate: this.filter(
-                (Number(item[0].eliminationrate) +
+                 (Number(item[0].eliminationrate) +
                   Number(item[1].eliminationrate) +
                   Number(item[2].eliminationrate) +
                   Number(item[3].eliminationrate)) /
@@ -874,252 +888,15 @@ export default {
               ),
             };
             item.push(obj);
+
+            res.data.forEach(function (x) {
+              x.name = x.name.slice(0, 2);
+            });
             this.eltableData.data = res.data;
             this.setRank();
             this.echartData(this.eltableData.column[1].child.slice(3));
           }
         });
-
-      // let that = this;
-      // this.API.requestData({
-      //   method: "GET",
-      //   baseURL: "http://10.83.66.220:8020/",
-      //   subUrl: "benchmarking/dbmainbottom",
-      //   data: {
-      //     timetype: timetype,
-      //     foreigntype: "风电",
-      //   },
-      // success(res) {
-      //   if (res.code == 200) {
-      //     res.data.forEach((item) => {
-      //       if (item.foreignkeyid === "SBQ_FDC") item.name = "石板泉";
-      //       if (item.foreignkeyid === "MHS_FDC") item.name = "麻黄山";
-      //       if (item.foreignkeyid === "NSS_FDC") item.name = "牛首山";
-      //       if (item.foreignkeyid === "XS_FDC") item.name = "香山";
-      //       if (item.foreignkeyid === "QS_FDC") item.name = "青山";
-      //       item.mark = that.filter(item.mark);
-      //       item.theoreticalpower = that.filter(item.theoreticalpower);
-      //       item.actualpower = that.filter(item.actualpower);
-      //       item.daynhgzssdl = that.filter(item.daynhgzssdl);
-      //       item.daynhwhssdl = that.filter(item.daynhwhssdl);
-      //       item.daynhxdssdl = that.filter(item.daynhxdssdl);
-      //       item.daynhcfdl = that.filter(item.daynhcfdl);
-      //       item.daynhqfdl = that.filter(item.daynhqfdl);
-      //       item.windenergy = that.filter(item.windenergy);
-      //       item.powerlossrate = that.filter(item.powerlossrate);
-      //       item.performancelossrate = that.filter(item.performancelossrate);
-      //       item.comprehensiverate = that.filter(item.comprehensiverate);
-      //       item.utilizationhours = that.filter(item.utilizationhours);
-      //       item.windpoweraccuracy = that.filter(item.windpoweraccuracy);
-      //       item.agccurvefollowing = that.filter(item.agccurvefollowing);
-      //       item.mtbf = that.filter(item.mtbf);
-      //       item.mttf = that.filter(item.mttf);
-      //       item.availability = that.filter(item.availability);
-      //       item.availabilityfactor = that.filter(item.availabilityfactor);
-      //       item.failurelossrate = that.filter(item.failurelossrate);
-      //       item.mainlossrate = that.filter(item.mainlossrate);
-      //       item.mttr = that.filter(item.mttr);
-      //       item.hiddentimely = that.filter(item.hiddentimely);
-      //       item.resettimelyrate = that.filter(item.resettimelyrate);
-      //       item.statetransitionrate = that.filter(item.statetransitionrate);
-      //       item.eliminationrate = that.filter(item.eliminationrate);
-      //     });
-
-      //     // 合计列
-      //     let item = res.data;
-      //     let obj = {
-      //       name: "合计",
-      //       mark: that.filter(
-      //         (Number(item[0].mark) +
-      //           Number(item[1].mark) +
-      //           Number(item[2].mark) +
-      //           Number(item[3].mark)) /
-      //           4
-      //       ),
-      //       capacity: that.filter(
-      //         Number(item[0].capacity) +
-      //           Number(item[1].capacity) +
-      //           Number(item[2].capacity) +
-      //           Number(item[3].capacity)
-      //       ),
-      //       units: that.filter(
-      //         Number(item[0].units) +
-      //           Number(item[1].units) +
-      //           Number(item[2].units) +
-      //           Number(item[3].units)
-      //       ),
-      //       theoreticalpower: that.filter(
-      //         Number(item[0].theoreticalpower) +
-      //           Number(item[1].theoreticalpower) +
-      //           Number(item[2].theoreticalpower) +
-      //           Number(item[3].theoreticalpower)
-      //       ),
-      //       actualpower: that.filter(
-      //         Number(item[0].actualpower) +
-      //           Number(item[1].actualpower) +
-      //           Number(item[2].actualpower) +
-      //           Number(item[3].actualpower)
-      //       ),
-      //       daynhgzssdl: that.filter(
-      //         Number(item[0].daynhgzssdl) +
-      //           Number(item[1].daynhgzssdl) +
-      //           Number(item[2].daynhgzssdl) +
-      //           Number(item[3].daynhgzssdl)
-      //       ),
-      //       daynhwhssdl: that.filter(
-      //         Number(item[0].daynhwhssdl) +
-      //           Number(item[1].daynhwhssdl) +
-      //           Number(item[2].daynhwhssdl) +
-      //           Number(item[3].daynhwhssdl)
-      //       ),
-      //       daynhxdssdl: that.filter(
-      //         Number(item[0].daynhxdssdl) +
-      //           Number(item[1].daynhxdssdl) +
-      //           Number(item[2].daynhxdssdl) +
-      //           Number(item[3].daynhxdssdl)
-      //       ),
-      //       daynhcfdl: that.filter(
-      //         Number(item[0].daynhcfdl) +
-      //           Number(item[1].daynhcfdl) +
-      //           Number(item[2].daynhcfdl) +
-      //           Number(item[3].daynhcfdl)
-      //       ),
-      //       daynhqfdl: that.filter(
-      //         Number(item[0].daynhqfdl) +
-      //           Number(item[1].daynhqfdl) +
-      //           Number(item[2].daynhqfdl) +
-      //           Number(item[3].daynhqfdl)
-      //       ),
-      //       windenergy: that.filter(
-      //         (Number(item[0].windenergy) +
-      //           Number(item[1].windenergy) +
-      //           Number(item[2].windenergy) +
-      //           Number(item[3].windenergy)) /
-      //           4
-      //       ),
-      //       powerlossrate: that.filter(
-      //         (Number(item[0].powerlossrate) +
-      //           Number(item[1].powerlossrate) +
-      //           Number(item[2].powerlossrate) +
-      //           Number(item[3].powerlossrate)) /
-      //           4
-      //       ),
-      //       performancelossrate: that.filter(
-      //         (Number(item[0].performancelossrate) +
-      //           Number(item[1].performancelossrate) +
-      //           Number(item[2].performancelossrate) +
-      //           Number(item[3].performancelossrate)) /
-      //           4
-      //       ),
-      //       comprehensiverate: that.filter(
-      //         (Number(item[0].comprehensiverate) +
-      //           Number(item[1].comprehensiverate) +
-      //           Number(item[2].comprehensiverate) +
-      //           Number(item[3].comprehensiverate)) /
-      //           4
-      //       ),
-      //       utilizationhours: that.filter(
-      //         Number(item[0].utilizationhours) +
-      //           Number(item[1].utilizationhours) +
-      //           Number(item[2].utilizationhours) +
-      //           Number(item[3].utilizationhours)
-      //       ),
-      //       windpoweraccuracy: that.filter(
-      //         (Number(item[0].windpoweraccuracy) +
-      //           Number(item[1].windpoweraccuracy) +
-      //           Number(item[2].windpoweraccuracy) +
-      //           Number(item[3].windpoweraccuracy)) /
-      //           4
-      //       ),
-      //       agccurvefollowing: that.filter(
-      //         (Number(item[0].agccurvefollowing) +
-      //           Number(item[1].agccurvefollowing) +
-      //           Number(item[2].agccurvefollowing) +
-      //           Number(item[3].agccurvefollowing)) /
-      //           4
-      //       ),
-      //       mtbf: that.filter(
-      //         Number(item[0].mtbf) +
-      //           Number(item[1].mtbf) +
-      //           Number(item[2].mtbf) +
-      //           Number(item[3].mtbf)
-      //       ),
-      //       mttf: that.filter(
-      //         Number(item[0].mttf) +
-      //           Number(item[1].mttf) +
-      //           Number(item[2].mttf) +
-      //           Number(item[3].mttf)
-      //       ),
-      //       availability: that.filter(
-      //         (Number(item[0].availability) +
-      //           Number(item[1].availability) +
-      //           Number(item[2].availability) +
-      //           Number(item[3].availability)) /
-      //           4
-      //       ),
-      //       availabilityfactor: that.filter(
-      //         (Number(item[0].availabilityfactor) +
-      //           Number(item[1].availabilityfactor) +
-      //           Number(item[2].availabilityfactor) +
-      //           Number(item[3].availabilityfactor)) /
-      //           4
-      //       ),
-      //       failurelossrate: that.filter(
-      //         (Number(item[0].failurelossrate) +
-      //           Number(item[1].failurelossrate) +
-      //           Number(item[2].failurelossrate) +
-      //           Number(item[3].failurelossrate)) /
-      //           4
-      //       ),
-      //       mainlossrate: that.filter(
-      //         (Number(item[0].mainlossrate) +
-      //           Number(item[1].mainlossrate) +
-      //           Number(item[2].mainlossrate) +
-      //           Number(item[3].mainlossrate)) /
-      //           4
-      //       ),
-      //       mttr: that.filter(
-      //         Number(item[0].mttr) +
-      //           Number(item[1].mttr) +
-      //           Number(item[2].mttr) +
-      //           Number(item[3].mttr)
-      //       ),
-      //       hiddentimely: that.filter(
-      //         (Number(item[0].hiddentimely) +
-      //           Number(item[1].hiddentimely) +
-      //           Number(item[2].hiddentimely) +
-      //           Number(item[3].hiddentimely)) /
-      //           4
-      //       ),
-      //       resettimelyrate: that.filter(
-      //         (Number(item[0].resettimelyrate) +
-      //           Number(item[1].resettimelyrate) +
-      //           Number(item[2].resettimelyrate) +
-      //           Number(item[3].resettimelyrate)) /
-      //           4
-      //       ),
-      //       statetransitionrate: that.filter(
-      //         (Number(item[0].statetransitionrate) +
-      //           Number(item[1].statetransitionrate) +
-      //           Number(item[2].statetransitionrate) +
-      //           Number(item[3].statetransitionrate)) /
-      //           4
-      //       ),
-      //       eliminationrate: that.filter(
-      //         (Number(item[0].eliminationrate) +
-      //           Number(item[1].eliminationrate) +
-      //           Number(item[2].eliminationrate) +
-      //           Number(item[3].eliminationrate)) /
-      //           4
-      //       ),
-      //     };
-      //     item.push(obj);
-      //     that.eltableData.data = res.data;
-      //     that.setRank();
-      //     that.echartData(that.eltableData.column[1].child.slice(3));
-      //   }
-      // },
-      // });
     },
     // 顶部数据
     requestDataTop(timetype) {
@@ -1131,20 +908,6 @@ export default {
         .then((res) => {
           if (res.code == 200 && res.data.length > 0) this.calculate(res.data);
         });
-
-      // let that = this;
-      // this.API.requestData({
-      //   method: "GET",
-      //   baseURL: "http://10.83.66.220:8020/",
-      //   subUrl: "benchmarking/dbmaintop",
-      //   data: {
-      //     timetype: timetype,
-      //     foreigntype: "风电",
-      //   },
-      //   success(res) {
-      //     if (res.code == 200) that.calculate(res.data);
-      //   },
-      // });
     },
     // 左边的排序
     setRank(column, name) {

+ 26 - 26
src/views/NewPages/station.vue

@@ -122,7 +122,7 @@ export default {
     },
     back() {
       this.$router.push({
-        path: "/decision/statisticAnalysis",
+        path: "/others/statisticAnalysis",
         query: {
           theday: this.timeNow.theday,
           wpid: this.timeNow.wpid,
@@ -133,7 +133,7 @@ export default {
     },
     backForm() {
       this.$router.push({
-        path: "/decision/statisticAnalysis/form",
+        path: "/others/statisticAnalysis/form",
         query: {
           theday: this.timeNow.theday,
           wpid: this.timeNow.wpid,
@@ -144,30 +144,30 @@ export default {
     },
     addClass({ row, column, rowIndex, columnIndex }) {
       // if(columnIndex === 4){
-      if (parseFloat(row.麻黄山风电场) < 0) {
-        return "background:yellow";
-      }
-      if (parseFloat(row.牛首山风电场) < 0) {
-        return "background:yellow";
-      }
-      if (parseFloat(row.青山风电场) < 0) {
-        return "background:yellow";
-      }
-      if (parseFloat(row.石板泉风电场) < 0) {
-        return "background:yellow";
-      }
-      if (parseFloat(row.香山风电场) < 0) {
-        return "background:yellow";
-      }
-      if (parseFloat(row.大武口电站) < 0) {
-        return "background:yellow";
-      }
-      if (parseFloat(row.平罗光伏电站) < 0) {
-        return "background:yellow";
-      }
-      if (parseFloat(row.宣和光伏发电站) < 0) {
-        return "background:yellow";
-      }
+      // if (parseFloat(row.麻黄山风电场) < 0) {
+      //   return "background:yellow";
+      // }
+      // if (parseFloat(row.牛首山风电场) < 0) {
+      //   return "background:yellow";
+      // }
+      // if (parseFloat(row.青山风电场) < 0) {
+      //   return "background:yellow";
+      // }
+      // if (parseFloat(row.石板泉风电场) < 0) {
+      //   return "background:yellow";
+      // }
+      // if (parseFloat(row.香山风电场) < 0) {
+      //   return "background:yellow";
+      // }
+      // if (parseFloat(row.大武口电站) < 0) {
+      //   return "background:yellow";
+      // }
+      // if (parseFloat(row.平罗光伏电站) < 0) {
+      //   return "background:yellow";
+      // }
+      // if (parseFloat(row.宣和光伏发电站) < 0) {
+      //   return "background:yellow";
+      // }
     },
     changeNum(v) {
       const date = this.routerData.data.theday;

+ 8 - 7
src/views/NewPages/statisticAnalysis.vue

@@ -18,7 +18,8 @@
 
     <div class="table1">
       <el-table
-        max-height="80vh"
+        max-height="86vh"
+         height="1100"
         v-loading="loading"
         element-loading-background="rgba(0, 0, 0, 0.8)"
         :data="tableData"
@@ -52,7 +53,7 @@
           <template #default="scope">
             <el-button
               @click="handleClick3(scope.row)"
-              :class="scope.row.isConfirm == 1 ? 'aaaa' : 'btn'"
+              :class="scope.row.isConfirm == 1 ? 'displayBtn' : 'btn'"
               :disabled="scope.row.isConfirm == 1"
             >
               确认</el-button
@@ -94,7 +95,7 @@ export default {
   methods: {
     handleClickCZ(row) {
       this.$router.push({
-        path: "/decision/statisticAnalysis/station",
+        path: "/others/statisticAnalysis/station",
         query: {
           wpid: row.wpid,
           theday: row.theday,
@@ -106,7 +107,7 @@ export default {
     },
     handleClickForm(row) {
       this.$router.push({
-        path: "/decision/statisticAnalysis/form",
+        path: "/others/statisticAnalysis/form",
         query: {
           wpid: row.wpid, 
           theday: row.theday,
@@ -195,7 +196,7 @@ export default {
   border-radius: 5px;
 }
 .table1 {
-  margin-top: 60px;
+  margin-top: 30px;
 }
 /deep/.el-date-editor {
   width: 490px;
@@ -232,11 +233,11 @@ export default {
   border-color: #05bb4c;
 }
 
-.aaaa {
+.displayBtn {
   background-color: #4d4949;
   color: rgb(87 110 108);
 }
-.aaaa:hover {
+.displayBtn:hover {
   border: #4d4949;
   background-color: #4d4949;
   color: rgb(87 110 108);

+ 5 - 1
src/views/SandTable/SandTable.vue

@@ -535,6 +535,8 @@ import Col from "@com/coms/grid/col.vue";
 import Row from "@com/coms/grid/row.vue";
 import SvgIcon from "@com/coms/icon/svg-icon.vue";
 import hlsVideo from "./component/hls.vue";
+import api from "@api/wisdomOverhaul/one/index.js"
+// import api from "@api/wisdomOverhaul/windResource/index.js";
 
 export default {
   // 名称
@@ -778,11 +780,13 @@ export default {
     openVideoDialog1(item) {
       if (item.code) {
         this.dialogVideoUrl = item.code;
-        this.showVideoDialog = true;
+        // this.showVideoDialog = true;
       }
     },
 
     getWtInfo() {
+
+
       let that = this;
       that.API.requestData({
         method: "POST",

+ 9 - 7
src/views/Status/Status.vue

@@ -9,15 +9,16 @@
       ></StatusPanel>
       <!-- <StatusPanelStatic class="panel-item" /> -->
     </div>
+
     <div class="table-box">
       <ComTable :data="tableData"></ComTable>
     </div>
-    <div class="table-box">
+    <!-- <div class="table-box">
       <ComTable1 :data="tableData1"></ComTable1>
     </div>
     <div class="table-box">
       <ComTable1 :data="tableData2"></ComTable1>
-    </div>
+    </div> -->
   </div>
 </template>
 
@@ -58,7 +59,7 @@ export default {
         column: [
           {
             name: "场站名称",
-            field: "address",
+            field: "wpName",
             unit: "",
             is_num: false,
             is_light: false,
@@ -203,7 +204,7 @@ export default {
         column: [
           {
             // name: "场站名称",
-            field: "address",
+            field: "wpName",
             unit: "",
             is_num: false,
             is_light: false,
@@ -574,7 +575,7 @@ export default {
                     is_light: !ele.zxzt_cftzt,
                   },
                   {
-                    f1: "电能量表:",
+                    f1: "电表:",
                     f2: "",
                     f3: ele.dnlb,
                     f4: "",
@@ -692,9 +693,10 @@ export default {
     flex-wrap: wrap;
 
     .panel-item {
-      width: calc(20% - 1.185vh);
-      margin-left: 1.481vh;
+      width: calc(49.3% - 1.185vh);
+      margin-right: 2.4vh;
       margin-bottom: 1.481vh;
+      height: 320px;
 
       &:nth-child(5n + 1) {
         margin-left: 0;

+ 63 - 59
src/views/Status/components/status-panel.vue

@@ -8,21 +8,52 @@
             <span>{{ data.category.score }}</span>
           </div>
           <div class="box">
-            <div class="category-item" v-for="(item, index) of data.category.datas" :key="index">
+            <div
+              class="category-item"
+              v-for="(item, index) of data.category.datas"
+              :key="index"
+            >
               <div>{{ item.text }}</div>
               <div :class="item.color">{{ item.num }}</div>
             </div>
           </div>
         </div>
         <div class="item-box">
-          <div class="data-item" v-for="(item, index) of data.items" :key="index" :class="{ light: item.is_light }">
-            <div class="f1">{{ item.f1 }}</div>
-            <div class="f2">{{ item.f2 }}</div>
-            <div class="f3">{{ item.f3 }}</div>
-            <div class="f4">{{ item.f4 }}</div>
-            <div class="f5">{{ item.f5 }}</div>
+          <div
+            class="data-item"
+            v-for="(item, index) of data.items"
+            :key="index"
+            :class="{ light: item.is_light }"
+          >
+            <div class="f1">{{ item.f1.substring(0, item.f1.length - 1) }}</div>
+            <div class="f2">
+              {{ item.f2 }}
+              <div v-if="item.f3">:</div>
+              <div class="f3">
+                {{ item.f3 }}
+                <div v-if="!item.f3">0</div>
+              </div>
+            </div>
+
+            <div class="f4">
+              {{ item.f4 }}
+              <div v-if="item.f5">:</div>
+              <div class="f5">
+                <div v-if="!item.f3"></div>
+                {{ item.f5 }}
+              </div>
+            </div>
           </div>
         </div>
+
+        <!-- <el-table :data="data.items" style="width: 100%">
+        <el-table-column :label="AGC">
+          <el-table-column prop="f1" label="地址" width="200">
+          </el-table-column>
+          <el-table-column prop="zip" label="邮编111" width="120">
+          </el-table-column>
+        </el-table-column>
+      </el-table> -->
       </div>
     </ComPanel>
   </div>
@@ -71,7 +102,9 @@ export default {
   },
   // 数据
   data() {
-    return {};
+    return {
+      tableData: [],
+    };
   },
   // 函数
   methods: {
@@ -135,7 +168,7 @@ export default {
 
     .p-body {
       width: 100%;
-      height: 19.074vh;
+      height: 27vh;
       display: flex;
       flex-direction: column;
       margin-top: -0.926vh;
@@ -192,59 +225,41 @@ export default {
       .item-box {
         flex-grow: 1;
         display: flex;
-        flex-direction: column;
+        flex-direction: row;
 
         .data-item {
           flex: 1;
           display: flex;
-          flex-direction: row;
+          flex-direction: column;
           background-color: fade(@darkgray, 20%);
           margin-top: 0.278vh;
+          align-items: center;
 
-          div {
-            font-size: @fontsize-s;
-            overflow: hidden;
-            display: flex;
-            align-items: center;
+          .f1 {
+            height: 60px;
+            text-align: center;
+            font-size: 2.2vh;
+            font-weight: 695;
+            margin-top: 25px;
           }
-
-          .f1,
           .f2,
           .f4 {
-            text-align: right;
-            color: @gray;
-            justify-content: flex-end;
+            height: 50px;
+            display: inline-block;
+            text-align: left;
+            font-size: 1.8vh;
+            display: flex;
+            align-items: center;
           }
-
           .f3,
           .f5 {
-            font-family: "Bicubik";
+            height: 50px;
+            line-height: 50px;
+            display: inline-block;
             text-align: left;
-            color: @green;
-            justify-content: flex-start;
-          }
-
-          .f1 {
-            flex: 2;
-          }
-
-          .f2 {
-            flex: 3;
-            margin-right: 0.556vh;
-          }
-
-          .f3 {
-            flex: 3;
-          }
-
-          .f4 {
-            flex: 1;
-            margin-right: 0.556vh;
-          }
-
-          .f5 {
-            flex: 2;
-            margin-right: 0;
+            font-size: 1.6vh;
+            margin-left: 20px;
+            color: #05bb4c;
           }
 
           &.light {
@@ -260,17 +275,6 @@ export default {
               top: 0;
               left: 0;
             }
-
-            .f1,
-            .f2,
-            .f4 {
-              color: @write;
-            }
-
-            .f3,
-            .f5 {
-              color: fade(@write, 60%);
-            }
           }
         }
       }

ファイルの差分が大きいため隠しています
+ 561 - 2004
src/views/WindSite/components/boosterstation/BoosterStation.js


ファイルの差分が大きいため隠しています
+ 7251 - 0
src/views/WindSite/components/boosterstation/cl.vue


ファイルの差分が大きいため隠しています
+ 4858 - 0
src/views/WindSite/components/boosterstation/dx.vue


ファイルの差分が大きいため隠しています
+ 16338 - 0
src/views/WindSite/components/boosterstation/kb.vue


+ 722 - 0
src/views/WindSite/components/boosterstation/previewPicture.vue

@@ -0,0 +1,722 @@
+<template>
+  <div class="pop-up-main">
+    <div class="paln-box">
+      <div
+        class="movableItem"
+        :style="{ width: width, height: height }"
+        @mousewheel="rollImg($event)"
+        @mousedown="drag($event, 1)"
+        ref="bigImage"
+      >
+        <!-- 图片不可选中 或不可拖拽到新标签打开-->
+        <slot
+          name="svg"
+          oncontextmenu="return false;"
+          onselectstart="return false;"
+          draggable="false"
+        ></slot>
+        <template v-if="isEdit && iconWidth">
+          <img
+            ref="signImage"
+            :src="iconImgUrl"
+            @mousedown="dragSign($event, key)"
+            v-for="(item, key) in equipment"
+            :key="key"
+            :style="{
+              top: equipment[key].top + '%',
+              left: equipment[key].left + '%',
+              width: iconWidth,
+              height: iconHeight,
+            }"
+            class="equipment"
+          />
+        </template>
+        <el-popover
+          width="200"
+          placement="bottom-start"
+          trigger="hover"
+          :close-delay="100"
+          content="暂无描述"
+          v-else-if="!isEdit && iconWidth && arrIcon.length == equipment.length"
+          v-for="(item, key) in equipment"
+          :key="key"
+          popper-class="preview-popover"
+        >
+          <!-- &&arrIcon.length==equipment.length -->
+          <template>
+            <div v-if="equipment[key].describe" class="describe">
+              <p class="describe-top">
+                {{ equipment[key].describe.deviceName }}
+              </p>
+              <p class="describe-center">
+                {{ equipment[key].describe.remark }}
+              </p>
+              <p class="describe-bottom">
+                {{ equipment[key].describe.location }}
+              </p>
+            </div>
+          </template>
+          <!-- <img oncontextmenu="return false;" onselectstart="return false;" draggable="false" slot="reference"
+						ref="signImage" :src="$baseUrl + equipment[key].iconImgUrl"
+						:style="{top:equipment[key].top+'%',left:equipment[key].left+'%',width:arrIcon[key].iconWidth,height:arrIcon[key].iconHeight}"
+						class="equipment" /> -->
+        </el-popover>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  props: {
+    equipment: {
+      type: Array,
+      default: () => {
+        return [
+          {
+            iconImgUrl: "",
+            top: 0,
+            left: 0,
+          },
+        ];
+      },
+    },
+    isEdit: {
+      default: false,
+    },
+    imgUrl: {},
+  },
+
+  data() {
+    return {
+      // 定时器
+      timer: "",
+      // 图片加载失败
+      imgOnerror: false,
+      imgIndex: 0,
+      isChange: true,
+      // 图片显示默认大小
+      width: '1823px',
+      height: '103vh',  
+      // 可缩小倍数,为空则可无限缩小
+      minification: 3,
+      // 可放大倍数 为空则可无限放大
+      magnification: "",
+      bigMaxWidth: 1100,
+      bigMaxHeight: 800,
+
+      // 小图标信息
+      iconImgUrl: "",
+      iconWidth: "",
+      // 存储每个小图标处理好的宽高
+      iconHeight: "",
+      arrIcon: [],
+      iconMaxWidth: 32,
+      iconMaxHeight: 32,
+      tog: 1,
+    };
+  },
+  methods: {
+    // 获取图片大小
+    getImgInfo(
+      imgUrl,
+      MaxWidth,
+      MaxHeight,
+      StrWidth,
+      StrHeight,
+      Array = false,
+      arr,
+      num = 0
+    ) {
+      let img = new Image();
+
+      // img.src = imgUrl;
+      img = document.getElementsByClassName("svg");
+      let _this = this;
+      img.onerror = () => {
+        // console.log("加载失败!!", _this.arrIcon.length);
+        // console.log(imgUrl, MaxWidth, MaxHeight, StrWidth, StrHeight);
+        _this.imgOnerror = true;
+        _this.imgIndex =
+          _this.arrIcon.length - 1 < 0 ? 0 : _this.arrIcon.length - 1;
+        this.timer = setTimeout(() => {
+          if (num <= 5) {
+            _this.getImgInfo(
+              imgUrl,
+              MaxWidth,
+              MaxHeight,
+              StrWidth,
+              StrHeight,
+              Array,
+              arr,
+              num + 1
+            );
+          }
+          clearInterval(this.timer);
+        }, 2000);
+      };
+      img.onload = function (e) {
+        //  显示时 初始 最大宽度
+        let maxWidth = MaxWidth;
+        //  显示时 初始 最大高度
+        let maxHeight = MaxHeight;
+        if (
+          e.path[0].naturalWidth <= maxWidth &&
+          e.path[0].naturalHeight <= maxHeight
+        ) {
+          _this[StrWidth] = e.path[0].naturalWidth + "px";
+          _this[StrHeight] = e.path[0].naturalHeight + "px";
+        } else {
+          _this[StrWidth] = e.path[0].naturalWidth + "px";
+          _this[StrHeight] = e.path[0].naturalHeight + "px";
+          if (
+            e.path[0].naturalWidth > maxWidth &&
+            e.path[0].naturalHeight <= maxHeight
+          ) {
+            let ratio = e.path[0].naturalWidth / e.path[0].naturalHeight;
+            _this[StrWidth] = "1600px";
+            _this[StrHeight] = maxWidth / ratio + "px";
+          } else if (
+            e.path[0].naturalWidth <= maxWidth &&
+            e.path[0].naturalHeight > maxHeight
+          ) {
+            let ratio = e.path[0].naturalWidth / e.path[0].naturalHeight;
+            _this[StrWidth] = maxHeight * ratio + "px";
+            _this[StrHeight] = "800px";
+          } else if (
+            e.path[0].naturalWidth > maxWidth &&
+            e.path[0].naturalHeight > maxHeight
+          ) {
+            let ratio = e.path[0].naturalWidth / e.path[0].naturalHeight;
+            let w = maxWidth;
+            let h = w / ratio;
+            if (h > maxHeight) {
+              let ratio2 = w / h;
+              h = maxHeight;
+              w = h * ratio2;
+            }
+            _this[StrWidth] = w + "px";
+            _this[StrHeight] = h + "px";
+          }
+        }
+        if (Array) {
+          _this[arr].push({
+            iconWidth: _this[StrWidth],
+            iconHeight: _this[StrHeight],
+          });
+          // console.log(
+          // 	"tow#################################arrIcon",
+          // 	_this[arr].length
+          // );
+        }
+        // _this[StrWidth] = `${e.path[0].naturalWidth}px`;
+        // _this[StrHeight] = `${e.path[0].naturalHeight}px`;
+        // vm.$set(vm.imgInfo, "width", img.width);
+        // vm.$set(vm.imgInfo, "height", img.height);
+        // console.log("打印图片信息", imgUrl, _this[StrWidth], _this[StrHeight]); // 打印图片信息
+
+        // console.log("打印图片信息", e.path[0].naturalHeight); // 打印图片信息
+        // console.log("打印图片信息", e); // 打印图片信息
+        // console.log("打印图片信息this.width", _this[StrWidth]); // 打印图片信息
+        // console.log("打印图片信息this.height", _this[StrHeight]); // 打印图片信息
+      };
+    },
+    // 缩放
+    rollImg() {
+      let that = this;
+      // let oImg = document.getElementsByClassName("movableItem")[0];
+      let oImg = this.$refs.bigImage;
+      // console.log(
+      // 	"length",
+      // 	document.getElementsByClassName("movableItem").length
+      // );
+      // console.log("oImg", oImg);
+      let _this = this;
+
+      function fnWheel(obj, fncc) {
+        obj.onmousewheel = fn;
+        if (obj.addEventListener) {
+          obj.addEventListener("DOMMouseScroll", fn, false);
+        }
+
+        function fn(ev) {
+          let oEvent = ev || window.event;
+          let down = true;
+          if (oEvent.detail) {
+            down = oEvent.detail > 0;
+          } else {
+            down = oEvent.wheelDelta < 0;
+          }
+          if (fncc) {
+            fncc.call(this, down, oEvent);
+          }
+          if (oEvent.preventDefault) {
+            oEvent.preventDefault();
+          }
+          return false;
+        }
+      }
+      fnWheel(oImg, function (down, oEvent) {
+        let oldWidth = this.offsetWidth;
+        let oldHeight = this.offsetHeight;
+        let oldLeft = this.offsetLeft;
+        let oldTop = this.offsetTop;
+        let parent = oEvent.path[2];
+        // 获取父元素距离页面可视区域的位置
+        let parentLeft = parent.getBoundingClientRect().left;
+        let parentTop = parent.getBoundingClientRect().top;
+        // 比例 = (点击位置距离可视窗口位置 - 父元素距离可视窗口位置 - 相对定位的left)/ 本身宽度
+        let scaleX = (oEvent.clientX - parentLeft - oldLeft) / oldWidth; //比例
+        let scaleY = (oEvent.clientY - parentTop - oldTop) / oldHeight;
+
+        let nowWidth = this.style.width.split("p")[0];
+        let initWidth = _this.width.split("p")[0];
+        let initHeight = _this.height.split("p")[0];
+
+        let miniFlag = true;
+        let magniFlag = true;
+        if (_this.minification) {
+          // 限制缩小范围
+          if (nowWidth <= parseInt(initWidth / _this.minification)) {
+            miniFlag = false;
+            // console.log("限制缩小范围");
+            // console.log(
+            // 	"限制缩小范围",
+            // 	nowWidth,
+            // 	parseInt(initWidth / _this.minification)
+            // );
+            this.style.width = parseInt(initWidth / _this.minification) + "px";
+            this.style.height =
+              parseInt(initHeight / _this.minification) + "px";
+          }
+          if (_this.magnification) {
+            // 限制放大范围
+            if (nowWidth >= parseInt(initWidth * _this.magnification)) {
+              magniFlag = false;
+              // console.log("限制放大范围");
+              this.style.width =
+                parseInt(initWidth * _this.magnification) + "px";
+              this.style.height =
+                parseInt(initHeight * _this.magnification) + "px";
+            }
+          }
+        }
+
+        if (down && miniFlag) {
+          this.style.width = parseInt(this.offsetWidth * 0.9) + "px";
+          this.style.height = parseInt(this.offsetHeight * 0.9) + "px";
+
+          that.width = parseInt(this.offsetWidth * 0.9) + "px";
+          that.height = parseInt(this.offsetHeight * 0.9) + "px";
+        } else if (!down && magniFlag) {
+          // console.log("放大");
+          this.style.width = parseInt(this.offsetWidth * 1.1) + "px";
+          this.style.height = parseInt(this.offsetHeight * 1.1) + "px";
+          that.width = parseInt(this.offsetWidth * 1.1) + "px";
+          that.height = parseInt(this.offsetHeight * 1.1) + "px";
+        }
+        let newWidth = this.offsetWidth;
+        let newHeight = this.offsetHeight;
+
+        // 新的相对位置left = 原先的相对位置left - 比例 *(本身新的宽度-旧的宽度)
+        this.style.left =
+          Math.round(this.offsetLeft - scaleX * (newWidth - oldWidth)) + "px";
+        this.style.top =
+          Math.round(this.offsetTop - scaleY * (newHeight - oldHeight)) + "px";
+      });
+      // console.log(that.width)
+    },
+    // },
+    //拖拽
+    drag(ev) {
+      // let ie = document.all;
+      let nn6 = document.getElementById && !document.all;
+      let isdrag = false;
+      let y, x;
+      let nTY, nTX;
+      let oDragObj;
+
+      function moveMouse(e) {
+        if (isdrag) {
+          oDragObj.style.top =
+            (nn6 ? nTY + e.clientY - y : nTY + event.clientY - y) + "px";
+          oDragObj.style.left =
+            (nn6 ? nTX + e.clientX - x : nTX + event.clientX - x) + "px";
+          return false;
+        }
+      }
+
+      function initDrag(e) {
+        // console.log("点击图片initDrag");
+        let oDragHandle = nn6 ? e.target : event.srcElement;
+        let topElement = "HTML";
+        while (
+          oDragHandle.tagName != topElement &&
+          oDragHandle.className != "movableItem"
+        ) {
+          oDragHandle = nn6
+            ? oDragHandle.parentNode
+            : oDragHandle.parentElement;
+        }
+        if (oDragHandle.className == "movableItem") {
+          isdrag = true;
+          oDragObj = oDragHandle;
+          // 父元素宽高
+          let width = e.path[2].offsetWidth;
+          let height = e.path[2].offsetHeight;
+          // 这里判断第一次获取不到style 样式 默认为 居中50%
+          if (oDragObj.style.top == "") {
+            nTY = 0;
+            nTX = parseInt((50 * width) / 100 + 0);
+          } else {
+            nTY = parseInt(oDragObj.style.top + 0);
+            nTX = parseInt(oDragObj.style.left + 0);
+          }
+          y = nn6 ? e.clientY : event.clientY;
+          x = nn6 ? e.clientX : event.clientX;
+          oDragObj.style.cursor = "move";
+          document.onmousemove = moveMouse;
+          return false;
+        }
+      }
+      document.onmousemove = initDrag;
+      // document.onmouseup = new Function("isdrag=false");
+      document.onmouseup = function (e) {
+        isdrag = false;
+        document.onmousemove = null;
+        document.onmouseup = null;
+        let oDragHandle = nn6 ? e.target : event.srcElement;
+        let topElement = "HTML";
+        while (
+          oDragHandle.tagName != topElement &&
+          oDragHandle.className != "movableItem"
+        ) {
+          oDragHandle = nn6
+            ? oDragHandle.parentNode
+            : oDragHandle.parentElement;
+        }
+        if (oDragHandle.className == "movableItem") {
+          oDragObj = oDragHandle;
+          oDragObj.style.cursor = "Default";
+        }
+      };
+      ev = event || window.event;
+
+      // 取消事件冒泡行为
+      // window.event ? (window.event.cancelBubble = true) : ev.stopPropagation();
+    },
+    // 拖拽标记
+    // eslint-disable-next-line no-unused-lets
+    dragSign(ev, key) {
+      let nn6 = document.getElementById && !document.all;
+      let isdrag = false;
+      let y, x;
+      let nTY, nTX;
+      let oDragObj;
+      let _this = this;
+
+      function moveMouse(e) {
+        if (isdrag) {
+          this.equipmentKey = key;
+          // console.log("thisequipmentKey", this.equipmentKey);
+
+          let widthItem = e.path[1].style.width.split("p");
+          let heightItem = e.path[1].style.height.split("p");
+          let width = widthItem[0];
+          // eslint-disable-next-line no-unused-lets
+          let height = heightItem[0];
+          let top =
+            ((nn6
+              ? (nTY / 100) * height + e.clientY - y
+              : (nTY / 100) * height + event.clientY - y) /
+              height) *
+            100;
+          let left =
+            ((nn6
+              ? (nTX / 100) * width + e.clientX - x
+              : (nTX / 100) * width + event.clientX - x) /
+              width) *
+            100;
+
+          if (top >= 0 && top <= 100) {
+            _this.equipment[key].top = top;
+          }
+          if (left >= 0 && left <= 100) {
+            _this.equipment[key].left = left;
+          }
+
+          return false;
+        }
+      }
+      // eslint-disable-next-line no-unused-vars
+      function initDrag(e) {
+        // console.log("_this", _this);
+        let oDragHandle = nn6 ? e.target : event.srcElement;
+        let topElement = "HTML";
+        while (
+          oDragHandle.tagName != topElement &&
+          oDragHandle.className.indexOf("equipment") == -1
+        ) {
+          oDragHandle = nn6
+            ? oDragHandle.parentNode
+            : oDragHandle.parentElement;
+        }
+        if (oDragHandle.className.indexOf("equipment") != -1) {
+          isdrag = true;
+          oDragObj = oDragHandle;
+          // 父元素宽高
+          let width = e.path[1].offsetWidth;
+          // let height = e.path[1].offsetHeight;
+          // console.log(width, height);
+          // console.log("oDragObj.style", oDragObj.style);
+          // 这里判断第一次获取不到style 样式 默认为 居中50%
+          if (oDragObj.style.top == "") {
+            // nTY = parseInt((50 * height) / 100 + 0);
+            nTY = 0;
+            nTX = parseInt((50 * width) / 100 + 0);
+          } else if (oDragObj.style.top.indexOf("%") != -1) {
+            nTY = oDragObj.style.top.split("%")[0];
+            nTX = oDragObj.style.left.split("%")[0];
+          } else {
+            nTY = parseInt(oDragObj.style.top + 0);
+            nTX = parseInt(oDragObj.style.left + 0);
+          }
+          y = nn6 ? e.clientY : event.clientY;
+          x = nn6 ? e.clientX : event.clientX;
+
+          oDragObj.style.cursor = "move";
+          document.onmousemove = moveMouse;
+          return false;
+        }
+      }
+
+      // document.onmousedown = initDrag;
+      document.onmousemove = initDrag;
+
+      document.onmouseup = function (e) {
+        isdrag = false;
+        document.onmousemove = null;
+        document.onmouseup = null;
+        let oDragHandle = nn6 ? e.target : event.srcElement;
+        let topElement = "HTML";
+        while (
+          oDragHandle.tagName != topElement &&
+          oDragHandle.className != "equipment"
+        ) {
+          oDragHandle = nn6
+            ? oDragHandle.parentNode
+            : oDragHandle.parentElement;
+        }
+        if (oDragHandle.className == "equipment") {
+          oDragObj = oDragHandle;
+          oDragObj.style.cursor = "Default";
+        }
+      };
+
+      // _this.equipmentKey = key;
+      // _this.equipment[_this.equipmentKey].left = l;
+      // _this.equipment[_this.equipmentKey].top = t;
+      ev = event || window.event;
+
+      // 取消事件冒泡行为
+      window.event ? (window.event.cancelBubble = true) : ev.stopPropagation();
+    },
+  },
+
+  watch: {
+    equipment() {
+      if (this.equipment.length != 0) {
+        this.arrIcon = [];
+        let finish = true;
+        this.equipment.filter((item) => {
+          if (!item.iconImgUrl) {
+            finish = false;
+          }
+          return true;
+        });
+        // console.log("finish", finish);
+        if (finish) {
+          this.equipment.filter((item, index) => {
+            if (index >= this.imgIndex) {
+              console.log("iconImgUrl", this.equipment[index].iconImgUrl);
+              this.getImgInfo(
+                this.$baseUrl + item.iconImgUrl,
+                this.iconMaxWidth,
+                this.iconMaxHeight,
+                "iconWidth",
+                "iconHeight",
+                true,
+                "arrIcon"
+              );
+            }
+            console.log("22filter", index);
+            return true;
+          });
+        }
+      }
+    },
+  },
+  created() {
+    this.getImgInfo(
+      this.imgUrl,
+      this.bigMaxWidth,
+      this.bigMaxHeight,
+      "width",
+      "height"
+    );
+    if (this.equipment.length != 0) {
+      this.arrIcon = [];
+      let finish = true;
+      this.equipment.filter((item) => {
+        if (!item.iconImgUrl) {
+          finish = false;
+        }
+        return true;
+      });
+      // console.log("finish", finish);
+      if (finish) {
+        this.equipment.filter((item, index) => {
+          if (index >= this.imgIndex) {
+            // console.log("iconImgUrl", this.equipment[index].iconImgUrl);
+            this.getImgInfo(
+              this.$baseUrl + item.iconImgUrl,
+              this.iconMaxWidth,
+              this.iconMaxHeight,
+              "iconWidth",
+              "iconHeight",
+              true,
+              "arrIcon"
+            );
+          }
+          // console.log("22filter", index);
+          return true;
+        });
+      }
+    }
+
+    this.iconImgUrl = JSON.parse(
+      JSON.stringify(this.$baseUrl + this.equipment[0].iconImgUrl)
+    );
+    // console.log("imgUrl", this.imgUrl);
+    // console.log("equipment", this.equipment);
+    // //禁止鼠标右键
+    // document.oncontextmenu = function() {
+    //   return false;
+    // };
+  },
+};
+</script>
+<style lang="less">
+.preview-popover {
+  background-color: #d3edf7dd;
+  padding: 12px;
+
+  .popper__arrow::after {
+    border-bottom-color: #d3edf7dd !important;
+  }
+
+  .describe {
+    p {
+      padding-bottom: 5px;
+
+      &:last-child {
+        padding-bottom: 0px;
+      }
+    }
+
+    .describe-top {
+      // color: sandybrown;
+      // color: red;
+      color: rgb(21, 110, 110);
+    }
+
+    .describe-center {
+      color: rgb(79, 21, 206);
+    }
+
+    .describe-bottom {
+      color: rgb(30, 31, 29);
+    }
+  }
+}
+</style>
+<style lang="less" scoped>
+.pop-up-main {
+		width: 100%;
+		height: calc(100vh - 12vh);
+		overflow-y:hidden ;
+
+		.paln-box {
+			width: 100%;
+			height: 100%;
+			position: relative;
+
+			.movableItem {
+				position: absolute;
+				// top: 75%;
+				left: 50%;
+				transform: translate(-50%, -8%);
+
+				img,
+				.svg {
+					z-index: 1;
+					width: 100%;
+					height: 100%;
+				}
+
+				.equipment {
+					position: absolute;
+					top: 0;
+					left: 0;
+					transform: translate(-50%, -50%);
+					z-index: 2;
+					font-size: 40px;
+					// color: red;
+					// background: blue;
+					zoom: 1;
+				}
+			}
+
+			.shuaxin {
+				position: absolute;
+				z-index: 2;
+				font-size: 40px;
+				top: 20px;
+				left: 20px;
+				cursor: pointer;
+
+				&:hover {
+					color: yellowgreen;
+				}
+			}
+
+			.equipment {
+				color: white;
+			}
+
+			&/deep/.el-button {
+				z-index: 2;
+				position: absolute;
+				bottom: 60px;
+				right: 20px;
+				width: 60px;
+				height: 35px;
+
+				span {
+					display: inline-block;
+					position: absolute;
+					top: 50%;
+					left: 50%;
+					transform: translate(-50%, -50%);
+				}
+
+				i {
+					display: inline-block;
+					position: absolute;
+					top: 50%;
+					left: 25%;
+					transform: translate(-50%, -50%);
+				}
+			}
+		}
+	}
+</style>

+ 0 - 0
src/views/WindSite/pages/BoosterStation.vue


この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません