瀏覽代碼

风机详情修改

lining 3 年之前
父節點
當前提交
02c5368195

+ 2 - 0
.env.development

@@ -1,6 +1,8 @@
 VUE_APP_API=http://192.168.10.18:8099
+VUE_APP_WARNING=http://192.168.10.18:8070
 VUE_APP_SHARDINGURL=http://192.168.10.18:8075
 VUE_APP_ADAPTERURL=http://192.168.10.18:8011
 VUE_APP_APIS=192.168.10.18:8099
 VUE_APP_SHARDINGURLS=192.168.10.18:8075
 VUE_APP_ADAPTERURLS=192.168.10.18:8011
+VUE_APP_WARNINGS=92.168.10.18:8070

+ 3 - 1
.env.production

@@ -1,8 +1,10 @@
 # VUE_APP_API=http://18.6.30.53:8075
 # VUE_APP_IMAGE=http://18.6.30.53:8075
 VUE_APP_API=http://18.6.30.63:8099
+VUE_APP_WARNING=http://18.6.30.63:8070
 VUE_APP_SHARDINGURL=http://18.6.30.53:8075
 VUE_APP_ADAPTERURL=http://18.6.30.63:8011
 VUE_APP_APIS=18.6.30.63:8099
 VUE_APP_SHARDINGURLS=18.6.30.53:8075
-VUE_APP_ADAPTERURLS=18.6.30.63:8011
+VUE_APP_ADAPTERURLS=18.6.30.63:8011
+VUE_APP_WARNINGS=18.6.30.63:8070

+ 11 - 146
package-lock.json

@@ -1180,11 +1180,6 @@
         "to-fast-properties": "^2.0.0"
       }
     },
-    "@daybrush/utils": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/@daybrush/utils/-/utils-1.6.0.tgz",
-      "integrity": "sha512-9MjMoOLl1U+l8lXByN3BbLZXf+mktoLyeb6t78Jz2WZ7LRldK0FNg8oW//9giO2hHCUyxS7LX6jS1hToGIfRWA=="
-    },
     "@develar/schema-utils": {
       "version": "2.6.5",
       "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz",
@@ -1195,19 +1190,6 @@
         "ajv-keywords": "^3.4.1"
       }
     },
-    "@egjs/children-differ": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/@egjs/children-differ/-/children-differ-1.0.1.tgz",
-      "integrity": "sha512-DRvyqMf+CPCOzAopQKHtW+X8iN6Hy6SFol+/7zCUiE5y4P/OB8JP8FtU4NxtZwtafvSL4faD5KoQYPj3JHzPFQ==",
-      "requires": {
-        "@egjs/list-differ": "^1.0.0"
-      }
-    },
-    "@egjs/list-differ": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/@egjs/list-differ/-/list-differ-1.0.0.tgz",
-      "integrity": "sha512-HsbMKc0ZAQH+EUeCmI/2PvTYSybmkaWwakU8QGDYYgMVIg9BQ5sM0A0Nnombjxo2+JzXHxmH+jw//yGX+y6GYw=="
-    },
     "@electron/get": {
       "version": "1.13.0",
       "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.13.0.tgz",
@@ -1311,11 +1293,6 @@
         }
       }
     },
-    "@element-plus/icons": {
-      "version": "0.0.11",
-      "resolved": "https://registry.npmjs.org/@element-plus/icons/-/icons-0.0.11.tgz",
-      "integrity": "sha512-iKQXSxXu131Ai+I9Ymtcof9WId7kaXvB1+WRfAfpQCW7UiAMYgdNDqb/u0hgTo2Yq3MwC4MWJnNuTBEpG8r7+A=="
-    },
     "@gar/promisify": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz",
@@ -1565,30 +1542,6 @@
       "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.10.1.tgz",
       "integrity": "sha512-HnUhk1Sy9IuKrxEMdIRCxpIqPw6BFsbYSEUO9p/hNw5sMld/+3OLMWQP80F8/db9qsv3qUjs7ZR5bS/R+iinXw=="
     },
-    "@scena/dragscroll": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/@scena/dragscroll/-/dragscroll-1.0.2.tgz",
-      "integrity": "sha512-M0KDr4CP9SHTqyFD9oGxXDoVQV8EG7rKDtwDlyHXqCyL4sXljDjSqVSpK+2kKZxCnpo1DfB7cXkbods/PjZ3JQ==",
-      "requires": {
-        "@scena/event-emitter": "^1.0.2"
-      }
-    },
-    "@scena/event-emitter": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/@scena/event-emitter/-/event-emitter-1.0.5.tgz",
-      "integrity": "sha512-AzY4OTb0+7ynefmWFQ6hxDdk0CySAq/D4efljfhtRHCOP7MBF9zUfhKG3TJiroVjASqVgkRJFdenS8ArZo6Olg==",
-      "requires": {
-        "@daybrush/utils": "^1.1.1"
-      }
-    },
-    "@scena/matrix": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/@scena/matrix/-/matrix-1.1.1.tgz",
-      "integrity": "sha512-JVKBhN0tm2Srl+Yt+Ywqu0oLgLcdemDQlD1OxmN9jaCTwaFPZ7tY8n6dhVgMEaR9qcR7r+kAlMXnSfNyYdE+Vg==",
-      "requires": {
-        "@daybrush/utils": "^1.4.0"
-      }
-    },
     "@sindresorhus/is": {
       "version": "0.14.0",
       "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
@@ -1739,6 +1692,11 @@
       "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==",
       "dev": true
     },
+    "@types/lodash": {
+      "version": "4.14.173",
+      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.173.tgz",
+      "integrity": "sha512-vv0CAYoaEjCw/mLy96GBTnRoZrSxkGE0BKzKimdR8P3OzrNYNvBgtW7p055A+E8C31vXNUhWKoFCbhq7gbyhFg=="
+    },
     "@types/mime": {
       "version": "1.3.2",
       "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
@@ -5260,24 +5218,6 @@
       "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==",
       "dev": true
     },
