Deploy / deploy (push) Canceled after 0s
- 学生登录 / 管理员登录两个页签和「没有我所在的班级」合成一条「写用户名」,入口是名单底下的「名单里没有我」「老师登录」 - 名单按拼音排、可打拼音缩写筛,只剩一个人时回车就选中;这台电脑没登过时先列出全部班级 - 密码错就地标在密码框下面(「密码不对,再试一次」),错太多次按钮灰掉写清 15 分钟 - 注册保留邮箱,错在哪个框标在哪个框下面,按钮改「注册并登录」 - name / autocomplete 原来写在 n-input 上、落在外层 div,没到真正的 input;改走 input-props,点名字时的密码框才真的不会让浏览器填上一个人的密码 - 登法和班级一样跨退出登录保留;authModal store 只管开关,表单回到组件里 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
48 lines
1.0 KiB
TypeScript
48 lines
1.0 KiB
TypeScript
import { defineStore } from "pinia"
|
|
|
|
/**
|
|
* 登录框、注册框开没开。表单本身在两个组件里:每次打开都从干净的表单开始
|
|
* (机房一台电脑轮流坐人,别把上一个人的名字和密码留在框里),不需要跨组件共享。
|
|
*/
|
|
export const useAuthModalStore = defineStore("authModal", () => {
|
|
const loginModalOpen = ref(false)
|
|
const signupModalOpen = ref(false)
|
|
|
|
function openLoginModal() {
|
|
loginModalOpen.value = true
|
|
}
|
|
|
|
function closeLoginModal() {
|
|
loginModalOpen.value = false
|
|
}
|
|
|
|
function openSignupModal() {
|
|
signupModalOpen.value = true
|
|
}
|
|
|
|
function closeSignupModal() {
|
|
signupModalOpen.value = false
|
|
}
|
|
|
|
function switchToSignup() {
|
|
closeLoginModal()
|
|
openSignupModal()
|
|
}
|
|
|
|
function switchToLogin() {
|
|
closeSignupModal()
|
|
openLoginModal()
|
|
}
|
|
|
|
return {
|
|
loginModalOpen,
|
|
signupModalOpen,
|
|
openLoginModal,
|
|
closeLoginModal,
|
|
openSignupModal,
|
|
closeSignupModal,
|
|
switchToSignup,
|
|
switchToLogin,
|
|
}
|
|
})
|