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 4 månader sedan
förälder
incheckning
fc5a2960ed

+ 4 - 4
.env.development

@@ -11,21 +11,21 @@ VUE_APP_TITLE = '页面标题'
 # 马力军
 # VUE_APP_LOGIN_URL = 'http://192.168.2.45:48080'
 # 王波
-VUE_APP_LOGIN_URL = 'http://192.168.2.232:48080'
+VUE_APP_LOGIN_URL = 'http://172.16.12.101:48080'
 
 # 发电能力分析
 # VUE_APP_GENERAT_URL = 'http://192.168.0.102:9002'
 # 马力军
 # VUE_APP_GENERAT_URL = 'http://192.168.2.45:9002'
 # 王波
-VUE_APP_GENERAT_URL = 'http://192.168.2.232:9002'
+VUE_APP_GENERAT_URL = 'http://172.16.12.101:9002'
 
 # 智能报表
 # VUE_APP_REPORT_URL = 'http://192.168.0.102:9001'
 # 马力军
 # VUE_APP_REPORT_URL = 'http://192.168.2.45:9001'
 # 王波
-VUE_APP_REPORT_URL = 'http://192.168.2.232:9001'
+VUE_APP_REPORT_URL = 'http://172.16.12.101:9001'
 
 # 功率预测
 # 徐世利
@@ -33,7 +33,7 @@ VUE_APP_REPORT_URL = 'http://192.168.2.232:9001'
 # 马力军
 # VUE_APP_BASE_URL = 'http://192.168.2.45:8086'
 # 王波
-VUE_APP_BASE_URL = 'http://192.168.2.232:8086'
+VUE_APP_BASE_URL = 'http://172.16.12.101:8086'
 
 # 综合报警
 # VUE_APP_ALARM = 'http://10.127.7.241:6015'

+ 3 - 3
components.d.ts