-    "css-styled": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/css-styled/-/css-styled-1.0.0.tgz",
-      "integrity": "sha512-lDdPvM2/djv+La110zVY3RGQ7X4OOlzLS+IEjRcn8UlUmJd1+GNcGfDFmsKWwnLBupsY1w0QM1gRgV4RdcCjfw==",
-      "requires": {
-        "@daybrush/utils": "^1.0.0",
-        "string-hash": "^1.1.3"
-      }
-    },
-    "css-to-mat": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/css-to-mat/-/css-to-mat-1.0.3.tgz",
-      "integrity": "sha512-HADRhVqPc8wFqEp6ClK+uuPYg+FMBinNo2ReLyI/KQCncmHPJ60o5zldyJG7NjsTqXWbdfGJO51jnoxfMvWJiA==",
-      "requires": {
-        "@daybrush/utils": "^1.3.1",
-        "@scena/matrix": "^1.0.0"
-      }
-    },
     "css-tree": {
       "version": "1.0.0-alpha.37",
       "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz",
@@ -6469,12 +6409,12 @@
       "dev": true
     },
     "element-plus": {
-      "version": "1.0.2-beta.71",
-      "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-1.0.2-beta.71.tgz",
-      "integrity": "sha512-tlfbRORIav8gJcIpjZI5F6aJIVHIaDuGO6/vKu43lgYq4JS2JPNRTjvrSE2p4f5xLfaFNfOWjCS3sybXLfMg8g==",
+      "version": "1.0.2-beta.55",
+      "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-1.0.2-beta.55.tgz",
+      "integrity": "sha512-I9EYxOA5H9KQ58SpFE0yejGPoAd3ui12wRLLtoS2bHdF9mrep5c6v+2cJwyc9abXGBf2RzZ8tqAp/OCCfdzjlQ==",
       "requires": {
-        "@element-plus/icons": "^0.0.11",
         "@popperjs/core": "^2.4.4",
+        "@types/lodash": "^4.14.161",
         "async-validator": "^3.4.0",
         "dayjs": "1.x",
         "lodash": "^4.17.20",
@@ -7267,11 +7207,6 @@
         "map-cache": "^0.2.2"
       }
     },
-    "framework-utils": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/framework-utils/-/framework-utils-1.1.0.tgz",
-      "integrity": "sha512-KAfqli5PwpFJ8o3psRNs8svpMGyCSAe8nmGcjQ0zZBWN2H6dZDnq+ABp3N3hdUmFeMrLtjOCTXD4yplUJIWceg=="
-    },
     "fresh": {
       "version": "0.5.2",
       "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
@@ -7481,15 +7416,6 @@
       "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
       "dev": true
     },
-    "gesto": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/gesto/-/gesto-1.4.0.tgz",
-      "integrity": "sha512-fSG37iqXb/4wD82B3I5p7KsI4W5mIQkLThDndJmv7HmdX1+Y0QJS7TQgDPgiT7A7PXHa7p8NJNbRX23LNVS6/Q==",
-      "requires": {
-        "@daybrush/utils": "^1.0.0",
-        "@scena/event-emitter": "^1.0.2"
-      }
-    },
     "get-caller-file": {
       "version": "2.0.5",
       "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -9221,21 +9147,6 @@
         "set-immediate-shim": "~1.0.1"
       }
     },
-    "keycode": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz",
-      "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ="
-    },
-    "keycon": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/keycon/-/keycon-1.1.2.tgz",
-      "integrity": "sha512-yCoUAfwqmQUWrtOFuZhicxasF/4ae+M0aH8yV1wEKKZCZql8v6jWhlVF9dT5i1TfuHSmgt/GNuCaWIHT8wk6eQ==",
-      "requires": {
-        "@daybrush/utils": "^1.0.0",
-        "@scena/event-emitter": "^1.0.2",
-        "keycode": "^2.2.0"
-      }
-    },
     "keyv": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
@@ -10651,14 +10562,6 @@
         "os-tmpdir": "^1.0.0"
       }
     },
-    "overlap-area": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/overlap-area/-/overlap-area-1.0.0.tgz",
-      "integrity": "sha512-Oi3hxRf6Flvv1upldnjOtV7euFkc75G/wsxYfS/ssNKEZ3Z+HbIoPHkFfLH3hgwqLJKpq9wdFo7I6xcdS6k8yg==",
-      "requires": {
-        "@daybrush/utils": "^1.3.1"
-      }
-    },
     "p-cancelable": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
@@ -12671,23 +12574,6 @@
       "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
       "dev": true
     },
-    "selecto": {
-      "version": "1.13.0",
-      "resolved": "https://registry.npmjs.org/selecto/-/selecto-1.13.0.tgz",
-      "integrity": "sha512-YQNg7Nk/kLNGX8NZHj/yQwSQIjN0ud3MQssULCsRvzKP0oFDbBD9neR1+Go6u2ZSC3U0hSvpk+Czlttnnm1Lag==",
-      "requires": {
-        "@daybrush/utils": "^1.4.0",
-        "@egjs/children-differ": "^1.0.1",
-        "@scena/dragscroll": "^1.0.2",
-        "@scena/event-emitter": "^1.0.5",
-        "css-styled": "^1.0.0",
-        "css-to-mat": "^1.0.3",
-        "framework-utils": "^1.1.0",
-        "gesto": "^1.4.0",
-        "keycon": "^1.1.2",
-        "overlap-area": "^1.0.0"
-      }
-    },
     "selfsigned": {
       "version": "1.10.11",
       "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz",
@@ -13494,7 +13380,8 @@
     "string-hash": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
-      "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs="
+      "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=",
+      "dev": true
     },
     "string-width": {
       "version": "2.1.1",
@@ -14713,11 +14600,6 @@
         "@vue/shared": "3.2.11"
       }
     },
-    "vue-class-component": {
-      "version": "7.2.6",
-      "resolved": "https://registry.npmjs.org/vue-class-component/-/vue-class-component-7.2.6.tgz",
-      "integrity": "sha512-+eaQXVrAm/LldalI272PpDe3+i4mPis0ORiMYxF6Ae4hyuCh15W8Idet7wPUEs4N4YptgFHGys4UrgNQOMyO6w=="
-    },
     "vue-cli-plugin-electron-builder": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/vue-cli-plugin-electron-builder/-/vue-cli-plugin-electron-builder-2.1.1.tgz",
@@ -15199,14 +15081,6 @@
         }
       }
     },
-    "vue-property-decorator": {
-      "version": "8.5.1",
-      "resolved": "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-8.5.1.tgz",
-      "integrity": "sha512-O6OUN2OMsYTGPvgFtXeBU3jPnX5ffQ9V4I1WfxFQ6dqz6cOUbR3Usou7kgFpfiXDvV7dJQSFcJ5yUPgOtPPm1Q==",
-      "requires": {
-        "vue-class-component": "^7.1.0"
-      }
-    },
     "vue-router": {
       "version": "4.0.11",
       "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.11.tgz",
@@ -15215,15 +15089,6 @@
         "@vue/devtools-api": "^6.0.0-beta.14"
       }
     },
