| 1 |
- {"remainingRequest":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/babel-loader/lib/index.js!/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/src/store/module/app.js","dependencies":[{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/src/store/module/app.js","mtime":1618306924000},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":1665684022107},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/babel-loader/lib/index.js","mtime":1665684010704}],"contextDependencies":[],"result":["import { getBreadCrumbList, setTagNavListInLocalstorage, getMenuByRouter, getTagNavListFromLocalstorage, getHomeRoute, getNextRoute, routeHasExist, routeEqual, getRouteTitleHandled, localSave, localRead } from '@/libs/util';\nimport beforeClose from '@/router/before-close'; // import { saveErrorLogger } from '@/api/data'\n\nimport router from '@/router';\nimport routers from '@/router/routers';\nimport menu from '@/router/menu';\nimport config from '@/config';\nconst {\n homeName\n} = config;\nlet all = routers.concat(menu);\n\nconst closePage = (state, route) => {\n const nextRoute = getNextRoute(state.tagNavList, route);\n state.tagNavList = state.tagNavList.filter(item => {\n return !routeEqual(item, route);\n });\n router.push(nextRoute);\n};\n\nconst cloneMenus = function (menus) {\n let newMenus = [];\n menus.forEach(function (menu) {\n cloneMenu(newMenus, menu);\n });\n return newMenus;\n};\n\nconst cloneMenu = function (newMenus, {\n path,\n name,\n meta,\n component,\n children\n}) {\n let obj = {\n path,\n name,\n meta,\n component\n };\n newMenus.push(obj);\n\n if (children && children.forEach) {\n obj.children = [];\n children.forEach(function (child) {\n cloneMenu(obj.children, child);\n });\n }\n};\n\nconst filterMenus = function (menus, targets) {\n for (let i = 0; i < menus.length; i++) {\n if (menus[i].children && menus[i].children.length !== 0) {\n if (targets.indexOf(menus[i].name) === -1) {\n menus.splice(i, 1);\n i--;\n continue;\n }\n\n for (let j = 0; j < menus[i].children.length; j++) {\n if (targets.indexOf(menus[i].children[j].name) === -1) {\n menus[i].children.splice(j, 1);\n j--;\n }\n }\n } else {\n if (targets.indexOf(menus[i].name) === -1) {\n menus.splice(i, 1);\n i--;\n }\n } // let remain = filterMenu(menus[i],targets);\n // if(remain===false){\n // menus.splice(i,1);\n // i--\n // }\n\n }\n\n return menus;\n};\n\nconst filterMenu = function (menu, targets) {\n if (menu.children && menu.children.length !== 0) {\n for (let i = 0; i < menu.children.length; i++) {\n let remain = filterMenu(menu.children[i], targets);\n\n if (remain === false) {\n menu.children.splice(i, 1);\n i--;\n }\n }\n\n if (menu.children.length === 0) {\n return false;\n }\n } else if (!targets || targets.indexOf(menu.name) === -1) {\n return false;\n }\n};\n\nexport default {\n state: {\n breadCrumbList: [],\n tagNavList: [],\n homeRoute: getHomeRoute(all, homeName),\n local: localRead('local'),\n errorList: [],\n hasReadErrorPage: false,\n permission: routers\n },\n getters: {\n menuList: (state, getters, rootState) => getMenuByRouter(state.permission, rootState.user.access),\n errorCount: state => state.errorList.length\n },\n mutations: {\n setBreadCrumb(state, route) {\n state.breadCrumbList = getBreadCrumbList(route, state.homeRoute);\n },\n\n setTagNavList(state, list) {\n let tagList = [];\n\n if (list) {\n tagList = [...list];\n } else tagList = getTagNavListFromLocalstorage() || [];\n\n if (tagList[0] && tagList[0].name !== homeName) tagList.shift();\n let homeTagIndex = tagList.findIndex(item => item.name === homeName);\n\n if (homeTagIndex > 0) {\n let homeTag = tagList.splice(homeTagIndex, 1)[0];\n tagList.unshift(homeTag);\n }\n\n state.tagNavList = tagList;\n setTagNavListInLocalstorage([...tagList]);\n },\n\n closeTag(state, route) {\n let tag = state.tagNavList.filter(item => routeEqual(item, route));\n route = tag[0] ? tag[0] : null;\n if (!route) return;\n\n if (route.meta && route.meta.beforeCloseName && route.meta.beforeCloseName in beforeClose) {\n new Promise(beforeClose[route.meta.beforeCloseName]).then(close => {\n if (close) {\n closePage(state, route);\n }\n });\n } else {\n closePage(state, route);\n }\n },\n\n addTag(state, {\n route,\n type = 'unshift'\n }) {\n let router = getRouteTitleHandled(route);\n\n if (!routeHasExist(state.tagNavList, router)) {\n if (type === 'push') state.tagNavList.push(router);else {\n if (router.name === homeName) state.tagNavList.unshift(router);else state.tagNavList.splice(1, 0, router);\n }\n setTagNavListInLocalstorage([...state.tagNavList]);\n }\n },\n\n setLocal(state, lang) {\n localSave('local', lang);\n state.local = lang;\n },\n\n addError(state, error) {\n state.errorList.push(error);\n },\n\n setHasReadErrorLoggerStatus(state, status = true) {\n state.hasReadErrorPage = status;\n },\n\n setPermission(state, permission) {\n let newMenus = cloneMenus(menu);\n let filteredMenus = filterMenus(newMenus, permission);\n state.permission = routers.concat(filteredMenus);\n }\n\n },\n actions: {\n addErrorLog({\n commit,\n rootState\n }, info) {\n if (!window.location.href.includes('error_logger_page')) commit('setHasReadErrorLoggerStatus', false);\n const {\n user: {\n token,\n userId,\n userName\n }\n } = rootState; // let data = {\n // ...info,\n // time: Date.parse(new Date()),\n // token,\n // userId,\n // userName\n // }\n // saveErrorLogger(info).then(() => {\n // commit('addError', data)\n // })\n },\n\n setPermission({\n commit\n }, permission) {\n commit('setPermission', permission);\n }\n\n }\n};",{"version":3,"sources":["/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/src/store/module/app.js"],"names":["getBreadCrumbList","setTagNavListInLocalstorage","getMenuByRouter","getTagNavListFromLocalstorage","getHomeRoute","getNextRoute","routeHasExist","routeEqual","getRouteTitleHandled","localSave","localRead","beforeClose","router","routers","menu","config","homeName","all","concat","closePage","state","route","nextRoute","tagNavList","filter","item","push","cloneMenus","menus","newMenus","forEach","cloneMenu","path","name","meta","component","children","obj","child","filterMenus","targets","i","length","indexOf","splice","j","filterMenu","remain","breadCrumbList","homeRoute","local","errorList","hasReadErrorPage","permission","getters","menuList","rootState","user","access","errorCount","mutations","setBreadCrumb","setTagNavList","list","tagList","shift","homeTagIndex","findIndex","homeTag","unshift","closeTag","tag","beforeCloseName","Promise","then","close","addTag","type","setLocal","lang","addError","error","setHasReadErrorLoggerStatus","status","setPermission","filteredMenus","actions","addErrorLog","commit","info","window","location","href","includes","token","userId","userName"],"mappings":"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","sourcesContent":["import {\n getBreadCrumbList,\n setTagNavListInLocalstorage,\n getMenuByRouter,\n getTagNavListFromLocalstorage,\n getHomeRoute,\n getNextRoute,\n routeHasExist,\n routeEqual,\n getRouteTitleHandled,\n localSave,\n localRead\n} from '@/libs/util'\nimport beforeClose from '@/router/before-close'\n// import { saveErrorLogger } from '@/api/data'\nimport router from '@/router'\nimport routers from '@/router/routers'\nimport menu from '@/router/menu'\nimport config from '@/config'\nconst { homeName } = config\nlet all = routers.concat(menu)\nconst closePage = (state, route) => {\n const nextRoute = getNextRoute(state.tagNavList, route)\n state.tagNavList = state.tagNavList.filter(item => {\n return !routeEqual(item, route)\n })\n router.push(nextRoute)\n}\nconst cloneMenus = function (menus) {\n let newMenus = []\n menus.forEach(function (menu) {\n cloneMenu(newMenus, menu)\n })\n return newMenus\n}\nconst cloneMenu = function (newMenus, {path, name, meta, component, children}) {\n let obj = {path, name, meta, component}\n newMenus.push(obj)\n if (children && children.forEach) {\n obj.children = []\n children.forEach(function (child) {\n cloneMenu(obj.children, child)\n })\n }\n}\nconst filterMenus = function (menus, targets) {\n for (let i = 0; i < menus.length; i++) {\n if (menus[i].children && menus[i].children.length !== 0) {\n if (targets.indexOf(menus[i].name) === -1) {\n menus.splice(i, 1)\n i--\n continue\n }\n for (let j = 0; j < menus[i].children.length; j++) {\n if (targets.indexOf(menus[i].children[j].name) === -1) {\n menus[i].children.splice(j, 1)\n j--\n }\n }\n } else {\n if (targets.indexOf(menus[i].name) === -1) {\n menus.splice(i, 1)\n i--\n }\n }\n // let remain = filterMenu(menus[i],targets);\n // if(remain===false){\n // menus.splice(i,1);\n // i--\n // }\n }\n return menus\n}\nconst filterMenu = function (menu, targets) {\n if (menu.children && menu.children.length !== 0) {\n for (let i = 0; i < menu.children.length; i++) {\n let remain = filterMenu(menu.children[i], targets)\n if (remain === false) {\n menu.children.splice(i, 1)\n i--\n }\n }\n if (menu.children.length === 0) {\n return false\n }\n } else if (!targets || targets.indexOf(menu.name) === -1) {\n return false\n }\n}\n\nexport default {\n state: {\n breadCrumbList: [],\n tagNavList: [],\n homeRoute: getHomeRoute(all, homeName),\n local: localRead('local'),\n errorList: [],\n hasReadErrorPage: false,\n permission: routers\n },\n getters: {\n menuList: (state, getters, rootState) => getMenuByRouter(state.permission, rootState.user.access),\n errorCount: state => state.errorList.length\n },\n mutations: {\n setBreadCrumb (state, route) {\n state.breadCrumbList = getBreadCrumbList(route, state.homeRoute)\n },\n setTagNavList (state, list) {\n let tagList = []\n if (list) {\n tagList = [...list]\n } else tagList = getTagNavListFromLocalstorage() || []\n if (tagList[0] && tagList[0].name !== homeName) tagList.shift()\n let homeTagIndex = tagList.findIndex(item => item.name === homeName)\n if (homeTagIndex > 0) {\n let homeTag = tagList.splice(homeTagIndex, 1)[0]\n tagList.unshift(homeTag)\n }\n state.tagNavList = tagList\n setTagNavListInLocalstorage([...tagList])\n },\n closeTag (state, route) {\n let tag = state.tagNavList.filter(item => routeEqual(item, route))\n route = tag[0] ? tag[0] : null\n if (!route) return\n if (route.meta && route.meta.beforeCloseName && route.meta.beforeCloseName in beforeClose) {\n new Promise(beforeClose[route.meta.beforeCloseName]).then(close => {\n if (close) {\n closePage(state, route)\n }\n })\n } else {\n closePage(state, route)\n }\n },\n addTag (state, { route, type = 'unshift' }) {\n let router = getRouteTitleHandled(route)\n if (!routeHasExist(state.tagNavList, router)) {\n if (type === 'push') state.tagNavList.push(router)\n else {\n if (router.name === homeName) state.tagNavList.unshift(router)\n else state.tagNavList.splice(1, 0, router)\n }\n setTagNavListInLocalstorage([...state.tagNavList])\n }\n },\n setLocal (state, lang) {\n localSave('local', lang)\n state.local = lang\n },\n addError (state, error) {\n state.errorList.push(error)\n },\n setHasReadErrorLoggerStatus (state, status = true) {\n state.hasReadErrorPage = status\n },\n setPermission (state, permission) {\n let newMenus = cloneMenus(menu)\n let filteredMenus = filterMenus(newMenus, permission)\n state.permission = routers.concat(filteredMenus)\n }\n },\n actions: {\n addErrorLog ({ commit, rootState }, info) {\n if (!window.location.href.includes('error_logger_page')) commit('setHasReadErrorLoggerStatus', false)\n const { user: { token, userId, userName } } = rootState\n // let data = {\n // ...info,\n // time: Date.parse(new Date()),\n // token,\n // userId,\n // userName\n // }\n // saveErrorLogger(info).then(() => {\n // commit('addError', data)\n // })\n },\n setPermission ({ commit }, permission) {\n commit('setPermission', permission)\n }\n }\n}\n"]}]}
|