85 lines
2.8 KiB
JavaScript
85 lines
2.8 KiB
JavaScript
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();
|
|
});
|
|
});
|
|
}
|
|
},
|
|
}; |