feat(admin): 用户体验体系化提升与高危缺陷修复
UX 缺陷修复: - 校验失败不再卡死弹窗按钮(Users/Roles/Bills) - 押金收取/批量收取/添加分期防重复提交;切换房型重置勾选 - AI 表单/批量确认不再出现"假成功" - Dashboard 各数据模块独立加载,单接口失败不再整页清零 - 房间可视化加载失败显示错误态而非永久转圈 - 学生编辑表单回填前重置,避免字段残留污染 - 覆盖式导入增加二次确认;恢复默认考勤时段确认并同步表单 - 金数据匹配关闭前确认,同步中禁止误关 体验提升: - 新增统一 QueryErrorState/QueryEmpty,20+ 页面加载失败显示错误态与重试 - 全局 ErrorBoundary + RouteKeeper 逐页兜底 - 新增 usePageVisible/useVisibleRefetch,保活页面切回自动刷新数据 - 新增首次登录角色引导 RoleTour 与业务闭环 NextStepHint 引导卡 - 重构 A2UI:useSubmissionState/useXCardSurface 收敛状态与命令生命周期, ArtifactErrorBoundary 渲染降级,图表空数据占位 - AI 助手欢迎语与建议话术按角色定制,会话列表空态引导 - 更新 a2ui-contract.md 契约文档说明实现现状
This commit is contained in:
@@ -12,6 +12,7 @@ import {
|
||||
} from 'antd';
|
||||
import { PlusOutlined } from '@ant-design/icons';
|
||||
import PermissionButton from '../../components/PermissionButton';
|
||||
import { QueryErrorState } from '../../components/QueryState';
|
||||
import {
|
||||
BED_STATUS_MAP,
|
||||
BED_STATUS_OPTIONS,
|
||||
@@ -26,6 +27,10 @@ export interface RoomDrawerProps {
|
||||
room: any;
|
||||
beds: BedItem[];
|
||||
lockers: LockerItem[];
|
||||
bedsError: boolean;
|
||||
lockersError: boolean;
|
||||
onRetryBeds: () => void;
|
||||
onRetryLockers: () => void;
|
||||
canEditRooms: boolean;
|
||||
remainingBedSlots: number;
|
||||
defaultBatchBedCount: number;
|
||||
@@ -47,6 +52,10 @@ export const RoomDrawer: React.FC<RoomDrawerProps> = ({
|
||||
room,
|
||||
beds,
|
||||
lockers,
|
||||
bedsError,
|
||||
lockersError,
|
||||
onRetryBeds,
|
||||
onRetryLockers,
|
||||
canEditRooms,
|
||||
remainingBedSlots,
|
||||
defaultBatchBedCount,
|
||||
@@ -145,7 +154,14 @@ export const RoomDrawer: React.FC<RoomDrawerProps> = ({
|
||||
{
|
||||
key: 'beds',
|
||||
label: `床位管理 (${beds.length})`,
|
||||
children: (
|
||||
children: bedsError ? (
|
||||
<QueryErrorState
|
||||
compact
|
||||
title="床位加载失败"
|
||||
description="请检查网络后重试。"
|
||||
onRetry={onRetryBeds}
|
||||
/>
|
||||
) : (
|
||||
<div>
|
||||
{canEditRooms ? (
|
||||
<div style={{ marginBottom: 12, display: 'flex', gap: 8 }}>
|
||||
@@ -267,7 +283,14 @@ export const RoomDrawer: React.FC<RoomDrawerProps> = ({
|
||||
{
|
||||
key: 'lockers',
|
||||
label: `柜子管理 (${lockers.length})`,
|
||||
children: (
|
||||
children: lockersError ? (
|
||||
<QueryErrorState
|
||||
compact
|
||||
title="柜子加载失败"
|
||||
description="请检查网络后重试。"
|
||||
onRetry={onRetryLockers}
|
||||
/>
|
||||
) : (
|
||||
<div>
|
||||
{canEditRooms ? (
|
||||
<div style={{ marginBottom: 12, display: 'flex', gap: 8 }}>
|
||||
|
||||
Reference in New Issue
Block a user