فهرست منبع

修改权限,固定显示菜单

baiyanting 2 سال پیش
والد
کامیت
511af1a667
6فایلهای تغییر یافته به همراه634 افزوده شده و 151 حذف شده
  1. 234 12
      src/App.vue
  2. 10 11
      src/components/menuNav/index.vue
  3. 50 50
      src/permission.js
  4. 252 23
      src/views/layout/economicsOperation/index.vue
  5. 1 1
      src/views/layout/index.vue
  6. 87 54
      src/views/layout/stateMonitor/index.vue

+ 234 - 12
src/App.vue

@@ -1,29 +1,251 @@
 <template>
-    <router-view />
+  <el-header v-if="showHeader === 'block'">
+    <ul class="header">
+      <p class="header_logo">
+          <img src="img/logo-main.png" alt="" srcset="" style="width: 163px;height: 40px">
+                <span>|</span>
+                智慧光伏集维管理系统
+      </p>
+      <div v-for="(item, index) in firstLevelTitle" :key="index">
+        <router-link v-if="!item.id" :to="item.path">
+          <li
+            class="header_right_title"
+            @click="headerCheck(index)"
+            :class="{ active: $route.matched[0]?.meta.title == item.titleName }"
+          >
+            {{ item.titleName }}
+          </li>
+        </router-link>
+        <a v-else :href="item.id == 'zhbj' ? pathZhbj : ''">
+          <li
+            class="header_right_title"
+            @click="headerCheck(index)"
+            :class="{ active: $route.matched[0]?.meta.title == item.titleName }"
+          >
+            {{ item.titleName }}
+          </li>
+        </a>
+      </div>
+      <li class="account_ic">
+        <i class="icon-account"></i>
+        <span class="tit">admin</span>
+        <span class="form"></span>
+      </li>
+    </ul>
+  </el-header>
+  <!-- <canves-map class="canves_map" v-if="showHeader === 'none'" /> -->
+  <router-view v-if="showHeader === 'block'" />
 </template>
 <script>
