{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\common\\HtTabsComponentHref.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\common\\HtTabsComponentHref.vue","mtime":1675071991694},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\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\r\nimport { mapGetters } from \"vuex\";\r\nimport menuApi from \"@/api/menu.js\";\r\nexport default {\r\n  name: \"ht-tabs-component-href\",\r\n  components: {},\r\n  props: {},\r\n  computed: {\r\n    ...mapGetters({\r\n      tabsStyle: \"styleSetting/tabsStyle\"\r\n    }),\r\n    finalTabsStyle: function() {\r\n      // 使用菜单的配置\r\n      if (\r\n        (this.tabsStyle.tabType == \"menuSetting\" ||\r\n          this.tabsStyle.tabType == null) &&\r\n        this.menuTabsStyle\r\n      ) {\r\n        return this.menuTabsStyle;\r\n      }\r\n\r\n      // 使用默认的\r\n      if (\r\n        this.tabsStyle.tabType == null ||\r\n        ((this.tabsStyle.tabType == \"menuSetting\" ||\r\n          this.tabsStyle.tabType == null) &&\r\n          !this.menuTabsStyle)\r\n      ) {\r\n        return { tabType: \"\" };\r\n      }\r\n      // 使用全局的配置\r\n      return this.tabsStyle;\r\n    }\r\n  },\r\n  data() {\r\n    return {\r\n      href: \"\", //外部菜单url地址\r\n      tabComponentOptions: [],\r\n      currentTabComponent: \"\",\r\n      menuTabsStyle: null\r\n    };\r\n  },\r\n  methods: {\r\n    handlePaneClick: function(data) {\r\n      if (data.alias) {\r\n        this.currentTabComponent = data.alias;\r\n      }\r\n    }\r\n  },\r\n  beforeRouteEnter(to, from, next) {\r\n    next(vm => {\r\n      // 通过 `vm` 访问组件实例\r\n      let routePath = vm.$route.path;\r\n      if (routePath && routePath.indexOf('/sysplat/href/')==-1) {\r\n        let i = routePath.lastIndexOf('/');\r\n        routePath = routePath.slice(i+1);\r\n      }else{\r\n        routePath = routePath.replace('/sysplat/', '');\r\n      }\r\n      menuApi.getMenuByAlias(routePath, m => {\r\n        if (m) {\r\n          vm.$emit(\"menuChange\", m);\r\n          if (m.children && m.children.length > 0) {\r\n            vm.tabComponentOptions = m.children;\r\n            vm.href = vm.tabComponentOptions[0].href;\r\n            vm.currentTabComponent =\r\n              m.activeTab || vm.tabComponentOptions[0].alias;\r\n          } else {\r\n            vm.tabComponentOptions = [];\r\n            vm.currentTabComponent = m.alias;\r\n            if (m.href.indexOf(\"?token=\") == -1) {\r\n              vm.href =\r\n                m.href + \"?token=\" + vm.$store.state.login.currentUser.token;\r\n            } else {\r\n              vm.href = m.href;\r\n            }\r\n          }\r\n          if (m.tabsStyle) {\r\n            vm.menuTabsStyle = JSON.parse(m.tabsStyle);\r\n          } else {\r\n            vm.menuTabsStyle = null;\r\n          }\r\n        } else {\r\n          // 没有菜单的路由跳转   需要显示TAb名称需要定义tobName参数传递过来\r\n          vm.tabComponentOptions = [];\r\n          vm.currentTabComponent = to.name;\r\n          vm.$emit(\"menuChange\", { name: to.params.tobName });\r\n        }\r\n      });\r\n    });\r\n  },\r\n  beforeRouteUpdate(to, from, next) {\r\n    \r\n    // 在当前路由改变，但是该组件被复用时调用\r\n    // 举例来说，对于一个带有动态参数的路径 /foo/:id，在 /foo/1 和 /foo/2 之间跳转的时候，\r\n    // 由于会渲染同样的 Foo 组件，因此组件实例会被复用。而这个钩子就会在这个情况下被调用。\r\n    // 可以访问组件实例 `this`\r\n    // 通过 `vm` 访问组件实例\r\n    next();\r\n    const vm = this;\r\n    let routePath = to.fullPath;\r\n    if (routePath && routePath.indexOf('/sysplat/href/')==-1) {\r\n      let i = routePath.lastIndexOf('/');\r\n      routePath = routePath.slice(i+1);\r\n    }else{\r\n      routePath = routePath.replace('/sysplat/', '');\r\n    }\r\n    menuApi.getMenuByAlias(routePath, m => {\r\n      if (m) {\r\n        vm.$emit(\"menuChange\", m);\r\n        if (m.children && m.children.length > 0) {\r\n          vm.tabComponentOptions = m.children;\r\n          vm.href = vm.tabComponentOptions[0].href;\r\n          vm.currentTabComponent =\r\n            m.activeTab || vm.tabComponentOptions[0].alias;\r\n        } else {\r\n          vm.tabComponentOptions = [];\r\n          vm.currentTabComponent = m.alias;\r\n          if (m.href.indexOf(\"?token=\") == -1) {\r\n            vm.href =\r\n              m.href + \"?token=\" + vm.$store.state.login.currentUser.token;\r\n          } else {\r\n            vm.href = m.href;\r\n          }\r\n        }\r\n        if (m.tabsStyle) {\r\n          vm.menuTabsStyle = JSON.parse(m.tabsStyle);\r\n        } else {\r\n          vm.menuTabsStyle = null;\r\n        }\r\n      } else {\r\n        // 没有菜单的路由跳转   需要显示TAb名称需要定义tobName参数传递过来\r\n        vm.tabComponentOptions = [];\r\n        vm.currentTabComponent = to.name;\r\n        vm.$emit(\"menuChange\", { name: to.params.tobName?to.params.tobName:to.meta.menuLabel });\r\n      }\r\n    });\r\n  }\r\n};\r\n",null]}