Просмотр исходного кода

Merge branch 'master' of http://49.4.49.126:3000/shilin/sisweb

yangxiao 3 лет назад
Родитель
Сommit
89546e185a
65 измененных файлов с 830 добавлено и 534 удалено
  1. 194 81
      package-lock.json
  2. 3 1
      package.json
  3. 61 6
      src/App.vue
  4. 1 0
      src/api/axios.js
  5. 29 0
      src/assets/css/base.scss
  6. 1 1
      src/assets/css/benchmarkingSys/internationalBenchmark.scss
  7. 1 1
      src/assets/css/benchmarkingSys/projectBenchmark.scss
  8. 1 1
      src/assets/css/benchmarkingSys/projectBenchmarkParticulars.scss
  9. 1 1
      src/assets/css/benchmarkingSys/propertBenchmark.scss
  10. 1 1
      src/assets/css/benchmarkingSys/propertBenchmarkParticulars.scss
  11. 1 1
      src/assets/css/benchmarkingSys/yardBenchmarkParticulars.scss
  12. 1 1
      src/assets/css/healthManagement/healthAssessment.scss
  13. 27 23
      src/assets/css/login.scss
  14. 1 1
      src/assets/css/lossBenchmarking/InterValueLineTable.scss
  15. 1 1
      src/assets/css/lossBenchmarking/fiveLossLineTable.scss
  16. 1 1
      src/assets/css/lossBenchmarking/fiveLossRates.scss
  17. 1 1
      src/assets/css/lossBenchmarking/fiveLossRatesHistogramChart.scss
  18. 1 1
      src/assets/css/lossBenchmarking/fiveLossRatesPieChart.scss
  19. 1 1
      src/assets/css/lossBenchmarking/interValue.scss
  20. 1 1
      src/assets/css/lossBenchmarking/lossRateAbandoned.scss
  21. 1 1
      src/assets/css/lossBenchmarking/lossRateAffected.scss
  22. 1 1
      src/assets/css/lossBenchmarking/lossRateFailure.scss
  23. 1 1
      src/assets/css/lossBenchmarking/lossRateMaintenance.scss
  24. 1 1
      src/assets/css/lossBenchmarking/lossRatePerformance.scss
  25. 0 24
      src/assets/css/main.scss
  26. 1 1
      src/assets/css/performanceAnalysis/cutAndSpeed.scss
  27. 1 1
      src/assets/css/performanceAnalysis/cutAndSpeedHistory.scss
  28. 1 1
      src/assets/css/performanceAnalysis/gradeEvaluation.scss
  29. 1 1
      src/assets/css/performanceAnalysis/plannedGeneration.scss
  30. 1 2
      src/assets/css/performanceAnalysis/rankingCallThePolice.scss
  31. 1 1
      src/assets/css/performanceAnalysis/rankingCurveDeviationRate.scss
  32. 1 1
      src/assets/css/performanceAnalysis/rankingLoadRate.scss
  33. 1 1
      src/assets/css/performanceAnalysis/rankingUtilization.scss
  34. 12 12
      src/assets/js/benchmarkingSys/performanceList.js
  35. 1 0
      src/assets/js/login.js
  36. 0 40
      src/assets/js/main.js
  37. 3 0
      src/assets/js/performanceAnalysis/cutAndSpeedHistory.js
  38. 5 5
      src/assets/js/performanceAnalysis/gradeEvaluation.js
  39. 1 0
      src/assets/js/performanceAnalysis/plannedGeneration.js
  40. 1 0
      src/components/common/menu.vue
  41. 0 21
      src/jsonData/menu.json
  42. 79 0
      src/layout/aside.vue
  43. 101 0
      src/layout/header.vue
  44. 10 0
      src/layout/main.vue
  45. 28 0
      src/main.js
  46. 22 15
      src/router/index.js
  47. 2 0
      src/store/getters.js
  48. 8 0
      src/store/index.js
  49. 2 2
      src/store/modules/user.js
  50. 7 0
      src/tools/base.js
  51. 0 1
      src/tools/echartsToolLzx.js
  52. 44 0
      src/utils/excelHelper.js
  53. 0 0
      src/utils/fbutton.vue
  54. 1 1
      src/views/benchmarkingSys/performanceList.vue
  55. 8 10
      src/views/benchmarkingSys/singleTransverseBenchmark.vue
  56. 8 8
      src/views/headPortrait.vue
  57. 24 12
      src/views/healthManagement/healthManagement.vue
  58. 0 35
      src/views/main.vue
  59. 4 10
      src/views/normRanking/grossgenerationRank.vue
  60. 2 0
      src/views/performanceAnalysis/cutAndSpeed.vue
  61. 20 37
      src/views/performanceAnalysis/cutAndSpeedHistory.vue
  62. 13 63
      src/views/performanceAnalysis/gradeEvaluation.vue
  63. 16 30
      src/views/performanceAnalysis/plannedGeneration.vue
  64. 64 70
      src/views/singlePerformanceAnalysis/powerandWindspeedChart.vue
  65. 3 0
      vue.config.js

+ 194 - 81
package-lock.json

@@ -1710,16 +1710,6 @@
           "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
           "dev": true
         },
-        "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"
-          }
-        },
         "cacache": {
           "version": "13.0.1",
           "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1616431251047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz",
@@ -1746,53 +1736,6 @@
             "unique-filename": "^1.1.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"
-          }
-        },
         "source-map": {
           "version": "0.6.1",
           "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
@@ -1809,16 +1752,6 @@
             "minipass": "^3.1.1"
           }
         },
-        "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"
-          }
-        },
         "terser-webpack-plugin": {
           "version": "2.3.8",
           "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.8.tgz",
@@ -1835,18 +1768,6 @@
             "terser": "^4.6.12",
             "webpack-sources": "^1.4.3"
           }
-        },
-        "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"
-          }
         }
       }
     },
@@ -2144,6 +2065,15 @@
       "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=",
       "dev": true
     },
+    "adler-32": {
+      "version": "1.2.0",
+      "resolved": "https://registry.nlark.com/adler-32/download/adler-32-1.2.0.tgz",
+      "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=",
+      "requires": {
+        "exit-on-epipe": "~1.0.1",
+        "printj": "~1.1.0"
+      }
+    },
     "aggregate-error": {
       "version": "3.1.0",
       "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz",
@@ -3624,6 +3554,16 @@
         "url-to-options": "^1.0.1"
       }
     },
+    "cfb": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/cfb/download/cfb-1.2.0.tgz",
+      "integrity": "sha1-ak0IcrUl7WA0nh71H7Swv3Psqag=",
+      "requires": {
+        "adler-32": "~1.2.0",
+        "crc-32": "~1.2.0",
+        "printj": "~1.1.2"
+      }
+    },
     "chalk": {
       "version": "2.4.2",
       "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz",
@@ -3964,6 +3904,22 @@
         "q": "^1.1.2"
       }
     },
+    "codepage": {
+      "version": "1.14.0",
+      "resolved": "https://registry.npm.taobao.org/codepage/download/codepage-1.14.0.tgz",
+      "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=",
+      "requires": {
+        "commander": "~2.14.1",
+        "exit-on-epipe": "~1.0.1"
+      },
+      "dependencies": {
+        "commander": {
+          "version": "2.14.1",
+          "resolved": "https://registry.nlark.com/commander/download/commander-2.14.1.tgz?cache=0&sync_timestamp=1621726670324&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.14.1.tgz",
+          "integrity": "sha1-IjUSPjevjKPGXfRbAm29NXsBuao="
+        }
+      }
+    },
     "collection-visit": {
       "version": "1.0.0",
       "resolved": "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz",
@@ -4416,6 +4372,15 @@
         }
       }
     },
+    "crc-32": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/crc-32/download/crc-32-1.2.0.tgz",
+      "integrity": "sha1-yy224puIUI4y2d0OwWk+e0Ghggg=",
+      "requires": {
+        "exit-on-epipe": "~1.0.1",
+        "printj": "~1.1.0"
+      }
+    },
     "create-ecdh": {
       "version": "4.0.4",
       "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.4.tgz?cache=0&sync_timestamp=1596557456448&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcreate-ecdh%2Fdownload%2Fcreate-ecdh-4.0.4.tgz",
@@ -5889,6 +5854,11 @@
         }
       }
     },
+    "exit-on-epipe": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/exit-on-epipe/download/exit-on-epipe-1.0.1.tgz",
+      "integrity": "sha1-C92S6H1ShdJn2qgXHQ6wYVlolpI="
+    },
     "expand-brackets": {
       "version": "2.1.4",
       "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz",
@@ -6311,6 +6281,11 @@
         "schema-utils": "^2.5.0"
       }
     },
+    "file-saver": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npm.taobao.org/file-saver/download/file-saver-2.0.5.tgz?cache=0&sync_timestamp=1605790980036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-saver%2Fdownload%2Ffile-saver-2.0.5.tgz",
+      "integrity": "sha1-1hz+LOBZ9BTYmendbUEH7iVnDDg="
+    },
     "file-type": {
       "version": "12.4.2",
       "resolved": "https://registry.nlark.com/file-type/download/file-type-12.4.2.tgz",
@@ -6478,6 +6453,11 @@
       "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
       "dev": true
     },
