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