|
|
@@ -37,18 +37,13 @@
|
|
|
<div class="flex items-center gap-x-2">
|
|
|
<div class="flex items-center">
|
|
|
<div class="i-carbon-calendar mr-1 -translate-y-[0.5px]"></div>
|
|
|
- <div class="font-medium mr-2">{{
|
|
|
- dayjs(row.createTime).format('YYYY-MM-DD')
|
|
|
- }}</div>
|
|
|
- <div class="flex items-center">
|
|
|
- <span>{{ formatT(row.reportDetails[0].startTime) }}</span>
|
|
|
- <span class="mx-1">-</span>
|
|
|
- <span>{{ formatT(row.reportDetails[0].endTime) }}</span>
|
|
|
+ <div class="font-medium mr-2">
|
|
|
+ {{ getReportDetailsTimeRange(row) }}
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="ml-auto group-hover:text-blue-600 font-medium">
|
|
|
- {{ row.reportDetails[0].duration }} H
|
|
|
+ {{ getReportDetailsDuration(row.reportDetails) }} H
|
|
|
</div>
|
|
|
</div>
|
|
|
<!--
|
|
|
@@ -120,18 +115,13 @@
|
|
|
<div class="flex items-center gap-x-2">
|
|
|
<div class="flex items-center">
|
|
|
<div class="i-carbon-calendar mr-1 -translate-y-[0.5px]"></div>
|
|
|
- <div class="font-medium mr-2">{{
|
|
|
- dayjs(row.reportDetails[0].reportDate).format('YYYY-MM-DD')
|
|
|
- }}</div>
|
|
|
- <div class="flex items-center">
|
|
|
- <span>{{ formatT(row.reportDetails[0].startTime) }}</span>
|
|
|
- <span class="mx-1">-</span>
|
|
|
- <span>{{ formatT(row.reportDetails[0].endTime) }}</span>
|
|
|
+ <div class="font-medium mr-2">
|
|
|
+ {{ getReportDetailsTimeRange(row) }}
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="ml-auto group-hover:text-blue-600 font-medium">
|
|
|
- {{ row.reportDetails[0].duration }} H
|
|
|
+ {{ getReportDetailsDuration(row.reportDetails) }} H
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
@@ -240,18 +230,13 @@
|
|
|
<div class="flex items-center gap-x-2">
|
|
|
<div class="flex items-center">
|
|
|
<div class="i-carbon-calendar mr-1 -translate-y-[0.5px]"></div>
|
|
|
- <div class="font-medium mr-2">{{
|
|
|
- dayjs(row.reportDetails[0].reportDate).format('YYYY-MM-DD')
|
|
|
- }}</div>
|
|
|
- <div class="flex items-center">
|
|
|
- <span>{{ formatT(row.reportDetails[0].startTime) }}</span>
|
|
|
- <span class="mx-1">-</span>
|
|
|
- <span>{{ formatT(row.reportDetails[0].endTime) }}</span>
|
|
|
+ <div class="font-medium mr-2">
|
|
|
+ {{ getReportDetailsTimeRange(row) }}
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="ml-auto group-hover:text-blue-600 font-medium">
|
|
|
- {{ row.reportDetails[0].duration }} H
|
|
|
+ {{ getReportDetailsDuration(row.reportDetails) }} H
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
@@ -374,6 +359,28 @@ const props = defineProps<{
|
|
|
|
|
|
const { columns, company } = toRefs(props)
|
|
|
|
|
|
+const getReportDetailsDuration = (reportDetails: any[] = []) =>
|
|
|
+ Number(reportDetails.reduce((sum, item) => sum + Number(item.duration || 0), 0).toFixed(2))
|
|
|
+
|
|
|
+const formatReportDetailTime = (time?: number[] | string) =>
|
|
|
+ Array.isArray(time) ? formatT(time) : time || ''
|
|
|
+
|
|
|
+const getReportDetailsTimeRange = (row: any) => {
|
|
|
+ const reportDetails = row.reportDetails || []
|
|
|
+ const first = reportDetails[0]
|
|
|
+ const last = reportDetails.at(-1)
|
|
|
+ if (!first || !last) return ''
|
|
|
+
|
|
|
+ const startDate = first.reportDate ?? row.createTime
|
|
|
+ const endDate = last.endDateTime ?? last.reportDate ?? row.createTime
|
|
|
+ const startTime = formatReportDetailTime(first.startTime)
|
|
|
+ const endTime = formatReportDetailTime(last.endTime)
|
|
|
+
|
|
|
+ return `${dayjs(startDate).format('YYYY-MM-DD')} ${startTime} - ${dayjs(endDate).format(
|
|
|
+ 'YYYY-MM-DD'
|
|
|
+ )} ${endTime}`
|
|
|
+}
|
|
|
+
|
|
|
const tagType = (status: number) => {
|
|
|
switch (status) {
|
|
|
case 0:
|