+    "frac": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npm.taobao.org/frac/download/frac-1.1.2.tgz",
+      "integrity": "sha1-PXT39keMiKG1AgMG10fcYxPHTQs="
+    },
     "fragment-cache": {
       "version": "0.2.1",
       "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz",
@@ -10954,6 +10934,11 @@
         "renderkid": "^2.0.4"
       }
     },
+    "printj": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npm.taobao.org/printj/download/printj-1.1.2.tgz",
+      "integrity": "sha1-2Q3rKXWoufYA+zoclOP0xTx4oiI="
+    },
     "process": {
       "version": "0.11.10",
       "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz",
@@ -12378,6 +12363,14 @@
         }
       }
     },
+    "ssf": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npm.taobao.org/ssf/download/ssf-0.11.2.tgz",
+      "integrity": "sha1-C5lpiyN1SNCI/EPN8rcMGnUSwGw=",
+      "requires": {
+        "frac": "~1.1.2"
+      }
+    },
     "sshpk": {
       "version": "1.16.1",
       "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
@@ -13606,8 +13599,8 @@
     },
     "vue-json-excel": {
       "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/vue-json-excel/-/vue-json-excel-0.3.0.tgz",
-      "integrity": "sha512-FrSh0tVUpw4K+ilLO8g0Qp52eFJw/hkk3rZPTEKo9qVkJgVfQtZwzj3UWc5ACYxA3jLk9HtjK+f9xKHCN4Kgag==",
+      "resolved": "https://registry.npm.taobao.org/vue-json-excel/download/vue-json-excel-0.3.0.tgz",
+      "integrity": "sha1-csvkoARyAlntxlVVo/ByGYz3kUY=",
       "requires": {
         "downloadjs": "^1.4.7"
       }
@@ -13633,6 +13626,87 @@
         }
       }
     },
+    "vue-loader-v16": {
+      "version": "npm:vue-loader@16.2.0",
+      "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-16.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-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"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-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=1618995384030&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"
+          }
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1618561008172&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+          "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        }
+      }
+    },
     "vue-pdf": {
       "version": "4.2.0",
       "resolved": "https://registry.npm.taobao.org/vue-pdf/download/vue-pdf-4.2.0.tgz",
@@ -14409,6 +14483,16 @@
       "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
       "dev": true
     },
+    "wmf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npm.taobao.org/wmf/download/wmf-1.0.2.tgz",
+      "integrity": "sha1-fRnWIQcaCMK9xrfmiKnENSmMwto="
+    },
+    "word": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npm.taobao.org/word/download/word-0.3.0.tgz",
+      "integrity": "sha1-hUIVfk+OhJ9KNjooiZLUdhLbmWE="
+    },
     "worker-farm": {
       "version": "1.7.0",
       "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz",
@@ -14505,6 +14589,35 @@
         "async-limiter": "~1.0.0"
       }
     },
