Browse Source

合并智慧检修,隐藏菜单

baiyanting 1 year ago
parent
commit
163768cc9d

+ 5 - 1
.env.development

@@ -13,4 +13,8 @@ VUE_APP_ADAPTERURL=http://10.81.3.155:8011
 VUE_APP_DIALOG_NUM = 8
 
 #趋势对比鼠标点击
-VUE_APP_DIALOG_POINT = contextmenu
+VUE_APP_DIALOG_POINT = contextmenu
+
+
+# 智慧检修
+VUE_APP_NEW_WISDOM=http://10.81.3.155:8170

+ 3 - 1
.env.production

@@ -7,4 +7,6 @@ VUE_APP_ADAPTERURL=http://10.81.3.155:8011
 VUE_APP_DIALOG_NUM = 8
 
 #趋势对比鼠标点击
-VUE_APP_DIALOG_POINT = contextmenu
+VUE_APP_DIALOG_POINT = contextmenu
+# 智慧检修
+VUE_APP_NEW_WISDOM=http://10.81.3.155:8170

+ 143 - 0
src/App.vue

@@ -425,4 +425,147 @@ body .gfSelect .el-input__inner {
   color: #ffffff;
   font-size: 16px;
 }
+.main-body {
+  .query {
+    display: flex;
+    // justify-content: space-between;
+
+    &.left {
+      justify-content: flex-start;
+    }
+
+    .query-items {
+      flex: 0 0 auto;
+      display: flex;
+
+      .query-item {
+        flex: 0 0 auto;
+        display: flex;
+        margin: 0 1.4815vh;
+
+        .el-input {
+          &.placeholder-left {
+            input {
+              &::placeholder {
+                text-align: left;
+              }
+            }
+          }
+        }
+        .placeholder-left {
+          .el-input {
+            input {
+              height: 33px !important;
+              &::placeholder {
+                text-align: left;
+              }
+            }
+          }
+        }
+
+        .lable {
+          flex: 0 0 auto;
+          margin-right: 1.4815vh;
+          line-height: 33px;
+          color: @gray-l;
+        }
+
+        .search-input {
+          position: relative;
+
+          // input {
+          //   box-sizing: border-box;
+          //   flex: 0 0 200px;
+          //   border: 0px solid @darkgray;
+          //   color: @white;
+          //   outline: unset;
+          //   border-radius: 0%;
+          //   padding-right: 40px;
+          //   background: fade(#536268, 20);
+          //   height: 33px;
+          //   line-height: 33px;
+
+          //   &::placeholder {
+          //     font-size: 12px;
+          //     text-align: right;
+          //     color: @darkgray;
+          //   }
+          // }
+
+          // .unit {
+          //   position: absolute;
+          //   right: 12px;
+          //   top: 6px;
+          //   line-height: 33px;
+          //   margin: auto;
+          // }
+        }
+      }
+    }
+
+    .query-actions {
+      flex: 0 0 auto;
+      margin-left: 50px;
+    }
+  }
+
+  input {
+    box-sizing: border-box;
+    flex: 0 0 200px;
+    border: 0px solid @darkgray;
+    color: @white;
+    outline: unset;
+    border-radius: 0%;
+    padding-right: 40px;
+    background: fade(#536268, 20);
+    height: 33px;
+    line-height: 33px;
+
+    &::placeholder {
+      font-size: 12px;
+      text-align: right;
+      color: @darkgray;
+    }
+  }
+
+  input[type="checkbox"] {
+    position: relative;
+    display: inline-block;
+    appearance: none;
+    width: 14px;
+    height: 14px;
+    outline: none;
+    border: 1px solid @gray;
+    background-color: #000;
+    border-radius: 20%;
+    margin: 0;
+    padding: 0;
+
+    &:checked {
+      border-color: @green;
+      background: @green;
+    }
+
+    &::after {
+      display: inline-block;
+      content: " ";
+      position: absolute;
+      left: 30%;
+      top: 5%;
+      width: 3px;
+      height: 7px;
+      border-color: #fff;
+      border-style: solid;
+      border-width: 0px 2px 2px 0px;
+      transform: rotate(45deg);
+      opacity: 0;
+    }
+
+    &:checked::after {
+      content: "";
+      opacity: 1;
+      transition: opacity 0.3s ease-out;
+    }
+  }
+}
 </style>

+ 11 - 3
src/api/economic/index.js

@@ -21,8 +21,8 @@ const benchmarking = (data) => {
 const getStationPersis = (data) => {
     return request({
         baseURL: process.env.VUE_APP_Matrix,
-		url:`/stationPersis/getStationPersis?station=${data.station}&startdate=${data.startdate}&enddate=${data.enddate}`,
-		method:"get"
+        url: `/stationPersis/getStationPersis?station=${data.station}&startdate=${data.startdate}&enddate=${data.enddate}`,
+        method: "get"
     })
 };
 //风机绩效榜
@@ -44,6 +44,12 @@ const benchmarkingWplist = (data) => {
         method: "get",
     });
 };
+const getWpList = (data) => {
+    return request({
+        url: `/benchmarking/wpByCplist?companyids=SXJ_RGN&type=${data.type}`,
+        method: "get",
+    });
+};
 const benchmarkingProjectList = (data) => {
     return request({
         url: `/consumer/benchmarking/projectList?wpids=${data.wpids}`,
@@ -623,7 +629,7 @@ const getPointPerSisList = (data) => {
     return request({
         baseURL: process.env.VUE_APP_Matrix,
         // url: `/pointpersis/getPointPerSisList?wtid=${data.wtid}&beginDate=${data.beginDate}&endDate=${data.endDate}&interval=10&uniformcodes=${data.uniformcodes}`,
-		url:`/pointpersis/getPointPerSisList?wtid=${data.wtid}&beginDate=${data.beginDate}&endDate=${data.endDate}&interval=${data.interval}&uniformcodes=${data.uniformcodes}`,
+        url: `/pointpersis/getPointPerSisList?wtid=${data.wtid}&beginDate=${data.beginDate}&endDate=${data.endDate}&interval=${data.interval}&uniformcodes=${data.uniformcodes}`,
         method: "get",
     });
 };
@@ -704,6 +710,7 @@ export default {
     benchmarkingmx,
     benchmarkingLineList,
     benchmarkingWplist,
+    getWpList,
     benchmarkingProjectList,
     benchmarkingDbmainbottom,
     benchmarkingDbmaintop,
@@ -786,4 +793,5 @@ export default {
     getCompany,
     getRegion,
     getStation,
+    getWpList
 }

+ 1 - 1
src/api/wisdomOverhaul/fault/index.js

@@ -3,7 +3,7 @@ import request from "../../../tools/request";
 //等级评估--获取表格数据
 const powercompareProjectAjax = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `powercompare/projectAjax?wpIds=${data.wpIds}`,
         method: "get",
     });

+ 5 - 2
src/api/wisdomOverhaul/grade/index.js

@@ -3,14 +3,17 @@ 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}`,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
+        // url: `/health/levelAssessment/list?recorddate=${data.recorddate}&type=${data.type}&wpid=${data.wpId}&orderby=${data.orderby}&isAsc=${data.isAsc}`,
+        url: `/health/findWpMap?wpId=${data.wpId}`,
         method: "get",
     });
 };
 //等级评估--对比
 const levelAssessmentComparison = (data) => {
     return request({
-        url: `/consumer/levelAssessment/comparison?id1=${data.gaid1}&id2=${data.gaid2}`,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
+        url: `/health/levelAssessment/comparison?id1=${data.gaid1}&id2=${data.gaid2}`,
         method: "get",
     });
 };

+ 26 - 26
src/api/wisdomOverhaul/health/index.js

@@ -1,14 +1,14 @@
 import request from "../../../tools/request";
 const requestRecommen = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `${data.url}`,
         method: "get",
     });
 };
 const recommen = (url, data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `${url}?rid=${data.rid}`,
         method: "post",
         data: data
@@ -16,155 +16,155 @@ const recommen = (url, data) => {
 };
 const findAllChartjz = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
-        url: `recommen/findAllChartjz?wpId=${data.wpId}&type=${data.type}`,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
+        url: `health/findAllChart?wpId=${data.wpId}&num=7&type=${data.type}`,
         method: "get",
     });
 };
 const recommenRecommenConfirmedList = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `recommen/recommenConfirmedList`,
         method: "get",
     });
 };
 const powercompareWindturbineAjax = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `powercompare/windturbineAjax?wpId=${data.wpId}`,
         method: "get",
     });
 };
 const recommenUnfinishedList = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         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,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `recommen/findMainTrack?rid=${data.rid}`,
         method: "get",
     });
 };
 const recommenFinishedList = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         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,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `health/findAllMap`,
         method: "get",
     });
 };
 const healthoperationCountWpwarn = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `/health/countWpwarn?type=${data.type}`,
         method: "get",
     });
 };
 const healthoperationCountStop = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `/health/countStop?type=${data.type}`,
         method: "get",
     });
 };
 const healthoperationCountWpOrProStatus = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `/health/countWpOrProStatus?type=${data.type}`,
         method: "get",
     });
 };
 const healthoperationFindWpOrProStatusForHistory = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `/health/findWpOrProStatusForHistory?type=${data.type}&status=${data.status}`,
         method: "get",
     });
 };
 const healthmainFindHealthMatrixMap = () => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `/health/findHealthMatrixMap`,
         method: "get",
     });
 };
 const powercompareWindfarmAjax = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `powercompare/windfarmAjax`,
         method: "get",
     });
 };
 const wtHealthListWindTurbineHealthList = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `/health/windTurbineHealthList?wpId=${data.wpId}`,
         method: "get",
     });
 };
 const healthsubHsFjValueIndex = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `health/hsFjValueIndex?wtId=${data.wtId}`,
         method: "get",
     });
 };
 const healthsubGadaytop5 = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `health/gadaytop5?wtId=${data.wtId}`,
         method: "get",
     });
 };
 const healthsubQueryStopTop10 = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `health/queryStopTop10?wtId=${data.wtId}`,
         method: "get",
     });
 };
 const healthsubGetWtMttrandMtbfByBj = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `health/getWtMttrandMtbfByBj?wtId=${data.wtId}`,
         method: "get",
     });
 };
 const healthsubFindPowerChar = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `health/findPowerChar?wtId=${data.wtId}`,
         method: "get",
     });
 };
 const healthsubGetWeatherRealDay5Info = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         url: `health/getWeatherRealDay5Info?wpId=${data.wpId}`,
         method: "get",
     });
 };
 const healthsubFindWtHisValueForBj = (data) => {
     return request({
-        baseURL: process.env.VUE_APP_Matrix,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
         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}`,
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
+        url: `/health/getEconHealthReportMain?wtId=${data.wtid}&recordDate=${data.date}`,
         method: "get",
     });
 };

