{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\Menu.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\Menu.vue","mtime":1675071992678},{"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//\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 menu from '@/api/menu.js'\r\nimport utils from '@/hotent-ui-util.js'\r\nimport {mapState} from 'vuex'\r\n\r\nexport default {\r\n    props: {\r\n        menuShow: {\r\n            type: Boolean,\r\n            default: true,\r\n        },\r\n    },\r\n    computed: {\r\n        ...mapState({\r\n            menus: (state) => {\r\n                return state.menu.menus\r\n            },\r\n        }),\r\n    },\r\n    watch: {\r\n        collapseItemActive(n, o) {\r\n            this.oldCollapseItemActive = o\r\n        },\r\n        $route(to, from) {\r\n            if (to.meta.isHome) {\r\n                this.collapseItemActive = ''\r\n                this.menuItemActive = ''\r\n            }\r\n        },\r\n    },\r\n\r\n    data() {\r\n        return {\r\n            collapseItemActive: '',\r\n            menuItemActive: '',\r\n            oldCollapseItemActive: '',\r\n            isLeftBtnValue: false,\r\n        }\r\n    },\r\n    created() {\r\n        this.$router.afterEach((_) => {\r\n            this.syncUrlToMenu()\r\n        })\r\n        // 默认进入到首页，不选中菜单\r\n        // if (this.menus[0] && this.menus[0].children[0]) {\r\n        //     this.collapseItemActive = this.menus[0].alias\r\n        //     this.menuItemActive = this.menus[0].children[0].alias\r\n        // }\r\n    },\r\n    mounted() {\r\n        const this_ = this\r\n        setTimeout(function () {\r\n            !this_.currentUser &&\r\n                this_.$store.dispatch('user/loadCurrentUserDetail')\r\n        }, 2000)\r\n        const currentUser = this.$store.state.login.currentUser\r\n        if ((!this.menus || this.menus.length == 0) && currentUser) {\r\n            let this_ = this\r\n            this.$store.dispatch('menu/actionMenus').then((data) => {\r\n                if (this.isHasCurrentUrlRight()) {\r\n                    this.syncUrlToMenu()\r\n                } else {\r\n                    // this_.$router.push('home')\r\n                }\r\n            })\r\n        } else {\r\n            this.syncUrlToMenu()\r\n        }\r\n    },\r\n    methods: {\r\n        handleMenuCollapse() {\r\n            this.$emit('update:menuShow', !this.menuShow)\r\n            if (this.menuShow == true) {\r\n                this.collapseItemActive = ''\r\n            } else {\r\n                this.collapseItemActive = this.oldCollapseItemActive\r\n            }\r\n            //控制向左按钮的值\r\n            this.isLeftBtnValue = !this.isLeftBtnValue\r\n        },\r\n        // 同步当前url地址到目录菜单中，选中对应的目录菜单\r\n        syncUrlToMenu() {\r\n            let routePath = this.$route.path\r\n            if (routePath) {\r\n                if (!this.$route.meta.isHome) {\r\n                    this.handleSelect(routePath, false)\r\n                }\r\n            }\r\n        },\r\n        // 判断是否拥有当前url地址的权限\r\n        isHasCurrentUrlRight: function () {\r\n            let routePath = this.$route.path\r\n            if (routePath) {\r\n                let hasRight = false\r\n                if (!this.menus || this.menus.length < 1) {\r\n                    return hasRight\r\n                }\r\n                let tempMenu = JSON.parse(JSON.stringify(this.menus))\r\n                let listMenu = utils.nest2tile(tempMenu, '', true)\r\n                let ruterArr = routePath.split('/')\r\n                let lastRuter = ruterArr[ruterArr.length - 1]\r\n                listMenu.forEach((menu) => {\r\n                    if (lastRuter.indexOf(menu.alias) > -1) {\r\n                        hasRight = true\r\n                        return\r\n                    }\r\n                })\r\n                return hasRight\r\n            }\r\n        },\r\n        handleSelect(path, isJump) {\r\n            if (alias != 'tenant') {\r\n                this.$store.dispatch('tenant/actionTenantId', null)\r\n            }\r\n            let alias\r\n            let _this = this\r\n            if (path && path.indexOf('/sysplat/href')==-1) {\r\n                let i = path.lastIndexOf('/')\r\n                alias = path.slice(i + 1)\r\n            }else{\r\n                alias = path.replace('/sysplat/', '');\r\n            }\r\n            menu.getMenuByAlias(alias, (m) => {\r\n                m && _this.$emit('menuChange', m)\r\n                if (m && m.parent) {\r\n                    _this.collapseItemActive = m.parent.alias\r\n                    _this.menuItemActive = m.alias\r\n                }\r\n                if(m && m.openType == '2' && isJump){\r\n                    if(m.alias.indexOf(\"href/\") == -1){\r\n                        let routeUrl = this.$router.resolve({ path });\r\n                        window.open(routeUrl.href, '_blank');\r\n                    }else{\r\n                        let tempwindow = window.open();\r\n                        tempwindow.location = m.href\r\n                    }\r\n                }\r\n            })\r\n        },\r\n    },\r\n}\r\n",null]}