Browse Source

基于风机发电量全寿命周期管控的研究与应用项目中,发电能力分析系统,温度与功率分析页面两个标签调换个位置,散点大小参照功率曲线拟合的大小;微观选址分析页面,海拔高度单位用米,地图上风机编号用aname字段;浆距角分析页面,图例的字稍微调大一点;曲线图稍微往中间压一下;对风偏差分析页面,温度与功率分析页面,浆距角分析页面增加表格功能;
基于风机发电量全寿命周期管控的研究与应用项目中,el-tree更新组件后联调服务时展示中发现问题修改;左侧菜单样式未展开时hover时样式修改;温度与功率分析页面温度曲线值由原来写死改为动态展示;

SunZehao 10 months ago
parent
commit
293795311d
24 changed files with 86829 additions and 188 deletions
  1. 2 2
      .env.development
  2. 1 0
      package.json
  3. 10 5
      src/App.vue
  4. 1 1
      src/assets/css/eleCss/el-dialogB.less
  5. 1 1
      src/assets/css/eleCss/el-dialogW.less
  6. 1 1
      src/components/powerPredictionComponent/SecondaryPageStyle/globalblackStyle.less
  7. 49 61
      src/components/powerPredictionComponent/SecondaryPageStyle/globalwhiteStyle.less
  8. 6 6
      src/components/powerPredictionComponent/batteryDivinerDialog/dayBatterDialog.vue
  9. 6 6
      src/components/powerPredictionComponent/batteryDivinerDialog/monthAndYearBatterDialog.vue
  10. 6 6
      src/components/powerPredictionComponent/homePageAssembly/globalDialogPage.vue
  11. 6 6
      src/components/powerPredictionComponent/panoramicPowerDialog/panoramaPowerDialogPage.vue
  12. 117 6
      src/components/powerPredictionComponent/powerPredictionDialog/predictionDialogPage.vue
  13. 86426 0
      src/views/generatingCapacity/dataAnalysis/agcAnalysis/agcJson.json
  14. 23 8
      src/views/generatingCapacity/dataAnalysis/agcAnalysis/index.vue
  15. 3 3
      src/views/generatingCapacity/dataAnalysis/angleAnalysis/components/current-scatter-chart.vue
  16. 41 11
      src/views/generatingCapacity/dataAnalysis/angleAnalysis/index.vue
  17. 8 8
      src/views/generatingCapacity/dataAnalysis/combine/index.vue
  18. 5 3
      src/views/generatingCapacity/dataAnalysis/hotAnalysis/components/current-scatter-chart.vue
  19. 31 9
      src/views/generatingCapacity/dataAnalysis/hotAnalysis/index.vue
  20. 1 1
      src/views/generatingCapacity/dataAnalysis/lineAnalysis/index.vue
  21. 2 2
      src/views/generatingCapacity/dataAnalysis/posAnalysis/components/leafletMap.vue
  22. 67 34
      src/views/generatingCapacity/dataAnalysis/rateAnalysis/index.vue
  23. 5 6
      src/views/generatingCapacity/dataAnalysis/windAnalysis/index.vue
  24. 11 2
      src/views/powerPrediction/homePageNoMap.vue

+ 2 - 2
.env.development

@@ -12,10 +12,10 @@ VUE_APP_LOGIN_URL = 'http://192.168.2.231:48080'
 
 # 发电能力分析
 # VUE_APP_GENERAT_URL = 'http://123.60.219.66:9002'
-VUE_APP_GENERAT_URL = 'http://192.168.2.231:8086'
+VUE_APP_GENERAT_URL = 'http://192.168.2.126:9002'
 # 智能报表
 # VUE_APP_REPORT_URL = 'http://123.60.219.66:9001'
-VUE_APP_REPORT_URL = 'http://192.168.2.231:8086'
+VUE_APP_REPORT_URL = 'http://192.168.2.126:9001'
 # 功率预测
 # VUE_APP_BASE_URL = 'http://123.60.219.66:8086'
 VUE_APP_BASE_URL = 'http://192.168.2.126:8086'

+ 1 - 0
package.json

@@ -11,6 +11,7 @@
     "@element-plus/icons-vue": "^2.0.10",
     "axios": "^0.21.1",
     "core-js": "^3.8.3",
+    "dayjs": "^1.11.11",
     "echarts": "^5.3.2",
     "element-plus": "^2.3.6",
     "exceljs": "^4.3.0",

+ 10 - 5
src/App.vue

@@ -82,7 +82,7 @@
             </div>
             <!-- :style="{ paddingLeft: fixed ? '65px' : 0 }"  :style="{ paddingLeft: isShowMenu ? '65px' : 0 }"-->
             <!-- :style="pagestyFn()" -->
-            <div class="pageSty">
+            <div class="pageSty" :style="pagestyFn()">
                 <router-view />
             </div>
         </div>