-    "vue-selecto": {
-      "version": "1.13.0",
-      "resolved": "https://registry.npmjs.org/vue-selecto/-/vue-selecto-1.13.0.tgz",
-      "integrity": "sha512-TklOfIJS+PJj8ocfKMZjchbS1hQOtlaTVzyiTB9ugDKhywOljqn3hv5HSpZhcbrkT3toT4SUdeMNbRlclSfVag==",
-      "requires": {
-        "selecto": "~1.13.0",
-        "vue-property-decorator": "^8.1.0"
-      }
-    },
     "vue-style-loader": {
       "version": "4.1.3",
       "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz",

+ 3 - 3
src/api/index.js

@@ -109,7 +109,7 @@ const getWindWarning = (data,pageIndex,pageSize) => {
 };
 const getHealthDate=(stid,wtid)=>{
     return request({
-        baseURL:'http://18.6.30.53:8070',
+        baseURL:process.env.VUE_APP_WARNING,
         url:`/alarm/statistic?stId=${stid}&wtId=${wtid}`,
         method:"get"
     })
@@ -117,13 +117,13 @@ const getHealthDate=(stid,wtid)=>{
 const getDetial=(data)=>{
     return request({
         baseURL:process.env.VUE_APP_API,
-        url:`/api/windturbine/info/${data}`,
+        url:`/api/windturbine/${data}`,
         method:"get"
     })
 }
 const getWarning=(data,wtid,pt)=>{
     return request({
-        baseURL:'http://18.6.30.53:8070',
+        baseURL:process.env.VUE_APP_WARNING,
         url:`/alarm/list?stId=${data}&wtId=${wtid}&widget=${pt}`,
         method:"get"
     })

二進制
src/assets/img/type/electricityRestrictions.png


+ 175 - 80
src/components/BasicInformationDetail.vue

@@ -5,7 +5,7 @@
         <StandAloneImg :activeIndex="showIndex" @selectSvg="selectSvg" class="sai"></StandAloneImg>
       </el-col>
       <el-col :span="12" class="rights">
-        <div class="marks" v-if="healthInfo.bj">
+        <!-- <div class="marks" v-if="healthInfo.bj">
           <div class="healthInfo">健康指数:</div>
           <div class="healthTable" v-if="healthInfo.other">
             <div class="healthTitle">
@@ -63,14 +63,59 @@
               <div class="contentTimess">{{healthInfo.other.lowCount}}</div>
             </div>
           </div>
+        </div> -->
+        <div class="titleList">
+          <div class="titleItem" @dblclick="dbClicks({code: 'JKZS',name: '健康指数'})">
+            <div class="titleName">健康指数:</div>
+            <div class="titleValues">{{dataValues?.score?.toFixed(0)}}</div>
+          </div>
+          <div class="line" />
+          <div class="titleItem" @dblclick="dbClicks({code: 'ZYZS',name: '资源指数'})">
+            <div class="titleName">资源指数:</div>
+            <div class="titleValues">{{dataValues?.resourceLevel?.toFixed(0)}}</div>
+          </div>
+          <div class="line" />
+          <div class="titleItem">
+            <div class="titleName">运行状态:</div>
+            <div class="titleValues">{{typeList[dataValues?.status]}}</div>
+          </div>
+          <div class="line" />
+          <div class="titleItem">
+            <div class="titleName">故障状态:</div>
+            <img class="titleImg" v-if="!dataValues?.faultStatus" src="../assets/img/controlcenter/daraTrue.png" alt="">
+            <img class="titleImg" v-else src="../assets/img/controlcenter/dataFalse.png" alt="">
+          </div>
+        </div>
+        <div class="records">
+          <el-scrollbar style="height:99%;">
+            <div class="tables">
+                <el-table :data="recordData" class="table" style=" width:100%" height="22vh" :header-cell-style="{
+                    background: 'rgb(30,30,30)',
+                    color: 'rgb(220,220,220)',
+                    padding: '4px',
+                    fontSize: '14px',
+                    'border-bottom': 'solid 1px rgba(77, 77, 77, 1)',
+                  }" :cell-style="{
+                    height: '40px',
+                    background: 'rgb(30,30,30)',
+                    color: 'rgb(220,220,220)',
+                    padding: '3px',
+                    fontSize: '12px',
+                    'border-bottom': '1px solid #000000'
+                  }">
+                    <el-table-column prop="time" label="日期" width="120" align="center">
+                    </el-table-column>
+                    <el-table-column prop="controls" label="控制命令" width="120" align="center">
+                    </el-table-column>
+                    <el-table-column prop="result" label="操作结果" align="center">
+                    </el-table-column>
+                    <el-table-column prop="userName" label="操作人" width="120" align="center">
+                    </el-table-column>
+                </el-table>
+            </div>
+        </el-scrollbar>
         </div>
         <div class="showDate">
-          <!-- <div class="label">
-            <div class="title">标注信息:</div>
-            <el-autocomplete @blur="labelChange(state1)" class="inputs" v-model="state1"
-              :fetch-suggestions="querySearch" placeholder="请输入内容" @select="handleSelect" style="width: 174px">
-            </el-autocomplete>
-          </div> -->
           <div class="label1">
             <div class="title">挂牌信息:</div>
             <!-- <div>挂牌原因</div> -->
@@ -161,15 +206,10 @@
     },
     mounted() {
       this.getLocks()
-      this.getHealthDate()
-      this.getWarning()
-      this.getDetial()
-    },
-    beforeUpdate() {
-      this.getLocks()
-      this.getHealthDate()
+      // this.getHealthDate()
       this.getWarning()
       this.getDetial()
+      this.records()
     },
 
     data() {
@@ -177,10 +217,10 @@
         // warnList: [],
         display: false,
         BasicInfo: {},
-        temperatureInfo: new Array() /* 温度信息 */,
-        pitchInfo: new Array() /* 变桨信息 */,
-        generalInfo: new Array() /* 基本信息 */,
-        powerGridInfo: new Array() /* 电网信息 */,
+        // temperatureInfo: new Array() /* 温度信息 */,
+        // pitchInfo: new Array() /* 变桨信息 */,
+        // generalInfo: new Array() /* 基本信息 */,
+        // powerGridInfo: new Array() /* 电网信息 */,
         restaurants: [],
         lockValues: [],
         windDetails: [],
@@ -209,8 +249,19 @@
           value: '5',
           label: '场外受累天气'
         }],
+        typeList: [
+          '停机',
+          '上电',
+          '待机',
+          '启动',
+          '并网',
+          '故障',
+          '维护',
+          '离线',
+        ],
         selectValue: '7',
         healthInfo: {},
+        dataValues: {},
         warning: ["-"],
         showData: [],
         partsName: '',
@@ -233,6 +284,7 @@
           "风机操作与风机状态不符",
           "需要登录",
         ],
