import router from '@/router'; import { setStore, getStore } from '@/utils/store'; import { getUser, logout } from '@/api/common/user'; import { dateFormat } from '@/utils/date'; import avatar from '@/assets/images/man.jpg'; export default { state: { adminId: getStore({ name: 'admin_id' }) || 0, username: getStore({ name: 'username' }) || "", avatar: getStore({ name: 'avatar' }) || "", lastTime: getStore({ name: 'last_time' }) || "", }, mutations: { updateUser(state, user) { if (user.adminId) { console.log(user.adminId); state.adminId = user.adminId; setStore({ name: "admin_id", content: state.adminId, type: "session" }); } if (user.username) { console.log(user.username); state.username = user.username; setStore({ name: "username", content: state.username, type: "session" }); } let userAvatar = user.avatar; if (userAvatar) { if (userAvatar != "") { userAvatar = (userAvatar.startsWith('https') || userAvatar.startsWith('http')) ? userAvatar : avatar; } state.avatar = userAvatar; setStore({ name: "avatar", content: state.avatar, type: "session" }); } if (user.lastTime) { state.lastTime = user.lastTime; setStore({ name: "last_time", content: state.lastTime, type: "session" }); } } }, actions: { async getUser({ commit }, adminId) { const res = await getUser(adminId); var data = res.entity || {}; commit("updateUser", { avatar: data.headimg, lastTime: dateFormat(new Date(data.lastlogin)) }); return data; }, logout({ commit }) { return new Promise((resolve, reject) => { logout() .then(res => { commit("updateUser", { adminId: 0, username: "", avatar: "", lastTime: "" }); resolve(res); router.push("/"); }).catch(() => { reject(); }); }); } }, };