@@ -582,11 +582,16 @@
                 return str
             },
             pagestyFn() {
-                let str = ''
-                if (this.isCollapse) {
-                    str = 'width: 96.5%;padding-left: 3.5%'
+                let str = 'width: 100%;height:100vh'
+                let path = window.location.href
+                if (!this.isCollapse) {
+                    if (path.indexOf('generatingCap') > -1) {
+                        str = 'width: calc(100% - 200px);height:100vh'
+                    } else if (path.indexOf('powerPrediction') > -1) {
+                        str = 'width: calc(100% - 150px);height:100vh'
+                    }
                 } else {
-                    str = 'width: 90%;padding-left: 10%'
+                    str = 'width: calc(100% - 66px);height:100vh'
                 }
                 return str
             },

+ 1 - 1
src/assets/css/eleCss/el-dialogB.less

@@ -1,7 +1,7 @@
 .el-overlay {
     .el-overlay-dialog {
         .windLifeDialog {
-            margin-top: 5vh !important;
+            // margin-top: 5vh !important;
             background: #040c0b;
 
             .el-dialog__header {

+ 1 - 1
src/assets/css/eleCss/el-dialogW.less

@@ -3,7 +3,7 @@
 
         .el-dialog,
         .windLifeDialog {
-            margin-top: 5vh !important;
+            // margin-top: 5vh !important;
             background: #fff;
 
             .el-dialog__header {

+ 1 - 1
src/components/powerPredictionComponent/SecondaryPageStyle/globalblackStyle.less

@@ -26,7 +26,7 @@
 
                         span {
                             font-size: 14px;
-                            margin-left: 10px;
+                            // margin-left: 10px;
                         }
 
                         display: flex;

+ 49 - 61
src/components/powerPredictionComponent/SecondaryPageStyle/globalwhiteStyle.less

@@ -1,79 +1,67 @@
-.globalDiaWhite {
-    margin-top: 5vh !important;
+.main_top {
+    display: flex;
+    justify-content: space-between;
 
-    // opacity: 0.9;
-    .el-dialog__body {
-        padding: 10px 20px;
+    .main_top_left {
+        display: flex;
 
-        .globalDiaMain {
-
-            .main_top {
-                display: flex;
-                justify-content: space-between;
-
-                .main_top_left {
-                    display: flex;
-
-                    .exceed {
-                        span {
-                            font-size: 14px;
-                            margin-left: 10px;
-                        }
-
-                        display: flex;
-                        margin-right:20px;
+        .exceed {
+            span {
+                font-size: 14px;
+                margin-left: 10px;
+            }
 
-                        .el-date-editor {
-                            height: 32px;
+            display: flex;
+            margin-right:20px;
 
-                            .el-input__icon,
-                            .el-range-separator {
-                                line-height: 30px;
-                            }
-                        }
+            .el-date-editor {
+                height: 32px;
 
-                        .select-trigger {
-                            .el-input {
-                                .el-input__wrapper {
-                                    height: 30px;
-                                }
-                            }
+                .el-input__icon,
+                .el-range-separator {
+                    line-height: 30px;
+                }
+            }
 
-                            .el-input__suffix {
-                                .el-input__icon {
-                                    line-height: 30px;
-                                }
-                            }
-                        }
+            .select-trigger {
+                .el-input {
+                    .el-input__wrapper {
+                        height: 30px;
                     }
                 }
 
-                .el-button {
-                    height: 30px;
-                    padding: 0 20px;
-                    line-height: 5px;
+                .el-input__suffix {
+                    .el-input__icon {
+                        line-height: 30px;
+                    }
                 }
             }
+        }
+    }
 
-            .main_charts {
-                margin-top: 20px;
+    .el-button {
+        height: 30px;
+        padding: 0 20px;
+        line-height: 5px;
+    }
+}
 
-                .chartsStyle {
-                    height: 300px;
-                    width: 100%;
-                }
-            }
+.main_charts {
+    margin-top: 20px;
 
-            .main_table {
-                margin: 20px 0;
+    .chartsStyle {
+        height: 300px;
+        width: 100%;
+    }
+}
 
-                .el-table {
-                    .el-table__body-wrapper {
-                        height: 335px !important;
-                        overflow-y: auto;
-                    }
-                }
-            }
+.main_table {
+    margin: 20px 0;
+
+    .el-table {
+        .el-table__body-wrapper {
+            height: 335px !important;
+            overflow-y: auto;
         }
     }
 }

+ 6 - 6
src/components/powerPredictionComponent/batteryDivinerDialog/dayBatterDialog.vue

@@ -1,7 +1,7 @@
 <template>
-    <el-dialog custom-class="windLifeDialog" :title="title" v-model="dialogVisible" width="90%"
+    <el-dialog custom-class="windLifeDialog" :title="title" v-model="dialogVisible" :fullscreen="true"
         :close-on-click-modal="false" @close="closeDialog">
-        <div class="globalDiaMain" :class="!theme ? 'themeDark' : 'themeLight'">
+        <div class="globalDiaMain" :class="!theme ? 'themeDa' : 'themeLi'">
             <div class="main_top">
                 <div class="main_top_left">
                     <div class="exceed">
@@ -34,8 +34,8 @@
                 <div class="main_charts">
                     <div id="centerCharts" class="chartsStyle"></div>
                 </div>
-                <div class="main_table warn-table">
-                    <el-table :data="tableData" ref="report-table_day" border max-height="400px" style="width: 100%">
+                <div class="main_table warn-table" style="margin-top: 20px">
+                    <el-table :data="tableData" ref="report-table_day" border max-height="50vh" style="width: 100%">
                         <el-table-column prop="dataTime" label="时间" align="center" width="160"></el-table-column>
                         <el-table-column prop="theoreticalPower" label="理论电量" align="center"></el-table-column>
                         <el-table-column prop="availablePower" label="可用电量" align="center"></el-table-column>
@@ -460,7 +460,7 @@
         }
     }
 
-    .themeDark {
+    .themeDa {
 
         .main_top {
             .main_top_left {
@@ -471,7 +471,7 @@
         }
     }
 
-    .themeLight {
+    .themeLi {
         .main_top {
             .main_top_left {
                 .exceed {

+ 6 - 6
src/components/powerPredictionComponent/batteryDivinerDialog/monthAndYearBatterDialog.vue

@@ -1,7 +1,7 @@
 <template>
-    <el-dialog custom-class="windLifeDialog" :title="title" v-model="dialogVisible" width="90%"
+    <el-dialog custom-class="windLifeDialog" :title="title" v-model="dialogVisible" :fullscreen="true"
         :close-on-click-modal="false" @close="closeDialog">
-        <div class="globalDiaMain" v-loading="loading" :class="!theme ? 'themeDark' : 'themeLight'">
+        <div class="globalDiaMain" v-loading="loading" :class="!theme ? 'themeDa' : 'themeLi'">
             <div class="main_top">
                 <div class="main_top_left">
                     <div class="exceed">
@@ -28,8 +28,8 @@
             <div class="main_charts">
                 <div id="centersCharts" class="chartsStyle"></div>
             </div>
-            <div class="main_table warn-table">
-                <el-table :data="tableData" ref="report-table" border max-height="400px" style="width: 100%">
+            <div class="main_table warn-table" style="margin-top: 20px">
+                <el-table :data="tableData" ref="report-table" border max-height="50vh" style="width: 100%">
                     <el-table-column prop="dataTime" label="时间" align="center" width="160"></el-table-column>
                     <el-table-column label="当期数据" align="center">
                         <el-table-column prop="veryShortTermForecastDq" label="计划发电" align="center"></el-table-column>
@@ -406,7 +406,7 @@
         }
     }
 
-    .themeDark {
+    .themeDa {
 
         .main_top {
             .main_top_left {
@@ -417,7 +417,7 @@
         }
     }
 
-    .themeLight {
+    .themeLi {
         .main_top {
             .main_top_left {
                 .exceed {

+ 6 - 6
src/components/powerPredictionComponent/homePageAssembly/globalDialogPage.vue

@@ -1,8 +1,8 @@
 <template>
-    <el-dialog custom-class="windLifeDialog" :title="title" v-model="dialogVisible" width="90%"
+    <el-dialog custom-class="windLifeDialog" :title="title" v-model="dialogVisible" :fullscreen="true"
         :close-on-click-modal="false" @close="closeDialog">
         <!-- :class="from === 'index'? 'globalDia' : 'globalDiaWhite'" -->
-        <div class="globalDiaMain" :class="!theme ? 'themeDark' : 'themeLight'">
+        <div class="globalDiaMain" :class="!theme ? 'themeDa' : 'themeLi'">
             <div class="main_top">
                 <div class="main_top_left">
                     <div class="exceed">
@@ -38,8 +38,8 @@
                 <div class="main_charts">
                     <div id="centerCharts" class="chartsStyle"></div>
                 </div>
-                <div class="warn-table" v-show="title === '功率预测'">
-                    <el-table :data="tableData" ref="report-table_power" max-height="400px" style="width: 100%">
+                <div class="warn-table" style="margin-top: 20px" v-show="title === '功率预测'">
+                    <el-table :data="tableData" ref="report-table_power" max-height="50vh" style="width: 100%">
                         <el-table-column prop="dataTime" label="时间" align="center" width="160"></el-table-column>
                         <el-table-column prop="theoreticalPower" label="理论功率" align="center"></el-table-column>
                         <el-table-column prop="availablePower" label="可用功率" align="center"></el-table-column>
@@ -693,7 +693,7 @@
                         }
                     }
 
-                    .themeDark {
+                    .themeDa {
 
                         .main_top {
                             .main_top_left {
@@ -704,7 +704,7 @@
                         }
                     }
 
-                    .themeLight {
+                    .themeLi {
                         .main_top {
                             .main_top_left {
                                 .exceed {

+ 6 - 6
src/components/powerPredictionComponent/panoramicPowerDialog/panoramaPowerDialogPage.vue

@@ -1,7 +1,7 @@
 <template>
-    <el-dialog custom-class="windLifeDialog" :title="title" v-model="dialogVisible" width="90%"
+    <el-dialog custom-class="windLifeDialog" :title="title" v-model="dialogVisible" :fullscreen="true"
         :close-on-click-modal="false">
-        <div class="globalDiaMain" :class="!theme ? 'themeDark' : 'themeLight'">
+        <div class="globalDiaMain" :class="!theme ? 'themeDa' : 'themeLi'">
             <div class="main_top">
                 <div class="main_top_left">
                     <div class="exceed">
@@ -31,8 +31,8 @@
                         <div id="windCharts" class="chartsStyle"></div>
                     </el-col>
                 </el-row>
-                <div class="main_table warn-table">
-                    <el-table :data="tableData" ref="report-table" border max-height="400px" style="width: 100%">
+                <div class="main_table warn-table" style="margin-top: 20px">
+                    <el-table :data="tableData" ref="report-table" border max-height="50vh" style="width: 100%">
                         <el-table-column prop="dataTime" label="时间" align="center" width="160"></el-table-column>
                         <el-table-column prop="theoreticalPower" label="理论功率" align="center"></el-table-column>
                         <el-table-column prop="availablePower" label="可用功率" align="center"></el-table-column>
@@ -427,7 +427,7 @@
 </script>
 
 <style lang="less">
-    .themeDark {
+    .themeDa {
 
         .main_top {
             .main_top_left {
@@ -438,7 +438,7 @@
         }
     }
 
-    .themeLight {
+    .themeLi {
         .main_top {
             .main_top_left {
                 .exceed {

+ 117 - 6
src/components/powerPredictionComponent/powerPredictionDialog/predictionDialogPage.vue

@@ -1,7 +1,7 @@
 <template>
-    <el-dialog custom-class="windLifeDialog" :title="title" v-model="dialogVisible" width="90%"
+    <el-dialog custom-class="windLifeDialog" :title="title" v-model="dialogVisible" :fullscreen="true"
         :close-on-click-modal="false" @close="closeDialog">
-        <div class="globalDiaMain" :class="!theme ? 'themeDark' : 'themeLight'">
+        <div class="globalDiaMain" :class="!theme ? 'themeDa' : 'themeLi'">
             <div class="main_top">
                 <div class="main_top_left">
                     <div class="exceed">
@@ -29,8 +29,8 @@
                 <div class="main_charts">
                     <div id="centerCharts" class="chartsStyle"></div>
                 </div>
-                <div class="main_table warn-table" v-show="isPower">
-                    <el-table :data="tableData" ref="report-table_power" border max-height="400px" style="width: 100%">
+                <div class="main_table warn-table" style="margin-top: 20px" v-show="isPower">
+                    <el-table :data="tableData" ref="report-table_power" border max-height="50vh" style="width: 100%">
                         <el-table-column prop="dataTime" label="时间" align="center" width="160"></el-table-column>
                         <el-table-column prop="theoreticalPower" label="理论功率" align="center"></el-table-column>
                         <el-table-column prop="availablePower" label="可用功率" align="center"></el-table-column>
@@ -547,6 +547,117 @@
 </script>
 
 <style lang="less">
-    @import '../SecondaryPageStyle/globalblackStyle.less';
-    @import '../SecondaryPageStyle/globalwhiteStyle.less';
+    .el-overlay {
+        .el-overlay-dialog {
+            .windLifeDialog {
+                .el-dialog__header {
+                    .el-dialog__title {
+                        color: #fff !important;
+                    }
+                }
+
+                .el-dialog__body {
+                    padding: 10px 20px;
+
+                    .globalDiaMain {
+
+                        .main_top {
+                            display: flex;
+                            justify-content: space-between;
+
+                            .main_top_left {
+                                display: flex;
+
+                                .exceed {
+
+
+                                    span {
+                                        font-size: 14px;
+                                        margin-left: 10px;
+                                    }
+
+                                    display: flex;
+                                    margin-right:20px;
+
+                                    .el-date-editor {
+                                        height: 32px;
+
+                                        .el-input__icon,
+                                        .el-range-separator {
+                                            line-height: 30px;
+                                        }
+                                    }
+
+                                    .select-trigger {
+                                        .el-input {
+                                            .el-input__wrapper {
+                                                height: 30px;
+                                            }
+                                        }
+
+                                        .el-input__suffix {
+                                            .el-input__icon {
+                                                line-height: 30px;
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+
+                            .el-button {
+                                height: 30px;
+                                padding: 0 20px;
+                                line-height: 5px;
+                            }
+                        }
+
+                        .main_charts {
+                            margin-top: 20px;
+
+                            .chartsStyle {
+                                height: 300px;
+                                width: 100%;
+                            }
+                        }
+
+                        .main_table {
+                            margin: 20px 0;
+
+                            .el-table {
+                                .el-table__body-wrapper {
+                                    height: 335px !important;
+                                    overflow-y: auto;
+                                }
+                            }
+                        }
+                    }
+
+                    .themeDa {
+                        .main_top {
+                            .exceed {
+                                .el-select {
+                                    .el-input {
+                                        .el-input__wrapper {
+                                            .el-input__suffix {
+                                                .el-input__suffix-inner {
+                                                    position: relative;
+                                                    left: -9px;
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+
+                        @import '../SecondaryPageStyle/globalblackStyle.less';
+                    }
+
+                    // .themeLi {
+                    //     @import '../SecondaryPageStyle/globalwhiteStyle.less';
+                    // }
+                }
+            }
+        }
+    }
 </style>

File diff suppressed because it is too large
+ 86426 - 0
src/views/generatingCapacity/dataAnalysis/agcAnalysis/agcJson.json


+ 23 - 8
src/views/generatingCapacity/dataAnalysis/agcAnalysis/index.vue

@@ -48,6 +48,8 @@
     import CurrentScatterChart from './components/current-scatter-chart.vue'
     import httpRequest from '@/utils/request.js'
     import dayjs from 'dayjs';
+    import agcJson from './agcJson.json'
+
     /**配置参数 */
     const tableHeight = ref(window.innerHeight - 170 + 'px')
     const treeHeight = ref(window.innerHeight - 170 + 'px') //tree高度
@@ -147,6 +149,7 @@
         const res = await httpRequest.get('/agc/deviate', {
             params: params
         })
+        // const res = agcJson
         tableColumn.value = [{
                 prop: 'ts',
                 label: '时间',
@@ -188,17 +191,29 @@
         res['有功设定限值'].values.map((o, index) => {
             tsArr.push(dayjs(o.ts).format('YYYY-MM-DD HH:mm:ss'))
             ygsdxz.push(Number(o.value).toFixed(2))
-            sfyg.push(Number(res['实发有功'].values[index].value).toFixed(2))
-            llgl.push(Number(res['理论功率'].values[index].value).toFixed(2))
-            pcsx.push(Number(res['偏差上限'].values[index].value).toFixed(2))
-            pcxx.push(Number(res['偏差下限'].values[index].value).toFixed(2))
+            if (res['实发有功'].values.length > 0) {
+                sfyg.push(Number(res['实发有功'].values[index].value).toFixed(2))
+            }
+            if (res['理论功率'].values.length > 0) {
+                llgl.push(Number(res['理论功率'].values[index].value).toFixed(2))
+            }
+            if (res['偏差上限'].values.length > 0) {
+                pcsx.push(Number(res['偏差上限'].values[index].value).toFixed(2))
+            }
+            if (res['偏差下限'].values.length > 0) {
+                pcxx.push(Number(res['偏差下限'].values[index].value).toFixed(2))
+            }
             tableArr.push({
                 ts: dayjs(o.ts).format('YYYY-MM-DD HH:mm:ss'),
                 ygsdxz: Number(o.value).toFixed(2),
-                sfyg: Number(res['实发有功'].values[index].value).toFixed(2),
-                llgl: Number(res['理论功率'].values[index].value).toFixed(2),
-                pcsx: Number(res['偏差上限'].values[index].value).toFixed(2),
-                pcxx: Number(res['偏差下限'].values[index].value).toFixed(2),
+                sfyg: res['实发有功'].values.length > 0 ? Number(res['实发有功'].values[index].value)
+                    .toFixed(2) : '-',
+                llgl: res['理论功率'].values.length > 0 ? Number(res['理论功率'].values[index].value)
+                    .toFixed(2) : '-',
+                pcsx: res['偏差上限'].values.length > 0 ? Number(res['偏差上限'].values[index].value)
+                    .toFixed(2) : '-',
+                pcxx: res['偏差下限'].values.length > 0 ? Number(res['偏差下限'].values[index].value)
+                    .toFixed(2) : '-',
             })
         })
         xAxisData.value = tableArr.map(o => o.ts)

+ 3 - 3
src/views/generatingCapacity/dataAnalysis/angleAnalysis/components/current-scatter-chart.vue

@@ -267,9 +267,9 @@
                         // inactiveColor: that.echartsTheme === "dark" ?
                         //     partten.getColor("gray") : "#000",
                         textStyle: {
-                            // color: that.echartsTheme === "dark" ?
-                            //     partten.getColor("grayl") : "#000",
-                            fontSize: 12,
+                            color: that.echartsTheme === "dark" ?
+                                partten.getColor("grayl") : "#000",
+                            fontSize: 14,
                         },
 
                     },

+ 41 - 11
src/views/generatingCapacity/dataAnalysis/angleAnalysis/index.vue

@@ -15,13 +15,25 @@
                     </excel-cop>
                 </div>
                 <div class="tableDataMain">
-                    <div class="px-[10px] shadow rounded-[6px] shadow-blue-500 ">
-                        <CurrentScatterChart ref="chartRef" width="100%" :height="`calc( ${tableHeight})`"
-                            :chartTitle="''" :xAxisData="xAxisData" :yAxisData="{ splitLine: { show: false } }"
-                            :seriesData="seriesData" :seriesAllData="seriesAllData" :showLegend="true"
-                            :brushSelected="false" :dataSet="dataSet" :theme="theme" :echartsTheme="echartsTheme"
-                            @getSelected="funChartSelect" />
-                    </div>
+                    <el-tabs v-model="activeTab">
+                        <el-tab-pane label="图表展示" name="1">
+                        </el-tab-pane>
+                        <el-tab-pane label="表格数据" name="2">
+                        </el-tab-pane>
+                        <div v-if="activeTab === '2'" :style="{ height: tableHeight }">
+                            <table-cop class="" :data="tableData" :column="tableColumn" :theme="theme"
+                                :height="tableHeight" tableId="1" tableName="浆距角分析"></table-cop>
+                        </div>
+                        <div v-if="activeTab === '1'" :style="{ height: tableHeight }">
+                            <!-- :height="`calc( ${tableHeight})`" -->
+                            <CurrentScatterChart ref="chartRef" width="100%" height="75vh" :chartTitle="''"
+                                style="margin-top:3vh" :xAxisData="xAxisData"
+                                :yAxisData="{ splitLine: { show: false } }" :seriesData="seriesData"
+                                :seriesAllData="seriesAllData" :showLegend="true" :brushSelected="false"
+                                :dataSet="dataSet" :theme="theme" :echartsTheme="echartsTheme"
+                                @getSelected="funChartSelect" />
+                        </div>
+                    </el-tabs>
                 </div>
             </div>
         </div>
@@ -30,6 +42,7 @@
 <script setup name="prepare">
     import excelCop from '@/components/generatingCapacityComponent/excel.vue'
     import treeCop from '@/components/generatingCapacityComponent/tree.vue'
+    import tableCop from '@/components/generatingCapacityComponent/table.vue'
     import {
         ElMessage
     } from 'element-plus';
@@ -45,7 +58,7 @@
     import CurrentScatterChart from './components/current-scatter-chart.vue'
     import httpRequest from '@/utils/request.js'
     /**配置参数 */
-    const tableHeight = ref(window.innerHeight - 120 + 'px')
+    const tableHeight = ref(window.innerHeight - 170 + 'px')
     const treeHeight = ref(window.innerHeight - 120 + 'px') //tree高度
     const excelHeight = ref(window.innerHeight - 120 + 'px') //excel高度
     /**excel 开始 */
@@ -129,7 +142,23 @@
     /**table 开始 */
     const tableShowId = ref('')
     const tableName = ref('')
-    const tableColumn = ref([])
+    const tableColumn = ref([{
+            prop: 'time',
+            label: '时间'
+        },
+        {
+            prop: 'yp1',
+            label: '叶片一'
+        },
+        {
+            prop: 'yp2',
+            label: '叶片二'
+        },
+        {
+            prop: 'yp3',
+            label: '叶片三'
+        }
+    ])
     const tableLoading = ref(false)
     const tableData = ref([])
     /**tab  */
@@ -162,6 +191,7 @@
             yp2.push(it.yp2)
             yp3.push(it.yp3)
         })
+        tableData.value = res.data.bw
         seriesAllData.value = res.data.bw
         // res.data.bw.forEach(it => {
         //     yp2.push(it.yp2)
@@ -224,11 +254,11 @@
         funGetTree()
         theme.value = store.state.theme
         echartsTheme.value = !theme.value ? 'dark' : ''
-        tableHeight.value = window.innerHeight - 120 + 'px'
+        tableHeight.value = window.innerHeight - 170 + 'px'
         excelHeight.value = window.innerHeight - 120 + 'px'
         treeHeight.value = window.innerHeight - 120 + 'px'
         window.addEventListener('resize', () => {
-            tableHeight.value = window.innerHeight - 120 + 'px'
+            tableHeight.value = window.innerHeight - 170 + 'px'
             excelHeight.value = window.innerHeight - 120 + 'px'
             treeHeight.value = window.innerHeight - 120 + 'px'
         })

+ 8 - 8
src/views/generatingCapacity/dataAnalysis/combine/index.vue

@@ -29,16 +29,11 @@
                     </div>
                 </div>
                 <div class="tableDataMain">
-                    <SubmitBtn class="butten_com" desc="区域划分" v-if="activeTab === '2' && excelType === 'fitting'"
+                    <SubmitBtn class="butten_com" desc="区域划分" v-if="activeTab === '1' && excelType === 'fitting'"
                         @click="funChartArea">
                     </SubmitBtn>
                     <el-tabs v-model="activeTab" @tab-click="handleClick">
-                        <el-tab-pane label="表格数据" name="1">
-                            <table-cop :data="tableData" :column="tableColumn" :theme="theme" :loading="tableLoading"
-                                :height="tableHeight" :tableId="tableShowId" :tableName="tableName">
-                            </table-cop>
-                        </el-tab-pane>
-                        <el-tab-pane label="图表展示" name="2">
+                        <el-tab-pane label="图表展示" name="1">
                             <div
                                 :style="{ height: typeof tableHeight === 'string' ? tableHeight : tableHeight + 'px' }">
                                 <CurrentScatterChart ref="chartRef" width="100%"
@@ -50,6 +45,11 @@
                                     @getSelected="funChartSelect" />
                             </div>
                         </el-tab-pane>
+                        <el-tab-pane label="表格数据" name="2">
+                            <table-cop :data="tableData" :column="tableColumn" :theme="theme" :loading="tableLoading"
+                                :height="tableHeight" :tableId="tableShowId" :tableName="tableName">
+                            </table-cop>
+                        </el-tab-pane>
                     </el-tabs>
                 </div>
             </div>
@@ -166,7 +166,7 @@
                 }
             })
         } else if (obj.type === 'fitting') {
-            activeTab.value = '2'
+            activeTab.value = '1'
             res = await httpRequest.get('/power/fitting/show', {
                 params: {
                     id: obj.id

+ 5 - 3
src/views/generatingCapacity/dataAnalysis/hotAnalysis/components/current-scatter-chart.vue

@@ -369,9 +369,11 @@
         },
         mounted() {
             // this.$nextTick(() => {
-            this.$el.style.width = this.width;
-            this.$el.style.height = this.height;
-            this.initChart();
+            this.$nextTick(() => {
+                this.$el.style.width = this.width;
+                this.$el.style.height = this.height;
+                this.initChart();
+            })
             // });
         },
         updated() {

+ 31 - 9
src/views/generatingCapacity/dataAnalysis/hotAnalysis/index.vue

@@ -17,11 +17,13 @@
                     <div class="tableDataMain">
                         <div class="">
                             <el-tabs v-model="activeTab">
-                                <el-tab-pane label="温度与功率" name="1">
+                                <el-tab-pane label="温度曲线" name="1">
                                 </el-tab-pane>
-                                <el-tab-pane label="温度曲线" name="2">
+                                <el-tab-pane label="温度与功率" name="2">
                                 </el-tab-pane>
-                                <div v-show="activeTab === '1'" :style="{ height: tableHeight }">
+                                <el-tab-pane label="表格数据" name="3">
+                                </el-tab-pane>
+                                <div v-if="activeTab === '2'" :style="{ height: tableHeight }">
                                     <div style="height:49%">
                                         <el-icon :style="!theme ? 'color: #fff' : ''" class="chartIcon" size="18"
                                             @click="funActCop({xAxis:barxAxis, yAxis:baryAxis, series: barSeries}, 'barChartCop')">
@@ -44,7 +46,7 @@
                                         </line-chart-cop>
                                     </div>
                                 </div>
-                                <div v-if="activeTab === '2'"
+                                <div v-if="activeTab === '1'"
                                     :style="{ height: typeof tableHeight === 'string' ? tableHeight : tableHeight + 'px' }"
                                     class="p-[10px]">
                                     <CurrentScatterChart ref="chartRef" width="100%"
@@ -55,6 +57,10 @@
                                         :maxMinData="maxMinData" :theme="theme" :echartsTheme="echartsTheme"
                                         :dataSet="dataSet" @getSelected="funhotChartSelect" />
                                 </div>
+                                <div v-if="activeTab === '3'" :style="{ height: tableHeight }">
+                                    <table-cop class="" :data="tableData" :column="tableColumn" :theme="theme"
+                                        :height="tableHeight" tableId="1" tableName="温度与功率分析"></table-cop>
+                                </div>
                             </el-tabs>
                         </div>
                     </div>
@@ -113,6 +119,7 @@
 <script setup name="prepare">
     import excelCop from '@/components/generatingCapacityComponent/excel.vue'
     import treeCop from '@/components/generatingCapacityComponent/tree.vue'
+    import tableCop from '@/components/generatingCapacityComponent/table.vue'
     import barChartCop from './components/barChart.vue'
     import lineChartCop from './components/lineChart.vue'
     import {
@@ -140,6 +147,24 @@
     const tableHeight = ref(window.innerHeight - 171 + 'px')
     /** 额定功率 */
     const powerproduction = ref("")
+    const tableData = ref([])
+    const tableColumn = ref([])
+    const tableDataGet = async () => {
+        const res = await httpRequest.get('/temperature/show', {
+            params: {
+                id: excelCheckIds.value.join()
+            }
+        })
+        tableColumn.value = res.data.title.map(o => {
+            return {
+                prop: o.key,
+                label: o.des,
+                width: o.des === '时间' ? 100 : 80,
+
+            }
+        })
+        tableData.value = res.data.data
+    }
     /**excel 开始 */
     const excelCheckboxShow = ref(false)
     const excelCheckIds = ref([])
@@ -156,6 +181,7 @@
         queryForm.checkIds = excelList.value.map(o => o.id)
         checkAll.value = true
         funSubmit()
+        tableDataGet()
         /**---------------------------- */
         // activeTab.value = '1'
         isChartArea.value = false
@@ -199,11 +225,6 @@
             avgObj.cpavg = Number(chartRes.obj.cpavg).toFixed(2)
             avgObj.frequency = Number(chartRes.obj.frequency).toFixed(2)
             avgObj.pcratio = Number(chartRes.obj.pcratio).toFixed(2)
-            // dataSet.value = JSON.stringify([
-            // 	{
-            // 		source: chartRes.scatter
-            // 	},
-            // ])
             const color = ["#1C99FF", "#FF8700", "#3D54BE", "#fa8c16", "#1DA0D7", "#DD5044"]
             seriesData.value = [{
                     name: "拟合功率",
@@ -230,6 +251,7 @@
                         scale: 1
                     },
                     name: '数据散点',
+                    symbolSize: 5,
                     // symbolSize: (data) => {
                     // 	return data.s ? data.s > 10 ? 10 : data.s : 4
                     // },

+ 1 - 1
src/views/generatingCapacity/dataAnalysis/lineAnalysis/index.vue

@@ -64,7 +64,7 @@
         </el-dialog>
         <el-dialog custom-class="windLifeDialog warn-table" draggable v-model="wtDialog" title="曲线偏差率">
             <el-table :data="wtData" row-key="id" :max-height="600">
-                <el-table-column property="windturbineId" align="center" label="风机" />
+                <el-table-column property="code" align="center" label="风机" />
                 <el-table-column property="pc5ratio" sortable align="center" label="3~5m" />
                 <el-table-column property="pc10ratio" sortable align="center" label="5~10m" />
                 <el-table-column property="pc12ratio" sortable align="center" label="10~12m" />

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

@@ -121,10 +121,10 @@
                                 data: item
                             }).bindTooltip(`
                                 <div class="tip-box-top">
-                                    <div class="item">${item.name}</div>
+                                    <div class="item">${item.aname}</div>
                                     <div class="item">经度:${item.latitude}°</div>
                                     <div class="item">纬度:${item.longitude}°</div>
-                                    <div class="item">海拔高度:${item.altitude}km</div>
+                                    <div class="item">海拔高度:${item.altitude}m</div>
                                 </div>`).addTo(this.map);
 
                             this.ciLayer.addLayer(marker)

+ 67 - 34
src/views/generatingCapacity/dataAnalysis/rateAnalysis/index.vue

@@ -15,37 +15,48 @@
                         @excelChange="funExcelChange" @checkChange="funExcelCheckChange" :theme="theme"></excel-cop>
                 </div>
                 <div class="tableDataMain">
-                    <el-row :style="{ height: tableHeight }">
-                        <el-col :span="12" v-for="(item, index) in chartData" :key="item.id" style="height: 45%">
-                            <el-icon :style="!theme ? 'color: #fff' : ''" size="18"
-                                @click="funActCop(item, 'chartCop' + (index + 1))">
-                                <ZoomIn />
-                            </el-icon>
-                            <chart-cop class="" height="100%" width="100%" :xAxis="item.xAxis" :isRadar="item.isRadar"
-                                :theme="theme" :echartsTheme="echartsTheme" :subtext="item.subtext" :title="item.title"
-                                :series="item.series">
-                            </chart-cop>
-                        </el-col>
-                        <el-col :span="12" v-if="!!lineSeries.length" style="height: 50%">
-                            <el-icon :style="!theme ? 'color: #fff' : ''" size="18"
-                                @click="funActCop({ xAxis: linexAxis, yAxis: lineyAxis, series: lineSeries, dataset: lineDataSet }, 'lineChartCop')">
-                                <ZoomIn />
-                            </el-icon>
-                            <line-chart-cop class="" height="100%" width="100%" :xAxis="linexAxis" :yAxis="lineyAxis"
-                                :theme="theme" :echartsTheme="echartsTheme" :series="lineSeries" subtext="对风偏差分析图"
-                                :dataset="lineDataSet"></line-chart-cop>
-                        </el-col>
-                        <el-col :span="12" v-if="!!lineSeries.length" style="height: 50%">
-                            <el-icon :style="!theme ? 'color: #fff' : ''" size="18"
-                                @click="funActCop({ xAxis: scatterxData, yAxis: scatteryData, series: scatterSeries }, 'scatterSingleChartCop')">
-                                <ZoomIn />
-                            </el-icon>
-                            <scatter-single-chart-cop class="" height="95%" width="100%" :xAxis="scatterxData"
-                                :theme="theme" :echartsTheme="echartsTheme" :yAxis="scatteryData"
-                                :series="scatterSeries" subtext="静态偏航对风分析图">
-                            </scatter-single-chart-cop>
-                        </el-col>
-                    </el-row>
+                    <el-tabs v-model="activeTab">
+                        <el-tab-pane label="图表展示" name="1">
+                        </el-tab-pane>
+                        <el-tab-pane label="表格数据" name="2">
+                        </el-tab-pane>
+                        <div v-if="activeTab === '2'" :style="{ height: tableHeight }">
+                            <table-cop class="" :data="tableData" :column="tableColumn" :theme="theme"
+                                :height="tableHeight" tableId="1" tableName="对风偏差分析"></table-cop>
+                        </div>
+                        <el-row v-if="activeTab === '1'" :style="{ height: tableHeight }">
+                            <el-col :span="12" v-for="(item, index) in chartData" :key="item.id" style="height: 45%">
+                                <el-icon :style="!theme ? 'color: #fff' : ''" size="18"
+                                    @click="funActCop(item, 'chartCop' + (index + 1))">
+                                    <ZoomIn />
+                                </el-icon>
+                                <chart-cop class="" height="100%" width="100%" :xAxis="item.xAxis"
+                                    :isRadar="item.isRadar" :theme="theme" :echartsTheme="echartsTheme"
+                                    :subtext="item.subtext" :title="item.title" :series="item.series">
+                                </chart-cop>
+                            </el-col>
+                            <el-col :span="12" v-if="!!lineSeries.length" style="height: 45%">
+                                <el-icon :style="!theme ? 'color: #fff' : ''" size="18"
+                                    @click="funActCop({ xAxis: linexAxis, yAxis: lineyAxis, series: lineSeries, dataset: lineDataSet }, 'lineChartCop')">
+                                    <ZoomIn />
+                                </el-icon>
+                                <line-chart-cop class="" height="100%" width="100%" :xAxis="linexAxis"
+                                    :yAxis="lineyAxis" :theme="theme" :echartsTheme="echartsTheme" :series="lineSeries"
+                                    subtext="对风偏差分析图" :dataset="lineDataSet"></line-chart-cop>
+                            </el-col>
+                            <el-col :span="12" v-if="!!lineSeries.length" style="height: 45%">
+                                <el-icon :style="!theme ? 'color: #fff' : ''" size="18"
+                                    @click="funActCop({ xAxis: scatterxData, yAxis: scatteryData, series: scatterSeries }, 'scatterSingleChartCop')">
+                                    <ZoomIn />
+                                </el-icon>
+                                <scatter-single-chart-cop class="" height="95%" width="100%" :xAxis="scatterxData"
+                                    :theme="theme" :echartsTheme="echartsTheme" :yAxis="scatteryData"
+                                    :series="scatterSeries" subtext="静态偏航对风分析图">
+                                </scatter-single-chart-cop>
+                            </el-col>
+                        </el-row>
+                    </el-tabs>
+
                 </div>
             </div>
         </div>
@@ -101,6 +112,7 @@
 <script setup name="rateAnalysis">
     import excelCop from '@/components/generatingCapacityComponent/excel.vue'
     import treeCop from '@/components/generatingCapacityComponent/tree.vue'
+    import tableCop from '@/components/generatingCapacityComponent/table.vue'
     import chartCop from './components/chart.vue'
     import lineChartCop from './components/lineChart.vue'
     // import SubmitBtn from '../../../components/SubmitBtn.vue'
@@ -125,8 +137,9 @@
     /**配置参数 */
     const treeHeight = ref(window.innerHeight - 116 + 'px') //tree高度
     const excelHeight = ref(window.innerHeight - 116 + 'px') //excel高度
-    const tableHeight = ref(window.innerHeight - 116 + 'px')
+    const tableHeight = ref(window.innerHeight - 170 + 'px')
     /**excel 开始 */
+    const activeTab = ref('1')
     const excelCheckIds = ref([])
     const excelList = ref([])
     //点击excel项时
@@ -141,6 +154,7 @@
         queryForm.checkIds = excelList.value.map(o => o.id)
         checkAll.value = true
         funSubmit()
+        tableDataGet()
     }
     const funExcelCheckChange = ({
         checkArr,
@@ -148,6 +162,25 @@
     }) => {
         excelCheckIds.value = checkArr
     }
+    /**表格数据 */
+    const tableData = ref([])
+    const tableColumn = ref([])
+    const tableDataGet = async () => {
+        const res = await httpRequest.get('/wind/show', {
+            params: {
+                id: excelCheckIds.value.join()
+            }
+        })
+        tableColumn.value = res.data.title.map(o => {
+            return {
+                prop: o.key,
+                label: o.des,
+                width: o.des === '时间' ? 100 : 80,
+
+            }
+        })
+        tableData.value = res.data.data
+    }
     /**tree 开始 */
     const treeData = ref([])
     const actTreeNode = ref(null)
@@ -882,11 +915,11 @@
         //
         theme.value = store.state.theme
         echartsTheme.value = !theme.value ? 'dark' : ''
-        tableHeight.value = window.innerHeight - 116 + 'px'
+        tableHeight.value = window.innerHeight - 170 + 'px'
         excelHeight.value = (window.innerHeight - 116) + 'px'
         treeHeight.value = (window.innerHeight - 116) + 'px'
         window.addEventListener('resize', () => {
-            tableHeight.value = window.innerHeight - 116 + 'px'
+            tableHeight.value = window.innerHeight - 170 + 'px'
             excelHeight.value = (window.innerHeight - 116) + 'px'
             treeHeight.value = (window.innerHeight - 116) + 'px'
         })

+ 5 - 6
src/views/generatingCapacity/dataAnalysis/windAnalysis/index.vue

@@ -18,14 +18,14 @@
                 <div class="tableDataMain">
                     <div class="px-[10px] shadow rounded-[6px] shadow-blue-500 ">
                         <el-tabs v-model="activeTab">
-                            <el-tab-pane label="表格数据" name="1">
+                            <el-tab-pane label="图表展示" name="1">
                             </el-tab-pane>
-                            <el-tab-pane label="图表展示" name="2">
+                            <el-tab-pane label="表格数据" name="2">
                             </el-tab-pane>
-                            <table-cop class="" v-show="activeTab === '1'" :data="tableData" :showSummary="true"
+                            <table-cop class="" v-show="activeTab === '2'" :data="tableData" :showSummary="true"
                                 :summaryMethod="funSummary" :column="tableColumn" :loading="tableLoading" :theme="theme"
                                 :height="tableHeight" :tableId="tableShowId" :tableName="tableName"></table-cop>
-                            <div v-show="activeTab === '2'"
+                            <div v-show="activeTab === '1'"
                                 :style="{ height: typeof tableHeight === 'string' ? tableHeight : tableHeight + 'px' }"
                                 class="p-[10px]">
                                 <bar-line-chart-cop v-show="lineData.length" :height="tableHeight" :bardata="barData"
@@ -202,7 +202,7 @@
 
         tableLoading.value = false
         tableShowId.value = '1'
-        activeTab.value = '2'
+        activeTab.value = '1'
     }
     /**barlineChart 开始 */
     const barData = ref({
@@ -314,7 +314,6 @@
         const checkIds = []
         if (checkedNodes.checkedNodes.length) {
             let checkArr = checkedNodes.checkedNodes
-            debugger
             checkArr.forEach(it => {
                 if (it.childs && it.childs.length) {
                     it.childs.forEach(iv => {

+ 11 - 2
src/views/powerPrediction/homePageNoMap.vue

@@ -12,7 +12,8 @@
         </div>
         <div class="homePage_main">
             <div class="mainLeft">
-                <div class="lineStyle" v-on:dblclick="doubleclick('全域功率预测')" style="position: relative">
+                <div class="lineStyle" :style="leftDivStyle" v-on:dblclick="doubleclick('全域功率预测')"
+                    style="position: relative">
                     <div style="display: flex;float: right;justify-content: end;margin-right: 53px;">
                         <div v-for="item in showpowerLegend" :key="item.name">
                             <span class="lineColor" :style="{'background': item.color}"></span>
@@ -27,7 +28,8 @@
                     </div>
                     <div id="lineChart" :style="lineChartStyle"></div>
                 </div>
-                <div class="lineStyle" v-on:dblclick="doubleclick('全域风速预测')" style="position: relative">
+                <div class="lineStyle" :style="leftDivStyle" v-on:dblclick="doubleclick('全域风速预测')"
+                    style="position: relative">
                     <div class="chart-name">
                         <div class="point point-left bottom"></div>
                         <div class="point point-right bottom"></div>
@@ -644,6 +646,13 @@
                     'height': document.documentElement.clientHeight - 115 + 'px'
                 }
             },
+            leftDivStyle() {
+                let pageHeight = document.documentElement.clientHeight - 210
+                let heightChart = pageHeight / 2 + 'px'
+                return {
+                    'height': heightChart
+                }
+            },
             lineChartStyle() {
                 let pageHeight = document.documentElement.clientHeight - 210
                 let heightChart = pageHeight / 2 + 'px'