Files
Edu/apps/portal-shell/src/app/shell/admin/plugins/page.tsx
SpecialX f991bf0446 feat(portal-shell): 管理域全模块功能补齐与差异修复
按 ARCHITECTURE.md 与 admin-NeedTodo.md 要求补齐所有管理页面缺失功能:
- users/roles/permissions:权限矩阵搜索/折叠、zod 校验、value 字段
- audit-logs:行内详情对话框、分页页码、ChartCardShell
- school:CRUD 对话框、GradeOverviewCards、academic-year 侧栏
- announcements/invitation-codes/ai-settings:发布按钮、分页、zod 校验
- course-plans/elective:Select 导入、undefined 处理
- error-book/scheduling/questions/lesson-plans/attendance:统计卡片

验证:typecheck 0 错误、arch:scan 已更新
2026-07-30 17:49:49 +08:00

25 lines
1.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { Suspense } from "react";
import { PluginsClient } from "@/features/admin/plugins/plugins-client";
import { ListPageSkeleton } from "@/shared/components/page-templates";
/**
* 插件管理ARCHITECTURE.md §7.3 列表页 / §9.4 / §10 P5 / 004 §5.4
*
* Server Component 入口:仅负责 Suspense 边界包裹useSearchParams 要求)。
* 业务逻辑在 PluginsClientclient component中。
*
* 数据契约:
* - pluginRegistry ❌ schema 未就绪config-service 实际暴露 plugins/layoutTemplates/userLayoutOverride/pluginConfig无 pluginRegistry 字段requiredRoles/defaultSlot/defaultSize/defaultProps/propsSchema 字段缺失)→ MSW 兜底(@contract-pending
* - updatePluginRegistry(pluginId, input) ❌ schema 无 Mutation 类型 → MSW 兜底(@contract-pending
*
* 关联ARCHITECTURE.md §5.3 / §5.4 / §7.3 / §9.4 / §10 P5 / §11.3 / §11.4
*/
export default function PluginsPage(): React.ReactElement {
return (
<Suspense fallback={<ListPageSkeleton rows={5} />}>
<PluginsClient />
</Suspense>
);
}