Browse Source

配合世利增加自动填报工具功能;配合王波增加智能报表中的关口计量表和erp表进行分场站展示,系统左侧菜单进行修改;登录页样式修改;部署正式环境后看是否有问题;

SunZehao 1 year ago
parent
commit
5b111d643e

+ 1 - 0
components.d.ts

@@ -34,6 +34,7 @@ declare module 'vue' {
     ElInput: typeof import('element-plus/es')['ElInput']
     ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
     ElOption: typeof import('element-plus/es')['ElOption']
+    ElPopover: typeof import('element-plus/es')['ElPopover']
     ElProgress: typeof import('element-plus/es')['ElProgress']
     ElRadio: typeof import('element-plus/es')['ElRadio']
     ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']

+ 169 - 17
src/App.vue

@@ -8,30 +8,49 @@
 <template>
     <div class="windLife" :class="!swichTheme ? 'themeDark' : 'themeLight'">
         <common-header v-if="showHeader" @headerName="headerName" @swichFn="swichFn"></common-header>
-        <div class="menu-body" :class="!fixed ? 'menuBs' : ''" v-if="isShowMenu" @mouseenter="showMenu"
-            @mouseleave="hideMenu">
+        <!-- :class="!fixed ? 'menuBs' : ''" v-if="isShowMenu" -->
+        <div class="menu-body" @mouseenter="showMenu" v-if="isShowMenu" @mouseleave="hideMenu">
             <ul class="menu-list">
                 <li class="menu-item" v-for="(menu, index) in showMenuData" :key="index"
                     @click="handleNodeClick(menu.index)">
-                    <router-link :to="menu.index">
+                    <router-link :to="menu.index" v-if="menu.children">
+                        <!-- <el-tooltip class="item" effect="dark" :content="menu.name" placement="right"
+                            :enterable="false">
+                            <img :src="menu.img" alt="">
+                        </el-tooltip> -->
+                        <el-popover placement="right-end" :width="200" trigger="hover" effect="dark">
+                            <template #reference>
+                                <img :src="menu.img" alt="">
+                            </template>
+                            <div class="menuChildren">
+                                <p v-for="(it, index) in menu.children" :key="index"
+                                    @click="openReportDetail(it.index, it.nameEn)">{{it.name}}</p>
+                            </div>
+                        </el-popover>
+                    </router-link>
+                    <router-link :to="menu.index" v-else>
                         <el-tooltip class="item" effect="dark" :content="menu.name" placement="right"
                             :enterable="false">
-                            <component :is="menu.icon">
-                            </component>
+                            <!-- <component :is="menu.icon">
+                            </component> -->
+                            <img :src="menu.img" alt="">
                         </el-tooltip>
                     </router-link>
                 </li>
-                <li class="lockpage" @click="handleClickFixed">
-                    <el-icon v-if="fixed" style="width:25px;height:25px">
+                <!-- <el-icon v-if="fixed" style="width:25px;height:25px">
                         <Lock />
                     </el-icon>
                     <el-icon v-else style="width:25px;height:25px">
                         <Unlock />
-                    </el-icon>
-                </li>
+                    </el-icon> -->
+                <!-- <li class="lockpage" @click="handleClickFixed">
+                    <img :src="proJie" v-if="fixed" alt="">
+                    <img :src="proSuo" v-else alt="">
+                </li> -->
             </ul>
         </div>
-        <div :style="{ paddingLeft: fixed ? '65px' : 0 }">
+        <!-- :style="{ paddingLeft: fixed ? '65px' : 0 }" -->
+        <div :style="{ paddingLeft: isShowMenu ? '65px' : 0 }">
             <router-view />
         </div>
 
@@ -40,6 +59,36 @@
 
 <script>
     import commonHeader from '@/components/commonHeaders.vue'
+    // 发电能力分析
+    import gener_agcfx from '@/assets/menuImg/gener_agcfx.png'
+    import gener_dfpcfx from '@/assets/menuImg/gener_dfpcfx.png'
+    import gener_fdsjcl from '@/assets/menuImg/gener_fdsjcl.png'
+    import gener_fdsjzb from '@/assets/menuImg/gener_fdsjzb.png'
+    import gener_fxbg from '@/assets/menuImg/gener_fxbg.png'
+    import gener_glqxnhfx from '@/assets/menuImg/gener_glqxnhfx.png'
+    import gener_jjjfx from '@/assets/menuImg/gener_jjjfx.png'
+    import gener_mrlfx from '@/assets/menuImg/gener_mrlfx.png'
+    import gener_qxpclfx from '@/assets/menuImg/gener_qxpclfx.png'
+    import gener_ssdlfx from '@/assets/menuImg/gener_ssdlfx.png'
+    import gener_wdyglfx from '@/assets/menuImg/gener_wdyglfx.png'
+    import gener_wgxzfx from '@/assets/menuImg/gener_wgxzfx.png'
+    // 功率预测
+    import power_dlyc from '@/assets/menuImg/power_dlyc.png'
+    import power_glyc from '@/assets/menuImg/power_glyc.png'
+    import power_gy from '@/assets/menuImg/power_gy.png'
+    import power_qjgl from '@/assets/menuImg/power_qjgl.png'
+    import power_tjhz from '@/assets/menuImg/power_tjhz.png'
+    import power_tqyb from '@/assets/menuImg/power_tqyb.png'
+    // 智能报表
+    import report_bbjb from '@/assets/menuImg/report_bbjb.png'
+    import report_bbsb from '@/assets/menuImg/report_bbsb.png'
+    import report_czzybb from '@/assets/menuImg/report_czzybb.png'
+    import report_erp from '@/assets/menuImg/report_erp.png'
+    import report_gkjlb from '@/assets/menuImg/report_gkjlb.png'
+    // 锁
+    import pro_suo from '@/assets/menuImg/pro_suo.png'
+    import pro_jie from '@/assets/menuImg/pro_jie.png'
+
     export default {
         components: {
             commonHeader,
@@ -47,124 +96,196 @@
         data() {
             return {
                 showHeader: false,
-                showHeader: false,
-                loading: true,
                 isShowMenu: false,
-                isShowMenuDiv: false,
-                isFixed: false,
                 showMenuData: [],
+                proSuo: pro_suo,
+                proJie: pro_jie,
                 powerPreDatas: [{
                         index: '/powerPrediction/index',
                         icon: 'Coin',
+                        img: power_gy,
                         name: '概要'
                     },
                     {
                         index: '/powerPrediction/panoramicPower',
                         icon: 'DataBoard',
+                        img: power_qjgl,
                         name: '全景功率'
                     },
                     {
                         index: '/powerPrediction/power',
                         icon: 'DataAnalysis',
+                        img: power_glyc,
                         name: '功率预测'
                     },
                     {
                         index: '/powerPrediction/batteryDiviner',
                         icon: 'DataLine',
+                        img: power_dlyc,
                         name: '电量预测'
                     },
                     {
                         index: '/powerPrediction/weather',
                         icon: 'Sunrise',
+                        img: power_tqyb,
                         name: '天气预报'
                     },
                     {
                         index: '/powerPrediction/statisticalSummary',
                         icon: 'Tickets',
+                        img: power_tjhz,
                         name: '统计汇总'
                     },
                 ],
                 intelligentReportDatas: [{
                         icon: 'ScaleToOriginal',
                         index: '/intelligentReport/gkjlb',
-                        name: '关口计量表'
+                        img: report_gkjlb,
+                        name: '关口计量表',
+                        children: [{
+                            name: '新庄风电场',
+                            nameEn: 'xinzhuang',
+                            index: '/intelligentReport/gkjlb',
+                        }, {
+                            name: '吉山梁风电场',
+                            nameEn: 'jiliangshan',
+                            index: '/intelligentReport/gkjlb',
+                        }, {
+                            name: '左庄风电场',
+                            nameEn: 'zuozhuang',
+                            index: '/intelligentReport/gkjlb',
+                        }, {
+                            name: '繁食沟风电场',
+                            nameEn: 'fanshigou',
+                            index: '/intelligentReport/gkjlb',
+                        }, {
+                            name: '草山梁风电场',
+                            nameEn: 'caoshanliang',
+                            index: '/intelligentReport/gkjlb',
+                        }, {
+                            name: '雷家山风电场',
+                            nameEn: 'leijiashan',
+                            index: '/intelligentReport/gkjlb',
+                        }]
                     },
                     {
                         icon: 'Eleme',
                         index: '/intelligentReport/erp',
-                        name: 'ERP'
+                        img: report_erp,
+                        name: 'ERP',
+                        children: [{
+                            name: '新庄风电场',
+                            nameEn: 'xinzhuang',
+                            index: '/intelligentReport/erp',
+                        }, {
+                            name: '吉山梁风电场',
+                            nameEn: 'jiliangshan',
+                            index: '/intelligentReport/erp',
+                        }, {
+                            name: '左庄风电场',
+                            nameEn: 'zuozhuang',
+                            index: '/intelligentReport/erp',
+                        }, {
+                            name: '繁食沟风电场',
+                            nameEn: 'fanshigou',
+                            index: '/intelligentReport/erp',
+                        }, {
+                            name: '草山梁风电场',
+                            nameEn: 'caoshanliang',
+                            index: '/intelligentReport/erp',
+                        }, {
+                            name: '雷家山风电场',
+                            nameEn: 'leijiashan',
+                            index: '/intelligentReport/erp',
+                        }]
                     },
                     {
                         icon: 'Memo',
                         index: '/intelligentReport/czzyb',
+                        img: report_czzybb,
                         name: '场站自由报表'
                     },
                     {
                         icon: 'Finished',
                         index: '/intelligentReport/reporting',
+                        img: report_bbsb,
                         name: '报表上报'
                     },
                     {
                         icon: 'Odometer',
                         index: '/intelligentReport/scriptgeneration',
+                        img: report_bbjb,
                         name: '报表脚本'
                     },
                 ],
                 generatingCapDatas: [{
                         icon: 'Coin',
                         index: '/generatingCap/dataFilter/prepare',
+                        img: gener_fdsjzb,
                         name: '风电数据准备'
                     }, {
                         icon: 'DataAnalysis',
                         index: '/generatingCap/dataFilter/process',
+                        img: gener_fdsjcl,
                         name: '风电数据处理'
                     }, {
                         icon: 'Operation',
                         index: '/generatingCap/dataAnalysis/combine',
+                        img: gener_glqxnhfx,
                         name: '功率曲线拟合分析'
                     }, {
                         icon: 'ScaleToOriginal',
                         index: '/generatingCap/dataAnalysis/rateAnalysis',
+                        img: gener_dfpcfx,
                         name: '对风偏差分析'
                     }, {
                         icon: 'DataLine',
                         index: '/generatingCap/dataAnalysis/lineAnalysis',
+                        img: gener_qxpclfx,
                         name: '曲线偏差率分析'
                     }, {
                         icon: 'Odometer',
                         index: '/generatingCap/dataAnalysis/hotAnalysis',
+                        img: gener_wdyglfx,
                         name: '温度与功率分析'
                     }, {
                         icon: 'Finished',
                         index: '/generatingCap/dataAnalysis/windAnalysis',
+                        img: gener_ssdlfx,
                         name: '损失电量分析'
                     }, {
                         icon: 'Coordinate',
                         index: '/generatingCap/dataAnalysis/posAnalysis',
+                        img: gener_wgxzfx,
                         name: '微观选址分析'
                     }, {
                         icon: 'SetUp',
                         index: '/generatingCap/dataAnalysis/spaceAnalysis',
+                        img: gener_mrlfx,
                         name: '毛容量分析'
                     },
                     // {
                     //     icon: 'Suitcase',
                     //     index: '/generatingCap/dataAnalysis/angleAnalysis',
+                    // img: gener_jjjfx,
                     //     name: '浆距角分析'
                     // }, {
                     //     icon: 'Monitor',
                     //     index: '/generatingCap/dataAnalysis/agcAnalysis',
+                    // img: gener_agcfx,
                     //     name: 'AGC曲线偏差分析'
                     // }, 
                     {
                         icon: 'Files',
                         index: '/generatingCap/dataAnalysis/analysisReport',
+                        img: gener_fxbg,
                         name: '分析报告'
                     },
                 ],
                 memuCloseTimeout: null,
                 fixed: false,
-                swichTheme: false
+                swichTheme: false,
+                // swichTheme: true // 默认白色版本
             }
         },
         watch: {
@@ -201,6 +322,8 @@
                 this.showMenuData = this.intelligentReportDatas
             } else if (str.indexOf('generatingCap') > -1) {
                 this.showMenuData = this.generatingCapDatas
+            } else {
+                this.showMenuData = this.generatingCapDatas
             }
             // }
         },
@@ -225,6 +348,15 @@
                 }
                 // this.$router.go(0);
             },
