Browse Source

Merge branch 'master' of http://49.4.49.126:3000/GYEE_R.D/neic

xushili 3 years atrás
parent
commit
555584dea9
4 changed files with 228 additions and 101 deletions
  1. 95 86
      package-lock.json
  2. 1 0
      package.json
  3. 63 0
      src/assets/script/BackgroundData.js
  4. 69 15
      src/components/TitleBar.vue

+ 95 - 86
package-lock.json

@@ -3272,63 +3272,6 @@
           "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
           "dev": true
         },
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995625950&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
-          "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.1",
-          "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.1.tgz?cache=0&sync_timestamp=1618995297666&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.1.tgz",
-          "integrity": "sha1-yAs/qyi/Y3HmhjMl7uZ+YYt35q0=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
-          "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
-          "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
-          "dev": true,
-          "optional": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz",
-          "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
-          "dev": true,
-          "optional": true
-        },
-        "loader-utils": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz",
-          "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^2.1.2"
-          }
-        },
         "ssri": {
           "version": "8.0.1",
           "resolved": "https://registry.nlark.com/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1621364735533&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-8.0.1.tgz",
@@ -3337,28 +3280,6 @@
           "requires": {
             "minipass": "^3.1.1"
           }
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
-          "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        },
-        "vue-loader-v16": {
-          "version": "npm:vue-loader@16.2.0",
-          "resolved": "https://registry.nlark.com/vue-loader/download/vue-loader-16.2.0.tgz",
-          "integrity": "sha1-BGpTMI3Ufljv4g3ewe3sAnzjtG4=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "chalk": "^4.1.0",
-            "hash-sum": "^2.0.0",
-            "loader-utils": "^2.0.0"
-          }
         }
       }
     },
@@ -4339,6 +4260,14 @@
       "integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=",
       "dev": true
     },