+        recordData: [],
       };
     },
     methods: {
@@ -249,19 +301,16 @@
       },
       getDetial() {
         api.getDetial(this.windturbine.windturbineId).then(msg => {
-          let restaurants = []
+          this.dataValues = msg.data
+          this.$emit('health-click', msg.data);
           if (msg.data.lockType === 9) {
             this.selectValue = this.lockValues?.filter(item => this.windturbine.windturbineId === item.windturbineID)[0]?.value;
           } else {
             this.selectValue = (msg.data.lockType === 0 ? '' : String(msg.data.lockType))
           }
-          this.state1 = msg.data.markValue
-          msg.data.markValues.forEach(item => {
-            let data = {}
-            data.value = item
-            restaurants.push(data)
-          })
-          this.restaurants = restaurants
+          setTimeout(() => {
+            this.getDetial()
+          }, 1000);
         })
       },
       getLocks() {
@@ -271,6 +320,37 @@
           }
         })
       },
+      records() {
+        let date = new Date()
+        api.controlRecord({
+          stationId: this.windturbine.stationId,
+          userName: "",
+          windturbineId: this.windturbine.windturbineId,
+          startTime: dayjs(date.getTime() - 172800000).format('YYYY/MM/DD HH:mm:ss'),
+          endTime: dayjs(date.getTime()).format('YYYY/MM/DD HH:mm:ss'),
+          pageSize: 100,
+          pageIndex: 1,
+        }).then(res => {
+          if (res) {
+            let types = {
+              Start: '启动',
+              Stop: '停止',
+              Reset: '复位',
+              Maintain: '维护',
+              UnMaintain: '取消维护',
+              Lock: '挂牌',
+              UnLock: '取消挂牌',
+
+            }
+            res.data.dataList.forEach(item => {
+              item.time = dayjs(item.time).format('MM-DD HH:mm:ss')
+              item.result = this.controlErorCodes[item.errorCode]
+              item.controls = types[item.controlType]
+            })
+            this.recordData = res.data.dataList
+          }
+        })
+      },
       getWarning() {
         let parts = ''
         switch (this.showIndex) {
@@ -359,8 +439,11 @@
 
       start(bi) {
         this.BasicInfo = bi;
-        this.bindData();
+        // this.bindData();
         this.refreshData();
+        this.getLocks()
+        this.getDetial()
+        this.records()
         this.refreshTimer = setInterval(this.refreshData, 3000);
       },
       end() {
@@ -389,8 +472,6 @@
             }
           });
         });
-        console.log(msg);
-        console.log(this.BasicInfo.BasicInfo);
         switch (this.showIndex) {
           case 1:
             this.showData = this.BasicInfo.BasicInfo.filter(item => item.index === "part6")[0]?.param
@@ -410,19 +491,19 @@
         }
       },
 
-      bindData() {
-        this.BasicInfo.BasicInfo.forEach((element) => {
-          if (element.tag == "基本信息") {
-            this.generalInfo = element.param;
-          } else if (element.tag == "温度信息") {
-            this.temperatureInfo = element.param;
-          } else if (element.tag == "电网信息") {
-            this.powerGridInfo = element.param;
-          } else if (element.tag == "桨叶信息") {
-            this.pitchInfo = element.param;
-          }
-        });
-      },
+      // bindData() {
+      //   this.BasicInfo.BasicInfo.forEach((element) => {
+      //     if (element.tag == "基本信息") {
+      //       this.generalInfo = element.param;
+      //     } else if (element.tag == "温度信息") {
+      //       this.temperatureInfo = element.param;
+      //     } else if (element.tag == "电网信息") {
+      //       this.powerGridInfo = element.param;
+      //     } else if (element.tag == "桨叶信息") {
+      //       this.pitchInfo = element.param;
+      //     }
+      //   });
+      // },
       querySearch(queryString, cb) {
         let restaurants = this.restaurants;
         let results = queryString
@@ -604,7 +685,7 @@
             this.windDetails = res.data
             this.partsName = value.name
             this.display = true;
-          }else{
+          } else {
             this.windDetails = []
           }
         })
@@ -626,7 +707,7 @@
             this.windDetails = res.data
             this.partsName = value.name
             this.display = true
-          }else{
+          } else {
             this.windDetails = []
           }
         })
@@ -692,36 +773,6 @@
     margin-top: 30px;
   }
 
-  /* .worning1{
-    position: absolute;
-    top: 143px;
-    left: 119px;
-    z-index: 999;
-  }
-  .worning2{
-    position: absolute;
-    top: 210px;
-    left: 282px;
-    z-index: 99;
-  }
-  .worning3{
-    position: absolute;
-    top: 219px;
-    left: 348px;
-    z-index: 0;
-  }
-  .worning4{
-    position: absolute;
-    top: 273px;
-    left: 296px;
-    z-index: 0;
-  }
-  .worning5{
-    position: absolute;
-    top: 287px;
-    left: 252px;
-    z-index: 0;
-  } */
   .sai {
     float: left;
     margin-left: 40px;
@@ -731,11 +782,6 @@
     height: 34vh;
   }
 
-  /* .inline-input {
-    .el-scrollbar{
-      max-height: 160px; 
-    }
-  } */
   .rights {
     display: flex;
     flex-direction: column;
@@ -984,8 +1030,57 @@
     justify-content: space-between;
     align-items: center;
   }
-
+  .el-table {
+        background-color: #141414 !important;
+    }
   .el-table::before {
     width: 0;
   }
+
+  .titleList {
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    width: 98%;
+    height: 43px;
+    background-color: #242424;
+    border: 1px solid #3D3D3D;
+    margin-top: 13px;
+  }
+
+  .titleItem {
+    display: flex;
+    flex-direction: row;
+    width: 25%;
+    height: 100%;
+    align-items: center;
+    justify-content: center;
+    font-size: 16px;
+  }
+
+  .titleName {
+    color: #FFFFFF;
+  }
+
+  .titleValues {
+    color: #05BB4C;
+    margin-left: 10px;
+  }
+
+  .line {
+    height: 23px;
+    width: 1px;
+    background-color: #3D3D3D;
+  }
+
+  .titleImg {
+    width: 16px;
+    height: 16px;
+    margin-left: 10px;
+  }
+  .records{
+    width: 98%;
+    height: 22vh;
+    margin-top: 16px;
+  }
 </style>

+ 67 - 26
src/components/WindturbineDetailPages.vue

@@ -4,42 +4,73 @@
 			<div style="margin-top:-10px;color: #FFFFFF;">风机详情</div>
 		</template>
 		<div class="body">
