{"remainingRequest":"C:\\Users\\27446\\Desktop\\up\\front\\dkha-web-sz-main\\node_modules\\babel-loader\\lib\\index.js!C:\\Users\\27446\\Desktop\\up\\front\\dkha-web-sz-main\\src\\router\\index.js","dependencies":[{"path":"C:\\Users\\27446\\Desktop\\up\\front\\dkha-web-sz-main\\src\\router\\index.js","mtime":1614735254000},{"path":"C:\\Users\\27446\\Desktop\\up\\front\\dkha-web-sz-main\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\27446\\Desktop\\up\\front\\dkha-web-sz-main\\node_modules\\babel-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import \"core-js/modules/es7.object.get-own-property-descriptors\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.object.keys\";\nimport _defineProperty from \"C:\\\\Users\\\\27446\\\\Desktop\\\\up\\\\front\\\\dkha-web-sz-main\\\\node_modules\\\\@babel\\\\runtime-corejs2/helpers/esm/defineProperty\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.replace\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport Vue from 'vue';\nimport Router from 'vue-router';\nimport http from '@/utils/request';\nimport { isURL } from '@/utils/validate';\nimport { getPersonRegion, getDictDataListAll } from '@/utils/index';\nVue.use(Router); // 页面路由(独立页面)\n\nexport var pageRoutes = [{\n path: '/404',\n component: function component() {\n return import('@/views/pages/404');\n },\n name: '404',\n meta: {\n title: '404未找到'\n },\n beforeEnter: function beforeEnter(to, from, next) {\n // 拦截处理特殊业务场景\n // 如果, 重定向路由包含__双下划线, 为临时添加路由\n if (/__.*/.test(to.redirectedFrom)) {\n return next(to.redirectedFrom.replace(/__.*/, ''));\n }\n\n next();\n }\n}, {\n path: '/login',\n component: function component() {\n return import('@/views/pages/login');\n },\n name: 'login',\n meta: {\n title: '登录'\n }\n}]; // 模块路由(基于主入口布局页面)\n\nexport var moduleRoutes = {\n path: '/',\n component: function component() {\n return import('@/views/main');\n },\n name: 'main',\n redirect: {\n name: 'home'\n },\n meta: {\n title: '主入口布局'\n },\n children: [{\n path: '/home',\n component: function component() {\n return import('@/views/modules/home');\n },\n name: 'home',\n meta: {\n title: '首页',\n isTab: true\n }\n }]\n};\nexport function addDynamicRoute(routeParams, router) {\n // 组装路由名称, 并判断是否已添加, 如是: 则直接跳转\n var routeName = routeParams.routeName;\n var dynamicRoute = window.SITE_CONFIG['dynamicRoutes'].filter(function (item) {\n return item.name === routeName;\n })[0];\n\n if (dynamicRoute) {\n return router.push({\n name: routeName,\n params: routeParams.params\n });\n } // 否则: 添加并全局变量保存, 再跳转\n\n\n dynamicRoute = {\n path: routeName,\n component: function component() {\n return import(\"@/views/modules/\".concat(routeParams.path));\n },\n name: routeName,\n meta: _objectSpread({}, window.SITE_CONFIG['contentTabDefault'], {\n menuId: routeParams.menuId,\n title: \"\".concat(routeParams.title)\n })\n };\n router.addRoutes([_objectSpread({}, moduleRoutes, {\n name: \"main-dynamic__\".concat(dynamicRoute.name),\n children: [dynamicRoute]\n })]);\n window.SITE_CONFIG['dynamicRoutes'].push(dynamicRoute);\n router.push({\n name: dynamicRoute.name,\n params: routeParams.params\n });\n}\nvar router = new Router({\n mode: 'hash',\n scrollBehavior: function scrollBehavior() {\n return {\n y: 0\n };\n },\n routes: pageRoutes.concat(moduleRoutes)\n});\nrouter.beforeEach(function (to, from, next) {\n // 添加动态(菜单)路由\n // 已添加或者当前路由为页面路由, 可直接访问\n if (window.SITE_CONFIG['dynamicMenuRoutesHasAdded'] || fnCurrentRouteIsPageRoute(to, pageRoutes)) {\n return next();\n } //行政区域\n\n\n getPersonRegion(); //字典\n\n getDictDataListAll(); // 获取字典列表, 添加并全局变量保存\n\n /* http.get('/sys/dict/type/all').then(({ data: res }) => {\n if (res.code !== 0) {\n return\n }\n window.SITE_CONFIG['dictList'] = res.data\n }).catch(() => {}) */\n // 获取菜单列表, 添加并全局变量保存\n\n http.get('/sys/menu/nav').then(function (_ref) {\n var res = _ref.data;\n\n if (res.code !== 0) {\n Vue.prototype.$message.error(res.msg);\n return next({\n name: 'login'\n });\n }\n\n window.SITE_CONFIG['menuList'] = res.data;\n fnAddDynamicMenuRoutes(window.SITE_CONFIG['menuList']);\n next(_objectSpread({}, to, {\n replace: true\n }));\n }).catch(function () {\n next({\n name: 'login'\n });\n });\n});\n/**\n * 判断当前路由是否为页面路由\n * @param {*} route 当前路由\n * @param {*} pageRoutes 页面路由\n */\n\nfunction fnCurrentRouteIsPageRoute(route) {\n var pageRoutes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var temp = [];\n\n for (var i = 0; i < pageRoutes.length; i++) {\n if (route.path === pageRoutes[i].path) {\n return true;\n }\n\n if (pageRoutes[i].children && pageRoutes[i].children.length >= 1) {\n temp = temp.concat(pageRoutes[i].children);\n }\n }\n\n return temp.length >= 1 ? fnCurrentRouteIsPageRoute(route, temp) : false;\n}\n/**\n * 添加动态(菜单)路由\n * @param {*} menuList 菜单列表\n * @param {*} routes 递归创建的动态(菜单)路由\n */\n\n\nfunction fnAddDynamicMenuRoutes() {\n var menuList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var routes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var temp = [];\n\n var _loop = function _loop() {\n if (menuList[i].children && menuList[i].children.length >= 1) {\n temp = temp.concat(menuList[i].children);\n return \"continue\";\n } // 组装路由\n\n\n route = {\n path: '',\n component: null,\n name: '',\n meta: _objectSpread({}, window.SITE_CONFIG['contentTabDefault'], {\n menuId: menuList[i].id,\n title: menuList[i].name\n }) // eslint-disable-next-line\n\n };\n var URL = (menuList[i].url || '').replace(/{{([^}}]+)?}}/g, function (s1, s2) {\n return eval(s2);\n }); // URL支持{{ window.xxx }}占位符变量\n\n if (isURL(URL)) {\n route['path'] = route['name'] = \"i-\".concat(menuList[i].id);\n route['meta']['iframeURL'] = URL;\n } else {\n URL = URL.replace(/^\\//, '').replace(/_/g, '-');\n route['path'] = route['name'] = URL.replace(/\\//g, '-');\n\n route['component'] = function () {\n return import(\"@/views/modules/\".concat(URL));\n };\n }\n\n routes.push(route);\n };\n\n for (var i = 0; i < menuList.length; i++) {\n var route;\n\n var _ret = _loop();\n\n if (_ret === \"continue\") continue;\n }\n\n if (temp.length >= 1) {\n return fnAddDynamicMenuRoutes(temp, routes);\n } // 添加路由\n\n\n router.addRoutes([_objectSpread({}, moduleRoutes, {\n name: 'main-dynamic-menu',\n children: routes\n }), {\n path: '*',\n redirect: {\n name: '404'\n }\n }]);\n window.SITE_CONFIG['dynamicMenuRoutes'] = routes;\n window.SITE_CONFIG['dynamicMenuRoutesHasAdded'] = true;\n}\n\nexport default router;",{"version":3,"sources":["C:\\Users\\27446\\Desktop\\up\\front\\dkha-web-sz-main\\src\\router\\index.js"],"names":["Vue","Router","http","isURL","getPersonRegion","getDictDataListAll","use","pageRoutes","path","component","name","meta","title","beforeEnter","to","from","next","test","redirectedFrom","replace","moduleRoutes","redirect","children","isTab","addDynamicRoute","routeParams","router","routeName","dynamicRoute","window","SITE_CONFIG","filter","item","push","params","menuId","addRoutes","mode","scrollBehavior","y","routes","concat","beforeEach","fnCurrentRouteIsPageRoute","get","then","res","data","code","prototype","$message","error","msg","fnAddDynamicMenuRoutes","catch","route","temp","i","length","menuList","id","URL","url","s1","s2","eval"],"mappings":"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","sourcesContent":["import Vue from 'vue'\nimport Router from 'vue-router'\nimport http from '@/utils/request'\nimport {isURL } from '@/utils/validate'\nimport { getPersonRegion,getDictDataListAll } from '@/utils/index'\n\nVue.use(Router)\n\n// 页面路由(独立页面)\nexport const pageRoutes = [\n {\n path: '/404',\n component: () => import('@/views/pages/404'),\n name: '404',\n meta: { title: '404未找到' },\n beforeEnter (to, from, next) {\n // 拦截处理特殊业务场景\n // 如果, 重定向路由包含__双下划线, 为临时添加路由\n if (/__.*/.test(to.redirectedFrom)) {\n return next(to.redirectedFrom.replace(/__.*/, ''))\n }\n next()\n }\n },\n { path: '/login', component: () => import('@/views/pages/login'), name: 'login', meta: { title: '登录' } }\n]\n\n// 模块路由(基于主入口布局页面)\nexport const moduleRoutes = {\n path: '/',\n component: () => import('@/views/main'),\n name: 'main',\n redirect: { name: 'home' },\n meta: { title: '主入口布局' },\n children: [\n { path: '/home', component: () => import('@/views/modules/home'), name: 'home', meta: { title: '首页', isTab: true } }\n ]\n}\n\nexport function addDynamicRoute (routeParams, router) {\n // 组装路由名称, 并判断是否已添加, 如是: 则直接跳转\n var routeName = routeParams.routeName\n var dynamicRoute = window.SITE_CONFIG['dynamicRoutes'].filter(item => item.name === routeName)[0]\n if (dynamicRoute) {\n return router.push({ name: routeName, params: routeParams.params })\n }\n // 否则: 添加并全局变量保存, 再跳转\n dynamicRoute = {\n path: routeName,\n component: () => import(`@/views/modules/${routeParams.path}`),\n name: routeName,\n meta: {\n ...window.SITE_CONFIG['contentTabDefault'],\n menuId: routeParams.menuId,\n title: `${routeParams.title}`\n }\n }\n router.addRoutes([\n {\n ...moduleRoutes,\n name: `main-dynamic__${dynamicRoute.name}`,\n children: [dynamicRoute]\n }\n ])\n window.SITE_CONFIG['dynamicRoutes'].push(dynamicRoute)\n router.push({ name: dynamicRoute.name, params: routeParams.params })\n}\n\nconst router = new Router({\n mode: 'hash',\n scrollBehavior: () => ({ y: 0 }),\n routes: pageRoutes.concat(moduleRoutes)\n})\n\nrouter.beforeEach((to, from, next) => {\n // 添加动态(菜单)路由\n // 已添加或者当前路由为页面路由, 可直接访问\n if (window.SITE_CONFIG['dynamicMenuRoutesHasAdded'] || fnCurrentRouteIsPageRoute(to, pageRoutes)) {\n return next()\n }\n //行政区域\n getPersonRegion()\n //字典\n getDictDataListAll()\n // 获取字典列表, 添加并全局变量保存\n /* http.get('/sys/dict/type/all').then(({ data: res }) => {\n if (res.code !== 0) {\n return\n }\n window.SITE_CONFIG['dictList'] = res.data\n }).catch(() => {}) */\n // 获取菜单列表, 添加并全局变量保存\n http.get('/sys/menu/nav').then(({ data: res }) => {\n if (res.code !== 0) {\n Vue.prototype.$message.error(res.msg)\n return next({ name: 'login' })\n }\n window.SITE_CONFIG['menuList'] = res.data\n fnAddDynamicMenuRoutes(window.SITE_CONFIG['menuList'])\n next({ ...to, replace: true })\n }).catch(() => {\n next({ name: 'login' })\n })\n})\n\n/**\n * 判断当前路由是否为页面路由\n * @param {*} route 当前路由\n * @param {*} pageRoutes 页面路由\n */\nfunction fnCurrentRouteIsPageRoute (route, pageRoutes = []) {\n var temp = []\n for (var i = 0; i < pageRoutes.length; i++) {\n if (route.path === pageRoutes[i].path) {\n return true\n }\n if (pageRoutes[i].children && pageRoutes[i].children.length >= 1) {\n temp = temp.concat(pageRoutes[i].children)\n }\n }\n return temp.length >= 1 ? fnCurrentRouteIsPageRoute(route, temp) : false\n}\n\n/**\n * 添加动态(菜单)路由\n * @param {*} menuList 菜单列表\n * @param {*} routes 递归创建的动态(菜单)路由\n */\nfunction fnAddDynamicMenuRoutes (menuList = [], routes = []) {\n var temp = []\n for (var i = 0; i < menuList.length; i++) {\n if (menuList[i].children && menuList[i].children.length >= 1) {\n temp = temp.concat(menuList[i].children)\n continue\n }\n // 组装路由\n var route = {\n path: '',\n component: null,\n name: '',\n meta: {\n ...window.SITE_CONFIG['contentTabDefault'],\n menuId: menuList[i].id,\n title: menuList[i].name\n }\n }\n // eslint-disable-next-line\n let URL = (menuList[i].url || '').replace(/{{([^}}]+)?}}/g, (s1, s2) => eval(s2)) // URL支持{{ window.xxx }}占位符变量\n if (isURL(URL)) {\n route['path'] = route['name'] = `i-${menuList[i].id}`\n route['meta']['iframeURL'] = URL\n } else {\n URL = URL.replace(/^\\//, '').replace(/_/g, '-')\n route['path'] = route['name'] = URL.replace(/\\//g, '-')\n route['component'] = () => import(`@/views/modules/${URL}`)\n }\n routes.push(route)\n }\n if (temp.length >= 1) {\n return fnAddDynamicMenuRoutes(temp, routes)\n }\n // 添加路由\n router.addRoutes([\n {\n ...moduleRoutes,\n name: 'main-dynamic-menu',\n children: routes\n },\n { path: '*', redirect: { name: '404' } }\n ])\n window.SITE_CONFIG['dynamicMenuRoutes'] = routes\n window.SITE_CONFIG['dynamicMenuRoutesHasAdded'] = true\n}\n\nexport default router\n"]}]}