fix(dataset): 统一大小与版本元数据
This commit is contained in:
@@ -5,6 +5,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import DataTablePage from '@/components/DataTablePage.vue'
|
||||
import { getDatasetList, deleteDataset, downloadDatasetUrl } from '@/api/modules/dataset'
|
||||
import { DATASET_TYPE_MAP, STORAGE_MAP } from '@/constants'
|
||||
import { formatMegabytes } from '@/utils/fileSize'
|
||||
import type { DatasetItem, DatasetSource } from '@/types'
|
||||
|
||||
const router = useRouter()
|
||||
@@ -107,6 +108,36 @@ function handleDownload(row: any) {
|
||||
window.open(downloadDatasetUrl(row.id), '_blank')
|
||||
}
|
||||
|
||||
function formatSizeMb(row: DatasetItem) {
|
||||
return formatMegabytes(row.size_bytes, row.size)
|
||||
}
|
||||
|
||||
function currentVersionNumbers(row: DatasetItem) {
|
||||
const values = row.current_version_nos?.length
|
||||
? row.current_version_nos
|
||||
: [
|
||||
row.current_version_no,
|
||||
...(row.files || []).map((file) => file.current_version_no),
|
||||
]
|
||||
return [...new Set(
|
||||
values
|
||||
.map((value) => Number(value))
|
||||
.filter((value) => Number.isInteger(value) && value > 0),
|
||||
)].sort((a, b) => a - b)
|
||||
}
|
||||
|
||||
function versionLabel(row: DatasetItem) {
|
||||
const versions = currentVersionNumbers(row)
|
||||
return versions.length ? versions.map((value) => `V${value}`).join(' / ') : '-'
|
||||
}
|
||||
|
||||
function versionDescription(row: DatasetItem) {
|
||||
const fileCount = row.files?.length || 0
|
||||
const historyCount = Number(row.version_count || 0)
|
||||
if (!fileCount) return '当前数据集没有文件版本'
|
||||
return `${fileCount} 个文件,共 ${historyCount || fileCount} 个版本记录`
|
||||
}
|
||||
|
||||
watch(activeTab, exitBatchMode)
|
||||
onMounted(loadData)
|
||||
</script>
|
||||
@@ -118,7 +149,7 @@ onMounted(loadData)
|
||||
:data="filteredDataList"
|
||||
:loading="loading"
|
||||
searchable
|
||||
:search-fields="['task_id', 'name', 'description']"
|
||||
:search-fields="['task_id', 'name']"
|
||||
:multi-select="activeTab === 'task' && batchMode"
|
||||
:show-batch-bar="false"
|
||||
:create-text="activeTab === 'upload' ? '上传数据集' : ''"
|
||||
@@ -181,16 +212,26 @@ onMounted(loadData)
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="大小" align="center" width="100">
|
||||
<el-table-column label="大小" align="center" width="120">
|
||||
<template #default="{ row }">
|
||||
{{ row.size && row.size !== '0 B' && row.size !== '0' ? row.size : '-' }}
|
||||
<span class="numeric-cell">{{ formatSizeMb(row as DatasetItem) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="数据条数" align="center" width="100">
|
||||
<template #default="{ row }">{{ row.count || 0 }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="描述" align="center" show-overflow-tooltip>
|
||||
<template #default="{ row }">{{ row.description || '-' }}</template>
|
||||
<el-table-column label="版本" align="center" width="120">
|
||||
<template #default="{ row }">
|
||||
<el-tooltip
|
||||
:content="versionDescription(row as DatasetItem)"
|
||||
placement="top"
|
||||
:show-after="350"
|
||||
>
|
||||
<el-tag size="small" type="info" effect="plain">
|
||||
{{ versionLabel(row as DatasetItem) }}
|
||||
</el-tag>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建时间" align="center" width="180">
|
||||
<template #default="{ row }">
|
||||
@@ -257,4 +298,9 @@ onMounted(loadData)
|
||||
}
|
||||
}
|
||||
|
||||
.numeric-cell {
|
||||
font-variant-numeric: tabular-nums;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user