| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- // +----------------------------------------------------------------------
- // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
- // +----------------------------------------------------------------------
- // | Author: CRMEB Team <admin@crmeb.com>
- // +----------------------------------------------------------------------
- import {
- getBreadCrumbList,
- setTagNavListInLocalstorage,
- // getMenuByRouter,
- getTagNavListFromLocalstorage,
- getHomeRoute,
- getNextRoute,
- routeHasExist,
- routeEqual,
- getRouteTitleHandled,
- localSave,
- localRead,
- } from '@/libs/util';
- // import { saveErrorLogger } from '@/api/data'
- import router from '@/router';
- // import routers from '@/router/routers'
- import config from '@/config';
- const { homeName } = config;
- const closePage = (state, route) => {
- const nextRoute = getNextRoute(state.tagNavList, route);
- state.tagNavList = state.tagNavList.filter((item) => {
- return !routeEqual(item, route);
- });
- router.push(nextRoute);
- };
- export default {
- state: {
- breadCrumbList: [],
- tagNavList: [],
- homeRoute: {},
- local: localRead('local'),
- errorList: [],
- hasReadErrorPage: false,
- },
- getters: {
- // menuList: (state, getters, rootState) => getMenuByRouter(routers, rootState.user.access),
- errorCount: (state) => state.errorList.length,
- },
- mutations: {
- setBreadCrumb(state, route) {
- state.breadCrumbList = getBreadCrumbList(route, state.homeRoute);
- },
- setHomeRoute(state, routes) {
- state.homeRoute = getHomeRoute(routes, homeName);
- },
- setTagNavList(state, list) {
- let tagList = [];
- if (list) {
- tagList = [...list];
- } else tagList = getTagNavListFromLocalstorage() || [];
- if (tagList[0] && tagList[0].name !== homeName) tagList.shift();
- let homeTagIndex = tagList.findIndex((item) => item.name === homeName);
- if (homeTagIndex > 0) {
- let homeTag = tagList.splice(homeTagIndex, 1)[0];
- tagList.unshift(homeTag);
- }
- state.tagNavList = tagList;
- setTagNavListInLocalstorage([...tagList]);
- },
- closeTag(state, route) {
- let tag = state.tagNavList.filter((item) => routeEqual(item, route));
- route = tag[0] ? tag[0] : null;
- if (!route) return;
- closePage(state, route);
- },
- addTag(state, { route, type = 'unshift' }) {
- let router = getRouteTitleHandled(route);
- let i = state.tagNavList.findIndex((item) => item.path === route.path);
- if (!routeHasExist(state.tagNavList, router)) {
- if (type === 'push')
- if (i < 1) state.tagNavList.push(router);
- else {
- if (router.name === homeName) state.tagNavList.unshift(router);
- else state.tagNavList.splice(1, 0, router);
- }
- setTagNavListInLocalstorage([...state.tagNavList]);
- }
- },
- setLocal(state, lang) {
- localSave('local', lang);
- state.local = lang;
- },
- addError(state, error) {
- state.errorList.push(error);
- },
- setHasReadErrorLoggerStatus(state, status = true) {
- state.hasReadErrorPage = status;
- },
- clearAll(state) {
- state.tagNavList = [];
- },
- },
- actions: {
- addErrorLog({ commit, rootState }, info) {
- if (!window.location.href.includes('error_logger_page')) commit('setHasReadErrorLoggerStatus', false);
- const {
- user: { token, userId, userName },
- } = rootState;
- let data = {
- ...info,
- time: Date.parse(new Date()),
- token,
- userId,
- userName,
- };
- // saveErrorLogger(info).then(() => {
- // commit('addError', data)
- // })
- },
- },
- };
|