first commit

This commit is contained in:
annnj-company
2026-04-17 18:29:53 +08:00
parent e49fa5a215
commit 130c1026c4
5615 changed files with 1639145 additions and 0 deletions

16
pgweb/src/store/index.js Normal file
View 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
}
})

View 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
}
}
}

View 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
}
}
}

View 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)
}
})
}
}
}