+    "xlsx": {
+      "version": "0.17.0",
+      "resolved": "https://registry.nlark.com/xlsx/download/xlsx-0.17.0.tgz",
+      "integrity": "sha1-AoF2oBQJZ9zuGBfSIWeEYeR0gcg=",
+      "requires": {
+        "adler-32": "~1.2.0",
+        "cfb": "^1.1.4",
+        "codepage": "~1.14.0",
+        "commander": "~2.17.1",
+        "crc-32": "~1.2.0",
+        "exit-on-epipe": "~1.0.1",
+        "fflate": "^0.3.8",
+        "ssf": "~0.11.2",
+        "wmf": "~1.0.1",
+        "word": "~0.3.0"
+      },
+      "dependencies": {
+        "commander": {
+          "version": "2.17.1",
+          "resolved": "https://registry.nlark.com/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1621726670324&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz",
+          "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78="
+        },
+        "fflate": {
+          "version": "0.3.11",
+          "resolved": "https://registry.nlark.com/fflate/download/fflate-0.3.11.tgz?cache=0&sync_timestamp=1621791371905&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffflate%2Fdownload%2Ffflate-0.3.11.tgz",
+          "integrity": "sha1-LEQNcYD964GeZImNiFivMnsEKl0="
+        }
+      }
+    },
     "xtend": {
       "version": "4.0.2",
       "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz",

+ 3 - 1
package.json

@@ -18,6 +18,7 @@
     "element-ui": "^2.15.1",
     "express-jwt": "^6.0.0",
     "express-session": "^1.17.1",
+    "file-saver": "^2.0.5",
     "js-cookie": "^2.2.1",
     "jsonwebtoken": "^8.5.1",
     "moment": "^2.29.1",
@@ -28,7 +29,8 @@
     "vue-pdf": "^4.2.0",
     "vue-router": "^3.2.0",
     "vuescroll": "^4.17.3",
-    "vuex": "^3.4.0"
+    "vuex": "^3.4.0",
+    "xlsx": "^0.17.0"
   },
   "devDependencies": {
     "@vue/cli-plugin-babel": "~4.5.0",

+ 61 - 6
src/App.vue

@@ -1,13 +1,68 @@
 <template>
-  <div id="app" :class="'mainTheme-' + $store.state.themeName" v-loading="$store.state.loading" element-loading-text="拼命加载中"
-    element-loading-spinner="el-icon-loading">
-    <router-view />
+  <div
+    id="app"
+    :class="'mainTheme-' + this.themeName"
+    style="width: 100%; height: 100%"
+    v-loading="$store.state.loading"
+    element-loading-text="拼命加载中"
+    element-loading-spinner="el-icon-loading"
+  >
+    <router-view name="rally"></router-view>
+    
+    <el-container style="height: 100%">
+      <el-header style="height: 60px; padding: 0 0px">
+        <headers></headers>
+      </el-header>
+
+      <el-container class="fot">
+         
+        <el-aside class="son" :style="this.asidez">
+          <asiders></asiders>
+        </el-aside>
+        <el-main class="sis" :style="this.mainy">
+          <mains></mains>
+        </el-main>
+      </el-container>
+    </el-container>
   </div>
 </template>
-
+<script>
+import { mapGetters, mapMutations } from "vuex";
+import asiders from "@layout/aside";
+import headers from "@layout/header";
+import mains from "@layout/main";
+export default {
+  computed: {
+    ...mapGetters(["asidez", "mainy", "themeName"]),
+  },
+  components: {
+    asiders,
+    headers,
+    mains,
+  },
+  methods: {},
+};
+</script>
 <style lang="scss">
-@import '@assets/css/base.scss';
+@import "@assets/css/base.scss";
 </style>
 <style lang="scss" scoped>
-@import '@assets/css/theme.scss';
+@import "@assets/css/theme.scss";
+.fot {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: nowrap;
+  width: 100%;
+  height: 100%;
+}
+.son {
+  display: flex;
+  width: 10%;
+  height: 100%;
+}
+.sis {
+  display: flex;
+  width: 90%;
+  height: 100%;
+}
 </style>

+ 1 - 0
src/api/axios.js

@@ -69,6 +69,7 @@ export function requestData (options) {
       if (options.showLoading) {
         store.state.loading = false;
       }
+      debugger
       if (response.code === 501) { // 用户类请求错误code (账号密码错误、用户锁定、token过期等)
         localStorage.removeItem('authToken');
         Message.error(response.data.msg);

+ 29 - 0
src/assets/css/base.scss

@@ -356,5 +356,34 @@ body,
 
 
 /***ElUI - 公共调整 - 开始***/
+.table_sty{
+  
+  th{
+    padding: 0 !important;
+    height: 30px;
+    line-height: 30px;
+  }
+  td{
+    padding: 0 !important;
+    font-size: 13px !important;
+    height: 30px;
+    line-height: 30px;
+  }
+}
+
+#table_sty{
+  
+  th{
+    padding: 0 !important;
+    height: 30px;
+    line-height: 30px;
+  }
+  td{
+    padding: 0 !important;
+    font-size: 13px !important;
+    height: 30px;
+    line-height: 30px;
+  }
+}
 
 /***ElUI - 公共调整 - 结束***/

+ 1 - 1
src/assets/css/benchmarkingSys/internationalBenchmark.scss

@@ -1,6 +1,6 @@
 .box {
     width: 100%;
-    justify-content: space-around;
+    justify-content: flex-start;
     align-items: center;
     overflow: hidden;
   }

+ 1 - 1
src/assets/css/benchmarkingSys/projectBenchmark.scss

@@ -1,6 +1,6 @@
 .box {
     width: 100%;
-    justify-content: space-around;
+    justify-content: flex-start;
     align-items: center;
     overflow: hidden;
   }

+ 1 - 1
src/assets/css/benchmarkingSys/projectBenchmarkParticulars.scss

@@ -1,6 +1,6 @@
 .box {
     width: 100%;
-    justify-content: space-around;
+    justify-content: flex-start;
     align-items: center;
     overflow: hidden;
   }

+ 1 - 1
src/assets/css/benchmarkingSys/propertBenchmark.scss

@@ -1,7 +1,7 @@
 .box {
     width: 100%;
     display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
     align-items: center;
     overflow: hidden;
   }

+ 1 - 1
src/assets/css/benchmarkingSys/propertBenchmarkParticulars.scss

@@ -1,6 +1,6 @@
 .box {
     width: 100%;
-    justify-content: space-around;
+    justify-content: flex-start;
     align-items: center;
     overflow: hidden;
   }

+ 1 - 1
src/assets/css/benchmarkingSys/yardBenchmarkParticulars.scss

@@ -1,7 +1,7 @@
 
 .box {
     width: 100%;
-    justify-content: space-around;
+    justify-content: flex-start;
     align-items: center;
     overflow: hidden;
   }

+ 1 - 1
src/assets/css/healthManagement/healthAssessment.scss

@@ -1,7 +1,7 @@
 .box{
     width: 100%;
     display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
      align-items: center;
      overflow: hidden;
   }

+ 27 - 23
src/assets/css/login.scss

@@ -2,36 +2,40 @@ $bg:#fff;
 $dark_gray:#889aa4;
 $light_gray:#eee;
 .bg{
-  background:url("/static/img/login.jpg") center center no-repeat;
+  background:url("~@/assets/images/login.jpg") center center no-repeat;
   background-size:100% 100%;
   height: 100%;
+  width:100%;
   display:flex;
   align-items:center;
   justify-content:center;
-}
-.login-container{
-  background: $bg;
-  box-shadow: 0 15px 30px 0 rgba(0,0,0,0.3);
-  border-radius: 9px;
-  width: 50%;
-  height: 330px;
-  display: flex;
-  justify-content: center;
-  flex-direction: row ;
-  align-items: center;
 
-  .pic{
-    display: flex;
-    flex-direction: row;
-    justify-content: flex-start;
-  }
-
-  .tab{
-    width: 390px;
-  }
-
-  .btn{
+  .login-container{
     display: flex;
     justify-content: center;
+    flex-direction: row ;
+    align-items: center;
+    background: $bg;
+    box-shadow: 0 15px 30px 0 rgba(0,0,0,0.3);
+    border-radius: 9px;
+    width: 50%;
+    height: 50%;
+   
+  
+    .pic{
+      display: flex;
+      flex-direction: row;
+      justify-content: flex-start;
+    }
+  
+    .tab{
+      width: 390px;
+    }
+  
+    .btn{
+      display: flex;
+      justify-content: center;
+    }
   }
 }
+

+ 1 - 1
src/assets/css/lossBenchmarking/InterValueLineTable.scss

@@ -1,7 +1,7 @@
 .box{
     width: 100%;
     display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
      align-items: center;
      overflow: hidden;
 }

+ 1 - 1
src/assets/css/lossBenchmarking/fiveLossLineTable.scss

@@ -1,7 +1,7 @@
 .box{
     width: 100%;
     // display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
      align-items: center;
      overflow: hidden;
 }

+ 1 - 1
src/assets/css/lossBenchmarking/fiveLossRates.scss

@@ -1,7 +1,7 @@
 .box{
     width: 100%;
     display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
      align-items: center;
      overflow: hidden;
 }

+ 1 - 1
src/assets/css/lossBenchmarking/fiveLossRatesHistogramChart.scss

@@ -1,7 +1,7 @@
 .box{
     width: 100%;
 	display: flex;
-	justify-content: space-around;
+	justify-content: flex-start;
  	align-items: center;
  	overflow: hidden;
 }

+ 1 - 1
src/assets/css/lossBenchmarking/fiveLossRatesPieChart.scss

@@ -1,7 +1,7 @@
 .box {
     width: 100%;
     display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
     align-items: center;
     overflow: hidden;
 }

+ 1 - 1
src/assets/css/lossBenchmarking/interValue.scss

@@ -1,7 +1,7 @@
 .box{
     width: 100%;
     // display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
      align-items: center;
      overflow: hidden;
 }

+ 1 - 1
src/assets/css/lossBenchmarking/lossRateAbandoned.scss

@@ -1,7 +1,7 @@
 .box{
     width: 100%;
     display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
      align-items: center;
      overflow: hidden;
 }

+ 1 - 1
src/assets/css/lossBenchmarking/lossRateAffected.scss

@@ -1,7 +1,7 @@
 .box{
     width: 100%;
     display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
      align-items: center;
      overflow: hidden;
 }

+ 1 - 1
src/assets/css/lossBenchmarking/lossRateFailure.scss

@@ -1,7 +1,7 @@
 .box{
     width: 100%;
     display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
      align-items: center;
      overflow: hidden;
 }

+ 1 - 1
src/assets/css/lossBenchmarking/lossRateMaintenance.scss

@@ -1,7 +1,7 @@
 .box{
     width: 100%;
     display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
      align-items: center;
      overflow: hidden;
 }

+ 1 - 1
src/assets/css/lossBenchmarking/lossRatePerformance.scss

@@ -1,7 +1,7 @@
 .box{
     width: 100%;
     display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
      align-items: center;
      overflow: hidden;
 }

+ 0 - 24
src/assets/css/main.scss

@@ -1,24 +0,0 @@
-$top-height: 100px;
-.page{
-  >.top{
-    height: $top-height;
-    .logo{
-      height: 40px;
-      line-height: 40px;
-      font-size: 24px;
-      font-weight: bold;
-      padding-left: 20px;
-      color: #666;
-    }
-  }
-  >.main{
-    width: 100%;
-    height: calc(100vh - #{$top-height});
-  }
-  
-.head{
-  position: absolute;
-  left: 1800px;
-  top: 0px;
-}
-}

+ 1 - 1
src/assets/css/performanceAnalysis/cutAndSpeed.scss

@@ -1,7 +1,7 @@
 .box {
     width: 100%;
     // display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
     align-items: center;
     overflow: hidden;
 }

+ 1 - 1
src/assets/css/performanceAnalysis/cutAndSpeedHistory.scss

@@ -1,7 +1,7 @@
 .box{
     width: 100%;
     // display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
      align-items: center;
      overflow: hidden;
 }

+ 1 - 1
src/assets/css/performanceAnalysis/gradeEvaluation.scss

@@ -1,7 +1,7 @@
 .box {
     width: 100%;
     display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
     align-items: center;
     overflow: hidden;
   }

+ 1 - 1
src/assets/css/performanceAnalysis/plannedGeneration.scss

@@ -1,7 +1,7 @@
 .box{
     width: 100%;
     // display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
      align-items: center;
      overflow: hidden;
 }

+ 1 - 2
src/assets/css/performanceAnalysis/rankingCallThePolice.scss

@@ -1,8 +1,7 @@
 .box{
     width: 100%;
     display: flex;
-    justify-content: space-around;
-     align-items: center;
+    justify-content: flex-start;
      overflow: hidden;
 }
 .searchBar{

+ 1 - 1
src/assets/css/performanceAnalysis/rankingCurveDeviationRate.scss

@@ -1,7 +1,7 @@
 .box{
     width: 100%;
     display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
      align-items: center;
      overflow: hidden;
 }

+ 1 - 1
src/assets/css/performanceAnalysis/rankingLoadRate.scss

@@ -1,7 +1,7 @@
 .box{
     width: 100%;
     // display: flex;
-    justify-content: space-around;
+    justify-content:  flex-start;
      align-items: center;
      overflow: hidden;
 }

+ 1 - 1
src/assets/css/performanceAnalysis/rankingUtilization.scss

@@ -1,7 +1,7 @@
 .box{
     width: 100%;
     display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
      align-items: center;
      overflow: hidden;
 }

+ 12 - 12
src/assets/js/benchmarkingSys/performanceList.js

@@ -1,6 +1,6 @@
-
 import * as echarts from "echarts";
-//import excelHelper from "@/utils/excelHelper";
+import excelHelper from "@utils/excelHelper";
+
 export default {
   data() {
     return {
@@ -377,16 +377,16 @@ export default {
     filter_daynhgzssdl(cellValue) {
       return parseFloat(cellValue.daynhgzssdl).toFixed(2);
     },
-    // toExcel() {
-    //   let that = this;
-    //   if (this.tableid === "fc") {
-    //     excelHelper.exportExcel("fc_table", "fc数据", ".xls", true);
-    //   } else if (this.tableid === "pj") {
-    //     excelHelper.exportExcel("pj_table", "pj数据", ".xls", true);
-    //   } else if (this.tableid === "xl") {
-    //     excelHelper.exportExcel("xl_table", "xl数据", ".xls", true);
-    //   }
-    // },
+    toExcel() {
+      let that = this;
+      if (this.tableid === "fc") {
+        excelHelper.exportExcel("fc_table", "fc数据", ".xls", true);
+      } else if (this.tableid === "pj") {
+        excelHelper.exportExcel("pj_table", "pj数据", ".xls", true);
+      } else if (this.tableid === "xl") {
+        excelHelper.exportExcel("xl_table", "xl数据", ".xls", true);
+      }
+    },
     drawhistogram_fc(date,date2) {
       this.chartLine = echarts.init(document.getElementById("histogram_fc"));
       this.chartLine.clear();

+ 1 - 0
src/assets/js/login.js

@@ -30,6 +30,7 @@ export default {
           message: '登陆成功',
           type: 'success'
         });
+        
          this.$router.push('/'); // 跳转到首页
 			} else {
         this.$message.error('登录失败');// ui弹窗提示

+ 0 - 40
src/assets/js/main.js

@@ -1,40 +0,0 @@
-import menuData from "@jsonData/menu.json" //动态导入
-import menuZj from "@components/common/menu"
-import headPortrait from "@views/headPortrait"
-export default {
-  data () {
-    return {
-      menuIndex: '1', // 菜单默认选中项
-      menu: [], // 菜单数据
-    }
-  },
-
-  components: {
-    menuZj, headPortrait
-  },
-
-  mounted () {
-    this.getMenu();
-  },
-
-  methods: {
-    // 获取菜单
-    getMenu () {
-      this.API.requestData({
-        subUrl: "admin/usermenu",
-        success (res) {
-          console.log("getMenu", res);
-        }
-      });
-      return;
-      this.menu = menuData.menu;
-      // this.API.get('/powercompare/windfarmAjax').then(res => {
-      //   console.log(res)
-      //   // if (res.code === 200) {
-      //   //   this.eqType = this.BASE.cascaderBugRepair(res.data.result);
-      //   // }
-
-      // });
-    },
-  }
-}

+ 3 - 0
src/assets/js/performanceAnalysis/cutAndSpeedHistory.js

@@ -32,6 +32,9 @@ export default {
         this.callAndSpeedData();
     },
     methods:{
+        dateformat(row, column, cellValue, index){
+            return this.Moment(column.recorddate).format("yyyy-MM-DD")
+        },
         queryApData() {
             this.callAndSpeedData();
         },

+ 5 - 5
src/assets/js/performanceAnalysis/gradeEvaluation.js

@@ -1,4 +1,3 @@
-// import excelHelper from "@/utils/excelHelper";
 import * as echarts from "echarts";
 export default {
   data() {
@@ -28,7 +27,7 @@ export default {
       //分页起始页
       currentPage2: 1,
       //每页显示数据个数
-      pagesize: 10,
+      pagesize: 17,
       //等级评估对标雷达图1数据
       radarChartData1: [],
       //等级评估对标雷达图2数据
@@ -352,15 +351,15 @@ export default {
     },
     //导出excel风机等级评估日数据
     exportDayData() {
-      excelHelper.exportExcel("daytable", "等级评估日数据", ".xls", true);
+      this.BASE.excelHelp("daytable", "等级评估日数据", ".xls", true);
     },
     //导出excel风机等级评估月数据
     exportMonthData() {
-      excelHelper.exportExcel("monthtable", "等级评估月数据", ".xls", true);
+      this.BASE.excelHelp("monthtable", "等级评估月数据", ".xls", true);
     },
     //导出excel风机等级评估年数据
     exportYearData() {
-      excelHelper.exportExcel("yeartable", "等级评估年数据", ".xls", true);
+      this.BASE.excelHelp("yeartable", "等级评估年数据", ".xls", true);
     },
     //点击打开日对比框方法
     dialogTableVisibleOpen() {
@@ -437,6 +436,7 @@ export default {
       page.append("recorddate", this.value1);
       this.API.post("/benchmarking/gadaylistByPage", page).then((res) => {
         //gridData日表格数据
+        debugger
         that.gridData = res.data.list;
         //total日分页数据
         that.total = res.data.total;

+ 1 - 0
src/assets/js/performanceAnalysis/plannedGeneration.js

@@ -94,6 +94,7 @@ export default {
         },
         tableDatawindturbineName(val){
           this.dialogFormVisible2 = true;
+          
           this.fanData = val;
           console.log(this.fanData)
           var modifyData = new URLSearchParams();

+ 1 - 0
src/components/common/menu.vue

@@ -37,6 +37,7 @@ export default {
     init () { },
     // 菜单点击跳转
     menuC (item) {
+      debugger
       if (item.type === 'changeTheme') {
         this.$store.commit('changeTheme', item.url);
       } else {

+ 0 - 21
src/jsonData/menu.json

@@ -6,27 +6,6 @@
       "children": []
     },
     {
-      "name": "后台管理",
-      "url": null,
-      "children": [
-        {
-          "name": "菜单",
-          "url": "/a",
-          "children": []
-        },
-        {
-          "name": "角色",
-          "url": "/a",
-          "children": []
-        },
-        {
-          "name": "权限",
-          "url": "/a",
-          "children": []
-        }
-      ]
-    },
-    {
       "name": "实时监控",
       "url": null,
       "children": [

+ 79 - 0
src/layout/aside.vue

@@ -0,0 +1,79 @@
+<template>
+  <el-menu
+     @mouseenter.native="open_o"
+     @mouseleave.native="close_s"
+    default-active="1"
+    class="el-menu-vertical-demo"
+    @open="handleOpen"
+    @close="handleClose"
+    :collapse="Boolean(isCollapse)"
+    :collapse-transition="false"
+    unique-opened="true"
+    mode="vertical"
+    background-color="#545c64"
+    text-color="#fff"
+  >
+  <div>
+    <el-menu-item index="0" >
+      <i class="el-icon-s-operation"></i>
+    </el-menu-item>
+
+    <el-menu-item index="0" >
+      <i class="el-icon-s-operation"></i>
+    </el-menu-item>
+
+    <el-menu-item index="0" >
+      <i class="el-icon-s-operation"></i>
+    </el-menu-item>
+    </div>
+  </el-menu>
+</template>
+
+<script>
+import { mapMutations , mapGetters} from "vuex";
+export default {
+  data() {
+    return {
+      isCollapse: "asa",
+    };
+  },
+  created() {},
+  methods: {
+    ...mapMutations(["changeZ","changeY"]),
+    
+    close_s(){
+      console.log("ooooo")
+      this.changeZ("width:1%");
+      this.changeY("width:99%");
+      this.isCollapse = "kik"
+    },
+    open_o(){
+      this.changeZ("width:3%");
+      this.changeY("width:97%");
+      this.isCollapse = null
+    },
+    open() {
+      if(this.isCollapse){
+        console.log("opopop")
+        this.changeZ("width:7%");
+        this.changeY("width:93%");
+        this.isCollapse = null
+
+      }else{
+        this.isCollapse = "lko"
+        this.changeZ("width:1%");
+        this.changeY("width:99%");
+      }
+    },
+    handleOpen(key, keyPath) {},
+    handleClose(key, keyPath) {},
+  },
+};
+</script>
+
+<style>
+.el-menu-vertical-demo:not(.el-menu--collapse) {
+  width: 200px;
+  min-height: 400px;
+}
+</style>

+ 101 - 0
src/layout/header.vue

@@ -0,0 +1,101 @@
+<template>
+  <div class="top">
+    <div class="title">
+      <div class="logo">智能综合分析系统</div>
+      <div class="title_y">
+        <menuZj :menu="menu" :menuIndex="menuIndex"></menuZj>
+        <span
+          style="
+            height: 40px;
+            line-height: 40px;
+            margin-top:9px;
+            font-size: 20px;
+            font-weight: bold;
+            color:#fff;
+          "
+          >{{this.username == ""?this.name:this.username}}</span
+        >
+        <headPortrait style="margin: 8px"></headPortrait>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { mapGetters, mapMutations } from "vuex";
+import menuData from "@jsonData/menu.json"; //动态导入
+import menuZj from "@components/common/menu";
+import headPortrait from "@views/headPortrait";
+export default {
+  data() {
+    return {
+      menuIndex: "1", // 菜单默认选中项
+      menu: [], // 菜单数据
+      name:localStorage.getItem('username'),
+    };
+  },
+  created(){
+  },
+  components: {
+    menuZj,
+    headPortrait,
+  },
+  mounted() {
+    window.onload=function() {
+       this.name = localStorage.getItem('username');
+    },
+    this.getMenu();
+  },
+  computed: {
+    // 使用对象展开运算符将 getter 混入 computed 对象中
+    ...mapGetters(["username"]),
+  },
+  methods: {
+    ...mapMutations("user", ["SET_NAME"]),
+    // 获取菜单
+    getMenu() {
+      //   this.API.requestData({
+      //     subUrl: "admin/usermenu",
+      //     success (res) {
+      //       console.log("getMenu", res);
+      //     }
+      //   });
+      //   return;
+      this.menu = menuData.menu;
+      this.API.get("/powercompare/windfarmAjax").then((res) => {
+        console.log(res);
+        if (res.code === 200) {
+          this.eqType = this.BASE.cascaderBugRepair(res.data.result);
+        }
+      });
+    },
+  },
+};
+</script>
+
+<style>
+.top {
+  display: flex;
+  flex-direction: column;
+  flex-wrap: nowrap;
+  height: 60px;
+  background-color: #545c64;
+}
+.logo {
+  height: 40px;
+  line-height: 40px;
+  font-size: 35px;
+  font-weight: bold;
+  margin: 6px 0 0 8px;
+  color: rgb(252, 249, 250);
+}
+.title {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
+.title_y {
+  display: flex;
+  flex-direction: row;
+}
+</style>

+ 10 - 0
src/layout/main.vue

@@ -0,0 +1,10 @@
+<template>
+      <VueScroll><router-view></router-view></VueScroll> 
+    <!--
+          <keep-alive> 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们
+          当组件在 <keep-alive> 内被切换,它的 activated 和 deactivated 这两个生命周期钩子函数将会被对应执行。
+        -->
+    <!-- <keep-alive v-if="$route.meta.keepAlive || $route.meta.keepAlive === undefined">
+          <router-view></router-view>
+        </keep-alive> -->
+</template>

+ 28 - 0
src/main.js

@@ -31,12 +31,15 @@ Vue.prototype.ECLZX = EClzx;
 import Get_PDF from '@tools/htmlToPdf'; // pdf导出
 Vue.prototype.Get_PDF = Get_PDF;
 
+import JsonExcel from 'vue-json-excel'//excel导出
+Vue.component('downloadExcel', JsonExcel)
 //时间格式转换
 import moment from 'moment';
 Vue.prototype.Moment = moment;
 // 滚动条
 import vuescroll from "vuescroll";
 Vue.use(vuescroll, {
+  sizeStrategy: 'percent',
   ops: {
     scrollPanel: {
       easing: "easeInOutQuad",
@@ -65,6 +68,31 @@ Vue.use(vuescroll, {
 
 // 引入外部字体
 import '@assets/css/font.scss'
+//路由前置导航
+router.beforeEach((to, from, next) => {
+  // 登录后登录处理办法
+  // if (to.path === '/login' && store.getters.authToken) {
+  //   next({ path: '/' })
+  // } else
+   if (to.matched.some(m => m.meta.requireAuth)) {    // 需要登录
+    if (window.localStorage.authToken) {
+      next()
+    } else if (to.path !== '/login') {
+      let token = localStorage.getItem('authToken');
+      if (token === null || token === '' || token === undefined) {
+        next({ path: '/login' })
+      } else { next() }
+    } else {
+      next()
+    }
+  } else {   // 不需要登录
+    next()
+  }
+  if (to.matched.length === 0) { // 如果未匹配到路由
+    // sessionStorage.removeItem("btrh_sxsd_locationHref");
+    next('/404')   // 如果上级也未匹配到路由则跳转登录页面,如果上级能匹配到则转上级路由
+  }
+})
 
 Vue.config.productionTip = false
 

+ 22 - 15
src/router/index.js

@@ -16,7 +16,7 @@ VueRouter.prototype.replace = function replace (location) {
 import main from '@views/main'
 import error404 from '@views/404'
 import login from '@views/login'
-
+import contents from '@layout/main'
 // 子路由
 import yRouter from '@router/ylf';
 import lRouter from '@router/lzx';
@@ -30,25 +30,29 @@ const routes = [
     meta: {
       requireAuth: true, // 添加该字段,表示进入这个路由是需要登录的
     },
-    component: main,
+    component:contents
+    ,
     children: [
-      { // 首页
-        path: '/',
-        component: r => require.ensure([], () => r(require('@views/index/index')), 'indexM')
-      },
+      // { // 首页
+      //   path: '/',
+      //   component: r => require.ensure([], () => r(require('@views/index/index')), 'indexM')
+      // },
       ...yRouter,
       ...lRouter,
       ...zRouter
     ]
   },
   {
+    
     path: '/404', // 页面不存在的情况下会跳到404页面
     meta: {
-      requireAuth: true, // 添加该字段,表示进入这个路由是需要登录的  /进路由勾子函数beforeEach
+      requireAuth: false, // 添加该字段,表示进入这个路由是需要登录的  /进路由勾子函数beforeEach
     },
     name: 'error404',
     component: error404,
-  },
+    components:{rally:error404}
+  }
+  ,
   {
     path: '/login',
     meta: {
@@ -56,6 +60,7 @@ const routes = [
     },
     name: 'login',
     component: login,
+    components:{rally:login}
   }
   // { // 健康评价报告 - 临时  /部署单页面
   //   path:'/healthAssessmentDetailed2',
@@ -66,17 +71,15 @@ const routes = [
 const router = new VueRouter({
   mode: 'history',
   //base: '/sis/', // 部署单页面 404 history  带井号解决(去掉history 放web-inf)
-  routes
+  routes,
 })
 
-/**
- * 路由的钩子函数,处理是否登录的判断
- * **/
+//路由前置导航
 router.beforeEach((to, from, next) => {
   // 登录后登录处理办法
-  // if (to.path === '/login' && store.getters.authToken) {
-  //   next({ path: '/' })
-  // } else
+  if (to.path === '/login' && store.getters.authToken) {
+    next({ path: '/' })
+  } else
    if (to.matched.some(m => m.meta.requireAuth)) {    // 需要登录
     if (window.localStorage.authToken) {
       next()
@@ -96,5 +99,9 @@ router.beforeEach((to, from, next) => {
     next('/404')   // 如果上级也未匹配到路由则跳转登录页面,如果上级能匹配到则转上级路由
   }
 })
+/**
+ * 路由的钩子函数,处理是否登录的判断
+ * **/
+
 
 export default router

+ 2 - 0
src/store/getters.js

@@ -4,5 +4,7 @@ const getters = {
   loading: state => state.loading,
   username: state => state.user.username,
   themeName: state => state.themeName,
+  asidez: state => state.z,
+  mainy: state => state.y,
 }
 export default getters

+ 8 - 0
src/store/index.js

@@ -8,6 +8,8 @@ const state = {
   submitDDTag: false,   //提交 - 防抖动 - 针对快速请求问题的拦截机制
   loading: false,   //全局 - 加载中....
   themeName: "light",
+  z:"width:1%",
+  y:"width:99%"
 };
 //改变状态的方法
 const mutations = {
@@ -20,6 +22,12 @@ const mutations = {
   changeTheme(state, tag) {
     state.themeName = tag;
   },
+  changeZ(state, tag){
+    state.z = tag;
+  },
+  changeY(state, tag){
+    state.y = tag;
+  }
 };
 var vuexStore = new Vuex.Store({
   modules: {

+ 2 - 2
src/store/modules/user.js

@@ -1,7 +1,7 @@
 // import {getToken,setToken,removeToken} from '@/utils/auth'
 import { Message } from 'element-ui';
 const state = {
-  authToken: localStorage.getItem('authToken') ? localStorage.getItem('authToken') : '', //设置token为共享状态   初始化vuex的时候 就先从缓存中读取
+  authToken: '', //
   username: '',
 }
 const mutations = {
@@ -26,7 +26,7 @@ const mutations = {
     localStorage.setItem('username', token_name.username);
   },
   SET_NAME: (state, name) => {
-    state.name = name
+    state.username = name;
   },
 }
 const actions = {

+ 7 - 0
src/tools/base.js

@@ -1,4 +1,9 @@
 import crypto from "crypto";
+import excelHelper from "@utils/excelHelper";
+//导出excel
+export function excelHelp(tname,tdate,sic,bool){
+  excelHelper.exportExcel(tname, tdate, sic, bool);
+}
 
 //个位数字补零
 export function numberB0(n) {
@@ -198,6 +203,7 @@ export function tranListToTreeData(list , rootValue){
 }
 
 export default {
+  excelHelp,
   numberCeil,
   getBzDate,
   cascaderBugRepair,
@@ -206,4 +212,5 @@ export default {
   getBztime,
   numberB0,
   tranListToTreeData,
+
 };

+ 0 - 1
src/tools/echartsToolLzx.js

@@ -109,7 +109,6 @@ export function getSingleMachineSaturationChart(id, gridDataChartX, data, legend
       nameTextStyle: {
         padding: [0, 0, 30, 0]    // 四个数字分别为上右下左与原位置距离
       },
-      max: 2000,
       axisLabel: {
         formatter: function (value) {
           var texts = [];

+ 44 - 0
src/utils/excelHelper.js

@@ -0,0 +1,44 @@
+import Vue from 'vue'
+import FileSaver from "file-saver";
+import XLSX from "xlsx";
+ 
+export default {
+    /**
+     * @param tableId 要导出的表格ID
+     * @param fileName 文件导出名称
+     * @param fileType 文件类型
+     * @param rawFlag - true 导出的内容只做解析,不进行格式转换
+     * @returns {*}
+     */
+    exportExcel(tableId,fileName,fileType,rawFlag) {
+        let fix = document.querySelector('.el-table__fixed');
+        let wb;
+        /* 判断要导出的节点中是否有fixed的表格,如果有,转换excel时先将该dom移除,然后append回去 */
+        if(fix){
+            wb = XLSX.utils.table_to_book(document.querySelector("#"+tableId).removeChild(fix),{raw:rawFlag});
+            document.querySelector("#"+tableId).appendChild(fix);
+        }else{
+            wb = XLSX.utils.table_to_book(document.querySelector("#"+tableId),{raw:rawFlag});
+        }
+        /* 获取二进制字符串作为输出 */
+        let wbout = XLSX.write(wb, {
+            bookType: "xlsx",
+            bookSST: true,
+            type: "array"
+        });
+        try {
+            FileSaver.saveAs(
+                //Blob 对象表示一个不可变、原始数据的类文件对象。
+                //Blob 表示的不一定是JavaScript原生格式的数据。
+                //File 接口基于Blob,继承了 blob 的功能并将其扩展使其支持用户系统上的文件。
+                //返回一个新创建的 Blob 对象,其内容由参数中给定的数组串联组成。
+                new Blob([wbout], { type: "application/octet-stream" }),
+                //设置导出文件名称
+                fileName + fileType
+            );
+        } catch (e) {
+            if (typeof console !== "undefined") console.log(e, wbout);
+        }
+        return wbout;
+    }
+}

+ 0 - 0
src/utils/fbutton.vue


+ 1 - 1
src/views/benchmarkingSys/performanceList.vue

@@ -75,7 +75,7 @@
             </el-form-item>
 
             <el-form-item>
-              <el-button type="primary">导出</el-button>
+              <el-button @click="toExcel" type="primary">导出</el-button>
             </el-form-item>
           </el-row>
         </el-form>

+ 8 - 10
src/views/benchmarkingSys/singleTransverseBenchmark.vue

@@ -3,7 +3,7 @@
     <el-main>
       <el-tabs
         type="border-card"
-        style="height: 100%; width: 99.8%"
+        style="height: 100%; width: 100%"
         v-model="activeName"
         @tab-click="handleClick"
       >
@@ -63,27 +63,27 @@
                     >查询</el-button
                   >
                 </el-form-item>
-                <el-form-item>
+                <!-- <el-form-item>
                   <el-button type="primary" :plain="true" @click="clear"
                     >清空</el-button
                   >
-                </el-form-item>
+                </el-form-item> -->
               </el-form>
             </el-card>
 
             <el-table
+              class="table_sty"
               :data="tableData"
               :row-style="{ height: '1px' }"
               border
               style="width: 100%"
             >
               <el-table-column label="单机日信息对比">
-                <el-table-column prop="name" label="项目" width="220">
+                <el-table-column prop="name" label="项目">
                 </el-table-column>
                 <el-table-column
                   prop="value1"
                   label=""
-                  width="330"
                   align="center"
                 >
                   <template slot-scope="scope">
@@ -98,7 +98,6 @@
                 <el-table-column
                   prop="value1"
                   label=""
-                  width="330"
                   align="center"
                 >
                   <template slot-scope="scope">
@@ -113,7 +112,6 @@
                 <el-table-column
                   prop="value1"
                   label=""
-                  width="330"
                   align="center"
                 >
                   <template slot-scope="scope">
@@ -128,7 +126,6 @@
                 <el-table-column
                   prop="value1"
                   label=""
-                  width="330"
                   align="center"
                 >
                   <template slot-scope="scope">
@@ -143,7 +140,6 @@
                 <el-table-column
                   prop="value1"
                   label=""
-                  width="330"
                   align="center"
                 >
                   <template slot-scope="scope">
@@ -227,6 +223,7 @@
             </el-card>
 
             <el-table
+            class="table_sty"
               :data="tableData_y"
               :row-style="{ height: '1px' }"
               border
@@ -382,12 +379,13 @@
             </el-card>
 
             <el-table
+              class="table_sty"
               :data="tableData_n"
               :row-style="{ height: '1px' }"
               border
               style="width: 100%"
             >
-              <el-table-column label="单机信息对比">
+              <el-table-column label="单机信息对比">
                 <el-table-column prop="name" label="项目" width="220">
                 </el-table-column>
                 <el-table-column

+ 8 - 8
src/views/headPortrait.vue

@@ -2,8 +2,8 @@
   <div class="head">
     <el-popover placement="bottom" width="200" trigger="click">
       <div class="border">
-        <p id="character">你好:</p>
-        <p id="character-yh">{{ name }}</p>
+        <p id="character">已登录用户:</p>
+        <p id="character-yh">{{ this.username == ""?this.name:this.username }}</p>
       </div>
       <el-divider></el-divider>
       <div class="btn">
@@ -15,7 +15,7 @@
       <el-button
         style="border-radius: 50px"
         icon="el-icon-user-solid"
-        type="info"
+        type="warning"
         slot="reference"
       ></el-button>
     </el-popover>
@@ -28,17 +28,17 @@ import { mapGetters, mapMutations } from "vuex";
 export default {
   data() {
     return {
-      name: "",
+      name:localStorage.getItem('username')
     };
   },
   computed: {
     // 使用对象展开运算符将 getter 混入 computed 对象中
     ...mapGetters(["username"]),
   },
-  created() {
-    this.name = this.username
-      ? this.username
-      : localStorage.getItem("username");
+  mounted() {
+    window.onload=function() {
+       this.name = localStorage.getItem('username');
+    }
   },
   methods: {
     ...mapMutations("user", ["REMOVE_TOKEN"]),

+ 24 - 12
src/views/healthManagement/healthManagement.vue

@@ -1,22 +1,21 @@
 <template>
-  <el-container>
-    <template>
-      <el-tabs v-model="activeName" type="card" @tab-click="handleClick" style="height: 100%; width: 99.8%">
+    <div>
+      <el-tabs v-model="activeName" type="card" @tab-click="handleClick" style="height: 100%; width: 100%">
         <el-tab-pane label="未确认缺陷" name="serial_1">
           <el-button class="qbhl" type="danger" @click="ignore_all_check">全部忽略</el-button>
           <el-button class="qbqr" type="danger" @click="affirm_all_check">全部确认</el-button>
-          <el-button class="fjlb" type="danger" @click="fj_all_list">风机列表</el-button>
-          <el-row style="width: 100%">
-            <el-col :span="2">
+          <!-- <el-button class="fjlb" type="danger" @click="fj_all_list">风机列表</el-button> -->
+          <div style="width: 100%" class="healthy">
+            <div class="healthy_z">
               <el-button size="medium" type="primary" icon="el-icon-menu" @click="weekfitness" style="margin: 33px 0px 33px 13px; width: 133px">7天健康趋势</el-button>
               <el-button size="medium" type="primary" icon="el-icon-s-grid" @click="monthfitness" style="margin: 33px 0px 33px 13px; width: 133px">30天健康趋势</el-button>
-            </el-col>
-            <el-col :span="22" v-loading="loading_line">
+            </div>
+            <div class="healthy_y" v-loading="loading_line">
               <div class="box">
                 <div id="fitnessRegulate" style="width: 100%; height: 300px"></div>
               </div>
-            </el-col>
-          </el-row>
+            </div>
+          </div>
           <template>
             <el-tabs v-model="contraryName" type="card" @tab-click="contraryClick" style="height: 100%; width: 100%">
               <el-tab-pane label="当日内推荐" name="contrary_1">
@@ -940,8 +939,7 @@
           </div>
         </el-card>
       </el-dialog>
-    </template>
-  </el-container>
+    </div>
 </template>
 <script>
 import healthManagement from "@assets/js/healthManagement/healthManagement";
@@ -950,4 +948,18 @@ export default healthManagement;
 
 <style lang="scss" scoped>
 @import '@assets/css/healthManagement/healthManagement.scss';
+.healthy{
+  display: flex;
+  flex-direction: row ;
+  width: 100%;
+  justify-content: space-between;
+}
+.healthy_z{
+display: flex;
+ flex-direction:column;
+ width:10%;
+}
+.healthy_y{
+  width:90%;
+}
 </style>

+ 0 - 35
src/views/main.vue

@@ -1,35 +0,0 @@
-<template>
-  <div class="page">
-    <headPortrait></headPortrait>
-    <div class="top">
-      <div class="logo">国电电力宁夏新能源集中监控系统</div>
-      <!-- 住菜单 -->
-      <menuZj :menu="menu" :menuIndex="menuIndex"></menuZj>
-      
-    </div>
-
-    <!-- 主显示区域 -->
-    <div class="main">
-      <VueScroll>
-        <!--
-          <keep-alive> 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们
-          当组件在 <keep-alive> 内被切换,它的 activated 和 deactivated 这两个生命周期钩子函数将会被对应执行。
-        -->
-        <!-- <keep-alive v-if="$route.meta.keepAlive || $route.meta.keepAlive === undefined">
-          <router-view></router-view>
-        </keep-alive> -->
-        <router-view></router-view>
-      </VueScroll>
-    </div>
-  </div>
-</template>
-
-
-<script>
-  import main from '@assets/js/main'
-  export default main
-</script>
-
-<style lang="scss" scoped>
-  @import "@assets/css/main.scss";
-</style>

+ 4 - 10
src/views/normRanking/grossgenerationRank.vue

@@ -71,7 +71,7 @@
       </el-card>
     </el-header>
 
-    <el-main>
+    <div style="weidth:100%">
       <el-card style=" height: 759px">
         <el-table
           v-loading="loading"
@@ -80,26 +80,24 @@
           style="width: 100%"
           :cell-style="{ textAlign: 'center' }"
           :header-cell-style="headStyle"
-          max-height="739px"
           @selection-change="changeFun"
         >
           >
           <el-table-column label="总发电量排行榜">
+            
             <el-table-column type="index" width="80"> </el-table-column>
             <el-table-column
               type="selection"
               class="selection"
               @selection-change="changeFun"
-              width="60"
             >
             </el-table-column>
-            <el-table-column sortable prop="windfarm" label="风场" width="310">
+            <el-table-column sortable prop="windfarm" label="风场">
             </el-table-column>
             <el-table-column
               sortable
               prop="windturbine"
               label="风机"
-              width="310"
             >
             </el-table-column>
             <el-table-column
@@ -108,7 +106,6 @@
               :formatter="filter_bdate"
               value-format="yyyy-MM-dd"
               label="起始时间"
-              width="310"
             >
             </el-table-column>
             <el-table-column
@@ -117,7 +114,6 @@
               :formatter="filter_edate"
               value-format="yyyy-MM-dd"
               label="截至日期"
-              width="210"
             >
             </el-table-column>
             <el-table-column
@@ -125,7 +121,6 @@
               prop="speed"
               :formatter="filter_speed"
               label="平均风速"
-              width="290"
             >
             </el-table-column>
             <el-table-column
@@ -133,13 +128,12 @@
               prop="power"
               :formatter="filter_power"
               label="发电量"
-              width="280"
             >
             </el-table-column>
           </el-table-column>
         </el-table>
       </el-card>
-    </el-main>
+    </div>
   </el-container>
 </template>
 

+ 2 - 0
src/views/performanceAnalysis/cutAndSpeed.vue

@@ -40,6 +40,7 @@
             </el-form>
             </el-card>
             <el-table
+            class="table_sty"
             id="callthepolicetable"
             :data="gridData"
             style="width: 100%"
@@ -48,6 +49,7 @@
             :cell-style="{ textAlign: 'center'}" 
             :header-cell-style="headStyle"
             @sort-change="changeTableSort"
+            max-height="750px"
             >
             <!-- <el-table-column label="切入切出风速整合"> -->
             <el-table-column

+ 20 - 37
src/views/performanceAnalysis/cutAndSpeedHistory.vue

@@ -58,7 +58,7 @@
             </el-form>
             </el-card>
             <el-table
-            id="callthepolicetable"
+            class="table_sty"
             :data="gridData"
             :row-style="{ height: '10px' }" 
             :cell-style="{ textAlign: 'center',}" 
@@ -67,41 +67,35 @@
             style="width:100%;margin-top:1%">
             <el-table-column label="切入切出风速整合历史">
             <el-table-column
-              type="index"
-              width="40">
+              type="index">
             </el-table-column>
             <el-table-column
               prop="windturbineid"
-              label="风机"
-               width="150">
+              label="风机">
             </el-table-column>
             <el-table-column
+            :formatter="dateformat"
             prop="recorddate"
-              label="日期"
-               width="150">
+              label="日期">
             <!-- <template slot-scope="scope">
                 {{scope.row.recorddate  | formatDate}}
             </template> -->
             </el-table-column>
             <el-table-column
               prop="inputsmallratio"
-              label="总小风切入"
-              width="150">
+              label="总小风切入">
             </el-table-column>
             <el-table-column
               prop="inputbigratio"
-              label="总大风切入"
-               width="150">
+              label="总大风切入">
             </el-table-column>
             <el-table-column
               prop="outputsmallratio"
-              label="总小风切出"
-               width="150">
+              label="总小风切出">
             </el-table-column>
             <el-table-column
               prop="outputbigmaxratio"
-              label="总大风切出"
-               width="150">
+              label="总大风切出">
             </el-table-column>
             <el-table-column
               prop="dayinputsmall"
@@ -110,58 +104,47 @@
             </el-table-column>
             <el-table-column
               prop="dayoutputsmall"
-              label="日小风切出"
-               width="150">
+              label="日小风切出">
             </el-table-column>
             <el-table-column
               prop="dayinputbig"
-              label="日大风切入"
-               width="150">
+              label="日大风切入">
             </el-table-column>
             <el-table-column
               prop="dayoutputbig"
-              label="日大风切出"
-               width="150">
+              label="日大风切出">
             </el-table-column>
             <el-table-column
               prop="monthinputsmall"
-              label="月小风切入"
-               width="150">
+              label="月小风切入">
             </el-table-column>
             <el-table-column
               prop="monthinputbig"
-              label="月大风切入"
-               width="150">
+              label="月大风切入">
             </el-table-column>
             <el-table-column
               prop="monthoutputsmall"
-              label="月小风切出"
-               width="150">
+              label="月小风切出">
             </el-table-column>
             <el-table-column
               prop="monthoutputbig"
-              label="月大风切出"
-               width="150">
+              label="月大风切出">
             </el-table-column>
             <el-table-column
               prop="yearinputsmall"
-              label="年小风切入"
-               width="150">
+              label="年小风切入">
             </el-table-column>
             <el-table-column
               prop="yearinputbig"
-              label="年大风切入"
-               width="150">
+              label="年大风切入">
             </el-table-column>
             <el-table-column
               prop="yearoutputsmall"
-              label="年小风切出"
-               width="150">
+              label="年小风切出">
             </el-table-column>
             <el-table-column
               prop="yearoutputbig"
-              label="年大风切出"
-               width="150">
+              label="年大风切出">
             </el-table-column>
             </el-table-column>        
        </el-table>

+ 13 - 63
src/views/performanceAnalysis/gradeEvaluation.vue

@@ -57,6 +57,7 @@
             <div class="margin">
               <div class="dialogLeftData">
                 <el-table
+                  class="table_sty"
                   :data="sortInOrderTop"
                   height="97"
                   border
@@ -83,6 +84,7 @@
 
               <div class="dialogRightData">
                 <el-table
+                class="table_sty"
                   :data="sortInOrder"
                   height="618"
                   :row-style="{ height: '10px' }"
@@ -204,6 +206,7 @@
 
               <div class="dialogRightData">
                 <el-table
+                class="table_sty"
                   :data="sortInOrder"
                   height="618"
                   :row-style="{ height: '10px' }"
@@ -293,6 +296,7 @@
             <div class="margin">
               <div class="dialogLeftData">
                 <el-table
+                class="table_sty"
                   :data="sortInOrderTop"
                   height="97"
                   border
@@ -319,6 +323,7 @@
 
               <div class="dialogRightData">
                 <el-table
+                class="table_sty"
                   :data="sortInOrder"
                   height="618"
                   :row-style="{ height: '10px' }"
@@ -362,6 +367,7 @@
 
       <el-main v-if="dailyInformation == true">
         <el-table
+        class="table_sty"
           id="daytable"
           :data="gridData"
           height="640"
@@ -377,151 +383,133 @@
               :sortable="'custom'"
               prop="windturbineid"
               label="风机"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="level"
               label="等级"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="rank"
               label="排名"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayfdl"
               label="发电量"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayllfdl"
               label="理论电量"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayfs"
               label="风速"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daygl"
               label="功率"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daygzssdl"
               label="故障损失"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayxdssdl"
               label="限电损失"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daywhssdl"
               label="维护损失"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayxnssdl"
               label="性能损失"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayslssdl"
               label="受累损失"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daylyxs"
               label="利用小时数"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daynhyd"
               label="拟合优度"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daysbklyl"
               label="设备可利用率"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daydxkyxs"
               label="等效可用系数"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayyxfss"
               label="有效风时数"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayxfqr"
               label="切入风速"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayjfpl"
               label="静风频率"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayglyzxxs"
               label="功率一致性系数"
-              width="150"
             >
             </el-table-column>
           </el-table-column>
         </el-table>
         <div style="text-align: center">
           <el-pagination
+            
             @size-change="handleSizeChange"
             @current-change="handleCurrentChange"
             :current-page.sync="currentPage2"
-            :page-sizes="[10, 50, 100, 1000]"
+            :page-sizes="[18, 50, 100, 1000]"
             :page-size="pagesize"
+            small
             layout="total,sizes, prev, pager, next"
             :total="total"
           >
@@ -530,6 +518,7 @@
       </el-main>
       <el-main v-if="monthlyInformation == true">
         <el-table
+        class="table_sty"
           id="monthtable"
           :data="gridDataMonth"
           height="640"
@@ -545,140 +534,120 @@
               :sortable="'custom'"
               prop="windturbineid"
               label="风机"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="level"
               label="等级"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="rank"
               label="排名"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayfdl"
               label="发电量"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayllfdl"
               label="理论电量"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayfs"
               label="风速"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daygl"
               label="功率"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daygzssdl"
               label="故障损失"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayxdssdl"
               label="限电损失"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daywhssdl"
               label="维护损失"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayxnssdl"
               label="性能损失"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayslssdl"
               label="受累损失"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daylyxs"
               label="利用小时数"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daynhyd"
               label="拟合优度"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daysbklyl"
               label="设备可利用率"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daydxkyxs"
               label="等效可用系数"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayyxfss"
               label="有效风时数"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayxfqr"
               label="切入风速"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayjfpl"
               label="静风频率"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayglyzxxs"
               label="功率一致性系数"
-              width="150"
             >
             </el-table-column>
           </el-table-column>
@@ -688,7 +657,7 @@
             @size-change="handleSizeChange"
             @current-change="handleCurrentChange"
             :current-page.sync="currentPage2"
-            :page-sizes="[10, 50, 100, 1000]"
+            :page-sizes="[18, 50, 100, 1000]"
             :page-size="pagesize"
             layout="total,sizes, prev, pager, next"
             :total="totalMonth"
@@ -698,6 +667,7 @@
       </el-main>
       <el-main v-if="annualInformation == true">
         <el-table
+        class="table_sty"
           id="yeartable"
           :data="gridDataYear"
           height="640"
@@ -713,140 +683,120 @@
               :sortable="'custom'"
               prop="windturbineid"
               label="风机"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="level"
               label="等级"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="rank"
               label="排名"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayfdl"
               label="发电量"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayllfdl"
               label="理论电量"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayfs"
               label="风速"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daygl"
               label="功率"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daygzssdl"
               label="故障损失"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayxdssdl"
               label="限电损失"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daywhssdl"
               label="维护损失"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayxnssdl"
               label="性能损失"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayslssdl"
               label="受累损失"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daylyxs"
               label="利用小时数"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daynhyd"
               label="拟合优度"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daysbklyl"
               label="设备可利用率"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="daydxkyxs"
               label="等效可用系数"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayyxfss"
               label="有效风时数"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayxfqr"
               label="切入风速"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayjfpl"
               label="静风频率"
-              width="150"
             >
             </el-table-column>
             <el-table-column
               :sortable="'custom'"
               prop="dayglyzxxs"
               label="功率一致性系数"
-              width="150"
             >
             </el-table-column>
           </el-table-column>
@@ -856,7 +806,7 @@
             @size-change="handleSizeChange"
             @current-change="handleCurrentChange"
             :current-page.sync="currentPage2"
-            :page-sizes="[10, 50, 100, 1000]"
+            :page-sizes="[18, 50, 100, 1000]"
             :page-size="pagesize"
             layout="total,sizes, prev, pager, next"
             :total="totalYear"

+ 16 - 30
src/views/performanceAnalysis/plannedGeneration.vue

@@ -53,6 +53,7 @@
             </el-form>
             </el-card>
             <el-table
+            class="table_sty"
             id="callthepolicetable"
             :data="gridData"
             :row-style="{ height: '10px' }" 
@@ -69,82 +70,67 @@
             <el-table-column
               prop="projectName"
               label="名称"
-               width="150"
             >
             </el-table-column>
             <el-table-column
               prop="year"
-              label="年"
-              width="150">
+              label="年">
             </el-table-column>
             <el-table-column
               prop="gc01"
-              label="1月"
-               width="150">
+              label="1月">
             </el-table-column>
             <el-table-column
               prop="gc02"
-              label="2月"
-               width="150">
+              label="2月">
             </el-table-column>
             <el-table-column
               prop="gc03"
-              label="3月"
-               width="150">
+              label="3月">
             </el-table-column>
             <el-table-column
               prop="gc04"
-              label="4月"
-               width="150">
+              label="4月">
             </el-table-column>
             <el-table-column
               prop="gc05"
-              label="5月"
-               width="150">
+              label="5月">
             </el-table-column>
             <el-table-column
               prop="gc06"
-              label="6月"
-               width="150">
+              label="6月">
             </el-table-column>
             <el-table-column
               prop="gc07"
-              label="7月"
-               width="150">
+              label="7月">
             </el-table-column>
             <el-table-column
               prop="gc08"
-              label="8月"
-               width="150">
+              label="8月">
             </el-table-column>
             <el-table-column
               prop="gc09"
-              label="9月"
-               width="150">
+              label="9月">
             </el-table-column>
             <el-table-column
               prop="gc10"
-              label="10月"
-               width="150">
+              label="10月">
             </el-table-column>
             <el-table-column
               prop="gc11"
-              label="11月"
-               width="150">
+              label="11月">
             </el-table-column>
             <el-table-column
               prop="gc12"
-              label="12月"
-               width="150">
+              label="12月">
             </el-table-column>
             <el-table-column
               prop="generatingcapacity"
-              label="合计"
-               width="150">
+              label="合计">
             </el-table-column>
             </el-table-column>        
        </el-table>
-       <el-dialog title="新增信息" :visible.sync="dialogFormVisible">
+       <el-dialog title="新增信息" :visible.sync="dialogFormVisible" :modal-append-to-body="false">
             <el-form :model="form">
                 <el-form :inline="true" :model="formInline" class="demo-form-inline" style="margin-left:3.5%">
                 <el-form-item label="风场:" >

+ 64 - 70
src/views/singlePerformanceAnalysis/powerandWindspeedChart.vue

@@ -1,78 +1,72 @@
 <template>
-  <v-main>
-    <v-card>
-      <el-form
-        :inline="true"
-        class="demo-form-inline"
-        style="margin-top: 1%; margin-left: 1%"
-      >
-        <el-form-item label="风场">
-          <el-select
-            v-model="fc"
-            clearable
-            placeholder="请选择"
-            @change="query()"
+  <div>
+    <el-form
+    style="width:9000px"
+      :inline="true"
+    >
+      <el-form-item label="风场">
+        <el-select
+          v-model="fc"
+          clearable
+          placeholder="请选择"
+          @change="query()"
+        >
+          <el-option
+            v-for="item in wpIdslist"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
           >
-            <el-option
-              v-for="item in wpIdslist"
-              :key="item.id"
-              :label="item.name"
-              :value="item.id"
-            >
-            </el-option>
-          </el-select>
-        </el-form-item>
+          </el-option>
+        </el-select>
+      </el-form-item>
 
-        <el-form-item label="风机">
-          <el-select v-model="fj" placeholder="请选择" :multiple-limit="5">
-            <el-option
-              v-for="item in wtIdslist"
-              :key="item.id"
-              :label="item.name"
-              :value="item.id"
-            >
-            </el-option>
-          </el-select>
-        </el-form-item>
-
-        <el-form-item label="年">
-          <el-date-picker
-            v-model="year"
-            type="year"
-            value-format="yyyy"
-            placeholder="选择年"
-            :picker-options="pickerOptions">
+      <el-form-item label="风机">
+        <el-select v-model="fj" placeholder="请选择" :multiple-limit="5">
+          <el-option
+            v-for="item in wtIdslist"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
           >
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="月">
-          <el-date-picker
-            v-model="month"
-            type="month"
-            value-format="M"
-            placeholder="选择月"
-            :picker-options="pickerOptions">
+          </el-option>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="年">
+        <el-date-picker
+          v-model="year"
+          type="year"
+          value-format="yyyy"
+          placeholder="选择年"
+          :picker-options="pickerOptions"
+        >
           >
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item>
-          <el-button type="primary" @click="query_scatter" :plain="true"
-            >查询</el-button
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="月">
+        <el-date-picker
+          v-model="month"
+          type="month"
+          value-format="M"
+          placeholder="选择月"
+          :picker-options="pickerOptions"
+        >
           >
-        </el-form-item>
-      </el-form>
-      <div
-        v-loading="loading"
-        id="scatter_diagram"
-        style="
-          height: 730px;
-          width: 95%;
-          margin-left: 9px;
-          margin-bottom: 39px;
-        "
-      ></div>
-    </v-card>
-  </v-main>
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="query_scatter" :plain="true"
+          >查询</el-button
+        >
+      </el-form-item>
+    </el-form>
+    <div
+      v-loading="loading"
+      id="scatter_diagram"
+      style="height: 730px; width: 100%; margin-left: 9px; margin-bottom: 39px"
+    ></div>
+  </div>
 </template>
 
 <script>
@@ -81,5 +75,5 @@ export default powerandWindspeedChart;
 </script>
 
 <style lang="scss" scoped>
- @import "@assets/css/singlePerformanceAnalysis/powerandWindspeedChart.scss";
+@import "@assets/css/singlePerformanceAnalysis/powerandWindspeedChart.scss";
 </style>

+ 3 - 0
vue.config.js

@@ -12,6 +12,7 @@ module.exports = {
   runtimeCompiler: true, // 是否使用包含运行时编译器的 Vue 构建版本
   productionSourceMap: !IS_PROD, // 生产环境的 source map
   chainWebpack: config => {
+
     config.resolve.symlinks(true); // 修复热更新失效
     // 添加别名
     config.resolve.alias
@@ -23,6 +24,8 @@ module.exports = {
       .set('@views', resolve('src/views'))
       .set('@router', resolve('src/router'))
       .set('@store', resolve('src/store'))
+      .set('@layout',resolve('src/layout'))
+      .set('@utils',resolve('src/utils'))
       .set('@jsonData', resolve('src/jsonData'));
     // 压缩图片
     if (IS_PROD) {