feat(admin-portal): 完成参考项目差距闭环 - 4 批次补齐 + Vitest 测试
差距分析闭环(workline §7-§8): - P0:审计子模块 3 页 + 学校组织 7 页 - P1:系统设置 4 Card + 公告管理 + 邀请码管理 - P2:文件管理 + AI 配置 - P6:5 测试文件 / 69 用例全过 共享基础设施: - permissions +11 权限点 +14 路由 - view-models +20 接口 - i18n +100 key - graphql-client +25 operation - fixtures/handlers +15 mock +20 handler 质量:typecheck + lint 零错误,vitest 69/69 通过,arch.db 已更新
This commit is contained in:
39
apps/admin-portal/src/hooks/use-audit-overview.ts
Normal file
39
apps/admin-portal/src/hooks/use-audit-overview.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
/**
|
||||
* 审计总览 Hooks
|
||||
*
|
||||
* contract §2.4:auditOverviewStats / auditTrend
|
||||
*/
|
||||
import { useGraphQuery } from "./use-graphql";
|
||||
import {
|
||||
AUDIT_OVERVIEW_STATS_QUERY,
|
||||
AUDIT_TREND_QUERY,
|
||||
} from "@/lib/graphql-client";
|
||||
import type { AuditOverviewStats, AuditTrendPoint } from "@/types/view-models";
|
||||
|
||||
interface AuditOverviewStatsResponse {
|
||||
auditOverviewStats: AuditOverviewStats;
|
||||
}
|
||||
|
||||
interface AuditTrendResponse {
|
||||
auditTrend: AuditTrendPoint[];
|
||||
}
|
||||
|
||||
export function useAuditOverviewStats() {
|
||||
const result = useGraphQuery<AuditOverviewStatsResponse>(
|
||||
AUDIT_OVERVIEW_STATS_QUERY,
|
||||
);
|
||||
return {
|
||||
...result,
|
||||
data: result.data?.auditOverviewStats ?? null,
|
||||
};
|
||||
}
|
||||
|
||||
export function useAuditTrend(days?: number) {
|
||||
const result = useGraphQuery<AuditTrendResponse>(AUDIT_TREND_QUERY, {
|
||||
days,
|
||||
});
|
||||
return {
|
||||
...result,
|
||||
data: result.data?.auditTrend ?? null,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user