+            openReportDetail(index, name) {
+                this.$router.push({
+                    // path: "/home"
+                    path: index,
+                    query: {
+                        name: name
+                    }
+                })
+            },
             showMenu() {
                 if (!this.fixed) {
                     this.isShowMenu = true;
@@ -258,6 +390,20 @@
     }
 </script>
 
+<style lang="less" scoped>
+    .el-popover {
+        .menuChildren {
+            p {
+                line-height: 40px;
+                cursor: pointer;
+
+                // :hover {
+                //     color: #4b55ae;
+                // }
+            }
+        }
+    }
+</style>
 <style lang="less">
     .windLife {
         height: 100%;
@@ -289,6 +435,11 @@
                 padding: 0;
                 list-style: none;
 
+                img {
+                    width: 25px;
+                    height: 25px;
+                }
+
                 .menu-item {
                     display: flex;
                     text-align: center;
@@ -342,6 +493,7 @@
         }
     }
 
+
     @import "./assets/css/main.css";
     @import "./assets/css/eleCss/index.less";
     @import "./assets/css/eleCss/el-popper.less";

+ 12 - 3
src/components/commonHeaders.vue

@@ -14,10 +14,15 @@
                     </el-button-group>
                     <div class="userMsg">
                         <!-- <span style="margin-right: 10px">{{userName}}</span> -->
-                        <el-tooltip class="box-item" effect="light" content="用户设置">
-                            <el-icon :size="size" :color="color">
+                        <el-tooltip class="box-item" effect="light" content="自动填报工具">
+                            <!-- <el-icon :size="size" :color="color">
                                 <Avatar />
-                            </el-icon>
+                            </el-icon> -->
+                            <a href="http://172.16.12.103:9001/script/download">
+                                <el-icon class="Settingitem" size="small" :color="color">
+                                    <ChromeFilled />
+                                </el-icon>
+                            </a>
                         </el-tooltip>
                     </div>
                     <div class="divider" style="margin: 0 20px">|</div>
@@ -326,6 +331,10 @@
                 .userMsg {
                     margin-left: 150px;
 
+                    a {
+                        color: #fff;
+                    }
+
                     .el-icon {
                         cursor: pointer;
                     }

+ 40 - 2
src/views/intelligentReporting/erp/index.vue

@@ -7,8 +7,7 @@
     export default {
         data() {
             return {
-                url: "http://172.16.12.101:8080/rbi/ebibase/showreport.do?resid=EANA$2$2$1$bd71f31ba69443b5b3f3997965927c41$938d90db87424df2ac6e21b990b889e3&id=admin&pw=admin"
-                // url: "http://123.60.219.66:8083/bi/ebibase/showreport.do?resid=EANA$2$2$1$041302f30436412d9ba78f161a6575f0$90580a90c10b4ee59dfa129528be1442&id=admin&pw=admin",
+                url: null,
             };
         },
         computed: {
@@ -17,6 +16,45 @@
                     'height': document.documentElement.clientHeight - 80 + 'px'
                 }
             },
+        },
+        watch: {
+            $route: {
+                handler: function (route) {
+                    this.url = null
+                    if (route.query.name) {
+                        if (route.query.name === 'xinzhuang') {
+                            this.url =
+                                'http://172.16.12.101:8080/rbi/ebibase/showreport.do?resid=EANA$2$2$1$bd71f31ba69443b5b3f3997965927c41$be0f8f75df7543978e9ddff5f7576a2b&id=admin&pw=admin'
+                        } else if (route.query.name === 'jiliangshan') {
+                            this.url =
+                                'http://172.16.12.101:8080/rbi/ebibase/showreport.do?resid=EANA$2$2$1$bd71f31ba69443b5b3f3997965927c41$d24a18e0985a46e5895573738a5cc384&id=admin&pw=admin'
+                        } else if (route.query.name === 'zuozhuang') {
+                            this.url =
+                                'http://172.16.12.101:8080/rbi/ebibase/showreport.do?resid=EANA$2$2$1$bd71f31ba69443b5b3f3997965927c41$be0f8f75df7543978e9ddff5f7576a2b&id=admin&pw=admin'
+                        } else if (route.query.name === 'fanshigou') {
+                            this.url =
+                                'http://172.16.12.101:8080/rbi/ebibase/showreport.do?resid=EANA$2$2$1$bd71f31ba69443b5b3f3997965927c41$ff22bb1d24bc416e9185a1e40be6976b&id=admin&pw=admin'
+                        } else if (route.query.name === 'caoshanliang') {
+                            this.url =
+                                'http://172.16.12.101:8080/rbi/ebibase/showreport.do?resid=EANA$2$2$1$bd71f31ba69443b5b3f3997965927c41$a946d1d7e6f242d7a1fdbaa32fd1601c&id=admin&pw=admin'
+                        } else if (route.query.name === 'leijiashan') {
+                            this.url =
+                                'http://172.16.12.101:8080/rbi/ebibase/showreport.do?resid=EANA$2$2$1$bd71f31ba69443b5b3f3997965927c41$8e0637d590ce4fa2b3a26455a81895b2&id=admin&pw=admin'
+                        }
+                    } else {
+                        let str = ''
+                        if (window.location.origin.indexOf('172.16.12.101') != -1) {
+                            str =
+                                'http://172.16.12.101:8080/rbi/ebibase/showreport.do?resid=EANA$2$2$1$bd71f31ba69443b5b3f3997965927c41$938d90db87424df2ac6e21b990b889e3&id=admin&pw=admin'
+                        } else {
+                            str =
+                                'http://123.60.219.66:8083/bi/ebibase/showreport.do?resid=EANA$2$2$1$041302f30436412d9ba78f161a6575f0$90580a90c10b4ee59dfa129528be1442&id=admin&pw=admin'
+                        }
+                        this.url = str
+                    }
+                },
+                immediate: true
+            }
         }
     };
 </script>