+ 40 - 26
src/assets/styles/dialog.less

@@ -8,6 +8,7 @@
       padding: 10px 0;
       border-bottom: 1px solid #323b3c;
       margin: 0 24px;
+
       .el-dialog__title {
         font-size: 16px;
         color: fade(@white, 75);
@@ -22,6 +23,7 @@
     &.hide-header {
       .el-dialog__header {
         border: none;
+
         .el-dialog__title {
           display: none;
         }
@@ -29,6 +31,7 @@
     }
   }
 }
+
 .title-select .el-select .el-input__inner {
   width: 133px;
   max-width: 190px;
@@ -43,6 +46,7 @@
 .title-select .el-input__suffix {
   display: none;
 }
+
 .el-overlay {
   .card {
     position: fixed;
@@ -55,10 +59,12 @@
     border-radius: 8px;
     padding: 24px 13px;
   }
+
   .content {
     height: 100%;
     height: calc(100% - 59px);
   }
+
   .home_card .header {
     margin-bottom: 10px;
   }
@@ -71,28 +77,35 @@
   .el-menu {
     z-index: 2002 !important;
   }
+
   .el-menu .el-menu-item:hover {
     background-color: transparent !important;
     color: rgba(28, 153, 255, 1);
   }
+
   .el-menu-item-group .el-menu-item.is-active {
     color: #999999 !important;
   }
+
   .el-menu .el-menu-item .router-link-exact-active,
   .el-sub-menu .el-sub-menu__title .router-link-active {
     color: rgba(28, 153, 255, 1) !important;
   }
+
   .el-sub-menu__title i,
   .el-menu-item a {
     font-size: 18px !important;
     color: rgba(186, 197, 216, 1) !important;
   }
+
   .el-menu-item a .icon-State-monitoring {
     font-size: 21px !important;
   }
+
   .el-menu-item:hover a {
     color: rgba(28, 153, 255, 1) !important;
   }
+
   .el-sub-menu.is-opened::before {
     content: "";
     position: absolute;
@@ -216,10 +229,7 @@
     border-color: transparent;
   }
 
-  .elDatePicker
-    .el-picker-panel
-    .el-picker-panel__footer
-    .el-button:last-of-type {
+  .elDatePicker .el-picker-panel .el-picker-panel__footer .el-button:last-of-type {
     background: rgba(0, 70, 199, 0.4) !important;
   }
 
@@ -273,24 +283,24 @@
     line-height: 35px !important;
     font-size: 13px !important;
   }
-  .el-popper
-    .el-menu--popup
-    .el-menu-item-group
-    .router-link-active
-    .el-menu-item {
+
+  .el-popper .el-menu--popup .el-menu-item-group .router-link-active .el-menu-item {
     background: linear-gradient(91deg, #1c99ff, transparent) !important;
     color: #fff !important;
   }
+
   .el-popper.is-pure .el-menu-item:hover {
     background: linear-gradient(91deg, #1c99ff, transparent) !important;
     color: #fff !important;
   }
+
   .el-popper.is-light {
     color: #d1d1d1 !important;
     background-color: rgb(0, 0, 0, 0.9) !important;
     border-color: #555555 !important;
     border-radius: unset;
   }
+
   .el-popper.is-light .el-popper__arrow::before {
     background-color: rgb(0, 0, 0, 0.8) !important;
     /*border-left: 1px solid #555555 !important;*/
@@ -298,14 +308,11 @@
   }
 
   .el-popper.is-pure {
-    border-image: linear-gradient(
-        180deg,
+    border-image: linear-gradient(180deg,
         transparent,
         #1a7ccd,
         #1a7ccd,
-        transparent
-      )
-      2 1;
+        transparent) 2 1;
     border: 1px solid #002767;
     background: linear-gradient(278deg, #002767, transparent) !important;
     border-radius: 5px !important;
@@ -313,10 +320,13 @@
   }
 
   .el-dialog {
-    background: #0c0f15 !important;
-    border: 1px solid #003277;
-    border-radius: 4px !important;
-    box-shadow: 0 0 22px rgba(0, 70, 199, 0.2) inset !important;
+    &:not(.cDialog) {
+      background: #0c0f15 !important;
+      border: 1px solid #003277;
+      border-radius: 4px !important;
+      box-shadow: 0 0 22px rgba(0, 70, 199, 0.2) inset !important;
+
+    }
   }
 
   .el-dialog--center .el-dialog__body,
@@ -551,7 +561,7 @@ background-color: rgba(30,90,163, .5);
     border-color: #959595 !important;
   }
 
-  .el-checkbox__input.is-checked + .el-checkbox__label {
+  .el-checkbox__input.is-checked+.el-checkbox__label {
     color: rgba(255, 255, 255, 1) !important;
   }
 
@@ -563,9 +573,11 @@ background-color: rgba(30,90,163, .5);
   .el-checkbox__input {
     display: inline-block;
   }
+
   .el-checkbox__label {
     padding-left: 0;
   }
+
   .el-checkbox__input.is-checked .el-checkbox__inner {
     border-color: rgba(0, 70, 199, 1) !important;
   }
@@ -659,6 +671,7 @@ background-color: rgba(30,90,163, .5);
     border-radius: unset !important;
     /* top: 100px !important; */
   }
+
   //   .el-dialog--center .el-dialog__body,
   //   .el-dialog__body {
   //     padding: 20px !important;
@@ -709,12 +722,10 @@ background-color: rgba(30,90,163, .5);
 
   .el-tabs__item.is-active {
     color: #1c99ff !important;
-    background: linear-gradient(
-      0deg,
-      rgba(0, 70, 199, 0.8),
-      rgba(0, 70, 199, 0.2),
-      rgba(0, 70, 199, 0)
-    );
+    background: linear-gradient(0deg,
+        rgba(0, 70, 199, 0.8),
+        rgba(0, 70, 199, 0.2),
+        rgba(0, 70, 199, 0));
   }
 
   .el-tabs__nav {
@@ -834,6 +845,7 @@ background-color: rgba(30,90,163, .5);
     font-size: 13px;
     height: 25px !important;
   }
+
   .economicTable .el-table__body-wrapper tr .cell .el-checkbox {
     height: 25px;
   }
@@ -843,6 +855,7 @@ background-color: rgba(30,90,163, .5);
     border: 1px solid fade(@green, 50);
     box-shadow: 0px 8px 17px 1px rgba(5, 187, 76, 0.3);
   }
+
   .el-message-box__header {
     .el-message-box__title {
       color: @gray;
@@ -879,6 +892,7 @@ background-color: rgba(30,90,163, .5);
     background-color: fade(@gray, 20);
     color: @gray;
   }
+
   &.el-message--success {
     border-color: @green;
     background-color: fade(@green, 20);
@@ -896,4 +910,4 @@ background-color: rgba(30,90,163, .5);
     background-color: fade(@red, 20);
     color: @red;
   }
-}
+}

+ 4 - 2
src/components/chart/combination/bar-line-chart.vue

@@ -283,8 +283,8 @@ export default {
         series: [],
       };
 
-      if (this.bardata && this.bardata.legend)
-        // bar data
+      // bar data
+      if (this.bardata && this.bardata.legend) {
         for (var i = 0; i < this.bardata.legend.length; i++) {
           option.series.push({
             name: this.bardata.legend[i],
@@ -298,6 +298,8 @@ export default {
             data: this.bardata.data[i],
           });
         }
+      }
+
       // line data
       if (this.lineData.length > 0) {
         option.series.push({

+ 11 - 102
src/components/chart/line/simple-line-chart.vue

@@ -28,102 +28,11 @@ export default {
       type: Array,
       default: () => {
         return [
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          1,
-          0,
-          0,
-          0,
-          0,
-          0,
-          1,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          1,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
-          0,
+          0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+          0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+          0, 0, 0, 0,
         ];
       },
     },
@@ -132,10 +41,10 @@ export default {
       type: String,
       default: "green",
     },
-    lineTitle:{
+    lineTitle: {
       type: Array,
       default: () => [],
-    }
+    },
   },
   data() {
     return {
@@ -304,8 +213,8 @@ export default {
           {
             type: "value",
             splitNumber: 1,
-            min: 0,
-            max: 1,
+            min: 1,
+            max: 100,
             axisLine: {
               show: false,
             },
@@ -350,7 +259,7 @@ export default {
       chart.clear();
       chart.setOption(option);
 
-      this.resize = function() {
+      this.resize = function () {
         chart.resize();
       };
       window.addEventListener("resize", this.resize);
@@ -358,7 +267,7 @@ export default {
   },
   created() {
     this.xData = this.lineTitle;
-    this.$nextTick(()=>{
+    this.$nextTick(() => {
       this.id = "pie-chart-" + util.newGUID();
     });
   },

+ 24 - 5
src/components/chart/other/Dashboard.vue

@@ -27,6 +27,18 @@ export default {
       type: Number,
       default: 100,
     },
+    circleName: {
+      type: String,
+      default: () => "内圆",
+    },
+    progressName: {
+      type: String,
+      default: () => "内部进度条",
+    },
+    pieName: {
+      type: String,
+      default: () => "圆环",
+    },
   },
   data() {
     return {
@@ -40,11 +52,17 @@ export default {
       let chart = echarts.init(this.$el);
       let option = {
         tooltip: {
-          formatter: "{a} <br/>{b} : {c}%",
+          // formatter: "{a} <br/>{b} : {c}%",
+          formatter: function (res) {
+            if (res.seriesName) {
+              return `${res.seriesName}:${res.value}%`;
+            }
+            return "";
+          },
         },
         series: [
           {
-            name: "内部进度条",
+            name: this.progressName,
             type: "gauge",
             // center: ['50%', '50%'],
             radius: "80%",
@@ -72,7 +90,7 @@ export default {
               show: false,
             },
             detail: {
-              formatter: function(value) {
+              formatter: function (value) {
                 if (value !== 0) {
                   var num = Math.round(value);
                   return parseInt(num).toFixed(0) + "";
@@ -110,7 +128,8 @@ export default {
           },
           // 内圆
           {
-            name: "内圆",
+            name: this.circleName,
+            show: false,
             type: "pie",
             hoverAnimation: false,
             legendHoverLink: false,
@@ -140,7 +159,7 @@ export default {
           },
           // 圆环
           {
-            name: "小圆形",
+            name: this.pieName,
             type: "pie",
             hoverAnimation: false,
             legendHoverLink: false,

+ 6 - 7
src/components/coms/table/table.vue

@@ -3,7 +3,6 @@
     <thead>
       <tr class="back">
         <th
-      
           v-for="(col, index) of data.column"
           :key="index"
           :class="{ light: col.is_light }"
@@ -18,7 +17,7 @@
       <tbody :style="{ height: height }">
         <tr class="dnb" v-for="(row, index) of tableData" :key="index">
           <td
-            style="color:rgb(211, 214, 218)"
+            style="color: rgb(211, 214, 218)"
             v-for="(col, i) of data.column"
             :key="i"
             :style="{ width: col.width }"
@@ -33,7 +32,7 @@
             <component
               :is="col.type ? col.type : 'span'"
               v-bind="col.props"
-              v-html="template(col, row[col.field])"
+              v-html="template(col, row[col.field], row)"
               @click="onClick(col, row)"
             >
             </component>
@@ -210,9 +209,9 @@ export default {
         }
       }
     },
-    template(col, data) {
+    template(col, data, row) {
       if (!col.template) return data;
-      else return col.template(data);
+      else return col.template(data, row);
     },
     hover(row, col) {
       if (this.showHover) {
@@ -273,7 +272,7 @@ export default {
 </script>
 
 <style lang="less">
-.com-table{
+.com-table {
   height: 100%;
   // color: rgb(211, 214, 218);
 }
@@ -282,7 +281,7 @@ export default {
 //     border-right: 1px solid rgba(0, 0, 0, 0.8);
 //     border-bottom: 1px solid rgba(0, 0, 0, 0.8) ;
 // }
-.dnb{
+.dnb {
   height: 45px;
 }
 // .back{

+ 17 - 17
src/components/coms/wt-chooser/wt-chooser.vue

@@ -34,7 +34,7 @@
             <el-option
               v-for="item in wtList"
               :key="item.id"
-              :label="item.name"
+              :label="item.nemCode"
               :value="item.id"
             >
             </el-option>
@@ -46,7 +46,7 @@
 </template>
 
 <script>
-import api from "@api/wisdomOverhaul/health/index.js";
+import axios from "axios";
 export default {
   // 传参
   props: {
@@ -67,21 +67,24 @@ export default {
   },
   methods: {
     getWpList() {
-      api.powercompareWindfarmAjax().then((res) => {
-        this.wpList = res.data;
-        // this.wpId = res.data[0].name;
+      axios({
+        baseURL: process.env.VUE_APP_API,
+        url: `/benchmarking/wpByCplist?companyids=SXJ_RGN&type=-1`,
+      }).then((res) => {
+        if (res.data?.data?.code === 200) {
+          this.wpList = res.data.data.data || [];
+        }
       });
     },
     getWtList() {
-      api
-        .powercompareWindturbineAjax({
-          wpId: this.wpId,
-        })
-        .then((res) => {
-      
-          this.wtList = res.data;
-          // this.wtId = res.data[0].name;
-        });
+      axios({
+        baseURL: "http://10.81.3.155:8172",
+        url: `/healthmain/windturbineAjax?wpId=${this.wpId}`,
+      }).then((res) => {
+        if (res.data?.code === 200) {
+          this.wtList = res.data.data || [];
+        }
+      });
     },
     wtChange() {
       this.$emit("change", { wtId: this.wtId, wpId: this.wpId });
@@ -89,6 +92,3 @@ export default {
   },
 };
 </script>
-
-<style lang="less">
-</style>

File diff suppressed because it is too large
+ 334 - 1735
src/components/other/healthReport/index.vue


+ 1 - 1
src/router/index.js

@@ -872,7 +872,7 @@ const routes = [
     component: () => import("../views/HealthControl/Health2.vue"),
   },
   {
-    path: "/health/health3/:wpId", // 场站健康管理
+    path: "/health/health3/:wpId/:wpName?", // 场站健康管理
     name: "health3",
     component: () => import("../views/HealthControl/Health3.vue"),
   },

+ 1 - 1
src/tools/basicTool.js

@@ -77,7 +77,7 @@ export default {
    * 关闭loading
    */
   closeLoading() {
-    loadingStatus.close();
+    loadingStatus && loadingStatus.close();
   },
 
   /**

+ 2 - 2
src/views/HealthControl/Health.vue

@@ -15,7 +15,7 @@
       >
         已确认缺陷
       </div>
-      <div
+      <!-- <div
         class="item"
         @click="tabSelect(2)"
         :class="{ active: tabIndex == 2 }"
@@ -28,7 +28,7 @@
         :class="{ active: tabIndex == 3 }"
       >
         已完成任务
-      </div>
+      </div> -->
     </div>
     <div v-if="tabIndex == 0">
       <health-tab-1 />

+ 206 - 76
src/views/HealthControl/Health0.vue

@@ -9,8 +9,19 @@
                 <div class="query-item">
                   <div class="lable">风场:</div>
                   <div class="search-input">
-                    <el-select v-model="value1" clearable placeholder="请选择风场" popper-class="select" @change="wpselect">
-                      <el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id">
+                    <el-select
+                      v-model="value1"
+                      clearable
+                      placeholder="请选择风场"
+                      popper-class="select"
+                      @change="wpselect"
+                    >
+                      <el-option
+                        v-for="item in options"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item.id"
+                      >
                       </el-option>
                     </el-select>
                   </div>
@@ -18,8 +29,19 @@
                 <div class="query-item">
                   <div class="lable">风机:</div>
                   <div class="search-input">
-                    <el-select v-model="value2" clearable placeholder="请选择风机" popper-class="select" @change="wtselect">
-                      <el-option v-for="item in options1" :key="item.id" :label="item.name" :value="item.id">
+                    <el-select
+                      v-model="value2"
+                      clearable
+                      placeholder="请选择风机"
+                      popper-class="select"
+                      @change="wtselect"
+                    >
+                      <el-option
+                        v-for="item in options1"
+                        :key="item.id"
+                        :label="item.nemCode"
+                        :value="item.id"
+                      >
                       </el-option>
                     </el-select>
                   </div>
@@ -39,14 +61,44 @@
               <SvgIcon svgid="svg-wind-site"></SvgIcon>
             </span>
             <div class="fan-code">
-              <div class="fan-code-text font-md green">{{value2}}</div>
-              <div class="fan-code-label font-md gray-l" style="margin-left:20px">高频:</div>
-              <div class="fan-code-value font-md green">{{stoptypemap && stoptypemap.top1type}}</div>
-              <div class="fan-code-label font-md gray-l" style="margin-left:100px">中频:</div>
-              <div class="fan-code-value font-md green">{{stoptypemap && stoptypemap.top2type}}</div>
-              <div class="fan-code-label font-md gray-l" style="margin-left:65px">低频:</div>
-              <div class="fan-code-value font-md green">{{stoptypemap && (stoptypemap.top3type ==
-              'null'?'暂无数据':stoptypemap.top3type)}}</div>
+              <div
+                :style="`color:${getWpStateColor()}`"
+                class="fan-code-text font-md green"
+              >
+                {{ getWpName(value2) }}
+              </div>
+              <div
+                class="fan-code-label font-md gray-l"
+                style="margin-left: 20px"
+              >
+                高频:
+              </div>
+              <div class="fan-code-value font-md green">
+                {{ stoptypemap && stoptypemap.top1type }}
+              </div>
+              <div
+                class="fan-code-label font-md gray-l"
+                style="margin-left: 100px"
+              >
+                中频:
+              </div>
+              <div class="fan-code-value font-md green">
+                {{ stoptypemap && stoptypemap.top2type }}
+              </div>
+              <div
+                class="fan-code-label font-md gray-l"
+                style="margin-left: 65px"
+              >
+                低频:
+              </div>
+              <div class="fan-code-value font-md green">
+                {{
+                  stoptypemap &&
+                  (stoptypemap.top3type == "null"
+                    ? "暂无数据"
+                    : stoptypemap.top3type)
+                }}
+              </div>
             </div>
             <!-- <span class="svg-icon svg-icon-white svg-icon-md mg-l-16">
               <SvgIcon svgid="svg-wind-site"></SvgIcon>
@@ -64,7 +116,11 @@
         </el-row>
         <el-row>
           <el-col :span="24" style="text-align: center">
-            <StandAloneImg class="sai" :activeIndex="activeIndex" @selectSvg="selectSvg"></StandAloneImg>
+            <StandAloneImg
+              class="sai"
+              :activeIndex="activeIndex"
+              @selectSvg="selectSvg"
+            ></StandAloneImg>
           </el-col>
         </el-row>
         <el-row>
@@ -75,44 +131,80 @@
           <el-col :span="6"></el-col>
           <el-col :span="6"></el-col>
           <el-col :span="6">
-            <progress-bar title="风机" name="风机健康度" :progress='stoptypemap && stoptypemap.wtscore'
-              :color="stoptypemap &&color('05bb4c')"></progress-bar>
+            <progress-bar
+              title="风机"
+              name="风机健康度"
+              :progress="stoptypemap && stoptypemap.wtscore"
+              :color="stoptypemap && color('05bb4c')"
+            ></progress-bar>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="6" class="mg-t-16">
-            <progress-bar title="发电机" name="寿命指数" :progress='partmap && partmap.fdj.smsyl'
-              :color="partmap &&color(partmap.fdj.jkzt)"></progress-bar>
+            <progress-bar
+              title="发电机"
+              name="寿命指数"
+              :progress="partmap && partmap.fdj.smsyl"
+              :color="partmap && color(partmap.fdj.jkzt)"
+            ></progress-bar>
           </el-col>
           <el-col :span="6" class="mg-t-16">
-            <progress-bar title="齿轮箱" name="寿命指数" :progress='partmap &&partmap.clx.smsyl'
-              :color="partmap &&color(partmap.clx.jkzt)"></progress-bar>
+            <progress-bar
+              title="齿轮箱"
+              name="寿命指数"
+              :progress="partmap && partmap.clx.smsyl"
+              :color="partmap && color(partmap.clx.jkzt)"
+            ></progress-bar>
           </el-col>
           <el-col :span="6" class="mg-t-16">
-            <progress-bar title="主轴" name="寿命指数" :progress='partmap &&partmap.zz.smsyl'
-              :color="partmap &&color(partmap.zz.jkzt)"></progress-bar>
+            <progress-bar
+              title="主轴"
+              name="寿命指数"
+              :progress="partmap && partmap.zz.smsyl"
+              :color="partmap && color(partmap.zz.jkzt)"
+            ></progress-bar>
           </el-col>
           <el-col :span="6" class="mg-t-16">
-            <progress-bar title="变桨" name="寿命指数" :progress='partmap &&partmap.bj.smsyl'
-              :color="partmap &&color(partmap.bj.jkzt)"></progress-bar>
+            <progress-bar
+              title="变桨"
+              name="寿命指数"
+              :progress="partmap && partmap.bj.smsyl"
+              :color="partmap && color(partmap.bj.jkzt)"
+            ></progress-bar>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="6" class="mg-t-16">
-            <progress-bar title="偏航" name="寿命指数" :progress='partmap &&partmap.ph.smsyl'
-              :color="partmap &&color(partmap.ph.jkzt)"></progress-bar>
+            <progress-bar
+              title="偏航"
+              name="寿命指数"
+              :progress="partmap && partmap.ph.smsyl"
+              :color="partmap && color(partmap.ph.jkzt)"
+            ></progress-bar>
           </el-col>
           <el-col :span="6" class="mg-t-16">
-            <progress-bar title="机舱" name="寿命指数" :progress='partmap &&partmap.jc.smsyl'
-              :color="partmap &&color(partmap.jc.jkzt)"></progress-bar>
+            <progress-bar
+              title="机舱"
+              name="寿命指数"
+              :progress="partmap && partmap.jc.smsyl"
+              :color="partmap && color(partmap.jc.jkzt)"
+            ></progress-bar>
           </el-col>
           <el-col :span="6" class="mg-t-16">
-            <progress-bar title="变频器" name="寿命指数" :progress='partmap &&partmap.bpq.smsyl'
-              :color="partmap &&color(partmap.bpq.jkzt)"></progress-bar>
+            <progress-bar
+              title="变频器"
+              name="寿命指数"
+              :progress="partmap && partmap.bpq.smsyl"
+              :color="partmap && color(partmap.bpq.jkzt)"
+            ></progress-bar>
           </el-col>
           <el-col :span="6" class="mg-t-16">
-            <progress-bar title="主控" name="寿命指数" :progress='partmap &&partmap.zk.smsyl'
-              :color="partmap &&color(partmap.zk.jkzt)"></progress-bar>
+            <progress-bar
+              title="主控"
+              name="寿命指数"
+              :progress="partmap && partmap.zk.smsyl"
+              :color="partmap && color(partmap.zk.jkzt)"
+            ></progress-bar>
           </el-col>
         </el-row>
       </el-col>
@@ -183,7 +275,12 @@
         </el-row>
       </el-col>
     </el-row>
-    <health-report :show="reportshow" :params="reportparams" ref="eport" @closed="closed" />
+    <health-report
+      :show="reportshow"
+      :params="reportparams"
+      ref="eport"
+      @closed="closed"
+    />
   </div>
 </template>
 
@@ -192,15 +289,16 @@ import SvgIcon from "@com/coms/icon/svg-icon.vue";
 import StandAloneImg from "@/views/WindSite/pages/Info/StandAloneImg.vue";
 import ProgressBar from "@com/coms/progress-bar/progress-bar.vue";
 import Table from "../../components/coms/table/table.vue";
-import HealthReport from "../../components/other/healthReport/index.vue"
+import HealthReport from "../../components/other/healthReport/index.vue";
+import axios from "axios";
 export default {
-  setup() { },
+  setup() {},
   components: {
     SvgIcon,
     StandAloneImg,
     ProgressBar,
     Table,
-    HealthReport
+    HealthReport,
   },
   data() {
     return {
@@ -208,16 +306,16 @@ export default {
       reportparams: undefined,
       bsxImg: require("@assets/png/bsx.png"),
       options: [],
-      wtid: '',
-      wpid: '',
+      wtid: "",
+      wpid: "",
       options1: [],
       value1: [],
       value2: [],
       colorval: {
-        '1.0': 'green',
-        '2.0': 'purple',
-        '3.0': 'orange',
-        '4.0': 'red',
+        "1.0": "green",
+        "2.0": "purple",
+        "3.0": "orange",
+        "4.0": "red",
       },
       activeIndex: -1,
       gztableData: {
@@ -273,8 +371,7 @@ export default {
             is_light: false,
           },
         ],
-        data: [
-        ],
+        data: [],
       },
       yjtableData: {
         column: [
@@ -329,8 +426,7 @@ export default {
             is_light: false,
           },
         ],
-        data: [
-        ],
+        data: [],
       },
       yxtableData: {
         column: [
@@ -448,7 +544,7 @@ export default {
             is_light: false,
           },
           {
-            name: "得分",
+            name: "排名",
             field: "topnum",
             is_num: false,
             is_light: false,
@@ -678,48 +774,57 @@ export default {
   created() {
     this.wtid = this.$route.params.wtId;
     this.wpid = this.$route.params.wpId;
-    this.search()
+    this.search();
   },
   methods: {
     // 查看健康报告
     onClickReport() {
       // console.log(this.value2,new Date(new Date()).formatDate("yyyy-MM-dd"))
 
-      this.reportshow = true
+      this.reportshow = true;
       // this.reportparams = {wtId: this.value2, recorddate: new Date(new Date()).formatDate("yyyy-MM-dd")}
-      this.$refs.eport.getReport(this.value2, new Date(new Date()).formatDate("yyyy-MM-dd"));
+      this.$refs.eport.getReport(
+        this.value2,
+        new Date(new Date()).formatDate("yyyy-MM-dd")
+      );
     },
     // 关闭健康报告
     closed() {
-      this.reportshow = false
+      this.reportshow = false;
     },
     color(val) {
-      return this.colorval[val]
+      return this.colorval[val];
     },
     wpselect() {
-      this.searchWindturbine('select')
+      this.searchWindturbine("select");
     },
     wtselect() {
-      this.searchWtHealthInfo()
+      this.searchWtHealthInfo();
     },
-    async search() {
-      const { data } = await this.API.requestData({
-        subUrl: "powercompare/windfarmAjax",
+    search() {
+      axios({
+        baseURL: process.env.VUE_APP_API,
+        url: `/benchmarking/wpByCplist?companyids=SXJ_RGN&type=-1`,
+      }).then((res) => {
+        if (res.data?.data?.code === 200) {
+          this.options = res.data.data.data || [];
+          this.value1 = this.wpid;
+          this.searchWindturbine();
+        }
       });
-      this.options = data.data;
-      this.value1 = this.wpid;
-      this.searchWindturbine()
     },
     async searchWindturbine(statu) {
-      const { data } = await this.API.requestData({
-        subUrl: "/powercompare/windturbineAjax",
-        data: {
-          wpId: this.value1
+      axios({
+        baseURL: "http://10.81.3.155:8172",
+        url: `/healthmain/windturbineAjax?wpId=${this.value1}`,
+      }).then((res) => {
+        if (res.data?.code === 200) {
+          this.options1 = res.data.data || [];
+          this.value2 =
+            statu == "select" ? res.data.data?.[0]?.id || "" : this.wtid || "";
+          this.searchWtHealthInfo();
         }
       });
-      this.options1 = data.data;
-      this.value2 = statu == 'select' ? data.data[0].id : this.wtid;
-      this.searchWtHealthInfo()
     },
     async searchWtHealthInfo() {
       //   const { data } = await this.API.requestData({
@@ -748,11 +853,11 @@ export default {
     search1() {
       const that = this;
       this.API.requestData({
-        subUrl: "healthsub/findWtHealthInfo1",
-        method: 'POST',
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
+        subUrl: "health/findWtHealthInfo1",
         timeout: 30000,
         data: {
-          wtId: this.value2
+          wtId: this.value2,
         },
         success(res) {
           that.yjtableData.data = res.data.yjls;
@@ -765,11 +870,12 @@ export default {
     search2() {
       const that = this;
       this.API.requestData({
-        subUrl: "healthsub/findWtHealthInfo2",
-        method: 'POST',
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
+        // subUrl: "healthsub/findWtHealthInfo2",
+        subUrl: "health/findWtHealthInfo2",
         timeout: 30000,
         data: {
-          wtId: this.value2
+          wtId: this.value2,
         },
         success(res) {
           that.yxtableData.data = res.data.bjyxls;
@@ -780,11 +886,12 @@ export default {
     search3() {
       const that = this;
       this.API.requestData({
-        subUrl: "healthsub/findWtHealthInfo3",
-        method: 'POST',
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
+        // subUrl: "healthsub/findWtHealthInfo3",
+        subUrl: "health/findWtHealthInfo3",
         timeout: 30000,
         data: {
-          wtId: this.value2
+          wtId: this.value2,
         },
         success(res) {
           that.tableData3.data = res.data.qxpcls;
@@ -793,9 +900,32 @@ export default {
         },
       });
     },
-    selectSvg: function (index) {
+    selectSvg(index) {
       this.activeIndex = index;
     },
+
+    getWpName(wtId) {
+      return (
+        this.options1.find((ele) => {
+          return ele.id === wtId;
+        })?.nemCode || ""
+      );
+    },
+
+    getWpStateColor() {
+      const jkzt = this?.partmap?.fj?.jkzt;
+      if (jkzt == 1) {
+        return "#05bb4c";
+      } else if (jkzt == 2) {
+        return "#4b55ae";
+      } else if (jkzt == 3) {
+        return "#edbf03";
+      } else if (jkzt == 4) {
+        return "#e17e23";
+      } else {
+        return "#05bb4c";
+      }
+    },
   },
 };
 </script>

+ 1 - 1
src/views/HealthControl/Health10.vue

@@ -627,7 +627,7 @@ export default {
     },
 
     // 获取天气信息
-    async getWeather() {
+    getWeather() {
 
       api.healthsubGetWeatherRealDay5Info({
         wpId: this.wpId

+ 85 - 38
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>
@@ -22,13 +30,17 @@
       <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'" />
+          <vertival-bar-line-chart
+            :bardata="bardata"
+            :lineData="lineData"
+            :height="'250px'"
+          />
         </panel>
       </div>
     </div>
     <div class="fc-info mg-b-16">
       <div class="fc-item" v-for="(item, index) in wpmap" :key="index">
-        <div class="title" @click="jumpUrl(item.wpId)">{{  item.name  }}</div>
+        <div class="title" @click="jumpUrl(item)">{{ item.name }}</div>
         <div class="tags">
           <div class="tag">
             <i class="svg-icon svg-icon-gray-l svg-icon-lg">
@@ -38,31 +50,31 @@
           <div class="tag">
             <div class="tag-title">实时风速</div>
             <div class="tag-value">
-              {{  item.sjfs  }}<span class="unit">m/s</span>
+              {{ 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>
+              {{ 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>
+              {{ 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>
+              {{ 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>
+              {{ item.csl }}<span class="unit">台</span>
             </div>
           </div>
         </div>
@@ -70,13 +82,21 @@
           <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>
@@ -86,12 +106,29 @@
           </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.gzd"
+                :max="item.jrts"
+                :height="'150px'"
+                :width="'150px'"
+                circleName=""
+                pieName=""
+                progressName="故障度"
+              />
             </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
+                class="item orange"
+                v-for="(gzItem, gzIndex) in item.gzId"
+                :key="gzIndex"
+                @click="showDetails(item.wpId, gzItem.id)"
+              >
+                {{ gzItem.name }}
               </div>
             </div>
           </div>
@@ -113,7 +150,7 @@ 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() { },
+  setup() {},
   components: {
     SvgIcon,
     Panel,
@@ -124,7 +161,7 @@ export default {
   },
   data() {
     return {
-      type: "2",
+      type: "1",
       bardata: {
         area: [],
         legend: [],
@@ -187,9 +224,12 @@ export default {
             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;
+            const barData = [
+              res.data.yslchart || [],
+              res.data.lslchart || [],
+              res.data.cslchart,
+            ];
+            this.bardata.data = barData;
           }
         });
 
@@ -216,8 +256,7 @@ export default {
     },
 
     getAllMap() {
-      api.healthmainFindAllMap({
-      }).then((res) => {
+      api.healthmainFindAllMap({}).then((res) => {
         res.data.wpmap.forEach((ele) => {
           if (ele.tqyb < 10) ele.tqyb = "0" + ele.tqyb;
           ele.showType = "1";
@@ -229,7 +268,6 @@ export default {
         this.tableData.data = res.data.gzls;
       });
 
-
       // let that = this;
       // that.API.requestData({
       //   method: "POST",
@@ -259,9 +297,15 @@ export default {
     },
 
     // 页面跳转
-    jumpUrl(wpId) {
+    jumpUrl({ wpId, name }) {
+      this.$router.push({
+        path: `/health/health3/${wpId}/${name}`,
+      });
+    },
+
+    showDetails(wpId, wtId) {
       this.$router.push({
-        path: `/health/health3/${wpId}`,
+        path: `/health/health0/${wpId}/${wtId}`,
       });
     },
   },
@@ -270,7 +314,8 @@ export default {
 
 <style lang="less">
 .health-2 {
-
+  overflow-y: auto;
+  height: 100%;
   // 电量健康情况
   .power-info {
     display: flex;
@@ -353,7 +398,7 @@ export default {
           transform: rotate(90deg);
         }
 
-        &+.tab {
+        & + .tab {
           margin-top: 0.7407vh;
         }
 
@@ -377,16 +422,17 @@ export default {
   .fc-info {
     display: flex;
     flex-wrap: wrap;
-    height: 42vh;
-    overflow-y: auto;
-
-    //
+    // height: 42vh;
+    // overflow-y: auto;
     .fc-item {
-      flex: 1 0 calc(100% / 5 - 8px);
-      margin-right: 8px;
-      margin-bottom: 5px;
+      // flex: 1 0 calc(100% / 5 - 8px);
+      // margin-right: 8px;
+      // margin-bottom: 5px;
+
+      width: calc(25% - 10px);
+      margin: 5px;
 
-      &>.title {
+      & > .title {
         background: fade(@gray, 20);
         padding: 0 1.4815vh;
         line-height: 27px;
@@ -433,7 +479,7 @@ export default {
             }
           }
 
-          &+.tag {
+          & + .tag {
             margin-left: 8px;
           }
 
@@ -479,7 +525,7 @@ export default {
                 margin-right: 0.3704vh;
               }
 
-              &+.action {
+              & + .action {
                 margin-left: 1.4815vh;
               }
 
@@ -521,8 +567,9 @@ export default {
               margin-bottom: 4px;
               text-align: center;
               border: 1px solid transparent;
+              cursor: pointer;
 
-              &+.item {
+              & + .item {
                 margin-left: 4px;
               }
 

+ 134 - 70
src/views/HealthControl/Health3.vue

@@ -2,13 +2,21 @@
   <div class="health-3">
     <div class="power-info mg-b-8">
       <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,42 +29,58 @@
       </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="`${wpName || ''}健康趋势`">
+          <vertival-bar-line-chart
+            :bardata="bardata"
+            :lineData="lineData"
+            :height="'250px'"
+          />
         </panel>
       </div>
     </div>
     <div class="fj-info">
-      <div class="left-info ">
+      <div class="left-info">
         <panel title="预测电量" class="mg-b-16">
-          <list-bar-chart :list="listBarData1" :colors="listBarData1Color" :height="'9.5vh'" />
+          <list-bar-chart
+            :list="listBarData1"
+            :colors="listBarData1Color"
+            :height="'9.5vh'"
+          />
           <div class="dashboard">
-            <dashboard-2 :height="'7.5vh'" :width="'115px'" :value="sourceMap.rfdl" />
+            <dashboard-2
+              :height="'7.5vh'"
+              :width="'115px'"
+              :value="sourceMap.rfdl"
+            />
             <div class="lengends">
               <div class="item">
                 <span class="label">本日发电量</span>
                 <span class="lengend gary"></span>
-                <span class="value">{{sourceMap.rfdl}}</span>
+                <span class="value">{{ sourceMap.rfdl }}</span>
               </div>
               <div class="item">
                 <span class="label">本日预测电量</span>
                 <span class="lengend green"></span>
-                <span class="value">{{sourceMap.ycdl1day}}</span>
+                <span class="value">{{ sourceMap.ycdl1day }}</span>
               </div>
             </div>
           </div>
           <div class="dashboard">
-            <dashboard-2 :height="'7.5vh'" :width="'115px'" :value="sourceMap.yczqlmonth" />
+            <dashboard-2
+              :height="'7.5vh'"
+              :width="'115px'"
+              :value="sourceMap.yczqlmonth"
+            />
             <div class="lengends">
               <div class="item">
                 <span class="label">本月发电量</span>
                 <span class="lengend gary"></span>
-                <span class="value">{{sourceMap.yfdl}}</span>
+                <span class="value">{{ sourceMap.yfdl }}</span>
               </div>
               <div class="item">
                 <span class="label">本月预测电量</span>
                 <span class="lengend green"></span>
-                <span class="value">{{sourceMap.ycdl1month}}</span>
+                <span class="value">{{ sourceMap.ycdl1month }}</span>
               </div>
             </div>
           </div>
@@ -69,28 +93,46 @@
         </panel>
       </div>
       <div class="right-info">
-        <toolbar-panel title="风机健康矩阵列表" :showLine="false" class="matrix-panel mg-b-8">
+        <toolbar-panel
+          title="风机健康矩阵列表"
+          :showLine="false"
+          class="matrix-panel mg-b-8"
+        >
           <template v-slot:tools>
             <div class="tools">
               <span class="level">
                 <span class="text green">优</span>:
-                <span class="value white">{{sourceMap.ysl}}</span>
+                <span class="value white">{{ sourceMap.ysl }}</span>
                 <span class="unit gray">台</span>
               </span>
               <span class="level">
                 <span class="text purple">良</span>:
-                <span class="value white">{{sourceMap.lsl}}</span>
+                <span class="value white">{{ sourceMap.lsl }}</span>
                 <span class="unit gray">台</span>
               </span>
               <span class="level">
                 <span class="text orange">差</span>:
-                <span class="value white">{{sourceMap.csl}}</span>
+                <span class="value white">{{ sourceMap.csl }}</span>
                 <span class="unit gray">台</span>
               </span>
             </div>
           </template>
           <div class="matrix">
-            <div class="item" :class="item[1] === '1' ? 'green' : item[1] === '2' ? 'purple' : 'orange'" v-for="(item, index) in sourceMap.wtIdls" :key="index" @click="jumpUrl(item)">{{item[2]}}</div>
+            <div
+              class="item"
+              :class="
+                item[1] === '1'
+                  ? 'green'
+                  : item[1] === '2'
+                  ? 'purple'
+                  : 'orange'
+              "
+              v-for="(item, index) in sourceMap.wtIdls"
+              :key="index"
+              @click="jumpUrl(item)"
+            >
+              {{ item[3] }}
+            </div>
             <div class="blank" v-for="index of 20" :key="index"></div>
           </div>
         </toolbar-panel>
@@ -112,26 +154,41 @@ import SvgIcon from "../../components/coms/icon/svg-icon.vue";
 import Panel from "../../components/coms/panel/panel.vue";
 import ToolbarPanel from "../../components/coms/panel/toolbar-panel.vue";
 import Table from "../../components/coms/table/table.vue";
+
+import axios from "axios";
 export default {
-  setup () { },
-  components: { SvgIcon, Panel, VertivalBarLineChart, Table, ListBarChart, ThermometerVChart, NormalPieChart, ToolbarPanel, Dashboard2 },
-  data () {
+  setup() {},
+  components: {
+    SvgIcon,
+    Panel,
+    VertivalBarLineChart,
+    Table,
+    ListBarChart,
+    ThermometerVChart,
+    NormalPieChart,
+    ToolbarPanel,
+    Dashboard2,
+  },
+  data() {
     return {
+      wpId: "",
+      wpName: "",
       sourceMap: {
-        wtIdls:[]
+        wtIdls: [],
       },
       type: "2",
-      bardata:{
-        area:[],
-        legend:[],
-        data:[[]]
+      bardata: {
+        area: [],
+        legend: [],
+        data: [[]],
       },
-      lineData:[],
+      lineData: [],
       listBarData1: [],
-      dangerData:[],
+      dangerData: [],
       listBarData1Color: ["purple", "purple"],
       tableData: {
-        column: [{
+        column: [
+          {
             name: "",
             field: "",
             is_num: false,
@@ -166,27 +223,28 @@ export default {
       },
     };
   },
-  created () {
+  created() {
     this.wpId = this.$route.params.wpId;
-    this.$nextTick(()=>{
+    this.wpName = this.$route.params.wpName || "";
+    this.$nextTick(() => {
       this.requestData();
       this.getWpMap();
     });
   },
 
   methods: {
-
-    requestData(){
+    requestData() {
       let that = this;
       that.API.requestData({
-        method: "POST",
+        method: "GET",
         timeout: 8000,
-        subUrl: "recommen/findAllChartjz",
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
+        subUrl: "/recommen/findAllChartjz",
         data: {
           wpId: that.wpId,
-          type: that.type
+          type: that.type,
         },
-        success (res) {
+        success(res) {
           if (res.code == 200) {
             that.bardata.legend = ["优数量", "良数量", "差数量"];
             that.lineData = res.data.lvchart;
@@ -195,62 +253,68 @@ export default {
             that.bardata.data[1] = res.data.lslchart;
             that.bardata.data[0] = res.data.yslchart;
           }
-        }
+        },
       });
     },
 
-    getWpMap () {
+    getWpMap() {
       let that = this;
       that.API.requestData({
-        method: "POST",
-        subUrl: "healthmain/findWpMap",
+        method: "GET",
+        baseURL: process.env.VUE_APP_NEW_WISDOM,
+        subUrl: "/health/findWpMap",
         data: {
-          wpId: that.wpId
+          wpId: that.wpId,
         },
-        success (res) {
-          console.log('resMap:',res)
-          that.listBarData1= [
+        success(res) {
+          that.listBarData1 = [
             { name: "未来 {c1|15分钟} 预测电量", value: res.data.ycdl15minute },
             { name: "未来 {c1|4小时} 预测电量", value: res.data.ycdl1hour },
           ];
 
-          let dangerData=[{
-            name:"一级隐患",
-            value:0
-          },{
-            name:"二级隐患",
-            value:0
-          },{
-            name:"三级隐患",
-            value:0
-          },{
-            name:"四级隐患",
-            value:0
-          },{
-            name:"五级隐患",
-            value:0
-          }];
-
-          dangerData.forEach((ele,index) => {
-            ele.value=res.data.yhls[index];
+          let dangerData = [
+            {
+              name: "一级隐患",
+              value: 0,
+            },
+            {
+              name: "二级隐患",
+              value: 0,
+            },
+            {
+              name: "三级隐患",
+              value: 0,
+            },
+            {
+              name: "四级隐患",
+              value: 0,
+            },
+            {
+              name: "五级隐患",
+              value: 0,
+            },
+          ];
+
+          dangerData.forEach((ele, index) => {
+            ele.value = res.data.yhls[index];
           });
 
           that.dangerData = dangerData;
           that.tableData.data = res.data.gzls;
           that.sourceMap = res.data;
-        }
+        },
       });
     },
 
-    changeDate(type){
+    changeDate(type) {
       this.type = type;
       this.requestData();
     },
 
-    jumpUrl(item){
+    jumpUrl(item) {
       this.$router.push(`/health/health0/${this.wpId}/${item[0]}`);
-    }
-  }
+    },
+  },
 };
 </script>
 
@@ -311,7 +375,7 @@ export default {
           border-left: 9px solid transparent;
           border-right: 9px solid transparent;
           display: block;
-          content: '';
+          content: "";
           z-index: 10;
           transform: rotate(90deg);
         }
@@ -328,7 +392,7 @@ export default {
           border-left: 9px solid transparent;
           border-right: 9px solid transparent;
           display: block;
-          content: '';
+          content: "";
           z-index: 12;
           transform: rotate(90deg);
         }

+ 4 - 4
src/views/HealthControl/Health4.vue

@@ -49,10 +49,10 @@ export default {
           icon: "svg-q实时监视",
           path: "/health/health0",
         },
-        {
-          icon: "svg-q健康",
-          path: "/health/health10",
-        },
+        // {
+        //   icon: "svg-q健康",
+        //   path: "/health/health10",
+        // },
         {
           icon: "svg-q趋势",
           path: "/health/health4/healthLineChart2",

+ 38 - 29
src/views/HealthControl/Health5.vue

@@ -5,34 +5,34 @@
       <div class="health-matrix">
         <div
           class="health-matrix-panel"
-          v-for="(item, index) in stationsList"
-          :key="index"
+          v-for="(pEle, pIndex) in stationsList"
+          :key="pIndex"
         >
           <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">{{ pEle.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">{{ pEle.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">{{ pEle.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">{{ pEle.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">{{ pEle.yzsl }}</div>
               </div>
             </div>
           </div>
@@ -40,24 +40,24 @@
             <div class="matrix">
               <div
                 class="item"
-                v-for="(ele, num) in windturbineList[index]"
-                :key="num"
-                @click="onClickJump(ele)"
+                v-for="(cItem, cIndex) in pEle.windturbineList"
+                :key="cIndex"
+                @click="onClickJump(cItem)"
               >
-                <div v-if="parseInt(ele.fjzt) == 1" class="green">
-                  {{ ele.wtnum }}号
+                <div v-if="parseInt(cItem.fjzt) == 1" class="green">
+                  {{ cItem.wtCode }}号
                 </div>
-                <div v-if="parseInt(ele.fjzt) == 2" class="purple">
-                  {{ ele.wtnum }}号
+                <div v-if="parseInt(cItem.fjzt) == 2" class="purple">
+                  {{ cItem.wtCode }}号
                 </div>
-                <div v-if="parseInt(ele.fjzt) == 3" class="yellow">
-                  {{ ele.wtnum }}号
+                <div v-if="parseInt(cItem.fjzt) == 3" class="yellow">
+                  {{ cItem.wtCode }}号
                 </div>
-                <div v-if="parseInt(ele.fjzt) == 4" class="orange">
-                  {{ ele.wtnum }}号
+                <div v-if="parseInt(cItem.fjzt) == 4" class="orange">
+                  {{ cItem.wtCode }}号
                 </div>
-                <div v-if="parseInt(ele.fjzt) == 0" class="gray">
-                  {{ ele.wtnum }}号
+                <div v-if="parseInt(cItem.fjzt) == 0" class="gray">
+                  {{ cItem.wtCode }}号
                 </div>
               </div>
               <div class="blank" v-for="index of 25" :key="index"></div>
@@ -78,7 +78,6 @@ export default {
   data() {
     return {
       stationsList: [],
-      windturbineList: [],
     };
   },
   created() {
@@ -89,19 +88,29 @@ export default {
     getHealthMatrix() {
       api.healthmainFindHealthMatrixMap().then((res) => {
         if (res.code == 200) {
-          let stationsList = []
-          let arr = Object.keys(res.data.fczbmap).sort();
-          for (let id of arr) {
-            stationsList.push(res.data.fczbmap[id]);
+          let stationsList = [];
+
+          for (let key in res.data.fczbmap) {
+            let wpItem = Object.assign({}, res.data.fczbmap[key]);
+            wpItem.wpId = key;
+            stationsList.push(wpItem);
           }
-          this.stationsList = stationsList
-          this.windturbineList = res.data.fjmap
+
+          stationsList.forEach((ele) => {
+            for (let i = 0; i < res.data.fjmap.length; i++) {
+              if (res.data.fjmap[i]?.[0]?.wpId === ele.wpId) {
+                ele.windturbineList = res.data.fjmap[i];
+                break;
+              }
+            }
+          });
+
+          this.stationsList = stationsList;
         }
       });
     },
     // 跳转按钮
     onClickJump(item) {
-      console.warn(item);
       this.$router.push({
         path: `/health/health0/${item.wpId}/${item.wtId}`,
       });
@@ -215,7 +224,7 @@ export default {
           background: fade(@red, 20);
           border-color: @red;
         }
-        &.gray{
+        &.gray {
           color: @gray;
           background: fade(@gray, 20);
           border-color: @gray;

+ 12 - 49
src/views/HealthControl/Health6.vue

@@ -52,7 +52,7 @@
           <dual-pie-chart
             :innerData="healPieData"
             :outerData="healPieData"
-            :height="'230px'"
+            :height="'150px'"
           />
         </panel>
       </Col>
@@ -61,7 +61,7 @@
           <dual-pie-chart
             :innerData="stopPieData"
             :outerData="stopPieData"
-            :height="'230px'"
+            :height="'150px'"
           />
         </panel>
       </Col>
@@ -82,14 +82,14 @@
         <bar-line-chart
           :bardata="barData"
           :lineData="[]"
-          :height="'230px'"
-          :pageSize="6"
+          :height="'390px'"
+          :pageSize="10"
         />
       </panel>
     </div>
     <div class="mg-b-16 curStyle">
       <panel :title="'健康趋势'" :showLine="false">
-        <MultipleLineChart :list="statusData" :units="['']" :height="'230px'" />
+        <MultipleLineChart :list="statusData" :units="['']" :height="'150px'" />
       </panel>
       <div class="selections">
         <div
@@ -251,56 +251,19 @@ export default {
         .then((res) => {
           let barData = {
             area: res.data.name,
-            legend: ["良好数量", "正常数量", "注意数量", "严重数量"],
+            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]);
-          }
+          barData.data.push(
+            res.data.lhList,
+            res.data.hgList,
+            res.data.zyList,
+            res.data.yzList
+          );
 
           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;
-      //   },
-      // });
     },
 
     // 获取健康状态

+ 28 - 20
src/views/HealthControl/Health8.vue

@@ -15,7 +15,7 @@
               <el-option
                 v-for="item in options"
                 :key="item.id"
-                :label="item.name"
+                :label="item.aname"
                 :value="item.id"
               >
               </el-option>
@@ -59,10 +59,10 @@
           <table style="width: 100%" border="0" cellspacing="0">
             <tbody>
               <tr v-for="(item, index) in tableData" :key="index">
-                <td style="width: 50px">{{ item.id }}</td>
-                <td style="width: 105px">{{ item.wtname }}</td>
-                <td style="width: 105px">{{ item.model }}</td>
-                <td style="width: 350px">
+                <td class="to" style="width: 50px">{{ item.id }}</td>
+                <td class="to" style="width: 110px">{{ item.nemCode }}</td>
+                <td class="to" style="width: 105px">{{ item.model }}</td>
+                <td class="to" style="width: 300px">
                   <div class="percent-item">
                     {{ item.zxd }}%
                     <div class="percent-bar" style="">
@@ -77,7 +77,10 @@
                   <div>{{ item.score }}</div>
                 </td>
                 <td>
-                  <table-line-chart :list="item.futureHealth" />
+                  <table-line-chart
+                    :width="'370px'"
+                    :list="item.futureHealth"
+                  />
                 </td>
                 <td class="item">
                   <div :class="[color(item.clx)]">{{ item.clx }}</div>
@@ -115,6 +118,7 @@
 <script>
 import TableLineChart from "../../components/chart/line/table-line-chart.vue";
 import api from "@api/wisdomOverhaul/health/index.js";
+import axios from "axios";
 export default {
   setup() {},
   components: { TableLineChart },
@@ -160,25 +164,23 @@ export default {
       return this.colorval[val];
     },
     async search() {
-      const { data } = await api.powercompareWindfarmAjax();
-      this.options = data;
-      this.value1 = data[0].id;
-      this.searchWindTurbineHealthList();
+      axios({
+        method: "get",
+        baseURL: process.env.VUE_APP_API,
+        url: `/benchmarking/wpByCplist?companyids=SXJ_RGN&type=-1`,
+      }).then((res) => {
+        if (res.data.data.code === 200) {
+          this.options = res.data.data?.data || [];
+          this.value1 = this?.options?.[0].id || "";
+          this.searchWindTurbineHealthList();
+        }
+      });
     },
     async searchWindTurbineHealthList() {
       const { data } = await api.wtHealthListWindTurbineHealthList({
         wpId: this.value1,
       });
-
-      // this.API.requestData({
-      //   subUrl: "wtHealthList/windTurbineHealthList",
-      //   method: "POST",
-      //   data: {
-      //     wpId: this.value1,
-      //   },
-      // });
       this.tableData = data;
-      console.warn(data);
       data.forEach((k) => {
         let arr = [];
         k.futureHealth.forEach((e, index) => {
@@ -190,7 +192,6 @@ export default {
         });
         k.futureHealth = arr;
       });
-      console.warn(this.tableData);
     },
   },
 };
@@ -261,6 +262,13 @@ export default {
           }
         }
       }
+
+      &.to {
+        display: inline-block;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+      }
     }
 
     .percent-item {

+ 36 - 34
src/views/HealthControl/HealthTab1.vue

@@ -62,20 +62,20 @@
         <div class="report-items scroll">
           <div class="item" v-for="(item, index) in recommenList" :key="index">
             <div class="title">
-              <div @click="jumpUrl(item)">风机编号:{{ item.wtid }}</div>
+              <div @click="jumpUrl(item)">风机编号:{{ item.nemCode }}</div>
               <span @click="onClickReport(item)">健康报告</span>
             </div>
             <div class="info">
               <p>推荐理由:{{ item.reason }}</p>
               <p>
                 推荐检修时间:{{
-                  new Date(item.recodedate).formatDate("yyyy-MM-dd hh:mm:ss")
+                  new Date(item.recordDate).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")
+                  new Date(item.createDate).formatDate("yyyy-MM-dd hh:mm:ss")
                 }}
               </p>
               <div class="actions mg-t-16">
@@ -96,8 +96,8 @@
     <health-report
       :show="reportshow"
       :params="reportparams"
-      @closed="closed"
       ref="eport"
+      @closed="closed"
     />
   </div>
 </template>
@@ -138,9 +138,9 @@ export default {
   methods: {
     // 页面跳转
     jumpUrl(item) {
-      const wpid = item.wpid;
-      const wtid = item.wtid;
-      this.$router.push(`/health/health0/${wpid}/${wtid}`)
+      const wpid = item.wpId;
+      const wtid = item.wtId;
+      this.$router.push(`/health/health0/${wpid}/${wtid}`);
     },
     // 未确认缺陷按钮下的健康趋势选项
     onClickInfo(item) {
@@ -176,13 +176,11 @@ export default {
     },
     // 查看健康报告
     onClickReport(item) {
-      let recorddate = new Date(item.createdate).formatDate("yyyy-MM-dd");
+      this.$refs.eport.getReport(
+        item.wtId,
+        new Date(item.createDate).formatDate("yyyy-MM-dd")
+      );
       this.reportshow = true;
-      this.reportparams = {
-        wtId: item.wtid,
-        recorddate: recorddate,
-      };
-      this.$refs.eport.getReport(item.wtid, recorddate);
     },
     // 关闭健康报告
     closed() {
@@ -224,35 +222,39 @@ export default {
     },
     // 健康报告推荐
     requestRecommen(url) {
-      api.requestRecommen({
-        url:url
-      }).then(res =>{
-        if (res.code == 200) this.recommenList = res.data;
-      })
+      api
+        .requestRecommen({
+          url: url,
+        })
+        .then((res) => {
+          if (res.code == 200) this.recommenList = res.data;
+        });
     },
     // 操作推荐内容(提交/取消)
     requestOption(url, rid) {
-      let data ={
-        rid: rid
-      }
-      api.recommen(url,data).then(res =>{
-         if (res.code == 200) this.onClickRecommon(that.recommenIndex);
-      })
+      let data = {
+        rid: rid,
+      };
+      api.recommen(url, data).then((res) => {
+        if (res.code == 200) this.onClickRecommon(that.recommenIndex);
+      });
     },
     // 操作推荐内容全部(提交/取消)
     requestOptionAll(url) {
-      let data = { typeid: this.recommenIndex }
-      api.recommen(url,data).then(res =>{
-         if (res.code == 200) this.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) {
-      api.findAllChartjz({
-        wpId: 0,
-        type: type
-      }).then(res =>{
-        if (res.code == 200) {
+      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;
@@ -260,7 +262,7 @@ export default {
             this.bardata.data[1] = res.data.lslchart;
             this.bardata.data[0] = res.data.yslchart;
           }
-      })
+        });
     },
   },
 };

+ 4 - 4
src/views/HealthControl/assess/assessindex.vue

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

+ 1 - 4
src/views/HealthControl/healthLineChart.vue

@@ -19,7 +19,7 @@ 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: [],
@@ -27,12 +27,10 @@ export default {
   },
 
   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: {
@@ -50,7 +48,6 @@ export default {
           wtId: this.wtId,
         })
         .then((res) => {
-          // console.log(res);
           const color = ["green", "yellow", "purple", "blue", "orange"];
           let chartData = [];
           let lineTitle = [];

+ 51 - 87
src/views/HealthControl/healthLineChart2.vue

@@ -29,7 +29,7 @@
     </div>
     <div class="fc-info mg-b-16">
       <panel :title="'健康走势图'" :showLine="false">
-        <normal-line-chart :height="'150px'" />
+        <normal-line-chart :list="hisValue" :height="'150px'" :units="['']" />
       </panel>
     </div>
     <div class="data-list">
@@ -72,17 +72,14 @@ export default {
       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: "MTBF(h)", field: "mtbf", is_num: true },
+          { name: "MTTR(h)", field: "mttr", is_num: true },
+          { name: "损失电量(kw/h)", field: "lost", 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>";
-              else if (data == 4) return "<div class='dot orange'></div>";
+            field: "status",
+            template: function (data, row) {
+              return `<div class="dot" style="background:${row.status}"></div>`;
             },
           },
         ],
@@ -92,7 +89,14 @@ export default {
       lineData: [],
       wtId: undefined,
       wpId: undefined,
-      hisValue: {}, //健康走势图
+      //健康走势图
+      hisValue: [
+        {
+          title: "",
+          yAxisIndex: 0,
+          value: [],
+        },
+      ],
     };
   },
   created() {
@@ -173,25 +177,28 @@ export default {
         })
         .then((res) => {
           if (res.code == 200) {
-            let data = res.data;
-            data.time = data.time.slice(0, 65);
-            this.hisValue = data;
+            let hisValue = [];
+
+            res.data.data.forEach((pELe, pIndex) => {
+              let value = [];
+              pELe.forEach((cEle, cIndex) => {
+                value.push({
+                  text: res.data.time[cIndex],
+                  value: cEle,
+                });
+              });
+
+              let hisValueItem = {
+                title: res.data.name[pIndex],
+                yAxisIndex: 0,
+                value,
+              };
+              hisValue.push(hisValueItem);
+            });
+
+            this.hisValue = hisValue;
           }
         });
-
-      // 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() {
@@ -201,65 +208,22 @@ export default {
         })
         .then((res) => {
           if (res.code == 200) {
-            let data = res.data;
-            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 tableData = [];
+
+            const sortKey = ["clx", "fdj", "bj", "zk", "zz", "ph", "jc", "bpq"];
+
+            sortKey.forEach((key) => {
+              const tableItem = {
+                name: res.data[key][1],
+                mtbf: res.data[key][4],
+                mttr: res.data[key][5],
+                lost: res.data[key][6],
+                status: res.data[key][0],
+              };
+              tableData.push(tableItem);
+            });
+
+            this.tableData.data = tableData;
           }
         });
 

+ 131 - 131
src/views/layout/Menu.vue

@@ -297,50 +297,50 @@ export default {
             //   // path: '/monitor/sandtable'
             //    path: '/health/sandtable'
             // },
-            {
-              text: "等级评估",
-              icon: "svg-等级评估",
-              path: "/health/assess/index",
-              children: [
-                {
-                  text: "等级评估",
-                  icon: "svg-等级评估",
-                  path: "/health/assess/index",
-                },
-                // {
-                //   text: "自组合评级",
-                //   icon: "svg-wind-site",
-                //   path: "/health/assess/selfEvaluate",
-                // },
-              ],
-            },
-            {
-              text: "故障诊断",
-              icon: "svg-故障诊断",
-              path: "/health/gzzd/malfunctionDiagnose",
-              children: [
-                {
-                  text: "故障诊断",
-                  icon: "svg-wind-site",
-                  path: "/health/gzzd/malfunctionDiagnose",
-                },
-                {
-                  text: "故障回溯",
-                  icon: "svg-wind-site",
-                  path: "/health/gzzd/malfunctionRecall",
-                },
-                // {
-                //   text: "故障分类",
-                //   icon: "svg-wind-site",
-                //   path: "/health/gzzd/gzfl",
-                // },
-                // {
-                //   text: "预警分类",
-                //   icon: "svg-wind-site",
-                //   path: "/health/gzzd/yjfl",
-                // },
-              ],
-            },
+            // {
+            //   text: "等级评估",
+            //   icon: "svg-等级评估",
+            //   path: "/health/assess/index",
+            //   children: [
+            //     {
+            //       text: "等级评估",
+            //       icon: "svg-等级评估",
+            //       path: "/health/assess/index",
+            //     },
+            //     // {
+            //     //   text: "自组合评级",
+            //     //   icon: "svg-wind-site",
+            //     //   path: "/health/assess/selfEvaluate",
+            //     // },
+            //   ],
+            // },
+            // {
+            //   text: "故障诊断",
+            //   icon: "svg-故障诊断",
+            //   path: "/health/gzzd/malfunctionDiagnose",
+            //   children: [
+            //     {
+            //       text: "故障诊断",
+            //       icon: "svg-wind-site",
+            //       path: "/health/gzzd/malfunctionDiagnose",
+            //     },
+            //     {
+            //       text: "故障回溯",
+            //       icon: "svg-wind-site",
+            //       path: "/health/gzzd/malfunctionRecall",
+            //     },
+            //     // {
+            //     //   text: "故障分类",
+            //     //   icon: "svg-wind-site",
+            //     //   path: "/health/gzzd/gzfl",
+            //     // },
+            //     // {
+            //     //   text: "预警分类",
+            //     //   icon: "svg-wind-site",
+            //     //   path: "/health/gzzd/yjfl",
+            //     // },
+            //   ],
+            // },
             {
               text: "健康管理",
               icon: "svg-健康管理",
@@ -379,97 +379,97 @@ export default {
                 {
                   text: "劣化状态分析",
                   icon: "svg-q曲线",
-                  path: "/health/healthLineChart/GJY_FDC/GJY01_001",
+                  path: "/health/healthLineChart/SXJ_KGDL_GJY_FDC_STA/SXJ_KGDL_GJY_F_WT_0001_EQ",
                 },
               ],
             },
-            {
-              text: "全生命周期",
-              icon: "svg-全生命周期",
-              path: "/health/allLifeManage",
-            },
-            {
-              text: "能效分析",
-              icon: "svg-能效分析",
-              path: "/health/nxfx/powerCurve",
-              children: [
-                {
-                  text: "功率曲线拟合",
-                  icon: "svg-wind-site",
-                  path: "/health/nxfx/powerCurve",
-                },
-                {
-                  text: "偏航对风分析",
-                  icon: "svg-wind-site",
-                  path: "/health/nxfx/phdffx",
-                },
-                // {
-                //   text: "切入切出分析",
-                //   icon: "svg-wind-site",
-                //   path: "/health/nxfx/cutAnalyse",
-                // },
-                {
-                  text: "曲线偏差率分析",
-                  icon: "svg-wind-site",
-                  path: "/health/nxfx/qxpclfx",
-                },
+            // {
+            //   text: "全生命周期",
+            //   icon: "svg-全生命周期",
+            //   path: "/health/allLifeManage",
+            // },
+            // {
+            //   text: "能效分析",
+            //   icon: "svg-能效分析",
+            //   path: "/health/nxfx/powerCurve",
+            //   children: [
+            //     {
+            //       text: "功率曲线拟合",
+            //       icon: "svg-wind-site",
+            //       path: "/health/nxfx/powerCurve",
+            //     },
+            //     {
+            //       text: "偏航对风分析",
+            //       icon: "svg-wind-site",
+            //       path: "/health/nxfx/phdffx",
+            //     },
+            //     // {
+            //     //   text: "切入切出分析",
+            //     //   icon: "svg-wind-site",
+            //     //   path: "/health/nxfx/cutAnalyse",
+            //     // },
+            //     {
+            //       text: "曲线偏差率分析",
+            //       icon: "svg-wind-site",
+            //       path: "/health/nxfx/qxpclfx",
+            //     },
 
-                {
-                  text: "单机饱和度",
-                  icon: "svg-wind-site",
-                  path: "/health/nxfx/wtSaturability",
-                },
-              ],
-            },
-            {
-              text: "可靠性分析",
-              icon: "svg-可靠性分析",
-              path: "/health/kkxfx/alarmcenter1",
-              children: [
-                {
-                  text: "预警分析",
-                  icon: "svg-wind-site",
-                  path: "/health/kkxfx/alarmcenter1",
-                },
-                {
-                  text: "故障分析",
-                  icon: "svg-wind-site",
-                  path: "/health/kkxfx/alarmcenter2",
-                },
-                {
-                  text: "预警评判分析",
-                  icon: "svg-wind-site",
-                  path: "/health/kkxfx/warnStatistics",
-                },
-                {
-                  text: "故障评判分析",
-                  icon: "svg-wind-site",
-                  path: "/health/kkxfx/malfunctionStatistics",
-                },
-                // {
-                //   text: "部件评判分析",
-                //   icon: "svg-wind-site",
-                //   path: "/health/kkxfx/bjgltjb",
-                // },
-              ],
-            },
-            {
-              text: "风光资源分析",
-              icon: "svg-风光资源分析",
-              path: "/health/fzyfx/windAnalysis",
-              children: [
-                {
-                  text: "风资源散点",
-                  icon: "svg-wind-site",
-                  path: "/health/fzyfx/windAnalysis",
-                },
-                {
-                  text: "风资源风向",
-                  icon: "svg-wind-site",
-                  path: "/health/fzyfx/windAnalysis/fx",
-                },
-              ],
-            },
+            //     {
+            //       text: "单机饱和度",
+            //       icon: "svg-wind-site",
+            //       path: "/health/nxfx/wtSaturability",
+            //     },
+            //   ],
+            // },
+            // {
+            //   text: "可靠性分析",
+            //   icon: "svg-可靠性分析",
+            //   path: "/health/kkxfx/alarmcenter1",
+            //   children: [
+            //     {
+            //       text: "预警分析",
+            //       icon: "svg-wind-site",
+            //       path: "/health/kkxfx/alarmcenter1",
+            //     },
+            //     {
+            //       text: "故障分析",
+            //       icon: "svg-wind-site",
+            //       path: "/health/kkxfx/alarmcenter2",
+            //     },
+            //     {
+            //       text: "预警评判分析",
+            //       icon: "svg-wind-site",
+            //       path: "/health/kkxfx/warnStatistics",
+            //     },
+            //     {
+            //       text: "故障评判分析",
+            //       icon: "svg-wind-site",
+            //       path: "/health/kkxfx/malfunctionStatistics",
+            //     },
+            //     // {
+            //     //   text: "部件评判分析",
+            //     //   icon: "svg-wind-site",
+            //     //   path: "/health/kkxfx/bjgltjb",
+            //     // },
+            //   ],
+            // },
+            // {
+            //   text: "风光资源分析",
+            //   icon: "svg-风光资源分析",
+            //   path: "/health/fzyfx/windAnalysis",
+            //   children: [
+            //     {
+            //       text: "风资源散点",
+            //       icon: "svg-wind-site",
+            //       path: "/health/fzyfx/windAnalysis",
+            //     },
+            //     {
+            //       text: "风资源风向",
+            //       icon: "svg-wind-site",
+            //       path: "/health/fzyfx/windAnalysis/fx",
+            //     },
+            //   ],
+            // },
             // {
             //   text: "故障预警",
             //   icon: "svg-预警记录",

+ 3 - 3
src/views/malfunctionDiagnose/index.vue

@@ -215,9 +215,9 @@ export default {
   methods: {
     // 请求服务
     requestData() {
-      api1.benchmarkingWplist({}).then((res) => {
-        this.wpArray = res.data;
-        this.wpId = res.data[0].id;
+      api1.getWpList({ type: "-1" }).then((res) => {
+        this.wpArray = res.data?.data || [];
+        this.wpId = res.data?.data?.[0]?.id;
         this.getProject();
       });
     },