refactor: 前端登录/权限/界面状态迁移至 zustand

This commit is contained in:
2026-08-04 14:41:27 +08:00
parent ce1dcc07ea
commit f07ffdc64c
39 changed files with 970 additions and 211 deletions

View File

@@ -4,14 +4,18 @@ import { Form, Input, Button, Card, Typography } from 'antd';
import { UserOutlined, LockOutlined } from '@ant-design/icons';
import api from '../../api';
import { message } from '../../ui/app-message';
import { clearPermissions, writePermissions } from '../../auth/permission-store';
import { findRoleAwareLandingPath } from '../../auth/menu-policy';
import { usePermissionStore } from '../../store/permission/permissionStore';
import { useUserStore } from '../../store/user/userStore';
const { Title } = Typography;
const LoginPage: React.FC = () => {
const [loading, setLoading] = useState(false);
const navigate = useNavigate();
const setSession = useUserStore((state) => state.setSession);
const clearPermissions = usePermissionStore((state) => state.clearPermissions);
const writePermissions = usePermissionStore((state) => state.writePermissions);
const onFinish = useCallback(
async (values: any) => {
@@ -19,8 +23,7 @@ const LoginPage: React.FC = () => {
setLoading(true);
try {
const res: any = await api.post('/auth/login', values);
localStorage.setItem('token', res.access_token);
localStorage.setItem('user', JSON.stringify(res.user));
setSession(res.access_token, res.user);
const permissions = res.user.permissions || [];
writePermissions(permissions);
message.success('登录成功');
@@ -33,7 +36,7 @@ const LoginPage: React.FC = () => {
setLoading(false);
}
},
[navigate],
[clearPermissions, navigate, setSession, writePermissions],
);
return (