管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2023-02-27 f79ebb7dc06cf94667d512af41c2cc61f99c2493
项目管理数据库管理新增
已添加2个文件
已修改11个文件
585 ■■■■■ 文件已修改
src/assets/lang/en.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/lang/zh.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/MapView/mapMenuTop.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/mapol.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/mapsdk.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/navMenu.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Synthesis/LeftMenu.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/SpatialData.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/bankController.vue 257 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/dataController.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/projectController.vue 257 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/maintenance/mochaitmo.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/lang/en.js
@@ -53,11 +53,11 @@
  dataManage: {
    dataManage: 'Data Manage',
    catalogueManage: 'Directory management',
    catalogueManage: 'project management',
    dataUpdata: 'dataUpdata',
    datawarehousing: 'Data warehousing',
    rangeManage: 'Range management',
    dataRetrieval: 'data retrieval',
    dataRetrieval: 'Data query',
    dataDownload: 'Data download',
    projectManage: 'Project information',
    dataStatistics: 'data Statistics',
@@ -110,7 +110,7 @@
      code: 'Code'
    },
    metadataManage: 'Metadata management',
    metadataManage: 'information management',
    dataLoading: 'dataLoading',
    SpatialData: 'SpatialData',
    versionManage: 'versionManage',
src/assets/lang/zh.js
@@ -52,11 +52,11 @@
  },
  dataManage: {
    dataManage: '数据管理',
    catalogueManage: '目录管理',
    catalogueManage: '项目管理',
    dataUpdata: '数据上传',
    datawarehousing: '数据入库',
    rangeManage: '值域管理',
    dataRetrieval: '数据检索',
    dataRetrieval: '数据查询',
    dataDownload: '数据下载',
    projectManage: '项目信息',
    dataStatistics: '数据统计',
@@ -110,7 +110,7 @@
      inspectionItems: "检查项",
      code: '编码'
    },
    metadataManage: '元数据管理',
    metadataManage: '信息管理',
    dataLoading: '数据入库',
    SpatialData: '空间数据管理',
    versionManage: '版本管理',
