Files
peko-admin-web/src/store/modules/user.js
2023-10-21 08:14:44 +08:00

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();
});
});
}
},
};