fix(frontend): 展示三个独立发布数据集
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted, computed } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import DataTablePage from '@/components/DataTablePage.vue'
|
||||
import { getDatasetList, deleteDataset, downloadDatasetUrl } from '@/api/modules/dataset'
|
||||
@@ -8,10 +8,11 @@ import { DATASET_TYPE_MAP, STORAGE_MAP } from '@/constants'
|
||||
import type { DatasetItem, DatasetSource } from '@/types'
|
||||
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
|
||||
const loading = ref(false)
|
||||
const dataList = ref<DatasetItem[]>([])
|
||||
const activeTab = ref<DatasetSource>('upload')
|
||||
const activeTab = ref<DatasetSource>(route.query.tab === 'task' ? 'task' : 'upload')
|
||||
|
||||
const filteredDataList = computed(() => {
|
||||
if (activeTab.value === 'task') {
|
||||
@@ -21,17 +22,6 @@ const filteredDataList = computed(() => {
|
||||
return dataList.value.filter((item) => item.source !== 'task')
|
||||
})
|
||||
|
||||
const splitLabels = [
|
||||
{ key: 'train', label: '训练', type: 'primary' },
|
||||
{ key: 'validation', label: '验证', type: 'warning' },
|
||||
{ key: 'test', label: '测试', type: 'success' },
|
||||
] as const
|
||||
|
||||
function hasSplitCounts(row: Partial<DatasetItem>) {
|
||||
return row.source === 'task'
|
||||
&& Object.values(row.split_counts || {}).some((value) => Number(value) > 0)
|
||||
}
|
||||
|
||||
async function loadData() {
|
||||
loading.value = true
|
||||
try {
|
||||
@@ -98,17 +88,7 @@ onMounted(loadData)
|
||||
<el-table-column label="数据集名称" prop="name" align="center" />
|
||||
<el-table-column label="数据类型" align="center" width="110">
|
||||
<template #default="{ row }">
|
||||
<div v-if="hasSplitCounts(row)" class="split-tags">
|
||||
<el-tag
|
||||
v-for="item in splitLabels"
|
||||
:key="item.key"
|
||||
:type="item.type"
|
||||
size="small"
|
||||
>
|
||||
{{ item.label }} {{ row.split_counts?.[item.key] || 0 }}
|
||||
</el-tag>
|
||||
</div>
|
||||
<el-tag v-else type="primary" size="small">{{ DATASET_TYPE_MAP[String(row.type).toLowerCase()] || row.type || '-' }}</el-tag>
|
||||
<el-tag type="primary" size="small">{{ DATASET_TYPE_MAP[String(row.type).toLowerCase()] || row.type || '-' }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="存储位置" align="center" width="110">
|
||||
@@ -187,10 +167,4 @@ onMounted(loadData)
|
||||
}
|
||||
}
|
||||
|
||||
.split-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
gap: 4px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -20,7 +20,6 @@ import DatasetVersionBar from './preview/DatasetVersionBar.vue'
|
||||
import DatasetRecordTable from './preview/DatasetRecordTable.vue'
|
||||
import DatasetRecordEditorDialog from './preview/DatasetRecordEditorDialog.vue'
|
||||
import DatasetRawPreview from './preview/DatasetRawPreview.vue'
|
||||
import DatasetSplitNavigator from './preview/DatasetSplitNavigator.vue'
|
||||
import type { EditField } from './preview/types'
|
||||
import type { DatasetFile, DatasetItem, DatasetVersion } from '@/types'
|
||||
|
||||
@@ -54,7 +53,6 @@ let versionRequestId = 0
|
||||
|
||||
const files = computed<DatasetFile[]>(() => dataset.value?.files || [])
|
||||
const selectedFile = computed(() => files.value.find((file) => fileKey(file) === selectedFileId.value))
|
||||
const splitCounts = computed(() => dataset.value?.split_counts || { train: 0, validation: 0, test: 0 })
|
||||
const totalLines = computed(() => previewContent.value ? previewContent.value.split('\n').length : 0)
|
||||
const recordResult = computed(() => parseDatasetRecords(previewContent.value, selectedFile.value?.name || ''))
|
||||
const isRecordFile = computed(() => recordResult.value.supported)
|
||||
@@ -83,13 +81,6 @@ function fileKey(file: DatasetFile) {
|
||||
return String(file.id || file.name)
|
||||
}
|
||||
|
||||
async function handleFileChange(file: DatasetFile) {
|
||||
if (fileKey(file) === selectedFileId.value) return
|
||||
if (!await confirmDiscardChanges('切换数据切分后,当前样本的未保存修改将丢失。')) return
|
||||
selectedFileId.value = fileKey(file)
|
||||
await loadVersions(file)
|
||||
}
|
||||
|
||||
async function loadDataset() {
|
||||
loading.value = true
|
||||
try {
|
||||
@@ -409,12 +400,6 @@ onBeforeUnmount(() => window.removeEventListener('beforeunload', handleBeforeUnl
|
||||
<div class="overview-item overview-item-wide"><span>创建时间</span><strong>{{ createdAt }}</strong></div>
|
||||
</section>
|
||||
|
||||
<DatasetSplitNavigator
|
||||
v-if="Object.values(splitCounts).some((value) => value > 0)"
|
||||
:files="files" :selected-file-id="selectedFileId" :split-counts="splitCounts"
|
||||
@select="handleFileChange"
|
||||
/>
|
||||
|
||||
<DatasetVersionBar
|
||||
v-model="selectedVersionId"
|
||||
:versions="versions"
|
||||
|
||||
Reference in New Issue
Block a user