-			<table style="border-bottom: 1px solid #242424;" width="99.8%">
+			<div class="titleList">
+				<div class="chunkdiv">
+					<div class="title">风机号:&emsp;</div>
+					<div>{{ windturbine.windturbineId }}</div>
+				</div>
+				<div class="chunkdiv" @dblclick="dbClicks(baseDate.windSpeed)">
+					<div class="title">{{baseDate.windSpeed.name}}:&emsp;</div>
+					<div>{{baseDate.windSpeed.value}}{{baseDate.windSpeed.unit}}</div>
+				</div>
+				<div class="chunkdiv" @dblclick="dbClicks({code: 'YDPJFS5M',name: '五分钟平均风速'})">
+					<div class="title">五分钟平均风速:&emsp;</div>
+					<div>{{healthInfo?.averageWindSpeed5?.toFixed(2)}}m/s</div>
+				</div>
+				<div class="chunkdiv" @dblclick="dbClicks(theoreticalPower)">
+					<div class="title">理论功率:&emsp;</div>
+					<div>{{healthInfo?.theoreticalPower?.toFixed(2)}}Kw</div>
+				</div>
+				<div class="chunkdiv" @dblclick="dbClicks(baseDate.power)">
+					<div class="title">{{baseDate.power.name}}:&emsp;</div>
+					<div>{{baseDate.power.value}}{{baseDate.power.unit}}</div>
+				</div>
+				<div class="chunkdiv" @dblclick="dbClicks(baseDate.generatorSpeed)">
+					<div class="title">{{baseDate.generatorSpeed.name}}:&emsp;</div>
+					<div>{{baseDate.generatorSpeed.value}}{{baseDate.generatorSpeed.unit}}</div>
+				</div>
+			</div>
+			<!-- <table style="border-bottom: 1px solid #242424;" width="99.8%">
 				<tr>
-					<td>
+					<td style="width: 20%;">
 						<div class="chunkdiv">
 							<div class="title">风机号:&emsp;</div>
 							<div>{{ windturbine.windturbineId }}</div>
 						</div>
 					</td>
-					<td>
-						<div class="chunkdiv">
-							<div class="title">状态:&emsp;</div>
-							<div>{{baseDate.type}}</div>
-						</div>
-					</td>
-					<td>
+					<td style="width: 20%;">
 						<div class="chunkdiv" @dblclick="dbClicks(baseDate.windSpeed)">
 							<div class="title">{{baseDate.windSpeed.name}}:&emsp;</div>
 							<div>{{baseDate.windSpeed.value}}{{baseDate.windSpeed.unit}}</div>
 						</div>
 					</td>
-					<td>
+					<td style="width: 20%;">
+						<div class="chunkdiv" @dblclick="dbClicks({code: 'YDPJFS5M',name: '五分钟平均风速'})">
+							<div class="title">五分钟平均风速:&emsp;</div>
+							<div>{{healthInfo?.averageWindSpeed5?.toFixed(2)}}m/s</div>
+						</div>
+					</td>
+					<td style="width: 20%;">
+						<div class="chunkdiv" @dblclick="dbClicks(theoreticalPower)">
+							<div class="title">理论功率:&emsp;</div>
+							<div>{{healthInfo?.theoreticalPower?.toFixed(2)}}Kw</div>
+						</div>
+					</td>
+					<td style="width: 20%;">
 						<div class="chunkdiv" @dblclick="dbClicks(baseDate.power)">
 							<div class="title">{{baseDate.power.name}}:&emsp;</div>
 							<div>{{baseDate.power.value}}{{baseDate.power.unit}}</div>
 						</div>
 					</td>
-					<td>
+					<td style="width: 20%;">
 						<div class="chunkdiv" @dblclick="dbClicks(baseDate.generatorSpeed)">
 							<div class="title">{{baseDate.generatorSpeed.name}}:&emsp;</div>
 							<div>{{baseDate.generatorSpeed.value}}{{baseDate.generatorSpeed.unit}}</div>
 						</div>
 					</td>
 				</tr>
-			</table>
-			<BasicInformationDetail ref="BasicInfo" :types="types" :windturbine="windturbine"></BasicInformationDetail>
-
+			</table> -->
+			<BasicInformationDetail ref="BasicInfo" :types="types" @health-click="handleHealth" :windturbine="windturbine"></BasicInformationDetail>
 		</div>
 	</el-dialog>
 </template>