@@ -20,7 +20,7 @@ declare module 'vue' {
     CalculationModelConfiguration: typeof import('./src/components/powerPredictionComponent/configPage/calculationModelConfiguration.vue')['default']
     Card1: typeof import('./src/components/coms/cards/card-1.vue')['default']
     CheckTable: typeof import('./src/components/coms/table/check-table.vue')['default']
-    Col: typeof import('./src/components/homeComponent/grid/col.vue')['default']
+    Col: typeof import('./src/components/coms/grid/col.vue')['default']
     CollapseList: typeof import('./src/components/coms/collapse/collapse-list.vue')['default']
     CollectionLineManagement: typeof import('./src/components/powerPredictionComponent/configPage/stationFlode/collectionLineManagement.vue')['default']
     CommonHeaders: typeof import('./src/components/commonHeaders.vue')['default']
@@ -154,7 +154,7 @@ declare module 'vue' {
     RoleManagement: typeof import('./src/components/powerPredictionComponent/configPage/roleManagement.vue')['default']
     RouterLink: typeof import('vue-router')['RouterLink']
     RouterView: typeof import('vue-router')['RouterView']
-    Row: typeof import('./src/components/homeComponent/grid/row.vue')['default']
+    Row: typeof import('./src/components/coms/grid/row.vue')['default']
     SBQ: typeof import('./src/components/powerPredictionComponent/configPage/configDesignVue/SBQ.vue')['default']
     ScatterLineChart: typeof import('./src/components/chart/combination/scatter-line-chart.vue')['default']
     SimpleLineChart: typeof import('./src/components/chart/line/simple-line-chart.vue')['default']
@@ -166,7 +166,7 @@ declare module 'vue' {
     StrightLineChart: typeof import('./src/components/chart/line/stright-line-chart.vue')['default']
     SubmitBtn: typeof import('./src/components/generatingCapacityComponent/SubmitBtn.vue')['default']
     SvgDraw: typeof import('./src/components/coms/icon/svg-draw.vue')['default']
-    SvgIcon: typeof import('./src/components/powerPredictionComponent/svgIcon/index.vue')['default']
+    SvgIcon: typeof import('./src/components/coms/icon/svg-icon.vue')['default']
     SvgPageShow: typeof import('./src/components/powerPredictionComponent/powerControlSvg/svgPageShow.vue')['default']
     Tab: typeof import('./src/components/coms/tabs/tab.vue')['default']
     Table: typeof import('./src/components/generatingCapacityComponent/table.vue')['default']

+ 197 - 0
npminstall-debug.log

@@ -0,0 +1,197 @@
+{
+  root: 'D:\\Workspace\\vue\\windLifecontrolPro',
+  registry: 'https://registry.npmmirror.com',
+  pkgs: [],
+  production: false,
+  cacheStrict: false,
+  cacheDir: 'C:\\Users\\admin\\.npminstall_tarball',
+  env: {
+    npm_config_registry: 'https://registry.npmmirror.com',
+    npm_config_argv: '{"remain":[],"cooked":["--fix-bug-versions","--china","--userconfig=C:\\\\Users\\\\admin\\\\.cnpmrc","--disturl=https://cdn.npmmirror.com/binaries/node","--registry=https://registry.npmmirror.com"],"original":["--fix-bug-versions","--china","--userconfig=C:\\\\Users\\\\admin\\\\.cnpmrc","--disturl=https://cdn.npmmirror.com/binaries/node","--registry=https://registry.npmmirror.com"]}',
+    npm_config_user_agent: 'npminstall/7.12.0 npm/? node/v20.13.1 win32 x64',
+    npm_config_cache: 'C:\\Users\\admin\\.npminstall_tarball',
+    NODE: 'C:\\Program Files\\nodejs\\node.exe',
+    npm_node_execpath: 'C:\\Program Files\\nodejs\\node.exe',
+    npm_execpath: 'C:\\Users\\admin\\AppData\\Roaming\\npm\\node_modules\\cnpm\\node_modules\\npminstall\\bin\\install.js',
+    npm_config_userconfig: 'C:\\Users\\admin\\.cnpmrc',
+    npm_config_disturl: 'https://cdn.npmmirror.com/binaries/node',
+    npm_config_r: 'https://registry.npmmirror.com',
+    COREPACK_NPM_REGISTRY: 'https://registry.npmmirror.com',
+    EDGEDRIVER_CDNURL: 'https://npmmirror.com/mirrors/edgedriver',
+    NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
+    NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
+    PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs',
+    CHROMEDRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/chromedriver',
+    OPERADRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/operadriver',
+    CYPRESS_DOWNLOAD_PATH_TEMPLATE: 'https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip',
+    ELECTRON_MIRROR: 'https://cdn.npmmirror.com/binaries/electron/',
+    ELECTRON_BUILDER_BINARIES_MIRROR: 'https://cdn.npmmirror.com/binaries/electron-builder-binaries/',
+    SASS_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-sass',
+    SWC_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-swc',
+    NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v',
+    PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
+    PUPPETEER_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
+    PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright',
+    SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli',
+    SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl',
+    RE2_DOWNLOAD_MIRROR: 'https://cdn.npmmirror.com/binaries/node-re2',
+    RE2_DOWNLOAD_SKIP_PATH: 'true',
+    PRISMA_ENGINES_MIRROR: 'https://cdn.npmmirror.com/binaries/prisma',
+    npm_config_better_sqlite3_binary_host: 'https://cdn.npmmirror.com/binaries/better-sqlite3',
+    npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar',
+    npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp',
+    npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips',
+    npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs',
+    npm_rootpath: 'D:\\Workspace\\vue\\windLifecontrolPro',
+    INIT_CWD: 'D:\\Workspace\\vue\\windLifecontrolPro'
+  },
+  binaryMirrors: {
+    ENVS: {
+      COREPACK_NPM_REGISTRY: 'https://registry.npmmirror.com',
+      EDGEDRIVER_CDNURL: 'https://npmmirror.com/mirrors/edgedriver',
+      NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
+      NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
+      PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs',
+      CHROMEDRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/chromedriver',
+      OPERADRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/operadriver',
+      CYPRESS_DOWNLOAD_PATH_TEMPLATE: 'https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip',
+      ELECTRON_MIRROR: 'https://cdn.npmmirror.com/binaries/electron/',
+      ELECTRON_BUILDER_BINARIES_MIRROR: 'https://cdn.npmmirror.com/binaries/electron-builder-binaries/',
+      SASS_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-sass',
+      SWC_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-swc',
+      NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v',
+      PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
+      PUPPETEER_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
+      PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright',
+      SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli',
+      SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl',
+      RE2_DOWNLOAD_MIRROR: 'https://cdn.npmmirror.com/binaries/node-re2',
+      RE2_DOWNLOAD_SKIP_PATH: 'true',
+      PRISMA_ENGINES_MIRROR: 'https://cdn.npmmirror.com/binaries/prisma',
+      npm_config_better_sqlite3_binary_host: 'https://cdn.npmmirror.com/binaries/better-sqlite3',
+      npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar',
+      npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp',
+      npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips',
+      npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs'
+    },
+    '@ali/s2': { host: 'https://cdn.npmmirror.com/binaries/looksgood-s2' },
+    sharp: { replaceHostFiles: [Array], replaceHostMap: [Object] },
+    '@tensorflow/tfjs-node': {
+      replaceHostFiles: [Array],
+      replaceHostRegExpMap: [Object],
+      replaceHostMap: [Object]
+    },
+    cypress: {
+      host: 'https://cdn.npmmirror.com/binaries/cypress',
+      newPlatforms: [Object]
+    },
+    'utf-8-validate': {
+      host: 'https://cdn.npmmirror.com/binaries/utf-8-validate/v{version}'
+    },
+    xprofiler: {
+      remote_path: './xprofiler/v{version}/',
+      host: 'https://cdn.npmmirror.com/binaries'
+    },
+    leveldown: { host: 'https://cdn.npmmirror.com/binaries/leveldown/v{version}' },
+    couchbase: { host: 'https://cdn.npmmirror.com/binaries/couchbase/v{version}' },
+    gl: { host: 'https://cdn.npmmirror.com/binaries/gl/v{version}' },
+    sqlite3: {
+      host: 'https://cdn.npmmirror.com/binaries/sqlite3',
+      remote_path: 'v{version}'
+    },
+    '@journeyapps/sqlcipher': { host: 'https://cdn.npmmirror.com/binaries' },
+    grpc: {
+      host: 'https://cdn.npmmirror.com/binaries',
+      remote_path: '{name}/v{version}'
+    },
+    'grpc-tools': { host: 'https://cdn.npmmirror.com/binaries' },
+    wrtc: {
+      host: 'https://cdn.npmmirror.com/binaries',
+      remote_path: '{name}/v{version}'
+    },
+    fsevents: { host: 'https://cdn.npmmirror.com/binaries/fsevents' },
+    nodejieba: { host: 'https://cdn.npmmirror.com/binaries/nodejieba' },
+    canvas: { host: 'https://cdn.npmmirror.com/binaries/canvas' },
+    'skia-canvas': { host: 'https://cdn.npmmirror.com/binaries/skia-canvas' },
+    'flow-bin': {
+      replaceHost: 'https://github.com/facebook/flow/releases/download/v',
+      host: 'https://cdn.npmmirror.com/binaries/flow/v'
+    },
+    'jpegtran-bin': {
+      replaceHost: [Array],
+      host: 'https://cdn.npmmirror.com/binaries/jpegtran-bin'
+    },
+    'cwebp-bin': {
+      replaceHost: [Array],
+      host: 'https://cdn.npmmirror.com/binaries/cwebp-bin'
+    },
+    'zopflipng-bin': {
+      replaceHost: [Array],
+      host: 'https://cdn.npmmirror.com/binaries/zopflipng-bin'
+    },
+    'optipng-bin': {
+      replaceHost: [Array],
+      host: 'https://cdn.npmmirror.com/binaries/optipng-bin'
+    },
+    mozjpeg: {
+      replaceHost: [Array],
+      host: 'https://cdn.npmmirror.com/binaries/mozjpeg-bin'
+    },
+    gifsicle: {
+      replaceHost: [Array],
+      host: 'https://cdn.npmmirror.com/binaries/gifsicle-bin'
+    },
+    'pngquant-bin': {
+      replaceHost: [Array],
+      host: 'https://cdn.npmmirror.com/binaries/pngquant-bin',
+      replaceHostMap: [Object]
+    },
+    'pngcrush-bin': {
+      replaceHost: [Array],
+      host: 'https://cdn.npmmirror.com/binaries/pngcrush-bin'
+    },
+    'jpeg-recompress-bin': {
+      replaceHost: [Array],
+      host: 'https://cdn.npmmirror.com/binaries/jpeg-recompress-bin'
+    },
+    'advpng-bin': {
+      replaceHost: [Array],
+      host: 'https://cdn.npmmirror.com/binaries/advpng-bin'
+    },
+    'pngout-bin': {
+      replaceHost: [Array],
+      host: 'https://cdn.npmmirror.com/binaries/pngout-bin'
+    },
+    'jpegoptim-bin': {
+      replaceHost: [Array],
+      host: 'https://cdn.npmmirror.com/binaries/jpegoptim-bin'
+    },
+    argon2: { host: 'https://cdn.npmmirror.com/binaries/argon2' },
+    'ali-zeromq': { host: 'https://cdn.npmmirror.com/binaries/ali-zeromq' },
+    'ali-usb_ctl': { host: 'https://cdn.npmmirror.com/binaries/ali-usb_ctl' },
+    'gdal-async': { host: 'https://cdn.npmmirror.com/binaries/node-gdal-async' },
+    'libpg-query': { host: 'https://cdn.npmmirror.com/binaries' }
+  },
+  forbiddenLicenses: null,
+  flatten: false,
+  proxy: undefined,
+  prune: false,
+  disableFallbackStore: false,
+  workspacesMap: Map(0) {},
+  enableWorkspace: false,
+  workspaceRoot: 'D:\\Workspace\\vue\\windLifecontrolPro',
+  isWorkspaceRoot: true,
+  isWorkspacePackage: false,
+  offline: false,
+  strictSSL: true,
+  ignoreScripts: false,
+  foregroundScripts: false,
+  ignoreOptionalDependencies: false,
+  detail: false,
+  forceLinkLatest: false,
+  trace: false,
+  engineStrict: false,
+  registryOnly: false,
+  client: false,
+  autoFixVersion: [Function: autoFixVersion]
+}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 9937 - 11002
package-lock.json


+ 13 - 13
package.json

@@ -9,6 +9,7 @@
   "dependencies": {
     "@amap/amap-jsapi-loader": "^1.0.1",
     "@element-plus/icons-vue": "^2.0.10",
+    "@open-wc/webpack-import-meta-loader": "^0.4.7",
     "@panzhiyue/leaflet-canvaslabel": "^1.2.0",
     "axios": "^0.21.1",
     "core-js": "^3.8.3",
@@ -20,6 +21,7 @@
     "file-saver": "^2.0.5",
     "html2canvas": "^1.4.1",
     "js-cookie": "^3.0.5",
+    "json-bigint": "^1.0.0",
     "jspdf": "^2.5.1",
     "jszip": "^3.10.1",
     "jszip-utils": "^0.1.0",
@@ -30,6 +32,11 @@
     "leaflet.wmts": "^1.0.2",
     "nprogress": "^0.2.0",
     "pizzip": "^3.1.7",
+    "three": "^0.129.0",
+    "three-collada-loader": "^0.0.1",
+    "three-css2drender": "^1.0.0",
+    "three-fbx-loader": "^1.0.2",
+    "three-obj-mtl-loader": "^1.0.3",
     "typescript": "^5.3.3",
     "vue": "^3.2.13",
     "vue-router": "^4.0.3",
@@ -37,14 +44,7 @@
     "vuex": "^4.0.0",
     "xlsx": "^0.17.1",
     "xlsx-js-style": "^1.2.0",
-    "xlsx-style": "^0.8.13",
-    "three": "^0.129.0",
-    "three-collada-loader": "^0.0.1",
-    "three-css2drender": "^1.0.0",
-    "three-fbx-loader": "^1.0.2",
-    "three-obj-mtl-loader": "^1.0.3",
-    "@open-wc/webpack-import-meta-loader": "^0.4.7",
-    "json-bigint": "^1.0.0"
+    "xlsx-style": "^0.8.13"
   },
   "devDependencies": {
     "@vue/cli-plugin-babel": "~5.0.0",
@@ -52,18 +52,18 @@
     "@vue/cli-plugin-vuex": "~5.0.0",
     "@vue/cli-service": "~5.0.0",
     "cesium": "^1.110.1",
+    "compression-webpack-plugin": "^10.0.0",
     "eslint": "^7.32.0",
     "eslint-plugin-vue": "^8.0.3",
-    "compression-webpack-plugin": "^10.0.0",
     "less": "^3.9.0",
-    "less-loader": "^5.0.0",
+    "less-loader": "^6.2.0",
     "sass": "^1.32.7",
     "sass-loader": "^12.0.0",
-    "unplugin-auto-import": "^0.16.4",
-    "unplugin-vue-components": "^0.25.1",
+    "script-loader": "^0.7.2",
     "style-resources-loader": "^1.4.1",
     "svg-sprite-loader": "^6.0.7",
     "svgo-loader": "^3.0.0",
-    "script-loader": "^0.7.2"
+    "unplugin-auto-import": "^0.16.4",
+    "unplugin-vue-components": "^0.25.1"
   }
 }

+ 8 - 8
src/App.vue

@@ -884,14 +884,10 @@ export default {
               name: "停机查询",
               index: "/integratedAlarm/stopQuery",
             },
-            {
-              name: "数据查询",
-              index: "/integratedAlarm/dataSearch",
-            },
-            {
-              name: "预警排查方案",
-              index: "/integratedAlarm/earlyWarning",
-            },
+            // {
+            //   name: "数据查询",
+            //   index: "/integratedAlarm/dataSearch",
+            // },
           ],
         },
         {
@@ -930,6 +926,10 @@ export default {
               name: "规则修改日志",
               index: "/integratedAlarm/logs",
             },
+            {
+              name: "预警排查方案",
+              index: "/integratedAlarm/earlyWarning",
+            },
           ],
         },
         {

+ 2 - 1
src/assets/styles/blueStyle/blueSty.less

@@ -45,7 +45,8 @@
     // /integratedAlarm/alarmConfig/historyConfig 编辑按钮弹窗底部底部按钮
     .footerButton {
         .el-button:first-child {
-            background-color: rgba(37, 112, 206, 0.16) !important;
+            // background-color: rgba(37, 112, 206, 0.16) !important;
+            background-color: rgba(10, 31, 57, .5) !important;
 
         }
 

+ 160 - 134
src/components/homeComponent/echartsPie2.vue

@@ -1,149 +1,175 @@
 <template>
-    <div>
-        <div class="chart" :id="'pie-chart-x-' + index" style="width:50%;height: 120px"></div>
-    </div>
+  <div>
+    <div
+      class="chart"
+      :id="'pie-chart-x-' + index"
+      style="width: 50%; height: 120px"
+    ></div>
+  </div>
 </template>
 
 <script>
-    import * as echarts from "echarts";
+import * as echarts from "echarts";
 
-    export default {
-        name: "percent-pie",
-        componentName: "percent-pie",
-        props: {
-            theme: {
-                type: Boolean,
-                default: true,
-            },
-            width: {
-                type: String,
-                default: "100%",
-            },
-            height: {
-                type: String,
-                default: "18.519vh",
-            },
-            index: {
-                type: Number,
-                default: 1,
-            },
-            //  传入数据
-            data: {
-                type: Object,
-                default: () => {},
+export default {
+  name: "percent-pie",
+  componentName: "percent-pie",
+  props: {
+    theme: {
+      type: Boolean,
+      default: true,
+    },
+    width: {
+      type: String,
+      default: "100%",
+    },
+    height: {
+      type: String,
+      default: "18.519vh",
+    },
+    index: {
+      type: Number,
+      default: 1,
+    },
+    //  传入数据
+    data: {
+      type: Object,
+      default: () => {},
+    },
+    colors: {
+      type: Array,
+      default: () => ["#FF9B23", "#1C99FF"],
+    },
+  },
+  data() {
+    return {
+      id: "",
+      chart: null,
+      firstAnimation: true,
+      isFirstLoad: true,
+    };
+  },
+
+  computed: {
+    datas() {
+      return this.list.map((t) => {
+        return t.value;
+      });
+    },
+  },
+  methods: {
+    initChart() {
+      var chartDom = document.getElementById("pie-chart-x-" + this.index);
+      chartDom.removeAttribute("_echarts_instance_")
+        ? chartDom.removeAttribute("_echarts_instance_")
+        : "";
+
+      var chart = echarts.init(chartDom);
+      var option;
+      let titleStr =
+        this.index === 1 ? this.data.yjhwcl + "%" : this.data.njhwcl + "%";
+      option = {
+        animation: this.isFirstLoad,
+        title: {
+          text: titleStr,
+          top: "center",
+          left: "center",
+          textStyle: {
+            fontSize: 16,
+            color: !this.theme ? "#fff" : "#1850B3",
+          },
+        },
+        color: !this.theme ? ["#1C99FF", "#54575D"] : ["#1850B3", "#B2B8CA"],
+        series: [
+          {
+            name: "Access From",
+            type: "pie",
+            radius: ["60%", "70%"],
+            avoidLabelOverlap: false,
+            label: {
+              normal: {
+                show: false,
+                formatter: "{b}: {d}%",
+              },
             },
-            colors: {
-                type: Array,
-                default: () => ["#FF9B23", "#1C99FF"],
+            emphasis: {
+              label: {
+                show: false,
+              },
             },
-        },
-        data() {
-            return {
-                id: "",
-                chart: null,
-                firstAnimation: true,
-            };
-        },
-
-        computed: {
-            datas() {
-                return this.list.map((t) => {
-                    return t.value;
-                });
+            labelLine: {
+              show: false,
             },
-        },
-        methods: {
-            initChart() {
-                var chartDom = document.getElementById('pie-chart-x-' + this.index);
-                chartDom.removeAttribute("_echarts_instance_") ? chartDom.removeAttribute("_echarts_instance_") : ''
+            data: [
+              {
+                value:
+                  this.index === 1
+                    ? this.data.yjhwcl > 100
+                      ? 100
+                      : this.data.yjhwcl
+                    : this.data.njhwcl > 100
+                    ? 100
+                    : this.data.njhwcl,
+                name: "分",
+              },
+              {
+                value:
+                  this.index === 1
+                    ? 100 - this.data.yjhwcl < 1
+                      ? 0
+                      : 100 - this.data.yjhwcl
+                    : 100 - this.data.njhwcl < 1
+                    ? 0
+                    : 100 - this.data.njhwcl,
+                name: "总",
+              },
+            ],
+          },
+        ],
+      };
 
-                var chart = echarts.init(chartDom);
-                var option;
-                let titleStr = this.index === 1 ? this.data.yjhwcl + '%' : this.data.njhwcl + '%'
-                option = {
-                    title: {
-                        text: titleStr,
-                        top: 'center',
-                        left: 'center',
-                        textStyle: {
-                            fontSize: 16,
-                            color: !this.theme ? '#fff' : '#1850B3'
-                        }
-                    },
-                    color: !this.theme ? ['#1C99FF', '#54575D'] : ['#1850B3', '#B2B8CA'],
-                    series: [{
-                        name: 'Access From',
-                        type: 'pie',
-                        radius: ['60%', '70%'],
-                        avoidLabelOverlap: false,
-                        label: {
-                            normal: {
-                                show: false,
-                                formatter: '{b}: {d}%'
-                            }
-                        },
-                        emphasis: {
-                            label: {
-                                show: false,
-                            }
-                        },
-                        labelLine: {
-                            show: false
-                        },
-                        data: [{
-                            value: this.index === 1 ? this.data.yjhwcl > 100 ? 100 : this.data
-                                .yjhwcl : this.data.njhwcl > 100 ? 100 : this.data.njhwcl,
-                            name: '分'
-                        }, {
-                            value: this.index === 1 ? (100 - this.data.yjhwcl) < 1 ? 0 : (100 - this
-                                .data.yjhwcl) : (100 - this.data
-                                .njhwcl) < 1 ? 0 : (100 - this.data.njhwcl),
-                            name: '总'
-                        }]
-                    }]
-                };
+      chart.clear();
+      chart.setOption(option);
+      chart.dispatchAction({
+        type: "highlight",
+        seriesIndex: 0,
+        dataIndex: 0, // 这里的数字代表你想一直显示hover效果的饼图部分的索引
+      });
 
+      this.resize = function () {
+        chart.resize();
+      };
 
-
-                chart.clear();
-                chart.setOption(option);
-                chart.dispatchAction({
-                    type: 'highlight',
-                    seriesIndex: 0,
-                    dataIndex: 0 // 这里的数字代表你想一直显示hover效果的饼图部分的索引
-                });
-
-                this.resize = function () {
-                    chart.resize();
-                };
-
-                window.removeEventListener("resize", this.resize);
-                window.addEventListener("resize", this.resize);
-            },
-            handleElectricDetail() {},
-        },
-        mounted() {
-            this.initChart();
-        },
-        watch: {
-            data() {
-                this.initChart()
-            },
-            '$store.state.theme'(val) {
-                this.initChart()
-            },
-        },
-        unmounted() {
-            window.removeEventListener("resize", this.resize);
-        },
-    };
+      window.removeEventListener("resize", this.resize);
+      window.addEventListener("resize", this.resize);
+      if (this.isFirstLoad) {
+        this.isFirstLoad = false;
+      }
+    },
+    handleElectricDetail() {},
+  },
+  mounted() {
+    this.initChart();
+  },
+  watch: {
+    data() {
+      this.initChart();
+    },
+    "$store.state.theme"(val) {
+      this.initChart();
+    },
+  },
+  unmounted() {
+    window.removeEventListener("resize", this.resize);
+  },
+};
 </script>
 
 <style lang="less">
-    .chart {
-        width: 100%;
-        height: 100%;
-        display: inline-block;
-        cursor: default;
-    }
+.chart {
+  width: 100%;
+  height: 100%;
+  display: inline-block;
+  cursor: default;
+}
 </style>

+ 9 - 9
src/router/index.js

@@ -413,15 +413,15 @@ const routes = [
         component: () =>
             import("../views/IntegratedAlarm/safe/stopQuery/index.vue"),
     },
-    {
-        path: "/integratedAlarm/dataSearch",
-        name: "dataSearch",
-        meta: {
-            title: "数据查询",
-        },
-        component: () =>
-            import("../views/IntegratedAlarm/safe/dataSearch/index.vue"),
-    },
+    // {
+    //     path: "/integratedAlarm/dataSearch",
+    //     name: "dataSearch",
+    //     meta: {
+    //         title: "数据查询",
+    //     },
+    //     component: () =>
+    //         import("../views/IntegratedAlarm/safe/dataSearch/index.vue"),
+    // },
     {
         path: "/integratedAlarm/earlyWarning",
         name: "earlyWarning",

+ 4 - 0
src/themeDark.less

@@ -948,6 +948,10 @@
 
     .el-loading-mask {
         background: rgba(rgb(3, 7, 19, 0.5));
+
+        .el-loading-spinner .path {
+            stroke: #2169c3 !important;
+        }
     }
 
     .el-textarea__inner {

+ 12 - 4
src/views/IntegratedAlarm/earlyWarning/index.vue

@@ -166,8 +166,8 @@
         </el-table-column>
         <el-table-column label="操作" width="80px" align="center">
           <template #default="scope">
-            <el-button size="small" @click="editItem(scope.row)">
-              编辑
+            <el-button type="primary" size="small" @click="editItem(scope.row)">
+              <span style="color:#fff">编辑</span>
             </el-button>
           </template>
         </el-table-column>
@@ -293,6 +293,7 @@ import { ElMessageBox } from "element-plus";
 export default {
   data() {
     return {
+      // theme: false,
       types: "",
       typeList: [],
       name: "",
@@ -381,6 +382,12 @@ export default {
     this.init();
   },
 
+  // watch: {
+  //   "$store.state.theme"(newVal, oldVal) {
+  //     this.theme = newVal
+  //   },
+  // },
+
   methods: {
     init() {
       this.getTableData();
@@ -417,8 +424,9 @@ export default {
         let partRowSpans = {};
         let tableData = [];
         let rowIndex = 0;
-        let tableSourceData = requestType === 1 ? res.data : res.data.records;
-        if (requestType === 2) {
+        // let tableSourceData = requestType === 1 ? res.data : res.data.records;
+        let tableSourceData = res.data.records;
+        if (requestType !== 1) {
           let tempObject = {};
           tableSourceData.forEach((ele) => {
             if (Array.isArray(tempObject?.[ele.types])) {

+ 3 - 1
src/views/generatingCapacity/dataAnalysis/combine/components/barLineChart.vue

@@ -266,7 +266,7 @@ export default {
         series: [],
       };
 
-      if (this.bardata && this.bardata.legend)
+      if (this.bardata && this.bardata.legend) {
         // bar data
         for (var i = 0; i < this.bardata.legend.length; i++) {
           option.series.push({
@@ -281,6 +281,7 @@ export default {
             data: this.bardata.data[i],
           });
         }
+      }
 
       // line data
       if (this.lineData.length > 0) {
@@ -305,6 +306,7 @@ export default {
         });
       }
       chart.setOption(option);
+      console.log(55555555555555555)
       chart.resize();
     },
   },

+ 39 - 29
src/views/generatingCapacity/dataAnalysis/posAnalysis/components/leafletMap.vue

@@ -53,6 +53,7 @@ export default {
   },
   methods: {
     initMap() {
+      this.map = null;
       //矢量文本标签渲染器
       let canvasLabel = new L.CanvasLabel({
         collisionFlg: true,
@@ -124,19 +125,24 @@ export default {
           params: {},
         });
       }
+
       if (res.code === 200) {
         if (res.data && res.data.length) {
+          // 清除现有的 layers
+          this.layers.forEach((layer) => {
+            this.map.removeLayer(layer);
+          });
           this.layers = [];
+
           const viewCenter =
             this.viewCenterMap[res.data[0].windpowerstationId] || null;
-          if (this.ciLayer !== null) {
-            this.ciLayer.clearLayers();
+
+          if (!this.ciLayer) {
             this.ciLayer = L.canvasIconLayer({}).addTo(this.map);
           } else {
-            this.ciLayer = L.canvasIconLayer({}).addTo(this.map);
+            this.ciLayer.clearLayers();
           }
 
-          // let iconUrl = require(`@/assets/images/indexCom/fengji-1.png`);
           let iconUrl = require(`@/assets/images/indexCom/run_Icon.gif`);
 
           for (let i = 0; i < res.data.length; i++) {
@@ -145,9 +151,7 @@ export default {
             let marker = L.marker(
               [Number(item.latitude), Number(item.longitude)],
               {
-                // title: item.name,
                 icon: L.divIcon({
-                  // html: `<div style="position:relative;top:40px;left:5px">${item.aname}</div>`,
                   className: "iconSty",
                   iconUrl: iconUrl,
                   iconSize: [30, 39],
@@ -155,22 +159,20 @@ export default {
                 }),
                 data: item,
               }
-            )
-              .bindTooltip(
-                `
-                                <div class="tip-box-top">
-                                    <div class="item">${item.aname}</div>
-                                    <div class="item">经度:${item.latitude}°</div>
-                                    <div class="item">纬度:${item.longitude}°</div>
-                                    <div class="item">海拔高度:${item.altitude}m</div>
-                                </div>`
-              )
-              .addTo(this.map);
-
+            ).bindTooltip(
+              `
+        <div class="tip-box-top">
+            <div class="item">${item.aname}</div>
+            <div class="item">经度:${item.latitude}°</div>
+            <div class="item">纬度:${item.longitude}°</div>
+            <div class="item">海拔高度:${item.altitude}m</div>
+        </div>`
+            );
             let latlng = L.latLng(
               Number(item.latitude),
               Number(item.longitude)
             );
+
             let c1 = L.circleMarker(latlng, {
               radius: 5,
               color: "transparent",
@@ -184,21 +186,28 @@ export default {
               },
               data: item,
             }).addTo(this.map);
-            this.layers.push(c1);
 
-            this.ciLayer.addLayer(marker);
+            marker.on("mousedown", (e) => {
+              this.rightObj = item;
+              console.log(2222, this.rightObj.aname);
+            });
+
+            marker.addTo(this.map);
+
+            this.layers.push(c1);
             this.layers.push(marker);
 
-            let that = this;
-            marker.on("mouseover", function onmouseover(e) {
-              that.rightObj = item;
-            });
+            this.ciLayer.addLayer(marker);
           }
+
           let center = this.map.getCenter();
-          this.map.panTo([center.lat, center.lng], {
-            animate: true,
-          });
-          this.map.setView(viewCenter || this.layers[0].getLatLng(), 13);
+          this.map.panTo([center.lat, center.lng], { animate: true });
+
+          if (viewCenter) {
+            this.map.setView(viewCenter, 13);
+          } else if (this.layers.length > 0) {
+            this.map.setView(this.layers[0].getLatLng(), 13);
+          }
         }
       }
     },
@@ -292,13 +301,14 @@ export default {
     },
 
     powerLine(e) {
+      console.log(1111, this.rightObj);
       if (!this.rightObj.latitude && !this.rightObj.longitude) {
         this.$message({
           message: "该坐标系下暂无功率曲线拟合",
           type: "error",
         });
       } else {
-        this.layers.forEach((item) => {
+        this.layers.forEach((item, index) => {
           if (item.options.data) {
             if (item.options.data.name.indexOf("风电场") === -1) {
               if (

+ 154 - 166
src/views/generatingCapacity/dataAnalysis/posAnalysis/index.vue

@@ -70,6 +70,7 @@
       <el-form class="whitespace-nowrap" :inline="true" :model="queryForm">
         <el-form-item label="" class="!mb-0">
           <el-select
+            style="width: 120px"
             v-model="queryForm.checkIds"
             clearable
             @clear="checkAll = false"
@@ -116,6 +117,7 @@
             :yAxis="item.yAxis"
             :dataset="item.dataset"
             :brush="item.isBrush"
+            :count="item.count || []"
           ></component>
         </div>
       </div>
@@ -470,7 +472,7 @@ import leafletMap from "./components/leafletMap.vue";
 /**combine */
 import combineChart from "../combine/components/current-scatter-chart.vue";
 /**rateAnalysis */
-import barLineChart from "../combine/components/barLineChart.vue";
+import barLineChartCop from "../combine/components/barLineChart.vue";
 import barChartCop from "../combine/components/barChart.vue";
 import chartCop from "../rateAnalysis/components/chart.vue";
 import lineChartCop from "../rateAnalysis/components/lineChart.vue";
@@ -811,7 +813,7 @@ const funHotSubmit = async (obj) => {
 
 const ssDialog = ref(false);
 const ssChart = reactive({
-  bardata: [],
+  barData: [],
   lineData: [],
   color: [
     "#4b55ae",
@@ -905,6 +907,8 @@ const funSsSubmit = async (obj) => {
       data: arr1,
     };
   }
+  ssChart.value = ssChart;
+  console.log(123123, ssChart.value);
   ssDialog.value = true;
 };
 
@@ -1318,140 +1322,119 @@ const funRateSubmit = async (obj) => {
       mode: 0,
     },
   });
+  rateDialog.value = true;
   if (rosesRes.code === 200) {
     if (rosesRes.data.length) {
-      rateDialog.value = true;
-      nextTick(() => {
-        chartData.value = [];
-        for (const chart of rosesRes.data) {
-          chartData.value.push({
-            id: chartId,
-            title: "",
-            subtext: "风速风向玫瑰图",
-            xAxis: {
-              type: "category",
-              boundaryGap: false,
-              data: [
-                "N",
-                "",
-                "N-E",
-                "",
-                "E",
-                "",
-                "S-E",
-                "",
-                "S",
-                "",
-                "S-W",
-                "",
-                "W",
-                "",
-                "W-N",
-                "",
-              ],
-              splitLine: {
-                show: true,
-              },
+      chartData.value = [];
+      for (const chart of rosesRes.data) {
+        chartData.value.push({
+          id: chartId,
+          title: "",
+          subtext: "风速风向玫瑰图",
+          xAxis: {
+            type: "category",
+            boundaryGap: false,
+            data: ["北", "东北", "东", "东南", "南", "西南", "西", "西北"],
+            splitLine: {
+              show: true,
             },
-            isRadar: false,
-            series:
-              // chart.roses.length ?
-              //     chart.roses.map((o, index) => {
-              //         return {
-              //             type: "bar",
-              //             data: o,
-              //             coordinateSystem: "polar",
-              //             name: funText(index),
-              //             stack: "a",
-              //             emphasis: {
-              //                 focus: "series",
-              //             },
-              //         };
-              //     }) : [],
-              {
+          },
+          isRadar: false,
+          series: chart.roses.length
+            ? chart.roses.map((o, index) => {
+                return {
+                  type: "bar",
+                  data: o,
+                  coordinateSystem: "polar",
+                  name: funText(index),
+                  stack: "a",
+                  emphasis: {
+                    focus: "series",
+                  },
+                };
+              })
+            : {
                 type: "bar",
                 data: chart.roses,
                 coordinateSystem: "polar",
                 name: "方位风速",
               },
-          });
-          chartId++;
-          chartData.value.push({
-            id: chartId,
-            title: "",
-            subtext: "风速风向频次玫瑰图",
-            isRadar: true,
-            xAxis: {
-              type: "category",
-              boundaryGap: false,
-              data: [
-                "N",
-                "",
-                "N-E",
-                "",
-                "E",
-                "",
-                "S-E",
-                "",
-                "S",
-                "",
-                "S-W",
-                "",
-                "W",
-                "",
-                "W-N",
-                "",
-              ],
-              splitLine: {
-                show: true,
-              },
+        });
+        chartId++;
+        chartData.value.push({
+          id: chartId,
+          title: "",
+          subtext: "风速风向频次玫瑰图",
+          isRadar: true,
+          xAxis: {
+            type: "category",
+            boundaryGap: false,
+            data: [
+              "北",
+              "",
+              "东北",
+              "",
+              "东",
+              "",
+              "东南",
+              "",
+              "南",
+              "",
+              "西南",
+              "",
+              "西",
+              "",
+              "西北",
+              "",
+            ],
+            splitLine: {
+              show: true,
             },
-            series: chart.count.length
-              ? [
-                  ...chart.count.map((o, index) => {
-                    return {
-                      type: "bar",
-                      data: o,
-                      coordinateSystem: "polar",
-                      name: funText(index),
-                      stack: "a",
-                      emphasis: {
-                        focus: "series",
-                      },
-                    };
-                  }),
-                  {
-                    type: "radar",
-                    // coordinateSystem: 'polar',
-                    tooltip: {
-                      trigger: "item",
+          },
+          series: chart.roses.length
+            ? [
+                ...chart.roses.map((o, index) => {
+                  return {
+                    type: "bar",
+                    data: o,
+                    coordinateSystem: "polar",
+                    name: funText(index),
+                    stack: "a",
+                    emphasis: {
+                      focus: "series",
                     },
-                    // smooth: true,
-                    // areaStyle: {},
-                    name: "对风",
-                    data: [
-                      {
-                        value: chart.radar,
-                      },
-                    ],
+                    coordinateSystem: "polar",
+                  };
+                }),
+                {
+                  type: "radar",
+                  tooltip: {
+                    trigger: "item",
                   },
-                ]
-              : [],
-          });
-          chartId++;
-          scatterSeries.value[0].data = chart.frequency.data.length
-            ? chart.frequency.data.map((item) => {
-                return [item[1] + "", item[0] + "", (item[2] * 15).toFixed(1)];
-              })
-            : [];
-          scatterSeries.value[0].markLine.data = [
-            {
-              xAxis: `${chart.frequency.avg}`,
-              name: `平均偏航:${chart.frequency.avg}度`,
-            },
-          ];
-        }
-      });
+                  name: "对风",
+                  data: [
+                    {
+                      value: chart.radar,
+                    },
+                  ],
+                },
+              ]
+            : [],
+          count: chart.count || [],
+        });
+        chartId++;
+        scatterSeries.value[0].data = chart.frequency.data.length
+          ? chart.frequency.data.map((item) => {
+              return [item[1] + "", item[0] + "", (item[2] * 15).toFixed(1)];
+            })
+          : [];
+        scatterSeries.value[0].markLine.data = [
+          {
+            xAxis: `${chart.frequency.avg}`,
+            name: `平均偏航:${chart.frequency.avg}度`,
+          },
+        ];
+      }
     }
   }
   if (lineRes.code === 200) {
@@ -1459,6 +1442,8 @@ const funRateSubmit = async (obj) => {
       lineDataSet.value[0].source = lineRes.data[0].scatter.map((o) => {
         return [o.x + "", o.y];
       });
+      const lineSeriseMax = Math.max(...lineRes.data[0].count);
+      const lineSeriseMaxIndex = lineRes.data[0].count.indexOf(lineSeriseMax);
       lineSeries.value = [
         {
           name: "对风频次",
@@ -1468,6 +1453,23 @@ const funRateSubmit = async (obj) => {
           smooth: true, //这个是把线变成曲线
           data: lineRes.data[0].count,
           yAxisIndex: 1,
+          markLine: {
+            symbol: "none",
+            label: {
+              show: false,
+            },
+            lineStyle: {
+              color: "#F72C5B",
+              width: "3",
+            },
+            large: true,
+            data: [
+              {
+                // name: `平均偏航:${chart.frequency.avg}度`,
+                xAxis: lineSeriseMaxIndex,
+              },
+            ],
+          },
         },
         {
           type: "effectScatter",
@@ -1634,21 +1636,21 @@ const funDiaSubmit = async () => {
                 type: "category",
                 boundaryGap: false,
                 data: [
-                  "N",
+                  "",
                   "",
-                  "N-E",
+                  "东北",
                   "",
-                  "E",
+                  "",
                   "",
-                  "S-E",
+                  "东南",
                   "",
-                  "S",
+                  "",
                   "",
-                  "S-W",
+                  "西南",
                   "",
-                  "W",
+                  "西",
                   "",
-                  "W-N",
+                  "西北",
                   "",
                 ],
                 splitLine: {
@@ -1656,26 +1658,13 @@ const funDiaSubmit = async () => {
                 },
               },
               isRadar: false,
-              series:
-                // chart.roses.length ?
-                //     chart.roses.map((o, index) => {
-                //         return {
-                //             type: "bar",
-                //             data: o,
-                //             coordinateSystem: "polar",
-                //             name: funText(index),
-                //             stack: "a",
-                //             emphasis: {
-                //                 focus: "series",
-                //             },
-                //         };
-                //     }) : [],
-                {
-                  type: "bar",
-                  data: chart.roses,
-                  coordinateSystem: "polar",
-                  name: "方位风速",
-                },
+              series: {
+                type: "bar",
+                data: chart.roses,
+                coordinateSystem: "polar",
+                name: "方位风速",
+              },
+              count: chart.ys || [],
             });
             chartId++;
           }
@@ -1690,21 +1679,21 @@ const funDiaSubmit = async () => {
                 type: "category",
                 boundaryGap: false,
                 data: [
-                  "N",
+                  "",
                   "",
-                  "N-E",
+                  "东北",
                   "",
-                  "E",
+                  "",
                   "",
-                  "S-E",
+                  "东南",
                   "",
-                  "S",
+                  "",
                   "",
-                  "S-W",
+                  "西南",
                   "",
-                  "W",
+                  "西",
                   "",
-                  "W-N",
+                  "西北",
                   "",
                 ],
                 splitLine: {
@@ -1712,9 +1701,9 @@ const funDiaSubmit = async () => {
                 },
               },
               isRadar: true,
-              series: chart.count.length
+              series: chart.roses.length
                 ? [
-                    ...chart.count.map((o, index) => {
+                    ...chart.roses.map((o, index) => {
                       return {
                         type: "bar",
                         data: o,
@@ -1724,16 +1713,14 @@ const funDiaSubmit = async () => {
                         emphasis: {
                           focus: "series",
                         },
+                        coordinateSystem: "polar",
                       };
                     }),
                     {
                       type: "radar",
-                      // coordinateSystem: 'polar',
                       tooltip: {
                         trigger: "item",
                       },
-                      // smooth: true,
-                      // areaStyle: {},
                       name: "对风",
                       data: [
                         {
@@ -1743,6 +1730,7 @@ const funDiaSubmit = async () => {
                     },
                   ]
                 : [],
+              count: chart.count || [],
             });
             chartId++;
           }

+ 4 - 4
src/views/generatingCapacity/dataAnalysis/rateAnalysis/components/chart.vue

@@ -108,18 +108,18 @@ const option = computed({
       tooltip: {
         formatter: (params) => {
           let str = "";
+          const seriesIndex = params.seriesIndex;
+          const dataIndex = params.dataIndex;
+          const pc = props.count?.[seriesIndex]?.[dataIndex];
           if (params.componentSubType === "radar") {
             str = `${params.marker}${params.seriesName}`;
           } else if (props.subtext !== "风速风向玫瑰图") {
-            const seriesIndex = params.seriesIndex;
-            const dataIndex = params.dataIndex;
-            const pc = props.count?.[seriesIndex]?.[dataIndex];
             str = `${params.marker}${params.seriesName}m<br/>${
               pc > 1 ? "频次:" + pc : ""
             }`;
           } else {
             str = `${params.marker}${params.seriesName}<br/>${
-              "最大风速:" + params.value
+              "最大风速:" + pc
             }m/s`;
           }
           return str;

+ 186 - 177
src/views/generatingCapacity/dataAnalysis/rateAnalysis/components/scatterSingleChart.vue

@@ -1,185 +1,194 @@
 <script setup name="scatterSingleChart">
-    import util from "@tools/util";
-    import chartTheme from './../rateAnalysis.json'
-    import {
-        ref,
-        toRaw,
-        computed,
-        onMounted,
-        watch,
-        nextTick
-    } from 'vue';
-    import {
-        useStore
-    } from 'vuex'
-    import * as echarts from 'echarts'
-    const chartId = 'chart-' + util.newGUID(); //chartId
-    const chartIns = ref(null) //chart 实例
-    const props = defineProps({
-        xAxis: {
-            type: Array,
-            required: true,
-            default: () => ([])
-        },
-        yAxis: {
-            type: Array,
-            required: true,
-            default: () => ([])
-        },
-        series: {
-            type: Array,
-            required: false,
-            default: () => ([])
-        },
-        height: {
-            type: String,
-            required: false,
-            default: '500px'
-        },
-        title: {
-            type: String,
-            required: false,
-            default: ''
-        },
-        subtext: {
-            type: String,
-            required: false,
-            default: ''
-        },
-        width: {
-            type: String,
-            required: false,
-            default: '500px'
-        },
-        theme: {
-            type: Boolean,
-            default: false
-        },
-        echartsTheme: {
-            type: String,
-            default: ''
-        },
-    })
+import util from "@tools/util";
+import chartTheme from "./../rateAnalysis.json";
+import { ref, toRaw, computed, onMounted, watch, nextTick } from "vue";
+import { useStore } from "vuex";
+import * as echarts from "echarts";
+const chartId = "chart-" + util.newGUID(); //chartId
+const chartIns = ref(null); //chart 实例
+const props = defineProps({
+  xAxis: {
+    type: Array,
+    required: true,
+    default: () => [],
+  },
+  yAxis: {
+    type: Array,
+    required: true,
+    default: () => [],
+  },
+  series: {
+    type: Array,
+    required: false,
+    default: () => [],
+  },
+  height: {
+    type: String,
+    required: false,
+    default: "500px",
+  },
+  title: {
+    type: String,
+    required: false,
+    default: "",
+  },
+  subtext: {
+    type: String,
+    required: false,
+    default: "",
+  },
+  width: {
+    type: String,
+    required: false,
+    default: "500px",
+  },
+  theme: {
+    type: Boolean,
+    default: false,
+  },
+  echartsTheme: {
+    type: String,
+    default: "",
+  },
+  count: {
+    type: Array,
+    default: () => {
+      return [];
+    },
+  },
+});
 
-    /**定义option */
-    const option = computed({
-        get() {
-            return {
-                backgroundColor: '',
-                tooltip: {
-                    position: 'top',
-                    formatter: function (params) {
-                        if (params.componentType === 'markLine') {
-                            return params.name
-                        } else {
-                            return (
-                                '偏航:' + params.value[0] +
-                                '度<br/ >风速:' +
-                                params.value[1] +
-                                'm/s'
-                            );
-                        }
-                    }
-                },
-                title: {
-                    text: props.title || '',
-                    subtext: props.subtext || '',
-                    top: 6,
-                    left: '5%',
-                },
-                grid: {
-                    top: 80,
-                    left: 40,
-                    right: 40,
-                    bottom: 40,
-                },
-                xAxis: props.xAxis || [],
-                //  {
-                // 	type: 'category',
-                // 	data: props.xAxis || [],
-                // 	boundaryGap: false,
-                // 	splitLine: {
-                // 		show: true
-                // 	},
-                // 	axisLine: {
-                // 		show: false
-                // 	}
-                // },
-                yAxis: props.yAxis || [],
-                // {
-                // 	type: 'category',
-                // 	data: props.yAxis,
-                // 	axisLine: {
-                // 		show: false
-                // 	}
-                // },
-                series: props.series || []
-                // [
-                // 	{
-                // 		name: 'Punch Card',
-                // 		type: 'scatter',
-                // 		symbolSize: function (val) {
-                // 			return val[2] * 2;
-                // 		},
-                // 		data: props.data,
-                // 		animationDelay: function (idx) {
-                // 			return idx * 5;
-                // 		}
-                // 	}
-                // ]
-            }
+/**定义option */
+const option = computed({
+  get() {
+    return {
+      backgroundColor: "",
+      tooltip: {
+        position: "top",
+        formatter: function (params) {
+          if (params.componentType === "markLine") {
+            return params.name;
+          } else {
+            return (
+              "偏航:" +
+              params.value[0] +
+              "度<br/ >风速:" +
+              params.value[1] +
+              "m/s"
+            );
+          }
         },
-        set(val) {}
-    })
-    watch(() => option, (newVal, oldVal) => {
-        if (chartIns.value) {
-            // console.log(newVal)
-            const echartIns = toRaw(chartIns.value)
-            echartIns.setOption(toRaw(newVal.value))
-        }
-    }, {
-        deep: true
-    })
-    watch([() => props.width, () => props.height], (newVal, oldVal) => {
-        if (chartIns.value) {
-            const echartIns = toRaw(chartIns.value)
-            nextTick(() => echartIns.resize())
-        }
-    })
-    const store = useStore()
-    const collapse = computed({
-        get() {
-            return store.state.collapse
-        },
-        set(val) {}
-    })
-    watch(collapse, (val) => {
-        if (chartIns.value) {
-            setTimeout(() => {
-                chartIns.value.resize()
-            }, 300)
-        }
-    })
-    onMounted(() => {
-        nextTick(() => {
-            init()
-        })
-    })
+      },
+      title: {
+        text: props.title || "",
+        subtext: props.subtext || "",
+        top: 6,
+        left: "5%",
+      },
+      grid: {
+        top: 80,
+        left: 40,
+        right: 40,
+        bottom: 40,
+      },
+      xAxis: props.xAxis || [],
+      //  {
+      // 	type: 'category',
+      // 	data: props.xAxis || [],
+      // 	boundaryGap: false,
+      // 	splitLine: {
+      // 		show: true
+      // 	},
+      // 	axisLine: {
+      // 		show: false
+      // 	}
+      // },
+      yAxis: props.yAxis || [],
+      // {
+      // 	type: 'category',
+      // 	data: props.yAxis,
+      // 	axisLine: {
+      // 		show: false
+      // 	}
+      // },
+      series: props.series || [],
+      // [
+      // 	{
+      // 		name: 'Punch Card',
+      // 		type: 'scatter',
+      // 		symbolSize: function (val) {
+      // 			return val[2] * 2;
+      // 		},
+      // 		data: props.data,
+      // 		animationDelay: function (idx) {
+      // 			return idx * 5;
+      // 		}
+      // 	}
+      // ]
+    };
+  },
+  set(val) {},
+});
+watch(
+  () => option,
+  (newVal, oldVal) => {
+    if (chartIns.value) {
+      // console.log(newVal)
+      const echartIns = toRaw(chartIns.value);
+      echartIns.setOption(toRaw(newVal.value));
+    }
+  },
+  {
+    deep: true,
+  }
+);
+watch([() => props.width, () => props.height], (newVal, oldVal) => {
+  if (chartIns.value) {
+    const echartIns = toRaw(chartIns.value);
+    nextTick(() => echartIns.resize());
+  }
+});
+const store = useStore();
+const collapse = computed({
+  get() {
+    return store.state.collapse;
+  },
+  set(val) {},
+});
+watch(collapse, (val) => {
+  if (chartIns.value) {
+    setTimeout(() => {
+      chartIns.value.resize();
+    }, 300);
+  }
+});
+onMounted(() => {
+  nextTick(() => {
+    init();
+  });
+});
 
-    watch(() => props.echartsTheme, (newVal, oldVal) => init())
+watch(
+  () => props.echartsTheme,
+  (newVal, oldVal) => init()
+);
 
-    const init = () => {
-        echarts.registerTheme('chartTheme', chartTheme)
-        const echartIns = echarts.init(document.getElementById(chartId), props.echartsTheme)
-        document.getElementById(chartId).removeAttribute("_echarts_instance_") ? document.getElementById(chartId)
-            .removeAttribute("_echarts_instance_") : ''
-        chartIns.value = echartIns
-        echartIns.setOption(option.value)
-        window.addEventListener('resize', () => {
-            echartIns.resize()
-        })
-    }
+const init = () => {
+  echarts.registerTheme("chartTheme", chartTheme);
+  const echartIns = echarts.init(
+    document.getElementById(chartId),
+    props.echartsTheme
+  );
+  document.getElementById(chartId).removeAttribute("_echarts_instance_")
+    ? document.getElementById(chartId).removeAttribute("_echarts_instance_")
+    : "";
+  chartIns.value = echartIns;
+  echartIns.setOption(option.value);
+  window.addEventListener("resize", () => {
+    echartIns.resize();
+  });
+};
 </script>
 <template>
-    <div :id="chartId" :style="{ height: '100%', width: props.width }"></div>
+  <div :id="chartId" :style="{ height: '100%', width: props.width }"></div>
 </template>

+ 41 - 142
src/views/generatingCapacity/dataAnalysis/rateAnalysis/index.vue

@@ -223,7 +223,7 @@
       <div v-loading="exportLoading">
         <el-row
           ref="diaPanelRef"
-          style="height: 650px; overflow-y: auto; over-x: hidden"
+          style="height: 650px; overflow-y: auto; overflow-x: hidden"
         >
           <el-col
             :span="actCopList.length > 1 ? 12 : 24"
@@ -247,6 +247,7 @@
               :yAxis="item.yAxis"
               :dataset="item.dataset"
               :brush="item.isBrush"
+              :count="item.count || []"
               @getSelected="funChartSelect"
             ></component>
           </el-col>
@@ -455,6 +456,7 @@ const funSubmit = async () => {
     if (rosesRes.data.length) {
       chartData.value = [];
       for (const chart of rosesRes.data) {
+        // 风速风向玫瑰图左侧
         chartData.value.push({
           id: chartId,
           title: "",
@@ -462,7 +464,24 @@ const funSubmit = async () => {
           xAxis: {
             type: "category",
             boundaryGap: false,
-            data: ["北", "东北", "东", "东南", "南", "西南", "西", "西北"],
+            data: [
+              "北",
+              "",
+              "东北",
+              "",
+              "东",
+              "",
+              "东南",
+              "",
+              "南",
+              "",
+              "西南",
+              "",
+              "西",
+              "",
+              "西北",
+              "",
+            ],
             splitLine: {
               show: true,
             },
@@ -487,6 +506,7 @@ const funSubmit = async () => {
                 coordinateSystem: "polar",
                 name: "方位风速",
               },
+          count: chart.ys || [],
         });
         chartId++;
         chartData.value.push({
@@ -519,9 +539,9 @@ const funSubmit = async () => {
               show: true,
             },
           },
-          series: chart.count.length
+          series: chart.roses.length
             ? [
-                ...chart.count.map((o, index) => {
+                ...chart.roses.map((o, index) => {
                   return {
                     type: "bar",
                     data: o,
@@ -531,6 +551,7 @@ const funSubmit = async () => {
                     emphasis: {
                       focus: "series",
                     },
+                    coordinateSystem: "polar",
                   };
                 }),
                 {
@@ -547,6 +568,7 @@ const funSubmit = async () => {
                 },
               ]
             : [],
+          count: chart.count || [],
         });
         chartId++;
         scatterSeries.value[0].data = chart.frequency.data.length
@@ -878,6 +900,7 @@ const funDiaSubmit = async () => {
       if (res.data.length) {
         for (const chart of res.data) {
           if (actChartName.value === "chartCop1") {
+            // 弹窗展示内容
             actCopList.value.push({
               id: chartId,
               isBrush: false,
@@ -910,25 +933,13 @@ const funDiaSubmit = async () => {
                 },
               },
               isRadar: false,
-              series:
-                // chart.roses.length ? chart.roses.map((o, index) => {
-                //     return {
-                //         type: 'bar',
-                //         data: o,
-                //         coordinateSystem: 'polar',
-                //         name: funText(index),
-                //         stack: 'a',
-                //         emphasis: {
-                //             focus: 'series'
-                //         }
-                //     }
-                // }) : []
-                {
-                  type: "bar",
-                  data: chart.roses,
-                  coordinateSystem: "polar",
-                  name: "方位风速",
-                },
+              series: {
+                type: "bar",
+                data: chart.roses,
+                coordinateSystem: "polar",
+                name: "方位风速",
+              },
+              count: chart.ys || [],
             });
             chartId++;
           }
@@ -965,9 +976,9 @@ const funDiaSubmit = async () => {
                 },
               },
               isRadar: true,
-              series: chart.count.length
+              series: chart.roses.length
                 ? [
-                    ...chart.count.map((o, index) => {
+                    ...chart.roses.map((o, index) => {
                       return {
                         type: "bar",
                         data: o,
@@ -977,16 +988,14 @@ const funDiaSubmit = async () => {
                         emphasis: {
                           focus: "series",
                         },
+                        coordinateSystem: "polar",
                       };
                     }),
                     {
                       type: "radar",
-                      // coordinateSystem: 'polar',
                       tooltip: {
                         trigger: "item",
                       },
-                      // smooth: true,
-                      // areaStyle: {},
                       name: "对风",
                       data: [
                         {
@@ -996,6 +1005,7 @@ const funDiaSubmit = async () => {
                     },
                   ]
                 : [],
+              count: chart.count || [],
             });
             chartId++;
           }
@@ -1020,9 +1030,9 @@ const funDiaSubmit = async () => {
                 {
                   name: "对风频次",
                   type: "line",
-                  symbol: "line", //设定为实心点
-                  symbolSize: 0, //设定实心点的大小
-                  smooth: true, //这个是把线变成曲线
+                  symbol: "line", // 设定为实心点
+                  symbolSize: 0, // 设定实心点的大小
+                  smooth: true, // 这个是把线变成曲线
                   data: chart.count,
                   yAxisIndex: 1,
                   large: true,
@@ -1230,56 +1240,6 @@ const initPageData = () => {
               name: "方位风速",
             },
       });
-      false &&
-        console.log(1111111111, {
-          id: chartId,
-          title: "",
-          subtext: "风速风向玫瑰图",
-          xAxis: {
-            type: "category",
-            boundaryGap: false,
-            data: [
-              "北",
-              "",
-              "东北",
-              "",
-              "东",
-              "",
-              "东南",
-              "",
-              "南",
-              "",
-              "西南",
-              "",
-              "西",
-              "",
-              "西北",
-            ],
-            splitLine: {
-              show: true,
-            },
-          },
-          isRadar: false,
-          series: chart.roses.length
-            ? chart.roses.map((o, index) => {
-                return {
-                  type: "bar",
-                  data: o,
-                  coordinateSystem: "polar",
-                  name: funText(index),
-                  stack: "a",
-                  emphasis: {
-                    focus: "series",
-                  },
-                };
-              })
-            : {
-                type: "bar",
-                data: chart.roses,
-                coordinateSystem: "polar",
-                name: "方位风速",
-              },
-        });
       chartId++;
       chartData.value.push({
         id: chartId,
@@ -1342,67 +1302,6 @@ const initPageData = () => {
           : [],
         count: chart.count || [],
       });
-      false &&
-        console.log(2222222222, {
-          id: chartId,
-          title: "",
-          subtext: "风速风向频次玫瑰图",
-          isRadar: true,
-          xAxis: {
-            type: "category",
-            boundaryGap: false,
-            data: [
-              "北",
-              "",
-              "东北",
-              "",
-              "东",
-              "",
-              "东南",
-              "",
-              "南",
-              "",
-              "西南",
-              "",
-              "西",
-              "",
-              "西北",
-              "",
-            ],
-            splitLine: {
-              show: true,
-            },
-          },
-          series: chart.count.length
-            ? [
-                ...chart.count.map((o, index) => {
-                  return {
-                    type: "bar",
-                    data: o,
-                    coordinateSystem: "polar",
-                    name: funText(index),
-                    stack: "a",
-                    emphasis: {
-                      focus: "series",
-                    },
-                    coordinateSystem: "polar",
-                  };
-                }),
-                {
-                  type: "radar",
-                  tooltip: {
-                    trigger: "item",
-                  },
-                  name: "对风",
-                  data: [
-                    {
-                      value: chart.radar,
-                    },
-                  ],
-                },
-              ]
-            : [],
-        });
       chartId++;
       scatterSeries.value[0].data = chart.frequency.data.length
         ? chart.frequency.data.map((item) => {

+ 1 - 1
src/views/generatingCapacity/dataFilter/process/index.vue

@@ -20,7 +20,7 @@
             @checkChange="funTreeCheckChange"
           >
           </tree-cop>
-          <div style="padding: 5px 0;border-radius: 5px;" :style="theme === false ? 'background: #181A1E' : 'background: #cdcdde'" >
+          <div style="padding: 5px 0;border-radius: 5px;" :style="!theme ? 'background: #181A1E' : 'background: #cdcdde'" >
             <tree-cop
                 :data="processTreeData"
                 :height="treeHeight"

+ 9 - 7
src/views/home/index.vue

@@ -951,16 +951,14 @@ export default {
   watch: {
     "$store.state.theme"(newVal, oldVal) {
       this.swichTheme = newVal;
-      this.getHomeData();
+      this.getHomeData(this.selectWp);
     },
   },
 
   mounted() {
     this.swichTheme = JSON.parse(window.sessionStorage.getItem("theme"));
-    this.getPowerLine();
     this.getHomeData(this.selectWp);
     this.timeInterval = setInterval(() => {
-      this.getPowerLine();
       this.getHomeData(this.selectWp);
     }, this.timeDealy * 1000);
   },
@@ -1372,14 +1370,16 @@ export default {
 
       if (wp?.wpId && wp?.name) {
         this.selectWp = wp;
-        that.mainData = wp.name === "全省数据" ? wp.name : "获取中...";
+        that.mainData = wp.name === "全省数据" ? wp.name : that.isFirstLoad ? "获取中..." : that.mainData;
         this.wpId = wp.wpId;
       }
       // that.BASE.showLoading();
       let params = {
         wpId: this.wpId,
       };
-      this.initPageData(jsonData);
+      if (this.isFirstLoad) {
+        this.initPageData(jsonData);
+      }
       apiGethomeData(params)
         .then((res) => {
           that.initPageData(res);
@@ -1389,7 +1389,7 @@ export default {
             that.wpId = wp.wpId;
             that.mainData = wp.name;
           }
-          that.BASE.closeLoading();
+          // that.BASE.closeLoading();
         });
     },
 
@@ -4071,6 +4071,8 @@ export default {
 .cChartBox {
   width: calc(100% - 20px);
   padding: 10px;
-  margin-top: 12px;
+  margin-top: 10px;
+  position: relative;
+  z-index: 1000;
 }
 </style>