feat(time): add span-based attendance tracking under 2.0
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { staffTimeRows } from '~/utils/staffTimeSpans'
|
||||
import { defineStore } from 'pinia'
|
||||
import { useAuthStore } from '~/stores/auth'
|
||||
|
||||
@@ -14,21 +15,7 @@ export const useStaffTime = () => {
|
||||
const params = new URLSearchParams({ from, to, targetUserId })
|
||||
try {
|
||||
const spans = await $api(`/api/staff/time/spans?${params.toString()}`)
|
||||
return (spans || []).map((span: any) => {
|
||||
const start = $dayjs(span.startedAt)
|
||||
const end = span.endedAt ? $dayjs(span.endedAt) : $dayjs()
|
||||
return {
|
||||
id: span.sourceEventIds && span.sourceEventIds.length > 0 ? span.sourceEventIds[0] : null,
|
||||
eventIds: span.sourceEventIds || [],
|
||||
state: span.status,
|
||||
started_at: span.startedAt,
|
||||
stopped_at: span.endedAt,
|
||||
duration_minutes: end.diff(start, 'minute'),
|
||||
user_id: targetUserId,
|
||||
type: span.type,
|
||||
description: span.description || span.payload?.description || ''
|
||||
}
|
||||
}).sort((a: any, b: any) => $dayjs(b.started_at).valueOf() - $dayjs(a.started_at).valueOf())
|
||||
return staffTimeRows(spans || [], targetUserId)
|
||||
} catch (error) {
|
||||
console.error("Fehler beim Laden:", error)
|
||||
return []
|
||||
|
||||
Reference in New Issue
Block a user