import { login, getUserInfo, getPlanList, URL_CFG} from '@/api/MdcApi'
|
import { getToken, setToken, removeToken } from '@/utils/auth'
|
import Vue from 'vue'
|
let workshopList = []
|
let userInfo ={}
|
let userMenu = []
|
try {
|
workshopList = JSON.parse(localStorage.getItem('workshopList')) || []
|
} catch (error) {
|
|
}
|
try {
|
userInfo = JSON.parse(localStorage.getItem('userInfo')) || {}
|
} catch (error) {
|
|
}
|
try {
|
userMenu = JSON.parse(localStorage.getItem('userMenu')) || []
|
} catch (error) {
|
|
}
|
|
const user = {
|
state: {
|
token: getToken().value,
|
|
workshopList: workshopList, // 车间列表
|
// deviceCategories: [], // 设备种类
|
userInfo: userInfo,
|
userMenu: userMenu,
|
deviceInfo: {},
|
},
|
|
mutations: {
|
SET_TOKEN: (state, token) => {
|
state.token = token
|
},
|
// SET_NAME: (state, name) => {
|
// state.name = name
|
// },
|
// SET_AVATAR: (state, avatar) => {
|
// state.avatar = avatar
|
// },
|
// SET_ROLES: (state, roles) => {
|
// state.roles = roles
|
// },
|
SET_userMenu (state,data) {
|
state.userMenu = [...data]
|
localStorage.setItem('userMenu',JSON.stringify(state.userMenu))
|
},
|
SET_WORKSHOP_LIST: (state, workshopList = []) => {
|
state.workshopList = [...workshopList]
|
localStorage.setItem('workshopList',JSON.stringify(state.workshopList))
|
},
|
// SET_DEVICE_CATEGORY_LIST: (state, categoryArr = []) => {
|
// for (let i = 0; i < state.deviceCategories.length; i++) {
|
// Vue.delete(state.deviceCategories, i)
|
// }
|
// for (let i = 0; i < categoryArr.length; i++) {
|
// Vue.set(state.deviceCategories, i, categoryArr[i])
|
// }
|
// },
|
SET_USER_INFO: (state, data) => {
|
state.userInfo.name = data.name
|
state.userInfo.username = data.username
|
state.userInfo.createTime = data.createTime || ''
|
state.userInfo.id = data.id
|
state.userInfo.avatar = data.avatar || (process.env.NODE_ENV === 'development' ? '/static/data/user/zh_tx.png' : URL_CFG.BASE_URL + '/static/data/user/zh_tx.png')
|
localStorage.setItem('userInfo', JSON.stringify(state.userInfo))
|
}
|
},
|
|
actions: {
|
// 登录
|
Login({ commit, store }, userInfo) {
|
const username = userInfo.username.trim()
|
return new Promise((resolve, reject) => {
|
login(username, userInfo.password).then(response => {
|
response = response || {}
|
if (response.result === 'SUCCESS') {
|
setToken(response.data.token)
|
commit('SET_TOKEN', response.data.token)
|
commit('SET_userMenu', response.data.userMenu)
|
resolve(response)
|
this.dispatch('GetInfo').then(res => resolve(res))
|
} else {
|
resolve({ code: 0, msg: '用户名或密码错误!' })
|
|
}
|
}).catch(error => {
|
reject(error)
|
// console.log(error)
|
})
|
})
|
},
|
// 获取用户信息
|
GetInfo({ commit, state }) {
|
return new Promise((resolve, reject) => {
|
getUserInfo().then(data => {
|
if (data.result === 'SUCCESS') {
|
commit('SET_USER_INFO',data.data)
|
this.dispatch('GetPlanList')
|
resolve({ code: 1, result: 'SUCCESS',data: data })
|
}else {
|
removeToken()
|
resolve({ code: 0,result: 'SUCCESS', msg: '由于您长时间没有操作,请重新登录!' })
|
}
|
}).catch(() => {
|
removeToken()
|
resolve({ code: -1, msg: '网络异常,稍后重试!' })
|
})
|
|
})
|
},
|
GetPlanList ({ commit, store }) {
|
return new Promise((resolve,reject) => {
|
getPlanList().then(data => {
|
if (data.result === 'SUCCESS') {
|
commit('SET_WORKSHOP_LIST', data.data || [])
|
resolve({ code: 1,result: 'SUCCESS',data: data })
|
}
|
})
|
.catch(() => {
|
reject(error)
|
})
|
})
|
},
|
// 登出
|
LogOut({ commit, state }) {
|
return new Promise((resolve, reject) => {
|
commit('SET_TOKEN', '')
|
commit('SET_USER_INFO', {})
|
removeToken()
|
resolve()
|
})
|
},
|
|
// 前端 登出
|
FedLogOut({ commit }) {
|
return new Promise(resolve => {
|
commit('SET_TOKEN', '')
|
removeToken()
|
resolve()
|
})
|
}
|
}
|
}
|
|
export default user
|