{"remainingRequest":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xypm-web\\src\\views\\menuContent.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xypm-web\\src\\views\\menuContent.vue","mtime":1675214578105},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport {mapState, mapActions} from 'vuex'\r\nimport templateHref from '@/components/dataTemplate/templateHref.vue'\r\nimport deepmerge from \"deepmerge\";\r\nexport default {\r\n  name: 'menuContent',\r\n  components: {templateHref},\r\n  computed: mapState({\r\n    menuAll: state => state.menu.all,\r\n    menus: function(state) {\r\n      let alias = ''\r\n      if (state.menu.currentMenu.alias) {\r\n        alias = state.menu.currentMenu.alias\r\n      } else if (sessionStorage.menu_alias) {\r\n        alias = sessionStorage.menu_alias\r\n      }\r\n      return state.menu.menuMaps[alias]\r\n    },\r\n    currentMenu: state => state.menu.currentMenu\r\n  }),\r\n  data() {\r\n    return {\r\n      asideShow:true,\r\n      activeMenuIndex: '',\r\n      href: '' //url菜单地址\r\n    }\r\n  },\r\n  methods: {\r\n    findCurrentMenuName(){\r\n      let obj=this.menus.find(it=>it.alias === this.activeMenuIndex);\r\n      let name=\"\";\r\n      if (obj){\r\n        name= obj.name\r\n      }else{\r\n        let _menus = deepmerge({}, this.menus, {clone: true})\r\n        let item=this.getChidlren(this.activeMenuIndex,_menus);\r\n        if (item){\r\n          name=item.name;\r\n        }\r\n      }\r\n      return name;\r\n\r\n    },\r\n    getChidlren(alias,_menus){\r\n      var hasFound = false, // 表示是否有找到id值\r\n              result = null;\r\n      var fn = function (data) {\r\n        if (Array.isArray(data) && !hasFound) { // 判断是否是数组并且没有的情况下，\r\n          data.forEach(item => {\r\n            if (item.alias === alias) { // 数据循环每个子项，并且判断子项下边是否有id值\r\n              result = item; // 返回的结果等于每一项\r\n              hasFound = true; // 并且找到id值\r\n            } else if (item.children && item.children.length>0) {\r\n              fn(item.children); // 递归调用下边的子项\r\n            }\r\n          })\r\n        }\r\n      }\r\n      fn(_menus); // 调用一下\r\n      return result;\r\n    },\r\n\r\n    handleSelect(key) {\r\n      //当前点击菜单的父级菜单路由\r\n      let path = this.currentMenu.alias || sessionStorage.menu_alias\r\n      if (path.indexOf('/') < 0) {\r\n        path = '/' + path\r\n      }\r\n      sessionStorage.menu_path = path + '/' + key\r\n      this.href = ''\r\n      //判断4级URL菜单\r\n      let item=this.getChidlren(key,this.menus);\r\n      if (item.href){\r\n        this.href = item.href\r\n      }\r\n      this.activeMenuIndex=key;\r\n      this.$router.push({path: sessionStorage.menu_path})\r\n    },\r\n    selectCurentMenu(newVal) {\r\n      //当前点击菜单的父级菜单路由\r\n      let path = ''\r\n      this.currentMenu.alias ? (path = this.currentMenu.alias) : (path = sessionStorage.menu_alias)\r\n      // if(this.currentMenu.alias){\r\n      //   path = this.currentMenu.alias;\r\n      // }else{\r\n      //   path = sessionStorage.menu_alias;\r\n      // }\r\n      if (path.indexOf('/') < 0) {\r\n        path = '/' + path\r\n      }\r\n      let paths = []\r\n      if (this.$router.history.pending) {\r\n        paths = this.$router.history.pending.fullPath.split(path + '/')\r\n      } else {\r\n        paths = this.$router.history.current.fullPath.split(path + '/')\r\n      }\r\n      if (paths.length > 0) {\r\n        this.activeMenuIndex = paths[1]\r\n      } else {\r\n        this.activeMenuIndex = paths[0]\r\n      }\r\n\r\n      let isFlag = true //是否需要默认加载一级菜单的第一个二级菜单\r\n      this.href = ''\r\n      for (let i = 0; i < this.menus.length; i++) {\r\n        //判断是否是URL菜单\r\n        if (this.menus[i].href) {\r\n          if (this.activeMenuIndex == this.menus[i].alias) {\r\n            this.href = this.menus[i].href\r\n            isFlag = false\r\n            break\r\n          }\r\n          let falg = false\r\n          //判断菜单是否有下一级，且只能有一个下一级\r\n          if (this.menus[i].children.length > 0) {\r\n            for (let o = 0; o < this.menus[i].children.length; o++) {\r\n              //判断是否是URL菜单\r\n              if (this.activeMenuIndex == this.menus[i].children[o].alias) {\r\n                this.href = this.menus[i].children[o].href\r\n                falg = true\r\n                break\r\n              }\r\n            }\r\n            if (falg) {\r\n              break\r\n            }\r\n          }\r\n        }\r\n      }\r\n      //默认加载一级菜单的第一个二级菜单\r\n      if (isFlag && (!this.activeMenuIndex || (this.activeMenuIndex && this.activeMenuIndex.indexOf('href/template') != -1))) {\r\n        this.activeMenuIndex = this.getLastChildren();\r\n\r\n        //判断是否是URL地址菜单\r\n        if (this.menus[0].href) {\r\n          this.href = this.menus[0].href\r\n        }\r\n        //判断菜单是否有下一级，且只能有一个下一级\r\n        if (this.menus[0].children.length > 0) {\r\n          for (let k = 0; k < this.menus[0].children.length; k++) {\r\n            //判断是否是URL菜单\r\n            if (this.menus[0].children[k].href) {\r\n              this.href = this.menus[0].children[k].href\r\n              this.activeMenuIndex = this.menus[0].children[k].alias\r\n              break\r\n            }\r\n          }\r\n        }\r\n        sessionStorage.menu_path = path + '/' + this.activeMenuIndex\r\n        this.$router.push({path: sessionStorage.menu_path})\r\n      }\r\n    },\r\n    getLastChildren(){\r\n      // 获取最后个children的第一个菜单\r\n      let _alias = this.menus[0].alias;\r\n      let _menus = this.menus[0];\r\n      while(_menus.children && _menus.children.length>0){\r\n        _alias = _menus.children[0].alias;\r\n        _menus = _menus.children[0];\r\n      }\r\n      return _alias;\r\n    },\r\n\r\n    setCurrentMenu(path) {\r\n      let that = this\r\n      for (let i = 0; i < that.menuAll.length; i++) {\r\n        if (that.menuAll[i].alias === path) {\r\n          if (path.indexOf('/') > -1) {\r\n            path = path.replace('/', '')\r\n          }\r\n          this.$store.dispatch('menu/getCurrentMenu', {\r\n            alias: that.menuAll[i].code,\r\n            name: that.menuAll[i].name\r\n          })\r\n          break\r\n        }\r\n      }\r\n    },\r\n    inCurrentMenu(newVal){\r\n      if(newVal && newVal.length > 0){\r\n        for(let i = 0 ; i < newVal.length ; i++){\r\n          if(newVal[i].alias == this.activeMenuIndex){\r\n            return true;\r\n          }\r\n          if(newVal[i].children && newVal[i].children.length > 0){\r\n            let inCur = this.inCurrentMenu(newVal[i].children)\r\n            if(inCur){\r\n              return true;\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }\r\n  },\r\n  watch: {\r\n    menus: {\r\n      handler(newVal) {\r\n        //判断当前菜单是否还在新菜单列表里\r\n        let menuChange = !this.inCurrentMenu(newVal);\r\n       //window.self === window.top  判断页面是否被嵌入iframe里面\r\n        if (newVal && newVal.length > 0 && window.self === window.top && menuChange) {\r\n          this.selectCurentMenu(newVal)\r\n        }\r\n        //切换一级菜单时情况URL地址\r\n        if (!newVal || newVal.length == 0) {\r\n          if (this.href != '') {\r\n            this.href = ''\r\n          }\r\n        }\r\n      },\r\n      deep: true,\r\n      immediate: true\r\n    }\r\n  },\r\n  beforeRouteEnter(to, from, next) {\r\n    next(vm => {\r\n      vm.$root.$emit('updateTopMenuActive', from.name)\r\n    })\r\n  },\r\n  beforeRouteUpdate(to, from, next) {\r\n    next()\r\n  }\r\n}\r\n",null]}