+    "axios": {
+      "version": "0.21.1",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
+      "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
+      "requires": {
+        "follow-redirects": "^1.10.0"
+      }
+    },
     "babel-eslint": {
       "version": "10.1.0",
       "resolved": "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.1.0.tgz",
@@ -7257,7 +7186,7 @@
     },
     "electron": {
       "version": "12.0.11",
-      "resolved": "https://registry.nlark.com/electron/download/electron-12.0.11.tgz",
+      "resolved": "https://registry.nlark.com/electron/download/electron-12.0.11.tgz?cache=0&sync_timestamp=1623341150449&other_urls=https%3A%2F%2Fregistry.nlark.com%2Felectron%2Fdownload%2Felectron-12.0.11.tgz",
       "integrity": "sha1-VV3Bz2Y+Mg8vLL34kxk1Kwj8WfI=",
       "dev": true,
       "requires": {
@@ -9356,8 +9285,7 @@
     "follow-redirects": {
       "version": "1.14.1",
       "resolved": "https://registry.nlark.com/follow-redirects/download/follow-redirects-1.14.1.tgz",
-      "integrity": "sha1-2RFN7Qoc/dM04WTmZirQK/2R/0M=",
-      "dev": true
+      "integrity": "sha1-2RFN7Qoc/dM04WTmZirQK/2R/0M="
     },
     "for-in": {
       "version": "1.0.2",
@@ -13483,7 +13411,7 @@
     },
     "postcss": {
       "version": "7.0.36",
-      "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.36.tgz?cache=0&sync_timestamp=1623677287157&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss%2Fdownload%2Fpostcss-7.0.36.tgz",
+      "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.36.tgz?cache=0&sync_timestamp=1623380305104&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss%2Fdownload%2Fpostcss-7.0.36.tgz",
       "integrity": "sha1-BW+M/6k5ZiqPWQWVDAfVKFZE38s=",
       "dev": true,
       "requires": {
@@ -13597,7 +13525,7 @@
     },
     "postcss-load-config": {
       "version": "2.1.2",
-      "resolved": "https://registry.nlark.com/postcss-load-config/download/postcss-load-config-2.1.2.tgz",
+      "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.2.tgz?cache=0&sync_timestamp=1612743037145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-load-config%2Fdownload%2Fpostcss-load-config-2.1.2.tgz",
       "integrity": "sha1-xepQTyxK7zPHNZo03jVzdyrXUCo=",
       "dev": true,
       "requires": {
@@ -14716,7 +14644,7 @@
     },
     "regexpp": {
       "version": "2.0.1",
-      "resolved": "https://registry.nlark.com/regexpp/download/regexpp-2.0.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz",
       "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=",
       "dev": true
     },
@@ -17720,6 +17648,87 @@
         }
       }
     },
+    "vue-loader-v16": {
+      "version": "npm:vue-loader@16.2.0",
+      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.2.0.tgz",
+      "integrity": "sha512-TitGhqSQ61RJljMmhIGvfWzJ2zk9m1Qug049Ugml6QP3t0e95o0XJjk29roNEiPKJQBEi8Ord5hFuSuELzSp8Q==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "chalk": "^4.1.0",
+        "hash-sum": "^2.0.0",
+        "loader-utils": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
+          "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+          "dev": true,
+          "optional": true
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true,
+          "optional": true
+        },
+        "loader-utils": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
+          "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^2.1.2"
+          }
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        }
+      }
+    },
     "vue-style-loader": {
       "version": "4.1.3",
       "resolved": "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-4.1.3.tgz",
@@ -17895,7 +17904,7 @@
     },
     "webpack": {
       "version": "4.46.0",
-      "resolved": "https://registry.nlark.com/webpack/download/webpack-4.46.0.tgz",
+      "resolved": "https://registry.nlark.com/webpack/download/webpack-4.46.0.tgz?cache=0&sync_timestamp=1622151377755&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack%2Fdownload%2Fwebpack-4.46.0.tgz",
       "integrity": "sha1-v5tEBOogoHNgXgoBHRiNd8tq1UI=",
       "dev": true,
       "requires": {

+ 1 - 0
package.json

@@ -18,6 +18,7 @@
   },
   "main": "background.js",
   "dependencies": {
+    "axios": "^0.21.1",
     "core-js": "^3.6.5",
     "electron-squirrel-startup": "^1.0.0",
     "element-plus": "^1.0.2-beta.48",

+ 63 - 0
src/assets/script/BackgroundData.js

@@ -0,0 +1,63 @@
+import axios from 'axios';
+
+export default class BackgroundData {
+    TopPoint = [
+        {
+            pointName: "TotalPower",// 实时总功率
+            pointTag: "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0135",
+            value: 0
+        }, {
+            pointName: "DailyPowerGeneration",// 日发电量
+            pointTag: "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0088",
+            value: 0
+        }, {
+            pointName: "GridPower",// 上网电量
+            pointTag: "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0136",
+            value: 0
+        }, {
+            pointName: "MonthlyPowerGeneration",// 月发电量
+            pointTag: "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0146",
+            value: 0
+        }, {
+            pointName: "AnnualPowerGeneration",// 年发电量
+            pointTag: "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0037",
+            value: 0
+        },
+    ];
+    constructor() {
+        this.refreshData = this.refreshData.bind(this);
+        this.onTPMessage = this.onTPMessage.bind(this);
+
+        this.refreshTimer = setInterval(this.refreshData, 3000);
+    }
+
+    /* 数据刷新 */
+    refreshData() {
+        // http://192.168.10.18:8011/ts
+        var val = '';
+        for (var v in this.TopPoint) {
+            val += this.TopPoint[v].pointTag + ',';
+        }
+        axios.get("http://192.168.10.18:8011/ts/latest" + "?keys=" + val)
+            .then(this.onTPMessage)
+            .catch(err =>
+                console.log(err)
+            );
+    }
+
+    onTPMessage(msg) {
+        if (!msg.data) return;
+        for (var v in this.TopPoint) {
+            var val = this.TopPoint[v];
+            val.value = msg.data[val.pointTag].doubleValue;
+        }
+    }
+
+    /* 单例 */
+    static getInstance() {
+        if (!BackgroundData.instance) {
+            BackgroundData.instance = new BackgroundData();
+        }
+        return BackgroundData.instance;
+    }
+}

+ 69 - 15
src/components/TitleBar.vue

@@ -17,7 +17,6 @@
             width="21%"
             :before-close="handleClose"
             :show-close="false"
-            
           >
             <el-form :model="form">
               <el-form-item label="" :label-width="formLabelWidth">
@@ -41,7 +40,11 @@
                   show-password
                 ></el-input>
               </el-form-item>
-              <el-form-item label="验证码:" :label-width="formLabelWidth" style="display:none;">
+              <el-form-item
+                label="验证码:"
+                :label-width="formLabelWidth"
+                style="display: none"
+              >
                 <el-input
                   v-model="form.name"
                   autocomplete="off"
@@ -57,7 +60,14 @@
             </el-form>
             <template #footer>
               <span class="dialog-footer">
-                <el-button @click="dialogVisible = false" style="background-color: rgb(100,100,100);color: rgb(220, 220, 220);">取 消</el-button>
+                <el-button
+                  @click="dialogVisible = false"
+                  style="
+                    background-color: rgb(100, 100, 100);
+                    color: rgb(220, 220, 220);
+                  "
+                  >取 消</el-button
+                >
                 <el-button type="primary" @click="dialogVisible = false"
                   >登 录</el-button
                 >
@@ -73,7 +83,7 @@
               <TitleBarCard
                 title="装机容量"
                 unit="MW"
-                value="734"
+                :value="installedCapacity"
               ></TitleBarCard>
             </li>
           </ul>
@@ -86,7 +96,7 @@
               <TitleBarCard
                 title="实时功率"
                 unit="MW"
-                value="34.01"
+                :value="totalPower"
               ></TitleBarCard>
             </li>
           </ul>
@@ -99,7 +109,7 @@
               <TitleBarCard
                 title="日发电量"
                 unit="kWh"
-                value="33,96"
+                :value="dailyPowerGeneration"
               ></TitleBarCard>
             </li>
           </ul>
@@ -112,7 +122,7 @@
               <TitleBarCard
                 title="上网电量"
                 unit="kWh"
-                value="38.96"
+                :value="gridPower"
               ></TitleBarCard>
             </li>
           </ul>
@@ -125,7 +135,7 @@
               <TitleBarCard
                 title="月发电量"
                 unit="kWh"
-                value="6197.87"
+                :value="monthlyPowerGeneration"
               ></TitleBarCard>
             </li>
           </ul>
@@ -138,7 +148,7 @@
               <TitleBarCard
                 title="年发电量"
                 unit="kWh"
-                value="69843.02"
+                :value="annualPowerGeneration"
               ></TitleBarCard>
             </li>
           </ul>
@@ -151,7 +161,7 @@
               <TitleBarCard
                 title="月利用小时"
                 unit="小时"
-                value="84.44"
+                :value="monthlyUtilizationHours"
               ></TitleBarCard>
             </li>
           </ul>
@@ -164,7 +174,7 @@
               <TitleBarCard
                 title="年利用小时"
                 unit="小时"
-                value="951.54"
+                :value="annualUtilizationHours"
               ></TitleBarCard>
             </li>
           </ul>
@@ -206,6 +216,7 @@
 
 <script>
 import TitleBarCard from "./area/mainwindow/TitleBarCard.vue";
+import BackgroundData from "../assets/script/BackgroundData";
 
 export default {
   name: "TitleBar",
@@ -226,23 +237,66 @@ export default {
         desc: "",
       },
       formLabelWidth: "120px",
+      totalPower: 0, // 实时功率
+      dailyPowerGeneration: 0, // 日发电量
+      gridPower: 0, // 上网电量
+      monthlyPowerGeneration: 0, // 月发电量
+      annualPowerGeneration: 0, // 年发电量
+      installedCapacity: 734, // 装机容量
     };
   },
+  computed: {
+    monthlyUtilizationHours: function () {
+      // 月利用小时数
+      return (
+        (this.monthlyPowerGeneration * 10) /
+        this.installedCapacity
+      ).toFixed(2);
+    },
+    annualUtilizationHours: function () {
+      // 年利用小时数
+      return (
+        (this.annualPowerGeneration * 10) /
+        this.installedCapacity
+      ).toFixed(2);
+    },
+  },
+  created() {
+    this.refreshTimer = setInterval(this.refreshData, 2000);
+  },
   methods: {
     handleClose(done) {
       done();
     },
     mainClose() {
-      const {remote} = require('electron');
+      const { remote } = require("electron");
       remote.getCurrentWindow().destroy();
-    }
-  }
+    },
+    refreshData() {
+      // todo 计算发电量的时候没有考虑光伏的,后续完善
+      var bd = BackgroundData.getInstance();
+      var val = bd.TopPoint;
+      for (var v in val) {
+        var pt = val[v];
+        if (pt.pointName == "TotalPower") {
+          this.totalPower = pt.value.toFixed(2);
+        } else if (pt.pointName == "DailyPowerGeneration") {
+          this.dailyPowerGeneration = pt.value.toFixed(2);
+        } else if (pt.pointName == "GridPower") {
+          this.gridPower = pt.value.toFixed(2);
+        } else if (pt.pointName == "MonthlyPowerGeneration") {
+          this.monthlyPowerGeneration = pt.value.toFixed(2);
+        } else if (pt.pointName == "AnnualPowerGeneration") {
+          this.annualPowerGeneration = pt.value.toFixed(2);
+        }
+      }
+    },
+  },
 };
 </script>
 
 
 <style scoped>
-
 .title-bar {
   height: 6vh;
   background-color: #000000;