first commit
This commit is contained in:
16
pgweb/src/store/index.js
Normal file
16
pgweb/src/store/index.js
Normal file
@@ -0,0 +1,16 @@
|
||||
import Vue from 'vue'
|
||||
import Vuex from 'vuex'
|
||||
|
||||
import user from './modules/user'
|
||||
import app from './modules/app'
|
||||
import message from './modules/message'
|
||||
|
||||
Vue.use(Vuex)
|
||||
|
||||
export default new Vuex.Store({
|
||||
modules: {
|
||||
user,
|
||||
app,
|
||||
message
|
||||
}
|
||||
})
|
||||
129
pgweb/src/store/modules/app.js
Normal file
129
pgweb/src/store/modules/app.js
Normal file
@@ -0,0 +1,129 @@
|
||||
import { setTagNavListInLocalstorage, getMenuByRouter, routeHasExist,
|
||||
getTagNavListFromLocalstorage, getHomeRoute } from '@/libs/util'
|
||||
import routers from '@/router/routers'
|
||||
|
||||
import store from 'store'
|
||||
|
||||
const initRouterNode = function (routers, data) {
|
||||
for (var item of data) {
|
||||
if (item.hide === 'Y') {
|
||||
let menu = Object.assign({}, item)
|
||||
if (item.children && item.children.length > 0) {
|
||||
menu.children = []
|
||||
initRouterNode(menu.children, item.children)
|
||||
}
|
||||
let meta = {}
|
||||
// 给页面添加标题
|
||||
meta.icon = menu.icon ? menu.icon : null
|
||||
meta.title = menu.title ? menu.title : null
|
||||
meta.msgUnread = meta.msgUnread ? meta.msgUnread : 0
|
||||
menu.meta = meta
|
||||
|
||||
routers.push(menu)
|
||||
}
|
||||
}
|
||||
}
|
||||
export default {
|
||||
state: {
|
||||
tagNavList: [], // 顶部标签
|
||||
homeRoute: getHomeRoute(routers),
|
||||
topmenuList: [], // 激活菜单的 name 值
|
||||
activemenu: 0,
|
||||
stageactivemenu: 0,
|
||||
leftMenuList: [], // 业务系统左侧菜单
|
||||
busMenuList: [], // 业务系统菜单
|
||||
indexMenuList: [], // 系统首页菜单
|
||||
sideActiveName: '',
|
||||
sideOpenNames: [] // 展开的 Submenu 的 name 集合
|
||||
},
|
||||
getters: {
|
||||
menuList: (state, getters, rootState) => getMenuByRouter(state.leftMenuList, rootState.user.access)
|
||||
},
|
||||
mutations: {
|
||||
setSideActiveName (state, item) {
|
||||
state.sideActiveName = item
|
||||
},
|
||||
setSideOpenNames (state, item) {
|
||||
state.sideOpenNames = item
|
||||
},
|
||||
setTagNavList (state, list) {
|
||||
if (list) {
|
||||
state.tagNavList = [...list]
|
||||
setTagNavListInLocalstorage([...list])
|
||||
} else state.tagNavList = getTagNavListFromLocalstorage()
|
||||
},
|
||||
/**
|
||||
* 添加tag
|
||||
* @param {*} state
|
||||
* @param {*} item
|
||||
* @param {*} type
|
||||
*/
|
||||
addTag (state, { router, type = 'unshift' }) {
|
||||
// 可以新开多个标签
|
||||
if (router.meta && !router.meta.multi) {
|
||||
if (state.tagNavList.findIndex(tag => tag.name === router.name) < 0) {
|
||||
if (type === 'push') state.tagNavList.push(router)
|
||||
else state.tagNavList.unshift(router)
|
||||
setTagNavListInLocalstorage([...state.tagNavList])
|
||||
}
|
||||
return
|
||||
}
|
||||
if (!routeHasExist(state.tagNavList, router)) {
|
||||
if (type === 'push') {
|
||||
state.tagNavList.push(router)
|
||||
} else {
|
||||
if (router.name === 'home') state.tagNavList.unshift(router)
|
||||
else state.tagNavList.splice(1, 0, router)
|
||||
}
|
||||
setTagNavListInLocalstorage([...state.tagNavList])
|
||||
}
|
||||
},
|
||||
// 设置tag标题
|
||||
setTagsTitle (state, params) {
|
||||
|
||||
let currentName = params.name
|
||||
console.log('setTagsTitle',params)
|
||||
let tagNavList = getTagNavListFromLocalstorage() // 刷新获取不到 state.tagNavList从Localstorlage获取
|
||||
tagNavList.forEach((item, index) => {
|
||||
if (item.name === currentName) {
|
||||
tagNavList[index].meta.title = params.title
|
||||
}
|
||||
})
|
||||
state.tagNavList = tagNavList
|
||||
setTagNavListInLocalstorage([...tagNavList])
|
||||
},
|
||||
/**
|
||||
* 更新顶部菜单
|
||||
* @param {*} state
|
||||
*/
|
||||
updateTopMenuList (state) {
|
||||
let menuList = store.get('busMenuList')
|
||||
state.busMenuList = menuList ? JSON.parse(menuList) : []
|
||||
},
|
||||
/**
|
||||
* 更新左侧菜单
|
||||
* @param {*} state
|
||||
*/
|
||||
updateMenuList (state) {
|
||||
const constRoutes = []
|
||||
let sub = store.get('sub')
|
||||
let MenuList = store.get('busMenuList') ? JSON.parse(store.get('busMenuList')) : []
|
||||
let children = []
|
||||
if (MenuList) {
|
||||
if (MenuList[sub]['children'].length > 0) {
|
||||
children = MenuList[sub]['children']
|
||||
initRouterNode(constRoutes, children)
|
||||
}
|
||||
}
|
||||
state.leftMenuList = constRoutes
|
||||
},
|
||||
/**
|
||||
* 设置平台首页激活菜单
|
||||
* @param {*} state
|
||||
* @param {*} item
|
||||
*/
|
||||
setStageActiveMenu (state, item) {
|
||||
state.stageactivemenu = item
|
||||
}
|
||||
}
|
||||
}
|
||||
94
pgweb/src/store/modules/message.js
Normal file
94
pgweb/src/store/modules/message.js
Normal file
@@ -0,0 +1,94 @@
|
||||
export default {
|
||||
state: {
|
||||
// message: {
|
||||
// // 待办事项
|
||||
// info: {
|
||||
// list: [],
|
||||
// unReadNum: 0
|
||||
// },
|
||||
// // 进度提醒
|
||||
// notice: {
|
||||
// list: [],
|
||||
// unReadNum: 0
|
||||
// },
|
||||
// // 预警消息
|
||||
// warning: {
|
||||
// list: [],
|
||||
// unReadNum: 0
|
||||
// }
|
||||
// },
|
||||
message: [],
|
||||
messageUnReadNum: 0 // 未读总数
|
||||
},
|
||||
getters: {
|
||||
messageList: state => state.message,
|
||||
messageUnReadNum: state => state.messageUnReadNum // 未读数量
|
||||
// infoUnReadNum: state => state.message.info.unReadNum, // 待办事项未读数量
|
||||
// noticeUnReadNum: state => state.message.notice.unReadNum, // 进度提醒未读数量
|
||||
// warningUnReadNum: state => state.message.warning.unReadNum // 预警消息未读数量
|
||||
},
|
||||
mutations: {
|
||||
/**
|
||||
* 新增一条消息
|
||||
* @param {*} state
|
||||
* @param {*} message
|
||||
*/
|
||||
addNewMsg (state, message) {
|
||||
const msg = state.message.find(item => {
|
||||
return item.id === message.id
|
||||
})
|
||||
if (!msg) {
|
||||
state.message.unshift(message)
|
||||
// state.message.unReadNum += 1
|
||||
state.messageUnReadNum += 1
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 新增全部未读消息
|
||||
* @param {} state
|
||||
* @param {*} messageList
|
||||
*/
|
||||
addAllMessage (state, messageList) {
|
||||
state.message = messageList.list
|
||||
state.messageUnReadNum = messageList.issee_num
|
||||
},
|
||||
/**
|
||||
* 滚动加载更多消息
|
||||
* @param {*} state
|
||||
* @param {*} message
|
||||
*/
|
||||
addMoreMsg (state, message) {
|
||||
state.message.push(...message)
|
||||
},
|
||||
/**
|
||||
* 已读
|
||||
* @param {*} state
|
||||
* @param {*} message
|
||||
*/
|
||||
setUnRead (state, message) {
|
||||
const msg = state.message.findIndex(item => {
|
||||
return item.id === message.id
|
||||
})
|
||||
if (msg !== -1) {
|
||||
state.message[msg].issee = 1
|
||||
if (state.messageUnReadNum > 0) {
|
||||
state.messageUnReadNum -= 1
|
||||
}
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 全部已读
|
||||
* @param {*} state
|
||||
*/
|
||||
setAllRead (state) {
|
||||
if (state.message.length > 0) {
|
||||
let msgList = state.message
|
||||
state.message = msgList.map(msg => {
|
||||
msg.issee = 1
|
||||
return msg
|
||||
})
|
||||
}
|
||||
state.messageUnReadNum = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
98
pgweb/src/store/modules/user.js
Normal file
98
pgweb/src/store/modules/user.js
Normal file
@@ -0,0 +1,98 @@
|
||||
import { setToken, setCookie, getToken } from '@/libs/util'
|
||||
import { login, checkLogin } from '@/api/user'
|
||||
import store from 'store'
|
||||
import config from '@/config'
|
||||
import Cookies from 'js-cookie'
|
||||
|
||||
export default {
|
||||
state: {
|
||||
userName: '',
|
||||
userId: '',
|
||||
avatorImgPath: '',
|
||||
token: getToken(),
|
||||
access: '',
|
||||
loginTime: ''
|
||||
},
|
||||
mutations: {
|
||||
setAvator (state, avatorPath) {
|
||||
state.avatorImgPath = avatorPath
|
||||
},
|
||||
setUserId (state, id) {
|
||||
state.userId = id
|
||||
},
|
||||
setUserName (state, name) {
|
||||
state.userName = name
|
||||
},
|
||||
setAccess (state, access) {
|
||||
state.access = access
|
||||
},
|
||||
setToken (state, token) {
|
||||
state.token = token
|
||||
setToken(token)
|
||||
},
|
||||
login (state, data) {
|
||||
console.log("user.js::login::userinfo",data.userinfo)
|
||||
// store.set('indexMenuList', JSON.stringify(data.menu['index']))
|
||||
// store.set('busMenuList', JSON.stringify(data.menu))
|
||||
store.set('busMenuList', JSON.stringify(data.admmenu))
|
||||
store.set('userinfo', data.userinfo)
|
||||
store.set('isAdmin',data.userinfo.roleCode.includes("ROLE_ADMIN"))
|
||||
store.set('access', data.perFlags)
|
||||
store.set('apiAuth', data.apiAuth)
|
||||
store.set('userId', data.userinfo.user_id)
|
||||
store.set('sub', 0)
|
||||
setCookie('loginTime', data.loginTime)
|
||||
setCookie('refresh_token', data.refresh_token)
|
||||
},
|
||||
logout (state) {
|
||||
Cookies.remove('apiAuth')
|
||||
Cookies.remove('userId')
|
||||
Cookies.remove('loginTime')
|
||||
store.clearAll()
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
handleLogin ({ commit }, { username, password }) {
|
||||
|
||||
username = username.trim()
|
||||
return new Promise((resolve, reject) => {
|
||||
login({ username, password, version: config.version }).then(res => {
|
||||
if (res.code === 1) {
|
||||
store.clearAll()
|
||||
commit('setToken', res.data.apiAuth)
|
||||
commit('login', res.data)
|
||||
}
|
||||
resolve(res)
|
||||
}).catch(err => {
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
},
|
||||
// 刷新用户token
|
||||
refreshToken ({ state, commit }) {
|
||||
return new Promise((resolve, reject) => {
|
||||
try {
|
||||
console.log("user.js::refreshToken before");
|
||||
checkLogin({ refresh_token: Cookies.get('refresh_token') }).then(res => {
|
||||
if (res.code == -1) {
|
||||
reject(-1)
|
||||
}
|
||||
const data = res.data
|
||||
commit('setToken', data.apiAuth)
|
||||
setCookie('loginTime', data.loginTime)
|
||||
setCookie('refresh_token', data.refresh_token)
|
||||
store.set('apiAuth', data.apiAuth)
|
||||
store.set('userId', data.userinfo.user_id)
|
||||
resolve(data)
|
||||
console.log("user.js::refreshToken after");
|
||||
console.log(data);
|
||||
}).catch(err => {
|
||||
reject(err)
|
||||
})
|
||||
} catch (error) {
|
||||
reject(error)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user