app.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. // +----------------------------------------------------------------------
  2. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  3. // +----------------------------------------------------------------------
  4. // | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
  5. // +----------------------------------------------------------------------
  6. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  7. // +----------------------------------------------------------------------
  8. // | Author: CRMEB Team <admin@crmeb.com>
  9. // +----------------------------------------------------------------------
  10. import {
  11. getBreadCrumbList,
  12. setTagNavListInLocalstorage,
  13. // getMenuByRouter,
  14. getTagNavListFromLocalstorage,
  15. getHomeRoute,
  16. getNextRoute,
  17. routeHasExist,
  18. routeEqual,
  19. getRouteTitleHandled,
  20. localSave,
  21. localRead,
  22. } from '@/libs/util';
  23. // import { saveErrorLogger } from '@/api/data'
  24. import router from '@/router';
  25. // import routers from '@/router/routers'
  26. import config from '@/config';
  27. const { homeName } = config;
  28. const closePage = (state, route) => {
  29. const nextRoute = getNextRoute(state.tagNavList, route);
  30. state.tagNavList = state.tagNavList.filter((item) => {
  31. return !routeEqual(item, route);
  32. });
  33. router.push(nextRoute);
  34. };
  35. export default {
  36. state: {
  37. breadCrumbList: [],
  38. tagNavList: [],
  39. homeRoute: {},
  40. local: localRead('local'),
  41. errorList: [],
  42. hasReadErrorPage: false,
  43. },
  44. getters: {
  45. // menuList: (state, getters, rootState) => getMenuByRouter(routers, rootState.user.access),
  46. errorCount: (state) => state.errorList.length,
  47. },
  48. mutations: {
  49. setBreadCrumb(state, route) {
  50. state.breadCrumbList = getBreadCrumbList(route, state.homeRoute);
  51. },
  52. setHomeRoute(state, routes) {
  53. state.homeRoute = getHomeRoute(routes, homeName);
  54. },
  55. setTagNavList(state, list) {
  56. let tagList = [];
  57. if (list) {
  58. tagList = [...list];
  59. } else tagList = getTagNavListFromLocalstorage() || [];
  60. if (tagList[0] && tagList[0].name !== homeName) tagList.shift();
  61. let homeTagIndex = tagList.findIndex((item) => item.name === homeName);
  62. if (homeTagIndex > 0) {
  63. let homeTag = tagList.splice(homeTagIndex, 1)[0];
  64. tagList.unshift(homeTag);
  65. }
  66. state.tagNavList = tagList;
  67. setTagNavListInLocalstorage([...tagList]);
  68. },
  69. closeTag(state, route) {
  70. let tag = state.tagNavList.filter((item) => routeEqual(item, route));
  71. route = tag[0] ? tag[0] : null;
  72. if (!route) return;
  73. closePage(state, route);
  74. },
  75. addTag(state, { route, type = 'unshift' }) {
  76. let router = getRouteTitleHandled(route);
  77. console.log(router,'routerrouterrouter')
  78. if (!routeHasExist(state.tagNavList, router)) {
  79. if (type === 'push') state.tagNavList.push(router);
  80. else {
  81. if (router.name === homeName) state.tagNavList.unshift(router);
  82. else state.tagNavList.splice(1, 0, router);
  83. }
  84. setTagNavListInLocalstorage([...state.tagNavList]);
  85. }
  86. },
  87. setLocal(state, lang) {
  88. localSave('local', lang);
  89. state.local = lang;
  90. },
  91. addError(state, error) {
  92. state.errorList.push(error);
  93. },
  94. setHasReadErrorLoggerStatus(state, status = true) {
  95. state.hasReadErrorPage = status;
  96. },
  97. },
  98. actions: {
  99. addErrorLog({ commit, rootState }, info) {
  100. if (!window.location.href.includes('error_logger_page')) commit('setHasReadErrorLoggerStatus', false);
  101. const {
  102. user: { token, userId, userName },
  103. } = rootState;
  104. let data = {
  105. ...info,
  106. time: Date.parse(new Date()),
  107. token,
  108. userId,
  109. userName,
  110. };
  111. // saveErrorLogger(info).then(() => {
  112. // commit('addError', data)
  113. // })
  114. },
  115. },
  116. };