epmet pc工作端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

124 lines
3.5 KiB

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";
import { dateFormats } from "@/utils/index";
Vue.use(Vuex);
let interTimer = null
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)
state.tipsList = tipsList
},
SET_TIPS_TIME(state, time) {
state.tipsTime = time
}
},
actions: {
clearInter() {
clearInterval(interTimer)
},
setInterval({ commit, dispatch, state }) {
interTimer = setInterval(() => {
const _t = dateFormats('YYYY-mm-dd HH:MM', (new Date(new Date().toLocaleDateString()).getTime()))
const _tt = new Date(_t).getTime()
console.log('230000---', _t)
const t = dateFormats('YYYY-mm-dd HH:MM', (new Date().getTime()))
const nt = new Date(t).getTime()
// 判断当前时间是否为 00:00
if (nt == _tt) {
dispatch('setTipsTime')
return
}
let times = state.tipsTime
console.log('nt---000', nt)
state.tipsTime.forEach((item, index) => {
const _t = new Date(item).getTime()
if (_t == nt) {
clearInterval(interTimer)
dispatch('setTipsList', item)
times.splice(index, 1)
commit('SET_TIPS_TIME', times)
}
})
}, 10000)
},
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, dispatch }) {
return new Promise(async (resolve, reject) => {
if (interTimer) clearInterval(interTimer)
const url = '/gov/project/memoAttr/memoTime'
const { data, code, msg } = await requestPost(url)
if (code === 0) {
commit('SET_TIPS_TIME', data)
if (data.length > 0) dispatch('setInterval')
resolve()
} else reject(msg)
})
}
}
});