refactor: 重构项目接口与API调用体系,统一类型管理
1. 合并拆分的API类型定义到统一的api/interface.ts文件 2. 删除旧的api/client.ts与api/types.ts文件 3. 重构所有页面与组件的API调用方式,统一使用api/index.ts导出的接口 4. 调整组件文件结构,将分散的组件按模块整理 5. 统一类型导入路径,移除冗余的类型重复定义
This commit is contained in:
@@ -1,21 +1,22 @@
|
||||
import { Card } from '@arco-design/web-react';
|
||||
import type { AdminProfile, AppUser, Drama, RequestLog } from '../api/types';
|
||||
import { dramaApi, logApi, userApi } from '../api';
|
||||
import { usePageData } from '../hooks/usePageData';
|
||||
import { hasPermissions } from '../utils/permission';
|
||||
import { NoAccessPage } from '../components/NoAccessPage';
|
||||
import { RequestLogTable } from '../components/RequestLogTable';
|
||||
import type { AppUser, DashboardPageProps, Drama, MetricCardProps, RequestLog } from './interface';
|
||||
|
||||
function MetricCard({ label, value }: { label: string; value: number | string }) {
|
||||
function MetricCard({ label, value }: MetricCardProps) {
|
||||
return <Card><div className="mb-2 text-muted">{label}</div><div className="text-[28px] font-bold">{value}</div></Card>;
|
||||
}
|
||||
|
||||
function DashboardPage({ profile }: { profile: AdminProfile | null }) {
|
||||
function DashboardPage({ profile }: DashboardPageProps) {
|
||||
const canReadDramas = hasPermissions(profile, ['drama:read']);
|
||||
const canReadUsers = hasPermissions(profile, ['user:read']);
|
||||
const canReadLogs = hasPermissions(profile, ['log:read']);
|
||||
const dramas = usePageData<Drama>('/api/admin/v1/dramas', canReadDramas);
|
||||
const users = usePageData<AppUser>('/api/admin/v1/users', canReadUsers);
|
||||
const logs = usePageData<RequestLog>('/api/admin/v1/logs/requests', canReadLogs);
|
||||
const dramas = usePageData<Drama>(dramaApi.listDramas, canReadDramas);
|
||||
const users = usePageData<AppUser>(userApi.listUsers, canReadUsers);
|
||||
const logs = usePageData<RequestLog>(logApi.listRequestLogs, canReadLogs);
|
||||
const hasAnyDataModule = canReadDramas || canReadUsers || canReadLogs;
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user