+ 40 - 2
src/views/intelligentReporting/gkjlb/index.vue

@@ -7,8 +7,7 @@
     export default {
         data() {
             return {
-                url: "http://172.16.12.101:8080/rbi/ebibase/showreport.do?resid=EANA$2$2$1$bd71f31ba69443b5b3f3997965927c41$c61354961de740f1acec8fc664034f81&id=admin&pw=admin"
-                // url: "http://123.60.219.66:8083/bi/ebibase/showreport.do?resid=EANA$2$2$1$041302f30436412d9ba78f161a6575f0$e97782eaa9444e11aa1b33c78d9dca1f&id=admin&pw=admin",
+                url: null
             };
         },
         computed: {
@@ -17,6 +16,45 @@
                     'height': document.documentElement.clientHeight - 80 + 'px'
                 }
             },
+        },
+        watch: {
+            $route: {
+                handler: function (route) {
+                    this.url = null
+                    if (route.query.name) {
+                        if (route.query.name === 'xinzhuang') {
+                            this.url =
+                                'http://172.16.12.101:8080/rbi/ebibase/showreport.do?resid=EANA$2$2$1$bd71f31ba69443b5b3f3997965927c41$4a71c6bc1fd34da7843c6eb2a7b3aee3&id=admin&pw=admin'
+                        } else if (route.query.name === 'jiliangshan') {
+                            this.url =
+                                'http://172.16.12.101:8080/rbi/ebibase/showreport.do?resid=EANA$2$2$1$bd71f31ba69443b5b3f3997965927c41$621b7c14e4aa4a0483a8e577d8dc4cff&id=admin&pw=admin'
+                        } else if (route.query.name === 'zuozhuang') {
+                            this.url =
+                                'http://172.16.12.101:8080/rbi/ebibase/showreport.do?resid=EANA$2$2$1$bd71f31ba69443b5b3f3997965927c41$36292212f28b4702af2c4aa01a62bdc1&id=admin&pw=admin'
+                        } else if (route.query.name === 'fanshigou') {
+                            this.url =
+                                'http://172.16.12.101:8080/rbi/ebibase/showreport.do?resid=EANA$2$2$1$bd71f31ba69443b5b3f3997965927c41$2320f3ed77e740d6bb1b66b1f7062ad1&id=admin&pw=admin'
+                        } else if (route.query.name === 'caoshanliang') {
+                            this.url =
+                                'http://172.16.12.101:8080/rbi/ebibase/showreport.do?resid=EANA$2$2$1$bd71f31ba69443b5b3f3997965927c41$3dc29db548d54d289e58bf4a30dfb026&id=admin&pw=admin'
+                        } else if (route.query.name === 'leijiashan') {
+                            this.url =
+                                'http://172.16.12.101:8080/rbi/ebibase/showreport.do?resid=EANA$2$2$1$bd71f31ba69443b5b3f3997965927c41$5ebbf0905b22448cbd9834ec6560fd26&id=admin&pw=admin'
+                        }
+                    } else {
+                        let str = ''
+                        if (window.location.origin.indexOf('172.16.12.101') != -1) {
+                            str =
+                                'http://172.16.12.101:8080/rbi/ebibase/showreport.do?resid=EANA$2$2$1$bd71f31ba69443b5b3f3997965927c41$c61354961de740f1acec8fc664034f81&id=admin&pw=admin'
+                        } else {
+                            str =
+                                'http://123.60.219.66:8083/bi/ebibase/showreport.do?resid=EANA$2$2$1$041302f30436412d9ba78f161a6575f0$e97782eaa9444e11aa1b33c78d9dca1f&id=admin&pw=admin'
+                        }
+                        this.url = str
+                    }
+                },
+                immediate: true
+            }
         }
     };
 </script>

+ 7 - 4
src/views/login/index.vue

@@ -163,12 +163,15 @@
     }
 
     .loginPic {
-        position: relative;
-        width: 100%;
-        height: 1080px;
+        // position: relative;
+        // width: 100%;
+        // height: 1080px;
+        height: 100vh;
         background-image: url('../../assets/windFramPicture/background1.jpg');
-        background-position: 0 0;
+        // background-position: 0 0;
+        background-position: center;
         background-repeat: no-repeat;
+        background-size: cover;
         display: flex;
 
         .login_left {