feat: 完成P6-P8前端能力闭环(V3,D2,D3,B3)
这个提交包含在:
@@ -0,0 +1,60 @@
|
||||
import { apiRequestData } from "./http";
|
||||
|
||||
export type DashboardQuery = {
|
||||
dateFrom?: string;
|
||||
dateTo?: string;
|
||||
departmentId?: string;
|
||||
limit?: number;
|
||||
};
|
||||
|
||||
function toQueryString(query: DashboardQuery = {}) {
|
||||
const params = new URLSearchParams();
|
||||
if (query.dateFrom) params.set("dateFrom", query.dateFrom);
|
||||
if (query.dateTo) params.set("dateTo", query.dateTo);
|
||||
if (query.departmentId) params.set("departmentId", query.departmentId);
|
||||
if (query.limit != null) params.set("limit", String(query.limit));
|
||||
const encoded = params.toString();
|
||||
return encoded ? `?${encoded}` : "";
|
||||
}
|
||||
|
||||
export type DashboardExpenseOverview = {
|
||||
totalCount: number;
|
||||
totalAmount: string;
|
||||
paidCount: number;
|
||||
paidAmount: string;
|
||||
reviewingCount: number;
|
||||
};
|
||||
|
||||
export type DashboardTrendPoint = {
|
||||
date: string;
|
||||
amount: string;
|
||||
count: number;
|
||||
};
|
||||
|
||||
export type DashboardTopCategory = {
|
||||
code: string;
|
||||
name: string;
|
||||
amount: string;
|
||||
count: number;
|
||||
};
|
||||
|
||||
export type DashboardApprovalEfficiency = {
|
||||
approvedCount: number;
|
||||
averageHours: number;
|
||||
};
|
||||
|
||||
export async function fetchDashboardOverview(query: DashboardQuery = {}) {
|
||||
return apiRequestData<DashboardExpenseOverview>(`/api/dashboard/expense-overview${toQueryString(query)}`);
|
||||
}
|
||||
|
||||
export async function fetchDashboardTrends(query: DashboardQuery = {}) {
|
||||
return apiRequestData<{ points: DashboardTrendPoint[] }>(`/api/dashboard/trends${toQueryString(query)}`);
|
||||
}
|
||||
|
||||
export async function fetchDashboardTopCategories(query: DashboardQuery = {}) {
|
||||
return apiRequestData<{ items: DashboardTopCategory[] }>(`/api/dashboard/top-categories${toQueryString(query)}`);
|
||||
}
|
||||
|
||||
export async function fetchDashboardApprovalEfficiency(query: DashboardQuery = {}) {
|
||||
return apiRequestData<DashboardApprovalEfficiency>(`/api/dashboard/approval-efficiency${toQueryString(query)}`);
|
||||
}
|
||||
在新工单中引用
屏蔽一个用户