interface RegisterData { email: string; username: string; password: string; passwordRepeat: string; birth: string; avatarURL: string; } interface LoginData { username: string; password: string; } interface resetData { username: string; oldPassword: string; password: string; passwordRepeat: string; } export enum PageType { 'login', 'register', 'reset', } export interface LoginStore { loginForm: LoginData; registerForm: RegisterData; resetForm: resetData; currentType: PageType; } export const useLoginStore = defineStore('Login', { state: (): LoginStore => ({ loginForm: { username: '', password: '' }, registerForm: { email: '', username: '', password: '', passwordRepeat: '', birth: '', avatarURL: '', }, resetForm: { username: '', oldPassword: '', password: '', passwordRepeat: '', }, currentType: PageType.login, }), actions: { async login() { console.log(this.loginForm); const router = useRouter(); await router.push('/base/home'); }, async register() { console.log(this.registerForm); }, async reset() { console.log(this.resetForm); }, }, getters: { getTypeName: (state) => { switch (state.currentType) { case PageType.login: return '登录'; case PageType.register: return '注册'; case PageType.reset: return '重置密码'; default: console.log('未知'); return '未知'; } }, }, });