feat(admin): 管理端 UI/UX 深度优化——错误/加载/空状态、表单快捷键、移动端适配与无障碍

This commit is contained in:
2026-08-08 15:05:33 +08:00
parent 57639a3869
commit a0829f17ce
54 changed files with 702 additions and 369 deletions

View File

@@ -3,6 +3,7 @@ import { App, Descriptions, Drawer, Form, Input, Modal, Select } from 'antd';
import JinshujuMatchModal from '../../components/JinshujuMatchModal';
import StudentProfileContent from '../../components/StudentProfileContent';
import { SENSITIVE_LABELS } from './StudentColumns';
import { useSubmitShortcut } from '../../hooks/useSubmitShortcut';
type AppModal = ReturnType<typeof App.useApp>['modal'];
@@ -78,6 +79,7 @@ export const StudentEditModal: React.FC<{
onOk,
onCancel,
}) => {
useSubmitShortcut(open && !saving, () => onOk?.());
return (
<Modal
title={editing ? '编辑学生' : '添加学生'}
@@ -89,7 +91,7 @@ export const StudentEditModal: React.FC<{
okText="保存"
confirmLoading={saving}
>
<Form form={form} layout="vertical" className="student-form-grid">
<Form form={form} layout="vertical" scrollToFirstError className="student-form-grid">
<Form.Item name="name" label="姓名" rules={[{ required: true }]}>
<Input />
</Form.Item>