import loginApi from '@/api/loginApi.js'; import loginUtil from '@/utils/loginUtil.js'; import pinia from './index'; import { defineStore } from 'pinia'; import { useActiveCheck } from './activeCheck'; export const useUserStore = defineStore('userToken', { state: () => ({ user: null }), actions: { login({ username, password, user = null }, onSuccess, onError) { // 通过传递 user 对象登录 if (user && user != null && user != {}) { loginUtil.addUserCookie(user); this.user = user; const activeCheck = useActiveCheck(pinia); activeCheck.updateLoginTime(); onSuccess && onSuccess(); return; } // 通过传递 用户名密码 登录 loginApi .login({ username, password }) .then((res) => { if (res.guid != 'null') { loginUtil.addUserCookie(res); this.user = res; const activeCheck = useActiveCheck(pinia); activeCheck.updateLoginTime(); onSuccess(); } else { onError(); } }) .catch((error) => { onError(); throw error; }); }, logout() { this.user = null; const activeCheck = useActiveCheck(pinia); activeCheck.clearLoginTime(); loginUtil.deleteUserCookie(); }, isLoggedIn() { return this.user != null; } }, getters: {} });