@@ -61,11 +92,16 @@
 		data() {
 			return {
 				BasicInfo: {},
+				healthInfo: {},
 				line: "",
 				alarmTime: "",
 				alarmContent: "",
 				alarms: [],
 				count: false,
+				theoreticalPower:{
+					code: "LLGL",
+					name: "理论功率"
+				},
 				typeList: [{
 					type: 0,
 					name: '已经停机',
@@ -125,8 +161,7 @@
 
 		methods: {
 			opened() {
-				if (!this.showSvg) {
-					this.line = "";
+				this.line = "";
 					this.alarmTime = "";
 					this.alarmContent = "";
 					this.BasicInfo = this.UniformCodes.getStationInfos(this.windturbine);
@@ -136,8 +171,6 @@
 					this.initData();
 					this.refreshData();
 					this.refreshTimer = setInterval(this.refreshData, 100)
-					// clearInterval(this.refreshTimer);
-				}
 			},
 			closed() {
 				// todo 切换页面的时候应该让上一个页面停止刷新数据(调用end方法)
@@ -186,14 +219,15 @@
 			dbClicks(value) {
 				this.$refs.BasicInfo.dbClicks(value, this.windturbine.windturbineId)
 			},
+			handleHealth(value){
+				this.healthInfo = value
+			}
 		},
 		watch: {
 			'windturbine': {
 				handler: function (json) {
 					if (json) {
-						if (!this.showSvg) {
-							this.initData()
-						}
+						this.initData()
 					}
 				}
 			}
@@ -216,15 +250,17 @@
 
 	.chunkdiv {
 		display: flex;
-		/* justify-content: center; */
+		flex-direction: row;
+		justify-content: center;
+		align-items: center;
+		width: 17%;
 		background-color: #363636;
 		margin: 1px;
-		padding: 4px 2px;
+		padding: 4px 0px;
 		font-size: 12px;
 		color: #FFFFFF;
 		overflow: hidden;
 		white-space: nowrap;
-		padding-left: 32px;
 	}
 
 	.title {
@@ -237,9 +273,9 @@
 		margin-right: 2px;
 	}
 
-	td {
+	/* td {
 		width: 20%;
-	}
+	} */
 
 	el-tabs {
 		background-color: black;
@@ -248,4 +284,9 @@
 	.svg {
 		height: 67vh;
 	}
+	.titleList{
+		display: flex;
+		flex-direction: row;
+		align-items: center;
+	}
 </style>

文件差異過大導致無法顯示
+ 4 - 9
src/components/basicDataDetails.vue


+ 9 - 5
src/components/check/operationRecords.vue

@@ -1,8 +1,8 @@
 <template>
-    <el-dialog width="50%" @open="getControlRecord()" @closed="closed()" :show-close="false" class="my-info-dialog">
+    <el-dialog width="50%" @open="opened()" @closed="closed()" :show-close="false" class="my-info-dialog">
         <template #title>
             <div class="showTitles">
-                <div class="titles">详情</div>
+                <div class="titles">校验记录详情</div>
             </div>
         </template>
         <div class="bodys">
@@ -39,7 +39,7 @@
                             padding: '3px',
                             fontSize: '12px',
                             'border-bottom': '1px solid #000000'
-                          }" @row-dblclick="itemDblclick">
+                          }">
                             <el-table-column prop="time" label="日期" width="120" align="center">
                             </el-table-column>
                             <el-table-column prop="windturbineId" label="风机号" width="120" align="center">
@@ -50,7 +50,6 @@
                             </el-table-column>
                             <el-table-column prop="userName" label="操作人" width="120" align="center">
                             </el-table-column>
-
                         </el-table>
                     </div>
                 </el-scrollbar>
@@ -59,7 +58,6 @@
                         layout="prev, pager, next" :total="total" @current-change="handleCurrentChange">
                     </el-pagination>
                 </div>
-
             </div>
         </div>
 
@@ -230,6 +228,12 @@
                 this.pageIndex = val
                 this.getControlRecord()
             },
+            opened(){
+                let date = new Date()
+                this.timeValue[0] = date.getTime() - 28800000
+                this.timeValue[1] = date.getTime()
+                this.getControlRecord()
+            },
             getControlRecord() {
                 api.controlRecord({
                     stationId: this.chooseStation.stationId ? this.chooseStation.stationId : "",

+ 29 - 22
src/components/control/areaCard.vue

@@ -30,11 +30,12 @@
             </el-scrollbar>
         </div>
         <div v-if="current==1" class="send" @click="handleSend">发送</div>
-        <div class="success" v-if="showFlag&&current===0">指令发送成功</div>
+        <!-- <div class="success" v-if="showFlag&&current===0">指令发送成功</div> -->
     </div>
-    <WindturbineDetailPages v-model="dialogVisible" @close="handleClose" :windturbine="currentWindturbine"></WindturbineDetailPages>
-        <StationSvgDetailPages v-model="svgVisible"
-		:stationName="stationName" :svgWeb="svgWeb" @close="handleClose"></StationSvgDetailPages>
+    <WindturbineDetailPages v-model="dialogVisible" @close="handleClose" :windturbine="currentWindturbine">
+    </WindturbineDetailPages>
+    <StationSvgDetailPages v-model="svgVisible" :stationName="stationName" :svgWeb="svgWeb" @close="handleClose">
+    </StationSvgDetailPages>
 </template>
 
 <script>
@@ -84,7 +85,7 @@
                 currentWindturbine: {},
                 dialogVisible: false,
                 svgVisible: false,
-                showFlag: false,
+                // showFlag: false,
                 postData: false,
                 svgWeb: '',
                 stationName: '',
@@ -178,6 +179,7 @@
         methods: {
             control(current) {
                 this.current = current === 0 ? current : current === 1 ? current : 1
+                this.suggestion()
             },
             initData: function () {
                 let mb = MessageBridge.getInstance();
@@ -203,7 +205,7 @@
                     this.titleList.forEach(item => {
                         if (item.windturbineId.slice(0, 2) === 'NG' || item.windturbineId.slice(0, 2) === 'MG') {
                             let arr = Object.keys(this.windturbinelist).sort()
-                            this.windturbinelist = (arr.length !== 0 )?this.windturbinelist:this.$store.state.windturbinelist
+                            this.windturbinelist = (arr.length !== 0) ? this.windturbinelist : this.$store.state.windturbinelist
                             switch (item.operateStyle) {
                                 case 'Start':
                                     this.windturbinelist[item.windturbineId].controlType = 1
@@ -225,7 +227,7 @@
                     mss.type = 'send'
                     this.timer = setTimeout(() => {
                         this.sendCommand(mss, dateList, 'automatic')
-                        this.showFlag = false
+                        // this.showFlag = true
                         clearInterval(this.timer);
                     }, 3000);
                 }
@@ -284,28 +286,28 @@
                         let windturbine = this.windturbinelist[arr[1]]
                         switch (arr[0]) {
                             case 'CONTROL_LOCK':
-                                this.sendLock({value: "Lock" }, windturbine);
+                                this.sendLock({ value: "Lock" }, windturbine);
                                 break;
                             case 'CONTROL_LOCK_OVERHAUL':
-                                this.sendLock({value: "CheckLock" }, windturbine);
+                                this.sendLock({ value: "CheckLock" }, windturbine);
                                 break;
                             case 'CONTROL_LOCK_MAINTAIN':
-                                this.sendLock({value: "FaultLock" }, windturbine);
+                                this.sendLock({ value: "FaultLock" }, windturbine);
                                 break;
                             case 'CONTROL_LOCK_LNVOLVED_OVERHAUL':
-                                this.sendLock({value: "StationCheckLock" }, windturbine);
+                                this.sendLock({ value: "StationCheckLock" }, windturbine);
                                 break;
                             case 'CONTROL_LOCK_LNVOLVED_MAINTAIN':
-                                this.sendLock({value: "StationFaulLock" }, windturbine);
+                                this.sendLock({ value: "StationFaulLock" }, windturbine);
                                 break;
                             case 'CONTROL_LOCK_LNVOLVED_PG':
-                                this.sendLock({value: "StationPowerLineLock" }, windturbine);
+                                this.sendLock({ value: "StationPowerLineLock" }, windturbine);
                                 break;
                             case 'CONTROL_LOCK_LNVOLVED_WEATHER':
-                                this.sendLock({value: "StationWeatherLock" }, windturbine);
+                                this.sendLock({ value: "StationWeatherLock" }, windturbine);
                                 break;
                             case 'CONTROL_UNLOCK':
-                                this.sendLock({value: "UnLock" }, windturbine);
+                                this.sendLock({ value: "UnLock" }, windturbine);
                                 break;
                         }
                     } else if (arr[0] === 'CONTROL_SART_RECOMMENDATION') {
@@ -407,37 +409,37 @@
                             {
                                 label: "检修",
                                 click() {
-                                    that.sendLock({value: "CheckLock" });
+                                    that.sendLock({ value: "CheckLock" });
                                 },
                             },
                             {
                                 label: "故障维修",
                                 click() {
-                                    that.sendLock({value: "FaultLock" });
+                                    that.sendLock({ value: "FaultLock" });
                                 },
                             },
                             {
                                 label: "场内受累检修",
                                 click() {
-                                    that.sendLock({value: "StationCheckLock" });
+                                    that.sendLock({ value: "StationCheckLock" });
                                 },
                             },
                             {
                                 label: "场内受累故障",
                                 click() {
-                                    that.sendLock({value: "StationFaulLock" });
+                                    that.sendLock({ value: "StationFaulLock" });
                                 },
                             },
                             {
                                 label: "场外受累电网",
                                 click() {
-                                    that.sendLock({value: "StationPowerLineLock" });
+                                    that.sendLock({ value: "StationPowerLineLock" });
                                 },
                             },
                             {
                                 label: "场外受累天气",
                                 click() {
-                                    that.sendLock({value: "StationWeatherLock" });
+                                    that.sendLock({ value: "StationWeatherLock" });
                                 },
                             },
                         ],
@@ -475,11 +477,13 @@
                             lockType: item.lockType,
                             userName: `system_${bd.LoginUser.name}`,
                             userId: 0,
+                            auto: this.current === 0 ? true : false,
                         };
                         pairs[ct.windturbineId] = ct;
                     })
                     api.windturbControl(pairs).then(res => {
                         if (res) {
+                            // this.showFlag = false
                             this.controlSuccess(res)
                         }
                     })
@@ -652,6 +656,9 @@
                                 if (item.operateStyle === "Start" && val.status === 2) {
                                     this.startList.push(val)
                                 } else if (item.operateStyle === "Stop" && val.status === 4) {
+                                    if(item.reasonType === 'ElectricityRestrictions'){
+                                        val.reasonType = item.reasonType
+                                    } 
                                     this.stopList.push(val)
                                 }
                                 else if (item.operateStyle === "Maintain" && val.status === 2) {
@@ -721,7 +728,7 @@
                         this.titleList.forEach(item => {
                             if (item.windturbineId.slice(0, 2) === 'NG' || item.windturbineId.slice(0, 2) === 'MG') {
                                 let arr = Object.keys(this.windturbinelist).sort()
-                                this.windturbinelist = (arr.length !== 0 )?this.windturbinelist:this.$store.state.windturbinelist
+                                this.windturbinelist = (arr.length !== 0) ? this.windturbinelist : this.$store.state.windturbinelist
                                 switch (item.operateStyle) {
                                     case 'Start':
                                         this.windturbinelist[item.windturbineId].controlType = 1

+ 3 - 0
src/components/matrixBlock.vue

@@ -21,6 +21,9 @@
                     <input class="lock_input" type="text" placeholder="" :value="item.lockValue ===9 ? item.lockValues:options[item.lockValue]" disabled>
                 </el-popover>
             </div>
+            <div class="locks" v-if="item.reasonType">
+                <img class="lock" src="../assets/img/type/electricityRestrictions.png" alt="">
+            </div>
         </div>
     </div>
     <WindturbineDetailPages v-model="dialogVisible" :showSvg="showSvg" @close="handleClose"

+ 14 - 12
src/components/modeControl/modeControl.vue

@@ -39,11 +39,13 @@
             <div class="showData">
                 <div class="dataBox-right" @dblclick="dbClicks(showDate.windEnergyRate,'风能利用率')">
                     <div class="dataTitle">风能利用率</div>
-                    <div class="datas" v-if="showDate.windEnergyRate?.value <= 100">{{showDate.windEnergyRate?.value.toFixed(2)}}%</div>
+                    <div class="datas" v-if="showDate.windEnergyRate?.value <= 100">
+                        {{showDate.windEnergyRate?.value.toFixed(2)}}%</div>
                 </div>
                 <div class="dataBox-right" @dblclick="dbClicks(showDate.curveFollowingRate,'曲线跟随率')">
                     <div class="dataTitle">曲线跟随率</div>
-                    <div class="datas" v-if="showDate.curveFollowingRate?.value <= 100">{{showDate.curveFollowingRate?.value.toFixed(2)}}%</div>
+                    <div class="datas" v-if="showDate.curveFollowingRate?.value <= 100">
+                        {{showDate.curveFollowingRate?.value.toFixed(2)}}%</div>
                 </div>
             </div>
         </div>
@@ -258,11 +260,11 @@
             },
             ChangeBar(values) {
                 let bd = BackgroundData.getInstance();
-                let mb = MessageBridge.getInstance();
-                let vss = { key: "/topic/voice-control" };
-                let popup = { key: "/topic/fault-popup" };
-                mb.unregister(popup);
-                mb.unregister(vss);
+                // let mb = MessageBridge.getInstance();
+                // let vss = { key: "/topic/voice-control" };
+                // let popup = { key: "/topic/fault-popup" };
+                // mb.unregister(popup);
+                // mb.unregister(vss);
                 this.$router.push(`/?current=${values}`)
                 if (!bd.LoginUser) {
                     this.$notify({
@@ -318,8 +320,8 @@
                         this.partsName = partsName
                         this.display = true;
                         this.modelDetails = res.data
-                    }else{
-                       this.modelDetails = []
+                    } else {
+                        this.modelDetails = []
                     }
                 })
             },
@@ -337,12 +339,12 @@
                         this.partsName = partsName
                         this.display = true;
                         this.modelDetails = res.data
-                    }else{
-                       this.modelDetails = []
+                    } else {
+                        this.modelDetails = []
                     }
                 })
             },
-            search(values,interval) {
+            search(values, interval) {
                 this.interval = interval
                 this.dbClicks(this.modelData, this.partsName, values)
             },

+ 1 - 1
src/components/problem/areaCard.vue

@@ -289,7 +289,7 @@
                         mss += `${val.windturbineId}  ${this.controlErorCodes[val.errorCode]}\n`;
                     }
                 }
-                let tp = iserror ? "warning" : "success";
+                let tp = iserror ? "success": "warning";
                 let dt = iserror ? 0 : 4500;
                 if (!iserror) {
                     mss = "控制成功";

+ 0 - 11
src/components/stationSvgDetailPages.vue

@@ -91,17 +91,6 @@
 				this.$refs.BasicInfo.dbClicks(value, this.windturbine.windturbineId)
 			},
 		},
-		// watch: {
-		// 	'windturbine': {
-		// 		handler: function (json) {
-		// 			if (json) {
-		// 				if (!this.showSvg) {
-		// 					this.initData()
-		// 				}
-		// 			}
-		// 		}
-		// 	}
-		// }
 	};
 </script>
 <style scoped>

+ 240 - 0
src/utils/UniformCodes.js

@@ -425,6 +425,30 @@ export default class UniformCodes {
                 "unit": "rad/s"
               },
             ]
+          },
+          {
+            "index": "part11",
+            "tag": "健康指数",
+            "param": [
+              {
+                "name": "健康指数",
+                "num": "",
+                "code": "JKZS",
+                "unit": ""
+              },
+            ]
+          },
+          {
+            "index": "part12",
+            "tag": "资源指数",
+            "param": [
+              {
+                "name": "资源指数",
+                "num": "",
+                "code": "ZYZS",
+                "unit": ""
+              },
+            ]
           }
         ]
       }
@@ -821,6 +845,30 @@ export default class UniformCodes {
                 "unit": "rad/s"
               }
             ]
+          },
+          {
+            "index": "part11",
+            "tag": "健康指数",
+            "param": [
+              {
+                "name": "健康指数",
+                "num": "",
+                "code": "JKZS",
+                "unit": ""
+              },
+            ]
+          },
+          {
+            "index": "part12",
+            "tag": "资源指数",
+            "param": [
+              {
+                "name": "资源指数",
+                "num": "",
+                "code": "ZYZS",
+                "unit": ""
+              },
+            ]
           }
         ]
       }
