Files
xh-medical-sign-web/clinical-web/src/api/management/reports.ts
T

39 lines
1.5 KiB
TypeScript

import { request } from '@/utils/request'
import type { ReportOverviewResponse, ReportQuery } from './types'
const useMockData = import.meta.env.VITE_USE_MOCK !== 'false'
const mockOverview: ReportOverviewResponse = {
metrics: [
{ key: 'total', label: '签署总量', value: 1268, unit: '份', trend: 12.8 },
{ key: 'signed', label: '已完成', value: 1142, unit: '份', trend: 8.6 },
{ key: 'rate', label: '完成率', value: 90.1, unit: '%', trend: 3.2 },
{ key: 'average', label: '平均耗时', value: 6.4, unit: '分钟', trend: -4.5 },
],
trend: [
{ date: '08-21', signed: 146, rejected: 5, pending: 12 },
{ date: '08-22', signed: 158, rejected: 4, pending: 10 },
{ date: '08-23', signed: 132, rejected: 7, pending: 15 },
{ date: '08-24', signed: 176, rejected: 3, pending: 9 },
{ date: '08-25', signed: 188, rejected: 6, pending: 13 },
{ date: '08-26', signed: 172, rejected: 5, pending: 11 },
{ date: '08-27', signed: 170, rejected: 4, pending: 8 },
],
departments: [
{ department: '消化内科', total: 328, signed: 305, completionRate: 93.0 },
{ department: '儿科急诊', total: 286, signed: 249, completionRate: 87.1 },
{ department: '普外科', total: 264, signed: 243, completionRate: 92.0 },
],
}
export function getReportOverview(query: ReportQuery): Promise<ReportOverviewResponse> {
if (useMockData) {
return Promise.resolve(mockOverview)
}
return request.get<ReportOverviewResponse>('/management/reports/overview', {
params: query,
})
}