-
-    export default {
-        name: 'homePage',
-        data() {
-            return {
+export default {
+  name: "homePage",
+  data() {
+    return {
+      showHeader: "none",
+      firstLevelTitle: [
+        { titleName: "首页", path: "/" },
+        { titleName: "安全监控", path: "/stateMonitor" },
+        { titleName: "经济运行", path: "/economicsOperation" },
+      ],
+      headerIndex: 0,
     };
   },
- async created() {
+  components: {
+    // CanvesMap,
   },
+
+  created() {},
   methods: {
+    headerCheck(index) {
+      this.headerIndex = index;
+    },
   },
   mounted() {
-
+    let showHeader = window.sessionStorage.getItem("showHeader");
+    if (showHeader) {
+      this.showHeader = "block";
+    } else {
+      setTimeout(() => {
+        this.showHeader = "block";
+        window.sessionStorage.setItem("showHeader", "block");
+      }, 3500);
+    }
   },
-  computed: {
-  }
-}
+};
 </script>
 <style lang="less" scoped>
+.el-menu-vertical-demo:not(.el-menu--collapse) {
+  width: 200px;
+  min-height: 400px;
+}
+
 @import "./assets/css/base.css";
 @import "./assets/css/style.css";
 @import "./assets/css/common.css";
 
-</style>
+@keyframes canves_map {
+  0% {
+    opacity: 1;
+  }
+
+  75% {
+    opacity: 1;
+  }
+
+  100% {
+    opacity: 0;
+  }
+}
+
+.canves_map {
+  animation: canves_map 3.5s linear;
+}
+
+.el-header {
+  height: 59px;
+  width: 100%;
+  line-height: 59px;
+  background: rgba(4, 11, 23, 0.3);
+  z-index: 9;
+  border-bottom: 1px solid;
+  border-image: -webkit-linear-gradient(
+      10deg,
+      transparent,
+      rgba(26, 124, 205, 0),
+      rgba(26, 124, 205, 1)
+    )
+    2 1;
+  border-image: -moz-linear-gradient(
+      10deg,
+      transparent,
+      rgba(26, 124, 205, 0),
+      rgba(26, 124, 205, 1)
+    )
+    2 1;
+  border-image: -o-linear-gradient(
+      10deg,
+      transparent,
+      rgba(26, 124, 205, 0),
+      rgba(26, 124, 205, 1)
+    )
+    2 1;
+  border-image: linear-gradient(
+      10deg,
+      transparent,
+      rgba(26, 124, 205, 0),
+      rgba(26, 124, 205, 1)
+    )
+    2 1;
+
+  .header {
+    display: flex;
+    width: 100%;
+    justify-content: flex-end;
+    margin-left: 15px;
 
+    .active {
+      color: #1c98fe;
+      background: url(/img/header/check.png);
+    }
+
+    .header_logo {
+      color: #ffffff;
+      font-size: 22px;
+      font-weight: bold;
+      display: flex;
+      align-items: center;
+
+      span {
+        margin: 0 10px;
+        font-weight: normal;
+      }
+    }
+
+    p {
+      position: absolute;
+      left: 30px;
+    }
+
+    li {
+      text-align: center;
+      line-height: 32px;
+      margin-top: 15px;
+      width: 109px;
+      height: 32px;
+      font-size: 14px;
+      font-weight: 400;
+      color: #b3b3b3;
+      margin-right: 10px;
+
+      span {
+        color: rgba(28, 153, 255, 1);
+        font-size: 14px;
+      }
+
+      i {
+        font-size: 19px;
+        color: rgba(28, 153, 255, 1);
+      }
+
+      .icon-account {
+        //margin-left: 49px;
+        margin-right: 8px;
+      }
+
+      .form {
+        width: 0;
+        height: 0;
+        border: 5px solid transparent;
+        border-bottom: none;
+        border-top-color: rgba(28, 153, 255, 1);
+        position: relative;
+        top: 9px;
+        left: 8px;
+      }
+
+      &:hover {
+        color: #1c98fe;
+        background: url(/img/header/check.png);
+      }
+    }
+
+    .account_ic {
+      position: relative;
+      top: 3px;
+
+      &:hover {
+        color: #1c98fe;
+        background: none;
+      }
+    }
+
+    .tit {
+      position: relative;
+      top: -4px;
+      left: -5px;
+    }
+
+    .bell_ic {
+      width: 20px;
+      top: 3px;
+      position: relative;
+
+      &:hover {
+        color: #1c98fe;
+        background: none;
+      }
+
+      > ::after {
+        content: "";
+        position: absolute;
+        top: 8px;
+        right: 5px;
+        width: 5px;
+        height: 5px;
+        background: #e95447;
+        border-radius: 50%;
+      }
+    }
+  }
+}
+</style>

+ 10 - 11
src/components/menuNav/index.vue

@@ -1,25 +1,25 @@
 <template>
-  <el-menu :default-active="activeIndex" class="el-menu-vertical-demo" collapse="collapse" @mouseleave="hideMenu"
+  <el-menu :default-active="activeIndex" class="el-menu-vertical-demo" collapse="true" @mouseleave="hideMenu"
            v-show="showMenu"
            text-color="#85878B" active-text-color="rgba(28, 153, 255, 1)" background-color="transparent">
     <template v-for="(item, index) in secondLevelTitle" :key="index">
-      <el-sub-menu :index=index v-if="item.children">
+      <el-sub-menu :index="index" v-if="item.children">
         <template #title>
-          <!--                  <router-link :to="item.href">-->
-          <el-icon :class="item?.icon">
+          <!--                  <router-link :to="item.path">-->
+          <el-icon :class="item.icon">
           </el-icon>
           <!--                  </router-link>-->
         </template>
-        <el-menu-item-group v-for="(menu, idx) in item.children" :index=idx :key="idx">
-          <router-link :to="menu.href">
-            <el-menu-item>{{ menu.name }}</el-menu-item>
+        <el-menu-item-group v-for="(menu, idx) in item.children" :index="idx" :key="idx">
+          <router-link :to="menu.path">
+            <el-menu-item>{{ menu.titleName }}</el-menu-item>
           </router-link>
         </el-menu-item-group>
       </el-sub-menu>
       <el-menu-item  v-else>
-        <el-tooltip class="item" effect="light" :content="item.name" placement="right">
-          <router-link :to="item.href">
-            <i :class="item?.icon"></i>
+        <el-tooltip class="item" effect="light" :content="item.titleName" placement="right">
+          <router-link :to="item.path">
+            <i :class="item.icon"></i>
           </router-link>
         </el-tooltip>
       </el-menu-item>
@@ -64,7 +64,6 @@ export default {
     return {
       stickMenu: false,
       activeIndex:'1',
-      collapse:true,
     }
   },
   created() {

+ 50 - 50
src/permission.js

@@ -1,54 +1,54 @@
-import router from './router'
-import { getCookie, setCookie, removeImsCookie } from '@/utils/auth' // getToken from cookie
-import {Base64} from "js-base64";
-const whiteList = ['/login', '/logout'] // 不重定向白名单
-import store from '@/store'
-router.beforeEach(async(to, from, next) => {
+// import router from './router'
+// import { getCookie, setCookie, removeImsCookie } from '@/utils/auth' // getToken from cookie
+// import {Base64} from "js-base64";
+// const whiteList = ['/login', '/logout'] // 不重定向白名单
+// import store from '@/store'
+// router.beforeEach(async(to, from, next) => {
 
-  //从其它系统跳转过来携带token和code,只有当存在iamFlag为true时,才写入token
-  if(to.query.iamFlag && to.query.iamCode && to.query.iamAccessToken){
-    setCookie("iamAccessToken", to.query.iamAccessToken);
-    setCookie("iam-access-token", to.query.iamAccessToken);
-    setCookie("iamCode", to.query.iamCode);
-    setCookie("code", to.query.iamCode);
-    let newQuery = JSON.parse(JSON.stringify(to.query))
-    delete newQuery.iamFlag;
-    delete newQuery.iamCode;
-    delete newQuery.iamAccessToken;
-    await router.push({query: newQuery,path: to.path})//写入cookie后,去除token相关参数信息
-  }
+//   //从其它系统跳转过来携带token和code,只有当存在iamFlag为true时,才写入token
+//   if(to.query.iamFlag && to.query.iamCode && to.query.iamAccessToken){
+//     setCookie("iamAccessToken", to.query.iamAccessToken);
+//     setCookie("iam-access-token", to.query.iamAccessToken);
+//     setCookie("iamCode", to.query.iamCode);
+//     setCookie("code", to.query.iamCode);
+//     let newQuery = JSON.parse(JSON.stringify(to.query))
+//     delete newQuery.iamFlag;
+//     delete newQuery.iamCode;
+//     delete newQuery.iamAccessToken;
+//     await router.push({query: newQuery,path: to.path})//写入cookie后,去除token相关参数信息
+//   }
 
-  //有token或在免登录白名单,直接放行
-  if(getCookie("iamAccessToken")){
-    if(!store.state.user.userInfo){
-      //获取用户资料
-      const result1= store.dispatch('getUserInfo');
-      //获取菜单
-      const result2= store.dispatch('getmenuList');
-      next()
-    }else {
-      next()
-    }
-    // next();//放行
-  }else if(whiteList.indexOf(to.path) !== -1){
-    next();//放行
-  } else {
-    removeImsCookie();
-    store.state.user.userInfo=null;
-    const mode = process.env.VUE_APP_LOGIN_MODE;
-    if(mode == 1){
-      let base64Url = Base64.encode(process.env.VUE_APP_REDIRECT_URL)
-      window.location.href = process.env.VUE_APP_UNIFIED_LOGIN + "&redirect_url=" + base64Url;
-    }else {
-      // router.push('/login');
-      next('/login');
-    }
-  }
-})
+//   //有token或在免登录白名单,直接放行
+//   if(getCookie("iamAccessToken")){
+//     if(!store.state.user.userInfo){
+//       //获取用户资料
+//       const result1= store.dispatch('getUserInfo');
+//       //获取菜单
+//       const result2= store.dispatch('getmenuList');
+//       next()
+//     }else {
+//       next()
+//     }
+//     // next();//放行
+//   }else if(whiteList.indexOf(to.path) !== -1){
+//     next();//放行
+//   } else {
+//     removeImsCookie();
+//     store.state.user.userInfo=null;
+//     const mode = process.env.VUE_APP_LOGIN_MODE;
+//     if(mode == 1){
+//       let base64Url = Base64.encode(process.env.VUE_APP_REDIRECT_URL)
+//       window.location.href = process.env.VUE_APP_UNIFIED_LOGIN + "&redirect_url=" + base64Url;
+//     }else {
+//       // router.push('/login');
+//       next('/login');
+//     }
+//   }
+// })
 
-router.afterEach((to,from,next) => {
-  if(to.path=='/login'){
-    store.state.user.userInfo=null;
-  }
-})
+// router.afterEach((to,from,next) => {
+//   if(to.path=='/login'){
+//     store.state.user.userInfo=null;
+//   }
+// })
 

+ 252 - 23
src/views/layout/economicsOperation/index.vue

@@ -1,7 +1,12 @@
 <template>
   <div class="content" @mousemove="show_menu">
-    <MenuNav :showMenu="showMenu" :secondLevelTitle="secondLevelTitle" @stickMenu="funStickMenu" @hideMenuNav="hideMenuNav" />
-    <div :class="{'ml-[55px]': stickMenu}" class="transition-all">
+    <MenuNav
+      :showMenu="showMenu"
+      :secondLevelTitle="secondLevelTitle"
+      @stickMenu="funStickMenu"
+      @hideMenuNav="hideMenuNav"
+    />
+    <div :class="{ 'ml-[55px]': stickMenu }" class="transition-all">
       <router-view />
     </div>
   </div>
@@ -10,7 +15,7 @@
 <script>
 import MenuNav from "@/components/menuNav";
 export default {
-  name: 'economicsOperation',//经济运行
+  name: "economicsOperation", //经济运行
   components: {
     MenuNav,
   },
@@ -18,14 +23,248 @@ export default {
     return {
       stickMenu: false,
       showMenu: false,
-    }
+      secondLevelTitle: [
+        {
+          titleName: "对标管理",
+          icon: "icon-dbgl",
+          path: "/economicsOperation/benchmarkingManagement",
+          children: [
+            {
+              titleName: "风机绩效榜",
+              icon: "",
+              path: "/economicsOperation/benchmarkingManagement/performanceRankingList",
+            },
+            {
+              titleName: "五项损失率",
+              icon: "",
+              path: "/economicsOperation/benchmarkingManagement/loseRate",
+            },
+            {
+              titleName: "场内对标",
+              icon: "",
+              path: "/economicsOperation/benchmarkingManagement/siteBenchmarking",
+            },
+            {
+              titleName: "场际对标",
+              icon: "",
+              path: "/economicsOperation/benchmarkingManagement/intervalBenchmarking",
+            },
+
+            {
+              titleName: "项目对标",
+              icon: "",
+              path: "/economicsOperation/benchmarkingManagement/projectBenchmarking",
+            },
+            {
+              titleName: "线路对标",
+              icon: "",
+              path: "/economicsOperation/benchmarkingManagement/wiringBenchmarking",
+            },
+            {
+              titleName: "单机对标(风)",
+              icon: "",
+              path: "/economicsOperation/benchmarkingManagement/singleMachineBenchmarking",
+            },
+            {
+              titleName: "值际对标",
+              icon: "",
+              path: "/economicsOperation/benchmarkingManagement/valueBenchmarking",
+            },
+            // {
+            //   titleName: '性能对标',
+            //   icon: '',
+            //   path: '/economicsOperation/benchmarkingManagement/standAloneBenchmarking'
+            // },
+            // {
+            //   titleName: '值际对标',
+            //   icon: '',
+            //   path: '/economicsOperation/benchmarkingManagement/standAloneBenchmarking'
+            // }
+          ],
+        },
+        {
+          titleName: "三率",
+          icon: "icon-slgl",
+          path: "/economicsOperation/efficiency",
+          children: [
+            {
+              titleName: "复位及时率(风)",
+              icon: "",
+              path: "/economicsOperation/efficiency/restorationEfficiency",
+            },
+            {
+              titleName: "状态转换率(风)",
+              icon: "",
+              path: "/economicsOperation/efficiency/stateEfficiency",
+            },
+            {
+              titleName: "消缺及时率(风)",
+              icon: "",
+              path: "/economicsOperation/efficiency/consumeEfficiency",
+            },
+          ],
+        },
+        {
+          titleName: "性能等级评估",
+          icon: "icon-fjfx",
+          path: "/economicsOperation/performanceAnalyse/performanceAssess",
+        },
+        {
+          titleName: "性能分析",
+          icon: "icon-dimension-new",
+          path: "/economicsOperation/analyse",
+          children: [
+            {
+              titleName: "单机性能分析",
+              icon: "",
+              path: "/economicsOperation/analyse/standAloneAnalyse",
+            },
+            {
+              titleName: "单机月度分析",
+              icon: "",
+              path: "/economicsOperation/analyse/monthlyAnalysis",
+            },
+          ],
+        },
+        {
+          titleName: "功率曲线",
+          icon: "icon-power-curve",
+          path: "/economicsOperation/powerCurve",
+          children: [
+            {
+              titleName: "功率曲线拟合",
+              icon: "",
+              path: "/economicsOperation/powerCurve/powerLinefitting",
+            },
+            {
+              titleName: "切入切出分析(风)",
+              icon: "",
+              path: "/economicsOperation/powerCurve/cutInAndOutAnalysis",
+            },
+          ],
+        },
+        {
+          titleName: "专题分析",
+          icon: "icon-ztfx",
+          path: "/economicsOperation/thematicAnalysis",
+          children: [
+            {
+              titleName: "综合分析",
+              icon: "",
+              path: "/economicsOperation/thematicAnalysis/comprehensiveAnalysis",
+            },
+            {
+              titleName: "风/光能利用率",
+              icon: "",
+              path: "/economicsOperation/thematicAnalysis/windEnergy",
+            },
+            {
+              titleName: "五项损失率",
+              icon: "",
+              path: "/economicsOperation/thematicAnalysis/failure",
+            },
+            // {
+            //   titleName: "维护损失率",
+            //   icon: '',
+            //   path: "/economicsOperation/thematicAnalysis/maintain",
+            // },
+            // {
+            //   titleName: "限电损失率",
+            //   icon: '',
+            //   path: "/economicsOperation/thematicAnalysis/ration",
+            // },
+            // {
+            //   titleName: "性能损失率",
+            //   icon: '',
+            //   path: "/economicsOperation/thematicAnalysis/property",
+            // },
+            // {
+            //   titleName: "受累损失率",
+            //   icon: '',
+            //   path: "/economicsOperation/thematicAnalysis/affected",
+            // },
+            {
+              titleName: "三率分析",
+              icon: "",
+              path: "/economicsOperation/thematicAnalysis/reset",
+            },
+            // {
+            //   titleName: "状态转换率",
+            //   icon: '',
+            //   path: "/economicsOperation/thematicAnalysis/state",
+            // },
+            // {
+            //   titleName: "消缺及时率",
+            //   icon: '',
+            //   path: "/economicsOperation/thematicAnalysis/defect",
+            // },
+            {
+              titleName: "可靠性分析",
+              icon: "",
+              path: "/economicsOperation/thematicAnalysis/MTBF",
+            },
+            // {
+            //   titleName: "MTTR分析",
+            //   icon: '',
+            //   path: "/economicsOperation/thematicAnalysis/MTTR",
+            // },
+            {
+              titleName: "电量分析",
+              icon: "",
+              path: "/economicsOperation/thematicAnalysis/generation",
+            },
+            // {
+            //   titleName: "综合厂用电量",
+            //   icon: '',
+            //   path: "/economicsOperation/thematicAnalysis/synthesize",
+            // },
+          ],
+        },
+        // {
+        //   titleName: "数据准备",
+        //   icon: "icon-ztfx",
+        //   path: "/economicsOperation/dataFilter/prepare",
+        //   children:[{
+        //     titleName: "数据准备",
+        //     icon: '',
+        //     path: "/economicsOperation/dataFilter/prepare",
+        //   },
+        //     {
+        //       titleName: "数据预处理",
+        //       icon: '',
+        //       path: "/economicsOperation/dataFilter/process",
+        //     }
+        //   ]
+        // },
+        // {
+        //   titleName: "数据分析",
+        //   icon: "icon-ztfx",
+        //   path: "/economicsOperation/dataAnalysis/combine",
+        //   children:[{
+        //     titleName: "功率曲线拟合分析",
+        //     icon: '',
+        //     path: "/economicsOperation/dataAnalysis/combine",
+        //   },
+        //     {
+        //       titleName: "风资源分析",
+        //       icon: '',
+        //       path: "/economicsOperation/dataAnalysis/rateAnalysis",
+        //     },
+        //     {
+        //       titleName: "曲线偏差率分析",
+        //       icon: '',
+        //       path: "/economicsOperation/dataAnalysis/lineAnalysis",
+        //     }
+        //   ]
+        // }
+      ],
+    };
   },
   methods: {
-    funStickMenu(flag){
-
-        this.stickMenu = flag
-      if(flag){
-        this.showMenu = true
+    funStickMenu(flag) {
+      this.stickMenu = flag;
+      if (flag) {
+        this.showMenu = true;
       }
     },
     show_menu(e) {
@@ -36,25 +275,15 @@ export default {
     hideMenuNav() {
       setTimeout(() => {
         this.showMenu = false;
-      }, 500)
-    }
-  },
-  computed:{
-    secondLevelTitle(){
-      const result=this.$store.state.user.MenuList.find(item=>{
-        return item.permission=='economicsOperation'
-      })
-      return result.children;
-    }
+      }, 500);
+    },
   },
   // provide(){
   //   return {
   //     show_menu: this.show_menu
   //   }
   // }
-}
+};
 </script>
 
-<style>
-
-</style>
+<style></style>

+ 1 - 1
src/views/layout/index.vue

@@ -1,5 +1,5 @@
 <template>
-    <el-header v-if="showHeader === 'block'">
+    <el-header v-if="showHeader === 'none'">
         <ul class="header">
             <p class="header_logo">
                 <img src="img/logo-main.png" alt="" srcset="" style="width: 163px;height: 40px">

+ 87 - 54
src/views/layout/stateMonitor/index.vue

@@ -1,77 +1,110 @@
 <template>
-  <div class="content" @mousemove="show_menu" >
-      <MenuNav :showMenu="showMenu" :secondLevelTitle="secondLevelTitle" @hideMenuNav="hideMenuNav"  @stickMenu="funStickMenu"/>
-     <div :class="{'ml-[55px]': stickMenu}" class="transition-all" v-cloak>
+  <div class="content" @mousemove="show_menu">
+    <MenuNav
+      :showMenu="showMenu"
+      :secondLevelTitle="secondLevelTitle"
+      @hideMenuNav="hideMenuNav"
+      @stickMenu="funStickMenu"
+    />
+    <div :class="{ 'ml-[55px]': stickMenu }" class="transition-all" v-cloak>
       <router-view />
-      </div>
+    </div>
   </div>
 </template>
 
 <script>
 import MenuNav from "@/components/menuNav";
 export default {
-  name:'stateMonitor',//状态监视
-  components:{
+  name: "stateMonitor", //状态监视
+  components: {
     MenuNav,
   },
-  data(){
-    return{
+  data() {
+    return {
       stickMenu: false,
-      showMenu:false,
-      // secondLevelTitle:[
-      //   {name:'基础矩阵',icon:'icon-Simple-matrix',href:'/stateMonitor'},
-      //   {name:'明细矩阵',icon:'icon-Detailed-matrix',href:'/stateMonitor/detailMatrix'},
-      //   {name:'场站监视',icon:'icon-Single-station-surveillance',href:'/stateMonitor/factoryMonitor',children:[{name:'风电场站',href:'/stateMonitor/factoryMonitor/windPowerPlant'},{name:'光伏场站',href:'/stateMonitor/factoryMonitor/photovoltaic'}]},
-      //   {name:'综合监视',icon:'icon-Composite-indicator',href:'/stateMonitor/synthesizeTargetSystem'},
-      //   {name:'AGC监视',icon:'icon-AGC-monitoring',href:'/stateMonitor/AGCMonitor'},
-      //   {name:'运行监视',icon:'icon-State-monitoring',href:'/stateMonitor/monitorState'}
-      // ],
-    }
+      showMenu: false,
+      secondLevelTitle: [
+        { name: "基础矩阵", icon: "icon-Simple-matrix", path: "/stateMonitor" },
+        {
+          name: "明细矩阵",
+          icon: "icon-Detailed-matrix",
+          path: "/stateMonitor/detailMatrix",
+        },
+        {
+          name: "场站监视",
+          icon: "icon-Single-station-surveillance",
+          path: "/stateMonitor/factoryMonitor",
+          children: [
+            {
+              name: "风电场站",
+              path: "/stateMonitor/factoryMonitor/windPowerPlant",
+            },
+            {
+              name: "光伏场站",
+              path: "/stateMonitor/factoryMonitor/photovoltaic",
+            },
+          ],
+        },
+        {
+          name: "综合监视",
+          icon: "icon-Composite-indicator",
+          path: "/stateMonitor/synthesizeTargetSystem",
+        },
+        {
+          name: "AGC监视",
+          icon: "icon-AGC-monitoring",
+          path: "/stateMonitor/AGCMonitor",
+        },
+        {
+          name: "运行监视",
+          icon: "icon-State-monitoring",
+          path: "/stateMonitor/monitorState",
+        },
+      ],
+    };
   },
-  methods:{
-    funStickMenu(flag){
-      this.stickMenu = flag
-      if(flag){
-        this.showMenu = true
+  methods: {
+    funStickMenu(flag) {
+      this.stickMenu = flag;
+      if (flag) {
+        this.showMenu = true;
       }
     },
-    show_menu(e){
-      if(e.clientX <= 30){
-        this.showMenu=true;
+    show_menu(e) {
+      if (e.clientX <= 30) {
+        this.showMenu = true;
       }
     },
-    hideMenuNav(){
-      setTimeout(()=>{
-        this.showMenu=false;
-      },500)
+    hideMenuNav() {
+      setTimeout(() => {
+        this.showMenu = false;
+      }, 500);
+    },
+    deepClone(ob) {
+      var obj = JSON.stringify(ob);
+      var objClone = JSON.parse(obj);
+      return objClone;
     },
-      deepClone(ob) {
-          var obj = JSON.stringify(ob)
-          var objClone = JSON.parse(obj)
-          return objClone
-      },
   },
-  computed:{
-    secondLevelTitle(){
-        let s=this.deepClone(this.$store.state.user.MenuList)
-     const result=s?.find(item=>{
-        return item.permission=='stateMonitor'
-      })
-        result?.children.forEach((s,index)=>{
-            if(s.permission=="factoryMonitor1"){
-                s.children=''
-            }
-        })
-      return result?.children;
-
-    }
-
-  }
-}
+  computed: {
+    // secondLevelTitle(){
+    //     let s=this.deepClone(this.$store.state.user.MenuList)
+    //  const result=s?.find(item=>{
+    //     return item.permission=='stateMonitor'
+    //   })
+    //     result?.children.forEach((s,index)=>{
+    //         if(s.permission=="factoryMonitor1"){
+    //             s.children=''
+    //         }
+    //     })
+    //   return result?.children;
+    // }
+  },
+};
 </script>
 
 <style lang="less" scoped>
-.transition-all{
+.transition-all {
   height: 100%;
 }
-</style>
+</style>