@@ -1215,6 +1263,30 @@ export default class UniformCodes {
               },
             ]
           },
+          {
+            "index": "part11",
+            "tag": "健康指数",
+            "param": [
+              {
+                "name": "健康指数",
+                "num": "",
+                "code": "JKZS",
+                "unit": ""
+              },
+            ]
+          },
+          {
+            "index": "part12",
+            "tag": "资源指数",
+            "param": [
+              {
+                "name": "资源指数",
+                "num": "",
+                "code": "ZYZS",
+                "unit": ""
+              },
+            ]
+          }
         ]
       }
 
@@ -1643,6 +1715,30 @@ export default class UniformCodes {
                 "unit": "rad/s"
               },
             ]
+          },
+          {
+            "index": "part11",
+            "tag": "健康指数",
+            "param": [
+              {
+                "name": "健康指数",
+                "num": "",
+                "code": "JKZS",
+                "unit": ""
+              },
+            ]
+          },
+          {
+            "index": "part12",
+            "tag": "资源指数",
+            "param": [
+              {
+                "name": "资源指数",
+                "num": "",
+                "code": "ZYZS",
+                "unit": ""
+              },
+            ]
           }
         ]
       }
@@ -2091,6 +2187,30 @@ export default class UniformCodes {
                 "unit": "s"
               },
             ]
