fix(task): time+download bug

This commit is contained in:
zhangheng
2026-06-02 10:43:54 +08:00
parent a384897386
commit f3a348e036
5 changed files with 55 additions and 49 deletions

View File

@@ -1,6 +1,7 @@
"use client"
import { TimeFilter } from "@/components/label/api/workload/typing"
import { formatWorkTime } from "@/components/label/utils/time"
import {
SettingContentPanel,
SettingDataTable,
@@ -23,12 +24,10 @@ import {
} from "@tabler/icons-react"
import dayjs from "dayjs"
import "dayjs/locale/zh-cn"
import duration from "dayjs/plugin/duration"
import { DataTableColumn, DataTableSortStatus } from "mantine-datatable"
import { useEffect, useMemo, useState } from "react"
import * as XLSX from "xlsx-js-style"
import { DimensionType, GroupedData, MetricColumn } from "./config"
dayjs.extend(duration)
function emptyGroupedData(): GroupedData {
return {
@@ -157,10 +156,6 @@ export default function WorkloadMetricsTable(props: {
return records
}, [appliedFilters, data])
const getTime = (time: number) => {
return dayjs.duration(time, "seconds").format("HH:mm:ss")
}
const baseColumns = useMemo(() => {
const allCols: Record<DimensionType, DataTableColumn<any>[]> = {
all: [
@@ -253,12 +248,12 @@ export default function WorkloadMetricsTable(props: {
return acc + (Number.isFinite(value) ? value : 0)
}, 0)
if (["work_time"].includes(metric.key)) {
return [metric.key, getTime(sum ?? 0)]
return [metric.key, formatWorkTime(sum)]
} else {
return [metric.key, sum]
}
})
) as Record<string, number>
) as Record<string, string | number>
const metricCols = metrics.map((metric) => {
if (["work_time"].includes(metric.key)) {
@@ -268,7 +263,7 @@ export default function WorkloadMetricsTable(props: {
width: 140,
sortable: true,
footer: totalsByKey[metric.key] ?? 0,
render: (record) => getTime(record[metric.key] ?? 0),
render: (record) => formatWorkTime(record[metric.key]),
} as DataTableColumn<any>
} else {
return {