From 1b1ed68312363574ba3170aa4cb777fbd1ec25da Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期二, 28 二月 2023 09:11:31 +0800
Subject: [PATCH] 运维管理菜单修改

---
 src/views/maintenance/opexController.vue         |  321 ++++++++++++++++
 src/views/maintenance/parameterConfiguration.vue |  132 ++++--
 src/components/mapol.vue                         |    1 
 src/views/maintenance/systemController.vue       |  321 ++++++++++++++++
 src/views/datamanage/projectManage.vue           |    2 
 src/router/index.js                              |   31 +
 src/views/maintenance/empowerController.vue      |  321 ++++++++++++++++
 7 files changed, 1,071 insertions(+), 58 deletions(-)

diff --git a/src/components/mapol.vue b/src/components/mapol.vue
index cdc191d..55ca4b7 100644
--- a/src/components/mapol.vue
+++ b/src/components/mapol.vue
@@ -93,6 +93,7 @@
     });
   },
   methods: {
+
     init2DMap() {
       var vectorLayer = new TileLayer({
         source: new XYZ({
diff --git a/src/router/index.js b/src/router/index.js
index add4cf0..6775d77 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -51,7 +51,9 @@
 import bankController from '../views/datamanage/bankController.vue';//鏁版嵁搴撶鐞�
 import projectController from '../views/datamanage/projectController.vue';//椤圭洰绠$悊
 
-
+import systemController from '@/views/maintenance/systemController.vue';//绯荤粺绠$悊
+import empowerController from '@/views/maintenance/empowerController.vue';//鎺堟潈绠$悊
+import opexController from '@/views/maintenance/opexController.vue';//杩愮淮鐩戞帶
 
 //鍖呬簩
 import WareInspection from '@/views/PackageTwo/WareInspection.vue'; //鏁版嵁璐ㄦ-鍏ュ簱璐ㄦ
@@ -119,6 +121,33 @@
         },
       },
       {
+        path: '/systemController',
+        component: systemController,
+        name: 'systemController',
+        meta: {
+          title: '绯荤粺绠$悊',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
+        path: '/empowerController',
+        component: empowerController,
+        name: 'empowerController',
+        meta: {
+          title: '鎺堟潈绠$悊',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
+        path: '/opexController',
+        component: opexController,
+        name: 'opexController',
+        meta: {
+          title: '杩愮淮鐩戞帶',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
         path: '/bankController',
         component: bankController,
         name: 'bankController',
diff --git a/src/views/datamanage/projectManage.vue b/src/views/datamanage/projectManage.vue
index dccfd60..e75a51e 100644
--- a/src/views/datamanage/projectManage.vue
+++ b/src/views/datamanage/projectManage.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="verSionBox">
+  <div class="verSionBox  ">
     <My-bread :list="[
         `${$t('dataManage.dataManage')}`,
         `${$t('dataManage.projectManage')}`,
diff --git a/src/views/maintenance/empowerController.vue b/src/views/maintenance/empowerController.vue
new file mode 100644
index 0000000..e9f4edd
--- /dev/null
+++ b/src/views/maintenance/empowerController.vue
@@ -0,0 +1,321 @@
+<template>
+  <div class="contentBox">
+
+    <div
+      class="box"
+      ref="box"
+    >
+      <div class="left box_div">
+        <el-menu
+          :default-active="activeIndex"
+          background-color="transparent"
+          @select="handleselect"
+        >
+          <customElMenu :menuData="menuList"></customElMenu>
+        </el-menu>
+      </div>
+      <div
+        class="resize"
+        title="鏀剁缉渚ц竟鏍�"
+      >
+        鈰�
+      </div>
+      <div class="mid box_div">
+        <menu-settings v-if="setMenuFlag == 'menuSettings'"></menu-settings>
+        <user-management v-if="setMenuFlag == 'userInfoManage'"></user-management>
+        <org-manage v-if="setMenuFlag == 'orgManage'"></org-manage>
+        <resource-manage v-if="setMenuFlag == 'resourceManage'"></resource-manage>
+        <role-manage v-if="setMenuFlag == 'roleManage'"></role-manage>
+        <authority-manage v-if="setMenuFlag == 'authorityManage'"></authority-manage>
+        <user-role-authorization v-if="setMenuFlag == 'userRoleAuthorization'"></user-role-authorization>
+        <menu-role-authorization v-if="setMenuFlag == 'menuRoleAuthorization'"></menu-role-authorization>
+        <role-menu-authorization v-if="setMenuFlag == 'roleMenuAuthorization'">
+        </role-menu-authorization>
+        <role-res-authorization v-if="setMenuFlag == 'roleResAuthorization'"></role-res-authorization>
+        <log-log v-if="setMenuFlag == 'logLog'"> </log-log>
+        <operation-log v-if="setMenuFlag == 'operationLog'"></operation-log>
+        <eventlog-manage v-if="setMenuFlag == 'eventlogManage'"></eventlog-manage>
+        <tokentool v-if="setMenuFlag == 'tokentool'"></tokentool>
+        <blackwhite-list v-if="setMenuFlag == 'blackwhiteList'"></blackwhite-list>
+        <database-monitoring v-if="setMenuFlag == 'dataIfream'"></database-monitoring>
+        <system-monitoring v-if="setMenuFlag == 'systemMonitoring'"></system-monitoring>
+        <parameter-configuration v-if="setMenuFlag == 'parameterConfiguration'"></parameter-configuration>
+        <downlog v-if="setMenuFlag == 'downlog'"></downlog>
+        <template-manage v-if="setMenuFlag == 'templateManage'"></template-manage>
+        <data-statistics v-if="setMenuFlag == 'dataStatistics'"></data-statistics>
+      </div>
+    </div>
+
+  </div>
+
+</template>
+
+<script>
+import menuSettings from '@/views/maintenance/menuSettings.vue'; //鑿滃崟绠$悊
+import userManagement from '@/views/maintenance/userManagement.vue'; //鐢ㄦ埛绠$悊
+import orgManage from '@/views/userManage/orgManage.vue'; //鍗曚綅绠$悊
+import resourceManage from '@/views/userManage/resourceManage.vue'; //璧勬簮绠$悊
+import roleManage from '@/views/userManage/roleManage.vue'; //瑙掕壊绠$悊
+import authorityManage from '@/views/userManage/authorityManage.vue'; //鏉冮檺绠$悊
+import userRoleAuthorization from '@/views/AuthorizationManagement/userRoleAuthorization.vue'; //鐢ㄦ埛瑙掕壊鎺堟潈
+import menuRoleAuthorization from '@/views/AuthorizationManagement/menuRoleAuthorization.vue'; //鑿滃崟鏉冮檺鎺堟潈
+import roleMenuAuthorization from '@/views/AuthorizationManagement/roleMenuAuthorization.vue'; //瑙掕壊鑿滃崟鎺堟潈
+import roleResAuthorization from '@/views/AuthorizationManagement/roleResAuthorization.vue'; //瑙掕壊璧勬簮鎺堟潈
+import logLog from '@/views/maintenance/logLog.vue'; //鐧诲綍鏃ュ織
+import operationLog from '@/views/maintenance/operationLog.vue'; //鎿嶄綔鏃ュ織
+import eventlogManage from '@/views/maintenance/eventlogManage.vue'; //璧勬簮鏃ュ織
+import tokentool from '@/views/maintenance/tokentool.vue'; //浠ょ墝绠$悊
+import blackwhiteList from '@/views/maintenance/blackwhiteList.vue'; //榛戠櫧鍚嶅崟
+import databaseMonitoring from '@/views/maintenance/databaseMonitoring.vue'; //鏁版嵁搴撶洃鎺�
+import systemMonitoring from '@/views/maintenance/systemMonitoring.vue'; //绯荤粺鐩戞帶
+import parameterConfiguration from '@/views/maintenance/parameterConfiguration.vue'; //绯荤粺閰嶇疆
+import downlog from '@/views/maintenance/downlog.vue'; //涓嬭浇鏃ュ織
+import templateManage from '@/views/userManage/templateManage.vue'//妯℃澘绠$悊
+import { selectMenuRecursive, queryMenuTree, getPerms, sign_insertOpLog } from '../../api/api';
+import customElMenu from '../../components/customElMenu.vue';
+import dataStatistics from '@/views/datamanage/dataStatistics.vue'; //鏁版嵁缁熻
+
+export default {
+  components: {
+    menuSettings,
+    userManagement,
+    orgManage,
+    resourceManage,
+    roleManage,
+    authorityManage,
+    userRoleAuthorization,
+    menuRoleAuthorization,
+    roleMenuAuthorization,
+    roleResAuthorization,
+    logLog,
+    operationLog,
+    eventlogManage,
+    tokentool,
+    blackwhiteList,
+    databaseMonitoring,
+    systemMonitoring,
+    parameterConfiguration,
+    customElMenu,
+    downlog,
+    templateManage,
+    dataStatistics
+  },
+  data() {
+    return {
+      setMenuFlag: '   ',
+      activeIndex: ' ',
+      oriData: [], //鍘熷鏍戞暟鎹�
+      dirData: [], //el鏍戞暟鎹�
+      newData: [], //鎷栧姩鍚庢暟鎹�
+      lang: 'zh',
+
+      menuList: [],
+      editTitle: '',
+      showPopover: false,
+      showEditInfoWrapper: false,
+      showEdit: false,
+      editMenu: false,
+      editCatalogue: false,
+      editUnit: false,
+      itemdetail: {},
+      formLabelWidth: '70px',
+      m1: null,
+      menuId: null,
+    };
+  },
+  created() { },
+  mounted() {
+    this.getTreeData();
+    //宸﹀彸鎷栧嫊
+    this.dragControllerDiv();
+  },
+  methods: {
+    //宸﹀彸鎷栧嫊
+    dragControllerDiv: function () {
+      var resize = document.getElementsByClassName('resize');
+      var left = document.getElementsByClassName('left');
+      var mid = document.getElementsByClassName('mid');
+      var box = document.getElementsByClassName('box');
+      for (let i = 0; i < resize.length; i++) {
+        // 榧犳爣鎸変笅浜嬩欢
+        resize[i].onmousedown = function (e) {
+          //棰滆壊鏀瑰彉鎻愰啋
+          resize[i].style.background = '#818181';
+          var startX = e.clientX;
+          resize[i].left = resize[i].offsetLeft;
+          // 榧犳爣鎷栧姩浜嬩欢
+          document.onmousemove = function (e) {
+            var endX = e.clientX;
+            var moveLen = resize[i].left + (endX - startX); // 锛坋ndx-startx锛�=绉诲姩鐨勮窛绂汇�俽esize[i].left+绉诲姩鐨勮窛绂�=宸﹁竟鍖哄煙鏈�鍚庣殑瀹藉害
+            var maxT = box[i].clientWidth - resize[i].offsetWidth; // 瀹瑰櫒瀹藉害 - 宸﹁竟鍖哄煙鐨勫搴� = 鍙宠竟鍖哄煙鐨勫搴�
+
+            if (moveLen < 205) moveLen = 205; // 宸﹁竟鍖哄煙鐨勬渶灏忓搴︿负32px
+            if (moveLen > maxT - 300) moveLen = maxT - 300; //鍙宠竟鍖哄煙鏈�灏忓搴︿负150px
+
+            resize[i].style.left = moveLen; // 璁剧疆宸︿晶鍖哄煙鐨勫搴�
+
+            for (let j = 0; j < left.length; j++) {
+              left[j].style.width = moveLen + 'px';
+              mid[j].style.width = (box[i].clientWidth - moveLen - 10) + 'px';
+            }
+          };
+          // 榧犳爣鏉惧紑浜嬩欢
+          document.onmouseup = function (evt) {
+            //棰滆壊鎭㈠
+            resize[i].style.background = '#d6d6d6';
+            document.onmousemove = null;
+            document.onmouseup = null;
+            resize[i].releaseCapture && resize[i].releaseCapture(); //褰撲綘涓嶅湪闇�瑕佺户缁幏寰楅紶鏍囨秷鎭氨瑕佸簲璇ヨ皟鐢≧eleaseCapture()閲婃斁鎺�
+          };
+          resize[i].setCapture && resize[i].setCapture(); //璇ュ嚱鏁板湪灞炰簬褰撳墠绾跨▼鐨勬寚瀹氱獥鍙i噷璁剧疆榧犳爣鎹曡幏
+          return false;
+        };
+      }
+    },
+
+    async getCookies() {
+      var boolean = this.getTimeCookies();
+      if (boolean != true) {
+        this.$router.push('/login');
+        return;
+      }
+      if (this.$store.state.permsEntity.length == 0) {
+        const data = await getPerms();
+        this.$store.state.permsEntity = data.result;
+      }
+      var store = this.menuList[0];
+      this.m1 = store.cnName;
+      this.setViewController(store);
+    },
+    getTimeCookies() {
+      var time1 = new Date(JSON.parse(localStorage.getItem('LFToken')).time);
+      var time2 = new Date();
+      if (time2 > time1) {
+        return false;
+      } else {
+        return true;
+      }
+    },
+    //鑾峰彇鏍�
+    async getTreeData() {
+      const data = await queryMenuTree();
+
+      let menuLists = data.result.filter((value) => {
+        return value.url == '/empowerController';
+      });
+      this.menuId = menuLists[0].id
+      const res = await selectMenuRecursive({ id: menuLists[0].id });
+
+      if (res.code == 200) {
+        if (res.result.length != 0) {
+          let menuList = res.result.filter((value) => {
+            return value.type == 1;
+          })
+            .filter(value => {
+              return value.isShow == 1;
+            });
+          this.menuList = this.treeData(menuList);
+          this.getCookies();
+          const hanleselectmochaitmo = sessionStorage.getItem('hanleselectmochaitmo')
+          if (hanleselectmochaitmo) {
+            this.$nextTick(function () {
+              this.handleselecttwo(JSON.parse(hanleselectmochaitmo).url, JSON.parse(hanleselectmochaitmo))
+              this.setViewController(JSON.parse(hanleselectmochaitmo))
+            })
+          }
+          //
+        } else {
+          alert('鏆傛棤鑿滃崟鏍忔暟鎹�');
+        }
+      } else {
+        console.log('鎺ュ彛鎶ラ敊');
+      }
+
+      // this.treeList = this.treeData(data.result);
+    },
+    async signInsertOpLog(m1, m2) {
+      var obj = {
+        m1: m1,
+        m2: m2,
+      }
+      const data = await sign_insertOpLog(obj);
+
+
+    },
+    setViewController(res) {
+      if (res == null) {
+        return;
+      }
+
+      if (res.children != null) {
+
+
+        this.setViewController(res.children[0]);
+      } else {
+
+        this.$store.state.currentPerms = res.perms;
+        this.signInsertOpLog(this.m1, res.cnName)
+        this.setMenuFlag = res.url;
+        this.activeIndex = res.url;
+      }
+    },
+    treeData(source) {
+      let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕
+      // console.log(cloneData);
+      if (cloneData.length != 0) {
+        return cloneData.filter((father) => {
+          // 寰幆鎵�鏈夐」
+          let branchArr = cloneData.filter((child) => father.id == child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁
+          branchArr.length > 0 ? (father.children = branchArr) : ''; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊�
+          // 灞炰簬鍚屼竴瀵硅薄闂锛屼緥濡傦細浠� a=b銆乧=1 锛岀劧鍚庡啀浠� b.c=c 锛� 閭d箞 a.c=b.c=c=1 锛涘悓鐞嗭紝鍚庣画浠� c.d=2 ,閭d箞 a.c.d 涔熸槸=2锛�
+          // 鐢辨寰幆澶氭鍚庯紝灏辫兘褰㈡垚鐩稿簲鐨勬爲褰㈡暟鎹粨鏋�
+          return father.pid == this.menuId; // 杩斿洖涓�绾ц彍鍗�
+        });
+      } else {
+        alert('鏆傛棤鑿滃崟鏍忔暟鎹�');
+      }
+    },
+
+    handleselect(index, indexPath, e) {
+      this.getTimeCookies();
+
+      this.signInsertOpLog(this.m1, e.$attrs.perms.cnName)
+      const a = JSON.stringify(e.$attrs.perms)
+      sessionStorage.setItem('hanleselectmochaitmo', a)
+
+      var data = e.$attrs.perms;
+      this.$store.state.currentPerms = data.perms;
+      var index = data.url;
+      if (index != null) {
+        if (index.indexOf('http') != -1) {
+          this.$store.commit('getIframe', data.url);
+          index = 'dataIfream';
+        }
+      }
+
+      this.setMenuFlag = index;
+
+    },
+    handleselecttwo(index, e) {
+      this.getTimeCookies();
+
+      const a = JSON.stringify(e)
+      sessionStorage.setItem('hanleselectmochaitmo', a)
+
+      var data = e;
+      this.$store.state.currentPerms = data.perms;
+      var index = data.url;
+      if (index != null) {
+        if (index.indexOf('http') != -1) {
+          this.$store.commit('getIframe', data.url);
+          index = 'dataIfream';
+        }
+      }
+      this.setMenuFlag = index;
+
+    },
+  },
+};
+</script>
+
+ 
\ No newline at end of file
diff --git a/src/views/maintenance/opexController.vue b/src/views/maintenance/opexController.vue
new file mode 100644
index 0000000..594c6b0
--- /dev/null
+++ b/src/views/maintenance/opexController.vue
@@ -0,0 +1,321 @@
+<template>
+  <div class="contentBox">
+
+    <div
+      class="box"
+      ref="box"
+    >
+      <div class="left box_div">
+        <el-menu
+          :default-active="activeIndex"
+          background-color="transparent"
+          @select="handleselect"
+        >
+          <customElMenu :menuData="menuList"></customElMenu>
+        </el-menu>
+      </div>
+      <div
+        class="resize"
+        title="鏀剁缉渚ц竟鏍�"
+      >
+        鈰�
+      </div>
+      <div class="mid box_div">
+        <menu-settings v-if="setMenuFlag == 'menuSettings'"></menu-settings>
+        <user-management v-if="setMenuFlag == 'userInfoManage'"></user-management>
+        <org-manage v-if="setMenuFlag == 'orgManage'"></org-manage>
+        <resource-manage v-if="setMenuFlag == 'resourceManage'"></resource-manage>
+        <role-manage v-if="setMenuFlag == 'roleManage'"></role-manage>
+        <authority-manage v-if="setMenuFlag == 'authorityManage'"></authority-manage>
+        <user-role-authorization v-if="setMenuFlag == 'userRoleAuthorization'"></user-role-authorization>
+        <menu-role-authorization v-if="setMenuFlag == 'menuRoleAuthorization'"></menu-role-authorization>
+        <role-menu-authorization v-if="setMenuFlag == 'roleMenuAuthorization'">
+        </role-menu-authorization>
+        <role-res-authorization v-if="setMenuFlag == 'roleResAuthorization'"></role-res-authorization>
+        <log-log v-if="setMenuFlag == 'logLog'"> </log-log>
+        <operation-log v-if="setMenuFlag == 'operationLog'"></operation-log>
+        <eventlog-manage v-if="setMenuFlag == 'eventlogManage'"></eventlog-manage>
+        <tokentool v-if="setMenuFlag == 'tokentool'"></tokentool>
+        <blackwhite-list v-if="setMenuFlag == 'blackwhiteList'"></blackwhite-list>
+        <database-monitoring v-if="setMenuFlag == 'dataIfream'"></database-monitoring>
+        <system-monitoring v-if="setMenuFlag == 'systemMonitoring'"></system-monitoring>
+        <parameter-configuration v-if="setMenuFlag == 'parameterConfiguration'"></parameter-configuration>
+        <downlog v-if="setMenuFlag == 'downlog'"></downlog>
+        <template-manage v-if="setMenuFlag == 'templateManage'"></template-manage>
+        <data-statistics v-if="setMenuFlag == 'dataStatistics'"></data-statistics>
+      </div>
+    </div>
+
+  </div>
+
+</template>
+
+<script>
+import menuSettings from '@/views/maintenance/menuSettings.vue'; //鑿滃崟绠$悊
+import userManagement from '@/views/maintenance/userManagement.vue'; //鐢ㄦ埛绠$悊
+import orgManage from '@/views/userManage/orgManage.vue'; //鍗曚綅绠$悊
+import resourceManage from '@/views/userManage/resourceManage.vue'; //璧勬簮绠$悊
+import roleManage from '@/views/userManage/roleManage.vue'; //瑙掕壊绠$悊
+import authorityManage from '@/views/userManage/authorityManage.vue'; //鏉冮檺绠$悊
+import userRoleAuthorization from '@/views/AuthorizationManagement/userRoleAuthorization.vue'; //鐢ㄦ埛瑙掕壊鎺堟潈
+import menuRoleAuthorization from '@/views/AuthorizationManagement/menuRoleAuthorization.vue'; //鑿滃崟鏉冮檺鎺堟潈
+import roleMenuAuthorization from '@/views/AuthorizationManagement/roleMenuAuthorization.vue'; //瑙掕壊鑿滃崟鎺堟潈
+import roleResAuthorization from '@/views/AuthorizationManagement/roleResAuthorization.vue'; //瑙掕壊璧勬簮鎺堟潈
+import logLog from '@/views/maintenance/logLog.vue'; //鐧诲綍鏃ュ織
+import operationLog from '@/views/maintenance/operationLog.vue'; //鎿嶄綔鏃ュ織
+import eventlogManage from '@/views/maintenance/eventlogManage.vue'; //璧勬簮鏃ュ織
+import tokentool from '@/views/maintenance/tokentool.vue'; //浠ょ墝绠$悊
+import blackwhiteList from '@/views/maintenance/blackwhiteList.vue'; //榛戠櫧鍚嶅崟
+import databaseMonitoring from '@/views/maintenance/databaseMonitoring.vue'; //鏁版嵁搴撶洃鎺�
+import systemMonitoring from '@/views/maintenance/systemMonitoring.vue'; //绯荤粺鐩戞帶
+import parameterConfiguration from '@/views/maintenance/parameterConfiguration.vue'; //绯荤粺閰嶇疆
+import downlog from '@/views/maintenance/downlog.vue'; //涓嬭浇鏃ュ織
+import templateManage from '@/views/userManage/templateManage.vue'//妯℃澘绠$悊
+import { selectMenuRecursive, queryMenuTree, getPerms, sign_insertOpLog } from '../../api/api';
+import customElMenu from '../../components/customElMenu.vue';
+import dataStatistics from '@/views/datamanage/dataStatistics.vue'; //鏁版嵁缁熻
+
+export default {
+  components: {
+    menuSettings,
+    userManagement,
+    orgManage,
+    resourceManage,
+    roleManage,
+    authorityManage,
+    userRoleAuthorization,
+    menuRoleAuthorization,
+    roleMenuAuthorization,
+    roleResAuthorization,
+    logLog,
+    operationLog,
+    eventlogManage,
+    tokentool,
+    blackwhiteList,
+    databaseMonitoring,
+    systemMonitoring,
+    parameterConfiguration,
+    customElMenu,
+    downlog,
+    templateManage,
+    dataStatistics
+  },
+  data() {
+    return {
+      setMenuFlag: '   ',
+      activeIndex: ' ',
+      oriData: [], //鍘熷鏍戞暟鎹�
+      dirData: [], //el鏍戞暟鎹�
+      newData: [], //鎷栧姩鍚庢暟鎹�
+      lang: 'zh',
+
+      menuList: [],
+      editTitle: '',
+      showPopover: false,
+      showEditInfoWrapper: false,
+      showEdit: false,
+      editMenu: false,
+      editCatalogue: false,
+      editUnit: false,
+      itemdetail: {},
+      formLabelWidth: '70px',
+      m1: null,
+      menuId: null
+    };
+  },
+  created() { },
+  mounted() {
+    this.getTreeData();
+    //宸﹀彸鎷栧嫊
+    this.dragControllerDiv();
+  },
+  methods: {
+    //宸﹀彸鎷栧嫊
+    dragControllerDiv: function () {
+      var resize = document.getElementsByClassName('resize');
+      var left = document.getElementsByClassName('left');
+      var mid = document.getElementsByClassName('mid');
+      var box = document.getElementsByClassName('box');
+      for (let i = 0; i < resize.length; i++) {
+        // 榧犳爣鎸変笅浜嬩欢
+        resize[i].onmousedown = function (e) {
+          //棰滆壊鏀瑰彉鎻愰啋
+          resize[i].style.background = '#818181';
+          var startX = e.clientX;
+          resize[i].left = resize[i].offsetLeft;
+          // 榧犳爣鎷栧姩浜嬩欢
+          document.onmousemove = function (e) {
+            var endX = e.clientX;
+            var moveLen = resize[i].left + (endX - startX); // 锛坋ndx-startx锛�=绉诲姩鐨勮窛绂汇�俽esize[i].left+绉诲姩鐨勮窛绂�=宸﹁竟鍖哄煙鏈�鍚庣殑瀹藉害
+            var maxT = box[i].clientWidth - resize[i].offsetWidth; // 瀹瑰櫒瀹藉害 - 宸﹁竟鍖哄煙鐨勫搴� = 鍙宠竟鍖哄煙鐨勫搴�
+
+            if (moveLen < 205) moveLen = 205; // 宸﹁竟鍖哄煙鐨勬渶灏忓搴︿负32px
+            if (moveLen > maxT - 300) moveLen = maxT - 300; //鍙宠竟鍖哄煙鏈�灏忓搴︿负150px
+
+            resize[i].style.left = moveLen; // 璁剧疆宸︿晶鍖哄煙鐨勫搴�
+
+            for (let j = 0; j < left.length; j++) {
+              left[j].style.width = moveLen + 'px';
+              mid[j].style.width = (box[i].clientWidth - moveLen - 10) + 'px';
+            }
+          };
+          // 榧犳爣鏉惧紑浜嬩欢
+          document.onmouseup = function (evt) {
+            //棰滆壊鎭㈠
+            resize[i].style.background = '#d6d6d6';
+            document.onmousemove = null;
+            document.onmouseup = null;
+            resize[i].releaseCapture && resize[i].releaseCapture(); //褰撲綘涓嶅湪闇�瑕佺户缁幏寰楅紶鏍囨秷鎭氨瑕佸簲璇ヨ皟鐢≧eleaseCapture()閲婃斁鎺�
+          };
+          resize[i].setCapture && resize[i].setCapture(); //璇ュ嚱鏁板湪灞炰簬褰撳墠绾跨▼鐨勬寚瀹氱獥鍙i噷璁剧疆榧犳爣鎹曡幏
+          return false;
+        };
+      }
+    },
+
+    async getCookies() {
+      var boolean = this.getTimeCookies();
+      if (boolean != true) {
+        this.$router.push('/login');
+        return;
+      }
+      if (this.$store.state.permsEntity.length == 0) {
+        const data = await getPerms();
+        this.$store.state.permsEntity = data.result;
+      }
+      var store = this.menuList[0];
+      this.m1 = store.cnName;
+      this.setViewController(store);
+    },
+    getTimeCookies() {
+      var time1 = new Date(JSON.parse(localStorage.getItem('LFToken')).time);
+      var time2 = new Date();
+      if (time2 > time1) {
+        return false;
+      } else {
+        return true;
+      }
+    },
+    //鑾峰彇鏍�
+    async getTreeData() {
+      const data = await queryMenuTree();
+
+      let menuLists = data.result.filter((value) => {
+        return value.url == '/opexController';
+      });
+      this.menuId = menuLists[0].id
+      const res = await selectMenuRecursive({ id: menuLists[0].id });
+
+      if (res.code == 200) {
+        if (res.result.length != 0) {
+          let menuList = res.result.filter((value) => {
+            return value.type == 1;
+          })
+            .filter(value => {
+              return value.isShow == 1;
+            });
+          this.menuList = this.treeData(menuList);
+          this.getCookies();
+          const hanleselectmochaitmo = sessionStorage.getItem('hanleselectmochaitmo')
+          if (hanleselectmochaitmo) {
+            this.$nextTick(function () {
+              this.handleselecttwo(JSON.parse(hanleselectmochaitmo).url, JSON.parse(hanleselectmochaitmo))
+              this.setViewController(JSON.parse(hanleselectmochaitmo))
+            })
+          }
+          //
+        } else {
+          alert('鏆傛棤鑿滃崟鏍忔暟鎹�');
+        }
+      } else {
+        console.log('鎺ュ彛鎶ラ敊');
+      }
+
+      // this.treeList = this.treeData(data.result);
+    },
+    async signInsertOpLog(m1, m2) {
+      var obj = {
+        m1: m1,
+        m2: m2,
+      }
+      const data = await sign_insertOpLog(obj);
+
+
+    },
+    setViewController(res) {
+      if (res == null) {
+        return;
+      }
+
+      if (res.children != null) {
+
+
+        this.setViewController(res.children[0]);
+      } else {
+
+        this.$store.state.currentPerms = res.perms;
+        this.signInsertOpLog(this.m1, res.cnName)
+        this.setMenuFlag = res.url;
+        this.activeIndex = res.url;
+      }
+    },
+    treeData(source) {
+      let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕
+      // console.log(cloneData);
+      if (cloneData.length != 0) {
+        return cloneData.filter((father) => {
+          // 寰幆鎵�鏈夐」
+          let branchArr = cloneData.filter((child) => father.id == child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁
+          branchArr.length > 0 ? (father.children = branchArr) : ''; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊�
+          // 灞炰簬鍚屼竴瀵硅薄闂锛屼緥濡傦細浠� a=b銆乧=1 锛岀劧鍚庡啀浠� b.c=c 锛� 閭d箞 a.c=b.c=c=1 锛涘悓鐞嗭紝鍚庣画浠� c.d=2 ,閭d箞 a.c.d 涔熸槸=2锛�
+          // 鐢辨寰幆澶氭鍚庯紝灏辫兘褰㈡垚鐩稿簲鐨勬爲褰㈡暟鎹粨鏋�
+          return father.pid == this.menuId; // 杩斿洖涓�绾ц彍鍗�
+        });
+      } else {
+        alert('鏆傛棤鑿滃崟鏍忔暟鎹�');
+      }
+    },
+
+    handleselect(index, indexPath, e) {
+      this.getTimeCookies();
+
+      this.signInsertOpLog(this.m1, e.$attrs.perms.cnName)
+      const a = JSON.stringify(e.$attrs.perms)
+      sessionStorage.setItem('hanleselectmochaitmo', a)
+
+      var data = e.$attrs.perms;
+      this.$store.state.currentPerms = data.perms;
+      var index = data.url;
+      if (index != null) {
+        if (index.indexOf('http') != -1) {
+          this.$store.commit('getIframe', data.url);
+          index = 'dataIfream';
+        }
+      }
+
+      this.setMenuFlag = index;
+
+    },
+    handleselecttwo(index, e) {
+      this.getTimeCookies();
+
+      const a = JSON.stringify(e)
+      sessionStorage.setItem('hanleselectmochaitmo', a)
+
+      var data = e;
+      this.$store.state.currentPerms = data.perms;
+      var index = data.url;
+      if (index != null) {
+        if (index.indexOf('http') != -1) {
+          this.$store.commit('getIframe', data.url);
+          index = 'dataIfream';
+        }
+      }
+      this.setMenuFlag = index;
+
+    },
+  },
+};
+</script>
+
+ 
\ No newline at end of file
diff --git a/src/views/maintenance/parameterConfiguration.vue b/src/views/maintenance/parameterConfiguration.vue
index 06ed014..1dcfb71 100644
--- a/src/views/maintenance/parameterConfiguration.vue
+++ b/src/views/maintenance/parameterConfiguration.vue
@@ -1,13 +1,14 @@
 <template>
-  <div class="parameterConfiguration_box">
-    <My-bread
-      :list="[
+  <div class="parameterConfiguration_box box_div">
+    <My-bread :list="[
         `${$t('operatManage.operatManage')}`,
         `${$t('operatManage.systemLayout')}`,
-      ]"
-    ></My-bread>
+      ]"></My-bread>
     <el-divider />
-    <div class="table_box" :style="styleVar">
+    <div
+      class="table_box"
+      :style="styleVar"
+    >
       <el-table
         ref="filterTable"
         :data="tableData"
@@ -62,12 +63,14 @@
               type="warning"
               plain
               size="small"
-              >{{ $t("common.edit") }}</el-button
-            >
+            >{{ $t("common.edit") }}</el-button>
           </template>
         </el-table-column>
       </el-table>
-      <div class="pagination_box" style="margin-top: 10px">
+      <div
+        class="pagination_box"
+        style="margin-top: 10px"
+      >
         <el-pagination
           @size-change="handleSizeChange"
           @current-change="handleCurrentChange"
@@ -83,55 +86,72 @@
 
     <el-dialog
       :title="$t('operatManage.sysLayOutObj.editSysLayOut')"
-       top="2vh"
+      top="2vh"
       :visible.sync="EditFormdialog"
       :before-close="EditFromDataClose"
     >
-     <div style="height: 500px; overflow: auto">
-      <el-form :model="upform" label-position="top">
-        <el-form-item
-          :label="$t('operatManage.sysLayOutObj.name')"
-          :label-width="formLabelWidth"
+      <div style="height: 500px; overflow: auto">
+        <el-form
+          :model="upform"
+          label-position="top"
         >
-          <label class="boxlabel">{{ upform.name }}</label>
-        </el-form-item>
-        <el-form-item
-          :label="$t('operatManage.sysLayOutObj.cvalue')"
-          :label-width="formLabelWidth"
-        >
-          <el-input v-model="upform.cvalue" autocomplete="off"  style="width:85%"></el-input>
-        </el-form-item>
-        <el-form-item
-          :label="$t('operatManage.sysLayOutObj.dvalue')"
-          :label-width="formLabelWidth"
-        >
-          <label class="boxlabel">{{ upform.dvalue }}</label>
-        </el-form-item>
-        <el-form-item
-          :label="$t('operatManage.sysLayOutObj.minValue')"
-          :label-width="formLabelWidth"
-        >
-          <label class="boxlabel">{{ upform.minValue }}</label>
-        </el-form-item>
-        <el-form-item
-          :label="$t('operatManage.sysLayOutObj.maxValue')"
-          :label-width="formLabelWidth"
-        >
-          <label class="boxlabel">{{ upform.maxValue }}</label>
-        </el-form-item>
-        <el-form-item
-          :label="$t('operatManage.sysLayOutObj.descr')"
-          :label-width="formLabelWidth"
-        >
-          <label class="boxlabel">{{ upform.descr }}</label>
-        </el-form-item>
-      </el-form>
-     </div>
-      <div slot="footer" class="dialog-footer">
-        <el-button size="small" @click="EditFromDataClose">{{
+          <el-form-item
+            :label="$t('operatManage.sysLayOutObj.name')"
+            :label-width="formLabelWidth"
+          >
+            <label class="boxlabel">{{ upform.name }}</label>
+          </el-form-item>
+          <el-form-item
+            :label="$t('operatManage.sysLayOutObj.cvalue')"
+            :label-width="formLabelWidth"
+          >
+            <el-input
+              v-model="upform.cvalue"
+              autocomplete="off"
+              style="width:85%"
+            ></el-input>
+          </el-form-item>
+          <el-form-item
+            :label="$t('operatManage.sysLayOutObj.dvalue')"
+            :label-width="formLabelWidth"
+          >
+            <label class="boxlabel">{{ upform.dvalue }}</label>
+          </el-form-item>
+          <el-form-item
+            :label="$t('operatManage.sysLayOutObj.minValue')"
+            :label-width="formLabelWidth"
+          >
+            <label class="boxlabel">{{ upform.minValue }}</label>
+          </el-form-item>
+          <el-form-item
+            :label="$t('operatManage.sysLayOutObj.maxValue')"
+            :label-width="formLabelWidth"
+          >
+            <label class="boxlabel">{{ upform.maxValue }}</label>
+          </el-form-item>
+          <el-form-item
+            :label="$t('operatManage.sysLayOutObj.descr')"
+            :label-width="formLabelWidth"
+          >
+            <label class="boxlabel">{{ upform.descr }}</label>
+          </el-form-item>
+        </el-form>
+      </div>
+      <div
+        slot="footer"
+        class="dialog-footer"
+      >
+        <el-button
+          size="small"
+          @click="EditFromDataClose"
+        >{{
           $t("common.close")
         }}</el-button>
-        <el-button @click="EditFromData" size="small" type="primary">{{
+        <el-button
+          @click="EditFromData"
+          size="small"
+          type="primary"
+        >{{
           $t("common.confirm")
         }}</el-button>
       </div>
@@ -260,10 +280,10 @@
 <style lang="less" scoped>
 //@import url(); 寮曞叆鍏叡css绫�
 .parameterConfiguration_box {
-  height: 98%;
-  width: 98%;
-  padding: 0.5% 1%;
-
+  height: calc(100% - 20px);
+  width: calc(100% - 20px);
+  padding: 10px;
+  position: relative;
   .parameterConfiguration {
     padding-top: 10px;
     padding-bottom: 10px;
diff --git a/src/views/maintenance/systemController.vue b/src/views/maintenance/systemController.vue
new file mode 100644
index 0000000..11e80de
--- /dev/null
+++ b/src/views/maintenance/systemController.vue
@@ -0,0 +1,321 @@
+<template>
+  <div class="contentBox">
+
+    <div
+      class="box"
+      ref="box"
+    >
+      <div class="left box_div">
+        <el-menu
+          :default-active="activeIndex"
+          background-color="transparent"
+          @select="handleselect"
+        >
+          <customElMenu :menuData="menuList"></customElMenu>
+        </el-menu>
+      </div>
+      <div
+        class="resize"
+        title="鏀剁缉渚ц竟鏍�"
+      >
+        鈰�
+      </div>
+      <div class="mid box_div">
+        <menu-settings v-if="setMenuFlag == 'menuSettings'"></menu-settings>
+        <user-management v-if="setMenuFlag == 'userInfoManage'"></user-management>
+        <org-manage v-if="setMenuFlag == 'orgManage'"></org-manage>
+        <resource-manage v-if="setMenuFlag == 'resourceManage'"></resource-manage>
+        <role-manage v-if="setMenuFlag == 'roleManage'"></role-manage>
+        <authority-manage v-if="setMenuFlag == 'authorityManage'"></authority-manage>
+        <user-role-authorization v-if="setMenuFlag == 'userRoleAuthorization'"></user-role-authorization>
+        <menu-role-authorization v-if="setMenuFlag == 'menuRoleAuthorization'"></menu-role-authorization>
+        <role-menu-authorization v-if="setMenuFlag == 'roleMenuAuthorization'">
+        </role-menu-authorization>
+        <role-res-authorization v-if="setMenuFlag == 'roleResAuthorization'"></role-res-authorization>
+        <log-log v-if="setMenuFlag == 'logLog'"> </log-log>
+        <operation-log v-if="setMenuFlag == 'operationLog'"></operation-log>
+        <eventlog-manage v-if="setMenuFlag == 'eventlogManage'"></eventlog-manage>
+        <tokentool v-if="setMenuFlag == 'tokentool'"></tokentool>
+        <blackwhite-list v-if="setMenuFlag == 'blackwhiteList'"></blackwhite-list>
+        <database-monitoring v-if="setMenuFlag == 'dataIfream'"></database-monitoring>
+        <system-monitoring v-if="setMenuFlag == 'systemMonitoring'"></system-monitoring>
+        <parameter-configuration v-if="setMenuFlag == 'parameterConfiguration'"></parameter-configuration>
+        <downlog v-if="setMenuFlag == 'downlog'"></downlog>
+        <template-manage v-if="setMenuFlag == 'templateManage'"></template-manage>
+        <data-statistics v-if="setMenuFlag == 'dataStatistics'"></data-statistics>
+      </div>
+    </div>
+
+  </div>
+
+</template>
+
+<script>
+import menuSettings from '@/views/maintenance/menuSettings.vue'; //鑿滃崟绠$悊
+import userManagement from '@/views/maintenance/userManagement.vue'; //鐢ㄦ埛绠$悊
+import orgManage from '@/views/userManage/orgManage.vue'; //鍗曚綅绠$悊
+import resourceManage from '@/views/userManage/resourceManage.vue'; //璧勬簮绠$悊
+import roleManage from '@/views/userManage/roleManage.vue'; //瑙掕壊绠$悊
+import authorityManage from '@/views/userManage/authorityManage.vue'; //鏉冮檺绠$悊
+import userRoleAuthorization from '@/views/AuthorizationManagement/userRoleAuthorization.vue'; //鐢ㄦ埛瑙掕壊鎺堟潈
+import menuRoleAuthorization from '@/views/AuthorizationManagement/menuRoleAuthorization.vue'; //鑿滃崟鏉冮檺鎺堟潈
+import roleMenuAuthorization from '@/views/AuthorizationManagement/roleMenuAuthorization.vue'; //瑙掕壊鑿滃崟鎺堟潈
+import roleResAuthorization from '@/views/AuthorizationManagement/roleResAuthorization.vue'; //瑙掕壊璧勬簮鎺堟潈
+import logLog from '@/views/maintenance/logLog.vue'; //鐧诲綍鏃ュ織
+import operationLog from '@/views/maintenance/operationLog.vue'; //鎿嶄綔鏃ュ織
+import eventlogManage from '@/views/maintenance/eventlogManage.vue'; //璧勬簮鏃ュ織
+import tokentool from '@/views/maintenance/tokentool.vue'; //浠ょ墝绠$悊
+import blackwhiteList from '@/views/maintenance/blackwhiteList.vue'; //榛戠櫧鍚嶅崟
+import databaseMonitoring from '@/views/maintenance/databaseMonitoring.vue'; //鏁版嵁搴撶洃鎺�
+import systemMonitoring from '@/views/maintenance/systemMonitoring.vue'; //绯荤粺鐩戞帶
+import parameterConfiguration from '@/views/maintenance/parameterConfiguration.vue'; //绯荤粺閰嶇疆
+import downlog from '@/views/maintenance/downlog.vue'; //涓嬭浇鏃ュ織
+import templateManage from '@/views/userManage/templateManage.vue'//妯℃澘绠$悊
+import { selectMenuRecursive, queryMenuTree, getPerms, sign_insertOpLog } from '../../api/api';
+import customElMenu from '../../components/customElMenu.vue';
+import dataStatistics from '@/views/datamanage/dataStatistics.vue'; //鏁版嵁缁熻
+
+export default {
+  components: {
+    menuSettings,
+    userManagement,
+    orgManage,
+    resourceManage,
+    roleManage,
+    authorityManage,
+    userRoleAuthorization,
+    menuRoleAuthorization,
+    roleMenuAuthorization,
+    roleResAuthorization,
+    logLog,
+    operationLog,
+    eventlogManage,
+    tokentool,
+    blackwhiteList,
+    databaseMonitoring,
+    systemMonitoring,
+    parameterConfiguration,
+    customElMenu,
+    downlog,
+    templateManage,
+    dataStatistics
+  },
+  data() {
+    return {
+      setMenuFlag: '   ',
+      activeIndex: ' ',
+      oriData: [], //鍘熷鏍戞暟鎹�
+      dirData: [], //el鏍戞暟鎹�
+      newData: [], //鎷栧姩鍚庢暟鎹�
+      lang: 'zh',
+
+      menuList: [],
+      editTitle: '',
+      showPopover: false,
+      showEditInfoWrapper: false,
+      showEdit: false,
+      editMenu: false,
+      editCatalogue: false,
+      editUnit: false,
+      itemdetail: {},
+      formLabelWidth: '70px',
+      m1: null,
+      menuId: null,
+    };
+  },
+  created() { },
+  mounted() {
+    this.getTreeData();
+    //宸﹀彸鎷栧嫊
+    this.dragControllerDiv();
+  },
+  methods: {
+    //宸﹀彸鎷栧嫊
+    dragControllerDiv: function () {
+      var resize = document.getElementsByClassName('resize');
+      var left = document.getElementsByClassName('left');
+      var mid = document.getElementsByClassName('mid');
+      var box = document.getElementsByClassName('box');
+      for (let i = 0; i < resize.length; i++) {
+        // 榧犳爣鎸変笅浜嬩欢
+        resize[i].onmousedown = function (e) {
+          //棰滆壊鏀瑰彉鎻愰啋
+          resize[i].style.background = '#818181';
+          var startX = e.clientX;
+          resize[i].left = resize[i].offsetLeft;
+          // 榧犳爣鎷栧姩浜嬩欢
+          document.onmousemove = function (e) {
+            var endX = e.clientX;
+            var moveLen = resize[i].left + (endX - startX); // 锛坋ndx-startx锛�=绉诲姩鐨勮窛绂汇�俽esize[i].left+绉诲姩鐨勮窛绂�=宸﹁竟鍖哄煙鏈�鍚庣殑瀹藉害
+            var maxT = box[i].clientWidth - resize[i].offsetWidth; // 瀹瑰櫒瀹藉害 - 宸﹁竟鍖哄煙鐨勫搴� = 鍙宠竟鍖哄煙鐨勫搴�
+
+            if (moveLen < 205) moveLen = 205; // 宸﹁竟鍖哄煙鐨勬渶灏忓搴︿负32px
+            if (moveLen > maxT - 300) moveLen = maxT - 300; //鍙宠竟鍖哄煙鏈�灏忓搴︿负150px
+
+            resize[i].style.left = moveLen; // 璁剧疆宸︿晶鍖哄煙鐨勫搴�
+
+            for (let j = 0; j < left.length; j++) {
+              left[j].style.width = moveLen + 'px';
+              mid[j].style.width = (box[i].clientWidth - moveLen - 10) + 'px';
+            }
+          };
+          // 榧犳爣鏉惧紑浜嬩欢
+          document.onmouseup = function (evt) {
+            //棰滆壊鎭㈠
+            resize[i].style.background = '#d6d6d6';
+            document.onmousemove = null;
+            document.onmouseup = null;
+            resize[i].releaseCapture && resize[i].releaseCapture(); //褰撲綘涓嶅湪闇�瑕佺户缁幏寰楅紶鏍囨秷鎭氨瑕佸簲璇ヨ皟鐢≧eleaseCapture()閲婃斁鎺�
+          };
+          resize[i].setCapture && resize[i].setCapture(); //璇ュ嚱鏁板湪灞炰簬褰撳墠绾跨▼鐨勬寚瀹氱獥鍙i噷璁剧疆榧犳爣鎹曡幏
+          return false;
+        };
+      }
+    },
+
+    async getCookies() {
+      var boolean = this.getTimeCookies();
+      if (boolean != true) {
+        this.$router.push('/login');
+        return;
+      }
+      if (this.$store.state.permsEntity.length == 0) {
+        const data = await getPerms();
+        this.$store.state.permsEntity = data.result;
+      }
+      var store = this.menuList[0];
+      this.m1 = store.cnName;
+      this.setViewController(store);
+    },
+    getTimeCookies() {
+      var time1 = new Date(JSON.parse(localStorage.getItem('LFToken')).time);
+      var time2 = new Date();
+      if (time2 > time1) {
+        return false;
+      } else {
+        return true;
+      }
+    },
+    //鑾峰彇鏍�
+    async getTreeData() {
+      const data = await queryMenuTree();
+
+      let menuLists = data.result.filter((value) => {
+        return value.url == '/systemController';
+      });
+      this.menuId = menuLists[0].id;
+      const res = await selectMenuRecursive({ id: menuLists[0].id });
+
+      if (res.code == 200) {
+        if (res.result.length != 0) {
+          let menuList = res.result.filter((value) => {
+            return value.type == 1;
+          })
+            .filter(value => {
+              return value.isShow == 1;
+            });
+          this.menuList = this.treeData(menuList);
+          this.getCookies();
+          const hanleselectmochaitmo = sessionStorage.getItem('hanleselectmochaitmo')
+          if (hanleselectmochaitmo) {
+            this.$nextTick(function () {
+              this.handleselecttwo(JSON.parse(hanleselectmochaitmo).url, JSON.parse(hanleselectmochaitmo))
+              this.setViewController(JSON.parse(hanleselectmochaitmo))
+            })
+          }
+          //
+        } else {
+          alert('鏆傛棤鑿滃崟鏍忔暟鎹�');
+        }
+      } else {
+        console.log('鎺ュ彛鎶ラ敊');
+      }
+
+      // this.treeList = this.treeData(data.result);
+    },
+    async signInsertOpLog(m1, m2) {
+      var obj = {
+        m1: m1,
+        m2: m2,
+      }
+      const data = await sign_insertOpLog(obj);
+
+
+    },
+    setViewController(res) {
+      if (res == null) {
+        return;
+      }
+
+      if (res.children != null) {
+
+
+        this.setViewController(res.children[0]);
+      } else {
+
+        this.$store.state.currentPerms = res.perms;
+        this.signInsertOpLog(this.m1, res.cnName)
+        this.setMenuFlag = res.url;
+        this.activeIndex = res.url;
+      }
+    },
+    treeData(source) {
+      let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕
+      // console.log(cloneData);
+      if (cloneData.length != 0) {
+        return cloneData.filter((father) => {
+          // 寰幆鎵�鏈夐」
+          let branchArr = cloneData.filter((child) => father.id == child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁
+          branchArr.length > 0 ? (father.children = branchArr) : ''; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊�
+          // 灞炰簬鍚屼竴瀵硅薄闂锛屼緥濡傦細浠� a=b銆乧=1 锛岀劧鍚庡啀浠� b.c=c 锛� 閭d箞 a.c=b.c=c=1 锛涘悓鐞嗭紝鍚庣画浠� c.d=2 ,閭d箞 a.c.d 涔熸槸=2锛�
+          // 鐢辨寰幆澶氭鍚庯紝灏辫兘褰㈡垚鐩稿簲鐨勬爲褰㈡暟鎹粨鏋�
+          return father.pid == this.menuId; // 杩斿洖涓�绾ц彍鍗�
+        });
+      } else {
+        alert('鏆傛棤鑿滃崟鏍忔暟鎹�');
+      }
+    },
+
+    handleselect(index, indexPath, e) {
+      this.getTimeCookies();
+
+      this.signInsertOpLog(this.m1, e.$attrs.perms.cnName)
+      const a = JSON.stringify(e.$attrs.perms)
+      sessionStorage.setItem('hanleselectmochaitmo', a)
+
+      var data = e.$attrs.perms;
+      this.$store.state.currentPerms = data.perms;
+      var index = data.url;
+      if (index != null) {
+        if (index.indexOf('http') != -1) {
+          this.$store.commit('getIframe', data.url);
+          index = 'dataIfream';
+        }
+      }
+
+      this.setMenuFlag = index;
+
+    },
+    handleselecttwo(index, e) {
+      this.getTimeCookies();
+
+      const a = JSON.stringify(e)
+      sessionStorage.setItem('hanleselectmochaitmo', a)
+
+      var data = e;
+      this.$store.state.currentPerms = data.perms;
+      var index = data.url;
+      if (index != null) {
+        if (index.indexOf('http') != -1) {
+          this.$store.commit('getIframe', data.url);
+          index = 'dataIfream';
+        }
+      }
+      this.setMenuFlag = index;
+
+    },
+  },
+};
+</script>
+
+ 
\ No newline at end of file

--
Gitblit v1.9.3