+          },
+          {
+            "index": "part11",
+            "tag": "健康指数",
+            "param": [
+              {
+                "name": "健康指数",
+                "num": "",
+                "code": "JKZS",
+                "unit": ""
+              },
+            ]
+          },
+          {
+            "index": "part12",
+            "tag": "资源指数",
+            "param": [
+              {
+                "name": "资源指数",
+                "num": "",
+                "code": "ZYZS",
+                "unit": ""
+              },
+            ]
           }
         ]
       }
@@ -2424,6 +2544,30 @@ export default class UniformCodes {
                 "unit": ""
               },
             ]
+          },
+          {
+            "index": "part11",
+            "tag": "健康指数",
+            "param": [
+              {
+                "name": "健康指数",
+                "num": "",
+                "code": "JKZS",
+                "unit": ""
+              },
+            ]
+          },
+          {
+            "index": "part12",
+            "tag": "资源指数",
+            "param": [
+              {
+                "name": "资源指数",
+                "num": "",
+                "code": "ZYZS",
+                "unit": ""
+              },
+            ]
           }
         ]
       },
@@ -2672,6 +2816,30 @@ export default class UniformCodes {
             "param": [
               
             ]
+          },
+          {
+            "index": "part11",
+            "tag": "健康指数",
+            "param": [
+              {
+                "name": "健康指数",
+                "num": "",
+                "code": "JKZS",
+                "unit": ""
+              },
+            ]
+          },
+          {
+            "index": "part12",
+            "tag": "资源指数",
+            "param": [
+              {
+                "name": "资源指数",
+                "num": "",
+                "code": "ZYZS",
+                "unit": ""
+              },
+            ]
           }
         ]
       }
@@ -3102,6 +3270,30 @@ export default class UniformCodes {
                 "unit": "rad/s"
               },
             ]
+          },
+          {
+            "index": "part11",
+            "tag": "健康指数",
+            "param": [
+              {
+                "name": "健康指数",
+                "num": "",
+                "code": "JKZS",
+                "unit": ""
+              },
+            ]
+          },
+          {
+            "index": "part12",
+            "tag": "资源指数",
+            "param": [
+              {
+                "name": "资源指数",
+                "num": "",
+                "code": "ZYZS",
+                "unit": ""
+              },
+            ]
           }
         ]
       }
@@ -3494,6 +3686,30 @@ export default class UniformCodes {
                 "unit": "rad/s"
               },
             ]
+          },
+          {
+            "index": "part11",
+            "tag": "健康指数",
+            "param": [
+              {
+                "name": "健康指数",
+                "num": "",
+                "code": "JKZS",
+                "unit": ""
+              },
+            ]
+          },
+          {
+            "index": "part12",
+            "tag": "资源指数",
+            "param": [
+              {
+                "name": "资源指数",
+                "num": "",
+                "code": "ZYZS",
+                "unit": ""
+              },
+            ]
           }
         ]
       }
@@ -3941,6 +4157,30 @@ export default class UniformCodes {
                 "unit": "s"
               },
             ]
+          },
+          {
+            "index": "part11",
+            "tag": "健康指数",
+            "param": [
+              {
+                "name": "健康指数",
+                "num": "",
+                "code": "JKZS",
+                "unit": ""
+              },
+            ]
+          },
+          {
+            "index": "part12",
+            "tag": "资源指数",
+            "param": [
+              {
+                "name": "资源指数",
+                "num": "",
+                "code": "ZYZS",
+                "unit": ""
+              },
+            ]
           }
         ]
       }

+ 1 - 1
src/views/TitleBar.vue

@@ -43,7 +43,7 @@
               <li>
                 <!-- <TitleBarCard title="装机容量" unit="MW" :value="installedCapacity"></TitleBarCard> -->
                 <span class="showTitle">日发电量</span>
-                <span class="showvalue">{{titleInfo.dailyPowerGeneration?.value.toFixed(2)}}</span>
+                <span class="showvalue">{{titleInfo.dailyPowerGeneration?.value?.toFixed(2)}}</span>
                 <span class="showTitle">万kW/h</span>
               </li>
             </ul>