|
|
|
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,
|
|
|
|
fixed1920: {
|
|
|
|
height: document.documentElement.clientHeight,
|
|
|
|
},
|
|
|
|
|
|
|
|
fullscreen: false, //是否全屏状态
|
|
|
|
},
|
|
|
|
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);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}, 60000);
|
|
|
|
},
|
|
|
|
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);
|
|
|
|
});
|
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|