{"remainingRequest":"/Users/admin/projects/dms/src/dealer_admin/node_modules/thread-loader/dist/cjs.js!/Users/admin/projects/dms/src/dealer_admin/node_modules/babel-loader/lib/index.js!/Users/admin/projects/dms/src/dealer_admin/src/permission.js","dependencies":[{"path":"/Users/admin/projects/dms/src/dealer_admin/src/permission.js","mtime":1713161556000},{"path":"/Users/admin/projects/dms/src/dealer_admin/babel.config.js","mtime":1713161556000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/thread-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/babel-loader/lib/index.js","mtime":456789000000}],"contextDependencies":[],"result":["import _regeneratorRuntime from \"/Users/admin/projects/dms/src/dealer_admin/node_modules/@babel/runtime-corejs2/helpers/esm/regeneratorRuntime.js\";\nimport _objectSpread from \"/Users/admin/projects/dms/src/dealer_admin/node_modules/@babel/runtime-corejs2/helpers/esm/objectSpread2.js\";\nimport \"regenerator-runtime/runtime\";\nimport _asyncToGenerator from \"/Users/admin/projects/dms/src/dealer_admin/node_modules/@babel/runtime-corejs2/helpers/esm/asyncToGenerator.js\";\nimport router from \"./router\";\nimport store from \"./store\";\nimport { Message } from 'element-ui';\nimport NProgress from 'nprogress'; // progress bar\nimport 'nprogress/nprogress.css'; // progress bar style\nimport { getToken } from '@/utils/auth'; // get token from cookie\nimport getPageTitle from '@/utils/get-page-title';\nNProgress.configure({\n  showSpinner: false\n}); // NProgress Configuration\n\nvar whiteList = ['/login', '/auth-redirect']; // no redirect whitelist\n\nrouter.beforeEach(/*#__PURE__*/function () {\n  var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(to, from, next) {\n    var hasToken, hasRoles, data, accessRoutes;\n    return _regeneratorRuntime().wrap(function _callee$(_context) {\n      while (1) switch (_context.prev = _context.next) {\n        case 0:\n          // start progress bar\n          NProgress.start();\n\n          // set page title\n          document.title = getPageTitle(to.meta.title);\n\n          // determine whether the user has logged in\n          hasToken = getToken();\n          if (!hasToken) {\n            _context.next = 34;\n            break;\n          }\n          if (!(to.path === '/login')) {\n            _context.next = 9;\n            break;\n          }\n          // if is logged in, redirect to the home page\n          next({\n            path: '/'\n          });\n          NProgress.done();\n          _context.next = 32;\n          break;\n        case 9:\n          // determine whether the user has obtained his permission roles through getInfo\n          hasRoles = store.getters.roles && store.getters.roles.length > 0;\n          if (!hasRoles) {\n            _context.next = 14;\n            break;\n          }\n          next();\n          _context.next = 32;\n          break;\n        case 14:\n          _context.prev = 14;\n          _context.next = 17;\n          return store.dispatch('user/getInfo');\n        case 17:\n          data = _context.sent;\n          _context.next = 20;\n          return store.dispatch('permission/generateRoutes', data.role.permission_codes);\n        case 20:\n          accessRoutes = _context.sent;\n          // dynamically add accessible routes\n          router.addRoutes(accessRoutes);\n\n          // hack method to ensure that addRoutes is complete\n          // set the replace: true, so the navigation will not leave a history record\n          next(_objectSpread(_objectSpread({}, to), {}, {\n            replace: true\n          }));\n          _context.next = 32;\n          break;\n        case 25:\n          _context.prev = 25;\n          _context.t0 = _context[\"catch\"](14);\n          _context.next = 29;\n          return store.dispatch('user/resetToken');\n        case 29:\n          Message.error(_context.t0 || 'Has Error');\n          next(\"/login?redirect=\".concat(to.path));\n          NProgress.done();\n        case 32:\n          _context.next = 35;\n          break;\n        case 34:\n          /* has no token*/\n\n          if (whiteList.indexOf(to.path) !== -1) {\n            // in the free login whitelist, go directly\n            next();\n          } else {\n            // other pages that do not have permission to access are redirected to the login page.\n            next(\"/login?redirect=\".concat(to.path));\n            NProgress.done();\n          }\n        case 35:\n        case \"end\":\n          return _context.stop();\n      }\n    }, _callee, null, [[14, 25]]);\n  }));\n  return function (_x, _x2, _x3) {\n    return _ref.apply(this, arguments);\n  };\n}());\nrouter.afterEach(function () {\n  // finish progress bar\n  NProgress.done();\n});",null]}