feat(reporting) : add Reporting dashboard front layer
LST-59 (3.1) front. Completes the Reporting module. - New frontend/modules/reporting/ layer (auto-detected): /reporting page (admin middleware) consuming the 4 read-only report endpoints. - Filters (period presets + custom dates, project, user). 4 sections (time per project, time per user, tasks by status, absences by type) each with a DataTable + a Chart.js chart (reused global registration). - Front-side CSV export per section (useCsvExport: BOM UTF-8, ; separator). - i18n keys (reporting.*, sidebar.admin.reporting). nuxt build passes; /reporting routed; no route regression.
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
export type TimePerProject = {
|
||||
projectId: number
|
||||
projectCode: string
|
||||
projectName: string
|
||||
hours: number
|
||||
entryCount: number
|
||||
}
|
||||
|
||||
export type TimePerUser = {
|
||||
userId: number
|
||||
username: string
|
||||
fullName: string
|
||||
hours: number
|
||||
entryCount: number
|
||||
}
|
||||
|
||||
export type TasksByStatus = {
|
||||
statusId: number
|
||||
statusLabel: string
|
||||
count: number
|
||||
}
|
||||
|
||||
export type AbsencesByType = {
|
||||
type: string
|
||||
count: number
|
||||
totalDays: number
|
||||
}
|
||||
|
||||
export type ReportFilters = {
|
||||
from: string
|
||||
to: string
|
||||
userId?: number | null
|
||||
projectId?: number | null
|
||||
}
|
||||
Reference in New Issue
Block a user