import Vue from 'vue' import Vuex from 'vuex' import menu from './menu' import page from './page' import role from './role' import dictType from './dict-type' import dictData from './dict-data' import org from './org' import user from './user' import quartz from './quartz' import upload from './upload' import router from "@/router"; Vue.use(Vuex) export default new Vuex.Store({ state: { // token token: '', // 验证码id verfyId: '', // 用户权限(菜单) permissions: [], dynamicRouters: JSON.parse(sessionStorage.getItem("dynamicRouters")), isFresh: '', // 动态导航标签默认值 editableTabsValue: '/home', editableTabs:[], // editableTabs: [{ // title: "主页", // name: "Welcome" // },], }, getters: { // 防止刷新页面丢失当前tab // editableTabs: state => { // if (sessionStorage.getItem("nowTab")) { // state.editableTabs.push({title: '首页', name: '/Index'}); // state.editableTabs.push(JSON.parse(sessionStorage.getItem("nowTable"))); // return state.editableTabs; // } // }, // editableTabsValue: state => { // if (sessionStorage.getItem("nowTabValue")) { // return state.editableTabs = sessionStorage.getItem("nowTableValue"); // } // } }, mutations: { addTab(state, tab) { // console.log("这是tab") // console.log(tab) sessionStorage.setItem("nowTab", JSON.stringify({title: tab.title, name: tab.name})); sessionStorage.setItem("nowTabValue", tab.name); let index = state.editableTabs.findIndex(e => e.name === tab.name) if(index === -1) { state.editableTabs.push({ title: tab.title, name: tab.name, }); } state.editableTabsValue = tab.name; }, dynamicRouters(state, menus) { let routers = { path: '/index', name: 'Index', component: () => import('../views/IndexView.vue'), children: [ // { // path: '/home', // name: 'Home', // meta: { // title: '主页' // }, // component: () => import(/* webpackChunkName: "about" */ '../views/HomeView.vue') // }, ] } if (menus) { menus.forEach((menu) => { if (menu.children.length > 0) { menu.children.forEach((item) => { // 菜单类型为1才是菜单,0是目录,2是按钮 if (item.menuType === '1' && item.routerComponent) { let newRouter = { path: item.menuPath, name: item.routerName, meta: { title: item.menuName }, component: () => import(`@/views/${item.routerComponent}.vue`) }; const isRouteExists = router.getRoutes().some(route => route.name === newRouter.name || route.path === newRouter.path); if (!isRouteExists) { routers.children.push(newRouter); } } }) } else { // 菜单类型为1才是菜单,0是目录,2是按钮 if (menu.menuType === '1' && menu.routerComponent) { let newRouter = { path: menu.menuPath, name: menu.routerName, meta: { title: menu.menuName }, component: () => import(`@/views/${menu.routerComponent}.vue`) } const isRouteExists = router.getRoutes().some(route => route.name === newRouter.name || route.path === newRouter.path); if (!isRouteExists) { routers.children.push(newRouter); } } } }) router.addRoute(routers) state.dynamicRouters = routers; state.isFresh = "xp" sessionStorage.setItem("doIt", "yes") } } }, actions: { }, modules: { menu: menu, page: page, role: role, dictType: dictType, dictData: dictData, user: user, quartz: quartz, upload: upload, org: org, } })