src/components/MapView/mapMenuTop.vue
@@ -223,7 +223,7 @@
      this.menuTopFrom.queryLayer = valTree[0].tabDesc;
      for (var i = 0; i < valTree.length; i++) {
        if (valTree[i].entity) {
          debugger
          this.treeChange.push(valTree[i]);
        }
src/components/mapol.vue
@@ -132,7 +132,7 @@
    //二维/三维地图切换
    changeMapType() {
      // debugger
      //
      this.show2DMap = !this.show2DMap;
      //二维
      if (this.show2DMap) {
src/components/mapsdk.vue
@@ -1031,7 +1031,7 @@
    },
    //二维/三维地图切换
    changeMapType() {
      // debugger
      //
      this.show2DMap = !this.show2DMap;
      //二维
      if (this.show2DMap) {
src/components/navMenu.vue
@@ -216,7 +216,8 @@
    },
    //鼠标移入菜单事件
    setMenuMove(index, item) {
      if (item.perms != null) {
      if (item.perms != null && item.perms != "") {
        this.$router.push(item.url);
        if (this.showFlag != null) {
@@ -317,16 +318,19 @@
      for (var i in res) {
        res[i].checkClass = res[i].css + '1';
        res[i].show = false; //控制显隐
        if (res[i].perms == null) {
        if (res[i].perms == null || res[i].perms == "") {
          const result = await selectMenuRecursive({ id: res[i].id });
          if (result.code == 200) {
            res[i].children = result.result.filter((value) => {
              return value.isShow == 1;
            })
              .filter((value) => {
                return value.pid == res[i].id;
              });
          }
          this.listMenu.push(res[i]);
          // this.changeSelectStyle = this.listMenu.length - 1;
src/router/index.js
@@ -48,6 +48,11 @@
import roleResAuthorization from '@/views/AuthorizationManagement/roleResAuthorization.vue'; //系统管理-角色资源授权
import roleMenuAuthorization from '@/views/AuthorizationManagement/roleMenuAuthorization.vue'; //系统管理-角色菜单授权
import bankController from '../views/datamanage/bankController.vue';//数据库管理
import projectController from '../views/datamanage/projectController.vue';//项目管理
//包二
import WareInspection from '@/views/PackageTwo/WareInspection.vue'; //数据质检-入库质检
import QualityInspection from '@/views/PackageTwo/index.vue'; //数据质检-入库质检
@@ -114,6 +119,24 @@
        },
      },
      {
        path: '/bankController',
        component: bankController,
        name: 'bankController',
        meta: {
          title: '数据库管理',
          requireAuth: true, // æ ‡è¯†è¯¥è·¯ç”±æ˜¯å¦éœ€è¦ç™»å½•
        },
      },
      {
        path: '/projectController',
        component: projectController,
        name: 'projectController',
        meta: {
          title: '项目管理',
          requireAuth: true, // æ ‡è¯†è¯¥è·¯ç”±æ˜¯å¦éœ€è¦ç™»å½•
        },
      },
      {
        path: '/dataController',
        component: dataController,
        name: 'dataController',
src/views/Synthesis/LeftMenu.vue
@@ -1185,7 +1185,7 @@
            PDelevationTool.type = "none";
          }
          PDelevationTool.render();
debugger
          break;
        case "d3": //路径分析
src/views/datamanage/SpatialData.vue
@@ -792,7 +792,7 @@
      var std = [];
      for (var i in data1) {
        if (data1[i].type != 'geometry' && data1[i].type) {
          debugger
          this.filedsOption.push(data1[i]);
        }
        if (data1[i].showtype == 1) {
src/views/datamanage/bankController.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,257 @@
<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">
        <data-updata v-if="setMenuFlag == 'dataUpdata'"></data-updata>
        <catalogue-manage v-if="setMenuFlag == 'catalogueManage'"></catalogue-manage>
        <spatial-data v-if="setMenuFlag == 'SpatialData'"></spatial-data>
        <version-manage v-if="setMenuFlag == 'versionManage'"></version-manage>
        <domain-manage v-if="setMenuFlag == 'domainManage'"></domain-manage>
        <dictionary-manage v-if="setMenuFlag == 'dictionaryManage'"></dictionary-manage>
        <metadata-manage v-if="setMenuFlag == 'metadataManage'"></metadata-manage>
        <style-manage v-if="setMenuFlag == 'styleManage'"></style-manage>
        <data-loader v-if="setMenuFlag == 'dataLoader'"></data-loader>
        <down-loader v-if="setMenuFlag == 'downLoader'"></down-loader>
        <project-manage v-if="setMenuFlag == 'projectManage'"></project-manage>
        <data-statistics v-if="setMenuFlag == 'dataStatistics'"></data-statistics>
      </div>
    </div>
  </div>
</template>
<script>
import { selectMenuRecursive, queryMenuTree, sign_insertOpLog } from '../../api/api';
import customElMenu from '../../components/customElMenu.vue';
import dataUpdata from '@/views/datamanage/dataUpdata.vue'; //数据管理-数据上传
import catalogueManage from '@/views/datamanage/catalogueManage.vue'; //数据管理-目录管理
import SpatialData from '@/views/datamanage/SpatialData.vue'; //数据管理-数据检索
import versionManage from '@/views/datamanage/versionManage.vue'; //数据管理-版本管理
import domainManage from '@/views/datamanage/domainManage.vue'; //数据管理-值域管理
import dictionaryManage from '@/views/datamanage/dictionaryManage.vue'; //数据管理-字典管理
import metadataManage from '@/views/datamanage/metadataManage.vue'; //数据管理-元数据管理
import styleManage from '@/views/datamanage/styleManage.vue'; //数据管理-样式管理
import dataLoader from '@/views/datamanage/dataLoader.vue'; //数据管理-数据入库
import downLoader from '@/views/datamanage/downLoader.vue'; //数据管理-数据下载
import projectManage from '@/views/datamanage/projectManage.vue'; //项目管理
import dataStatistics from '@/views/datamanage/dataStatistics.vue'; //数据统计
export default {
  components: {
    customElMenu,
    dataUpdata,
    catalogueManage,
    SpatialData,
    versionManage,
    domainManage,
    dictionaryManage,
    metadataManage,
    styleManage,
    dataLoader,
    downLoader,
    projectManage,
    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',
    };
  },
  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); // ï¼ˆendx-startx)=移动的距离。resize[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(); //当你不在需要继续获得鼠标消息就要应该调用ReleaseCapture()释放掉
          };
          resize[i].setCapture && resize[i].setCapture(); //该函数在属于当前线程的指定窗口里设置鼠标捕获
          return false;
        };
      }
    },
    //获取树
    async getTreeData() {
      const data = await queryMenuTree();
      let menuLists = data.result.filter((value) => {
        return value.url == '/bankController';
      });
      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;
          });
          this.menuList = this.treeData(menuList);
          this.m1 = this.menuList[0].cnName;
          this.setViewController(this.menuList[0]);
          const hanleselectindex = sessionStorage.getItem('hanleselectindex')
          if (hanleselectindex) {
            this.$nextTick(function () {
              this.handleselecttwo(JSON.parse(hanleselectindex).url, JSON.parse(hanleselectindex))
              this.setViewController(JSON.parse(hanleselectindex))
            })
          }
        } else {
          this.$message.error('暂无菜单栏数据');
        }
      } else {
        this.$message.error('接口报错');
      }
      // this.treeList = this.treeData(data.result);
    },
    setViewController(res) {
      if (res.children != null) {
        this.setViewController(res.children[0]);
      } else {
        this.signInsertOpLog(this.m1, res.cnName)
        this.$store.state.currentPerms = res.perms;
        this.setMenuFlag = res.url;
        this.activeIndex = res.url;
      }
    },
    async signInsertOpLog(m1, m2) {
      var obj = {
        m1: m1,
        m2: m2,
      }
      const data = await sign_insertOpLog(obj);
    },
    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) : ''; // ç»™çˆ¶çº§æ·»åŠ ä¸€ä¸ªchildren属性,并赋值
          // å±žäºŽåŒä¸€å¯¹è±¡é—®é¢˜ï¼Œä¾‹å¦‚:令 a=b、c=1 ï¼Œç„¶åŽå†ä»¤ b.c=c ï¼Œ é‚£ä¹ˆ a.c=b.c=c=1 ï¼›åŒç†ï¼ŒåŽç»­ä»¤ c.d=2 ,那么 a.c.d ä¹Ÿæ˜¯=2;
          // ç”±æ­¤å¾ªçŽ¯å¤šæ¬¡åŽï¼Œå°±èƒ½å½¢æˆç›¸åº”çš„æ ‘å½¢æ•°æ®ç»“æž„
          return father.pid == 86; // è¿”回一级菜单
        });
      } else {
        this.$message.error('暂无菜单栏数据');
      }
    },
    handleselect(index, indexPath, e) {
      const a = JSON.stringify(e.$attrs.perms)
      this.signInsertOpLog(this.m1, e.$attrs.perms.cnName)
      sessionStorage.setItem('hanleselectindex', 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) {
      const a = JSON.stringify(e)
      sessionStorage.setItem('hanleselectindex', 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>
src/views/datamanage/dataController.vue
@@ -54,8 +54,8 @@
import dataLoader from '@/views/datamanage/dataLoader.vue'; //数据管理-数据入库
import downLoader from '@/views/datamanage/downLoader.vue'; //数据管理-数据下载
import projectManage from '@/views/datamanage/projectManage.vue'; //项目管理
import dataStatistics from  '@/views/datamanage/dataStatistics.vue'; //数据统计
import dataStatistics from '@/views/datamanage/dataStatistics.vue'; //数据统计
export default {
  components: {
    customElMenu,
@@ -71,7 +71,7 @@
    downLoader,
    projectManage,
    dataStatistics,
  },
  data() {
    return {
src/views/datamanage/projectController.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,257 @@
<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">
        <data-updata v-if="setMenuFlag == 'dataUpdata'"></data-updata>
        <catalogue-manage v-if="setMenuFlag == 'catalogueManage'"></catalogue-manage>
        <spatial-data v-if="setMenuFlag == 'SpatialData'"></spatial-data>
        <version-manage v-if="setMenuFlag == 'versionManage'"></version-manage>
        <domain-manage v-if="setMenuFlag == 'domainManage'"></domain-manage>
        <dictionary-manage v-if="setMenuFlag == 'dictionaryManage'"></dictionary-manage>
        <metadata-manage v-if="setMenuFlag == 'metadataManage'"></metadata-manage>
        <style-manage v-if="setMenuFlag == 'styleManage'"></style-manage>
        <data-loader v-if="setMenuFlag == 'dataLoader'"></data-loader>
        <down-loader v-if="setMenuFlag == 'downLoader'"></down-loader>
        <project-manage v-if="setMenuFlag == 'projectManage'"></project-manage>
        <data-statistics v-if="setMenuFlag == 'dataStatistics'"></data-statistics>
      </div>
    </div>
  </div>
</template>
<script>
import { selectMenuRecursive, queryMenuTree, sign_insertOpLog } from '../../api/api';
import customElMenu from '../../components/customElMenu.vue';
import dataUpdata from '@/views/datamanage/dataUpdata.vue'; //数据管理-数据上传
import catalogueManage from '@/views/datamanage/catalogueManage.vue'; //数据管理-目录管理
import SpatialData from '@/views/datamanage/SpatialData.vue'; //数据管理-数据检索
import versionManage from '@/views/datamanage/versionManage.vue'; //数据管理-版本管理
import domainManage from '@/views/datamanage/domainManage.vue'; //数据管理-值域管理
import dictionaryManage from '@/views/datamanage/dictionaryManage.vue'; //数据管理-字典管理
import metadataManage from '@/views/datamanage/metadataManage.vue'; //数据管理-元数据管理
import styleManage from '@/views/datamanage/styleManage.vue'; //数据管理-样式管理
import dataLoader from '@/views/datamanage/dataLoader.vue'; //数据管理-数据入库
import downLoader from '@/views/datamanage/downLoader.vue'; //数据管理-数据下载
import projectManage from '@/views/datamanage/projectManage.vue'; //项目管理
import dataStatistics from '@/views/datamanage/dataStatistics.vue'; //数据统计
export default {
  components: {
    customElMenu,
    dataUpdata,
    catalogueManage,
    SpatialData,
    versionManage,
    domainManage,
    dictionaryManage,
    metadataManage,
    styleManage,
    dataLoader,
    downLoader,
    projectManage,
    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',
    };
  },
  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); // ï¼ˆendx-startx)=移动的距离。resize[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(); //当你不在需要继续获得鼠标消息就要应该调用ReleaseCapture()释放掉
          };
          resize[i].setCapture && resize[i].setCapture(); //该函数在属于当前线程的指定窗口里设置鼠标捕获
          return false;
        };
      }
    },
    //获取树
    async getTreeData() {
      const data = await queryMenuTree();
      let menuLists = data.result.filter((value) => {
        return value.url == '/projectController';
      });
      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;
          });
          this.menuList = this.treeData(menuList);
          this.m1 = this.menuList[0].cnName;
          this.setViewController(this.menuList[0]);
          const hanleselectindex = sessionStorage.getItem('hanleselectindex')
          if (hanleselectindex) {
            this.$nextTick(function () {
              this.handleselecttwo(JSON.parse(hanleselectindex).url, JSON.parse(hanleselectindex))
              this.setViewController(JSON.parse(hanleselectindex))
            })
          }
        } else {
          this.$message.error('暂无菜单栏数据');
        }
      } else {
        this.$message.error('接口报错');
      }
      // this.treeList = this.treeData(data.result);
    },
    setViewController(res) {
      if (res.children != null) {
        this.setViewController(res.children[0]);
      } else {
        this.signInsertOpLog(this.m1, res.cnName)
        this.$store.state.currentPerms = res.perms;
        this.setMenuFlag = res.url;
        this.activeIndex = res.url;
      }
    },
    async signInsertOpLog(m1, m2) {
      var obj = {
        m1: m1,
        m2: m2,
      }
      const data = await sign_insertOpLog(obj);
    },
    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) : ''; // ç»™çˆ¶çº§æ·»åŠ ä¸€ä¸ªchildren属性,并赋值
          // å±žäºŽåŒä¸€å¯¹è±¡é—®é¢˜ï¼Œä¾‹å¦‚:令 a=b、c=1 ï¼Œç„¶åŽå†ä»¤ b.c=c ï¼Œ é‚£ä¹ˆ a.c=b.c=c=1 ï¼›åŒç†ï¼ŒåŽç»­ä»¤ c.d=2 ,那么 a.c.d ä¹Ÿæ˜¯=2;
          // ç”±æ­¤å¾ªçŽ¯å¤šæ¬¡åŽï¼Œå°±èƒ½å½¢æˆç›¸åº”çš„æ ‘å½¢æ•°æ®ç»“æž„
          return father.pid == 85; // è¿”回一级菜单
        });
      } else {
        this.$message.error('暂无菜单栏数据');
      }
    },
    handleselect(index, indexPath, e) {
      const a = JSON.stringify(e.$attrs.perms)
      this.signInsertOpLog(this.m1, e.$attrs.perms.cnName)
      sessionStorage.setItem('hanleselectindex', 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) {
      const a = JSON.stringify(e)
      sessionStorage.setItem('hanleselectindex', 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>
src/views/maintenance/mochaitmo.vue
@@ -42,6 +42,7 @@
        <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>
@@ -72,6 +73,7 @@
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: {
@@ -96,7 +98,7 @@
    customElMenu,
    downlog,
    templateManage,
    dataStatistics
  },
  data() {
    return {
@@ -208,9 +210,9 @@
          let menuList = res.result.filter((value) => {
            return value.type == 1;
          })
          .filter(value => {
            return value.isShow == 1;
          });
            .filter(value => {
              return value.isShow == 1;
            });
          this.menuList = this.treeData(menuList);
          this.getCookies();
          const hanleselectmochaitmo = sessionStorage.getItem('hanleselectmochaitmo')
@@ -275,7 +277,7 @@
    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)