import Vue from "vue"; import Vuex from "vuex"; import cloneDeep from "lodash/cloneDeep"; import user from "./modules/user"; import app from "./modules/app"; import tagsView from "./modules/tagsView"; import { requestPost } from "@/js/dai/request"; Vue.use(Vuex); export default new Vuex.Store({ namespaced: true, state: { // 导航条, 布局风格, defalut(白色) / colorful(鲜艳) navbarLayoutType: "colorful", // 侧边栏, 布局皮肤, default(白色) / dark(黑色) sidebarLayoutSkin: "dark", // 侧边栏, 折叠状态 sidebarFold: false, // 侧边栏, 菜单 sidebarMenuList: [], sidebarMenuActiveName: "", LevelOneMenuActiveName: "", sidebarActiveSubMenuList: [], // 内容, 是否需要刷新 contentIsNeedRefresh: false, // 内容, 标签页(默认添加首页) contentTabs: [ { ...window.SITE_CONFIG["contentTabDefault"], name: "indexWork", title: "首页", }, ], contentTabsActiveName: "indexWork", mainShuju: { menuList: [], activeName: "", }, tipsList: [], tipsTime: [], inIframe: window.self !== window.top, }, modules: { user, app, tagsView, }, mutations: { // 重置vuex本地储存状态 resetStore(state) { Object.keys(state).forEach((key) => { state[key] = cloneDeep(window.SITE_CONFIG["storeState"][key]); }); }, SET_TIPS_LIST(state, tipsList) { let _list = state.tipsList state.tipsList = _list.concat(tipsList) }, SET_TIPS_TIME(state, time) { state.tipsTime = time } }, actions: { setTipsList({ commit }, time) { return new Promise(async (resolve, reject) => { const url = '/gov/project/memoAttr/memosToRemind' const params = { remindTime: time || '' } const { data, code, msg } = await requestPost(url, params) if (code === 0) { commit('SET_TIPS_LIST', data) resolve() } else reject(msg) }) }, setTipsTime({ commit }) { return new Promise(async (resolve, reject) => { const url = '/gov/project/memoAttr/memoTime' const { data, code, msg } = await requestPost(url) if (code === 0) { commit('SET_TIPS_TIME', data) resolve() } else reject(msg) }) } } });