fix(frontend): 展示三个独立发布数据集

This commit is contained in:
caoxiaozhu
2026-07-25 17:04:21 +08:00
parent e9a121cfeb
commit 939a7f8e8f
8 changed files with 64 additions and 90 deletions

View File

@@ -51,7 +51,12 @@ assert.match(detailSource, /v-model="statusFilter"/, '结果明细缺少状态
assert.match(detailSource, /updateDataProcessResult\(taskId\.value,[\s\S]*?expected_updated_at:/, '结果编辑没有携带并发版本时间')
assert.match(detailSource, /restoreDataProcessResult\(taskId\.value,\s*result\.id\)/, '结果恢复没有调用真实 API')
assert.match(detailSource, /publishDataProcess\(taskId\.value,/, '发布数据集没有调用真实 API')
assert.match(detailSource, /router\.push\(`\/dataset\/\$\{datasetId\}\/preview`\)/, '发布成功后未进入数据集预览')
assert.match(detailSource, /path: '\/dataset', query: \{ tab: 'task', task_id: taskId\.value \}/, '发布成功后未进入数据任务列表')
assert.match(detailSource, /published\.datasets \|\| published\.output_datasets/, '发布成功后未读取三个独立数据集')
assert.match(detailSource, /v-for="dataset in outputDatasets"/, '任务详情未展示三个输出数据集入口')
assert.match(detailSource, /将发布三个独立数据集/, '发布说明仍未明确生成三个独立数据集')
assert.match(detailSource, /outputDatasetBaseName\.value/, '重新同步时未使用单一基础名称')
assert.doesNotMatch(detailSource, /label="数据集类型"/, '发布三个数据集时不应再选择单一数据集类型')
assert.match(detailSource, /无法加载数据处理任务/, '未知任务或加载失败缺少明确错误状态')
assert.match(detailSource, /结果明细加载失败/, '结果加载失败缺少明确错误状态')
assert.match(detailSource, /width:\s*100%/, '详情页没有铺满内容区域')

View File

@@ -10,7 +10,6 @@ const previewComponentPaths = [
'DatasetRecordTable.vue',
'DatasetRecordEditorDialog.vue',
'DatasetRawPreview.vue',
'DatasetSplitNavigator.vue',
].map((name) => path.join(previewComponentsDir, name))
const apiPath = path.join(root, 'src/api/modules/dataset.ts')
const adapterPath = path.join(root, 'src/mock/adapter.ts')
@@ -51,16 +50,12 @@ function expect(condition, message) {
}
expect(previewLogicSource.split('\n').length < 520, 'DatasetPreviewView.vue 的逻辑与模板应保持在 520 行以内')
for (const componentName of ['DatasetVersionBar', 'DatasetRecordTable', 'DatasetRecordEditorDialog', 'DatasetRawPreview', 'DatasetSplitNavigator']) {
for (const componentName of ['DatasetVersionBar', 'DatasetRecordTable', 'DatasetRecordEditorDialog', 'DatasetRawPreview']) {
expect(source.includes(`import ${componentName}`), `主页面未导入叶子组件:${componentName}`)
expect(source.includes(`<${componentName}`), `主页面未挂载叶子组件:${componentName}`)
}
expect(source.includes('class="preview-workspace"'), '详情页应提供数据文件工作区')
expect(previewSurfaceSource.includes('class="split-file-tabs"'), '多切分数据集应提供训练/验证/测试文件切换')
expect(source.includes('@select="handleFileChange"'), '切换数据切分时应加载对应文件版本')
expect(previewSurfaceSource.includes('splitCounts.train'), '数据集概览应显示训练集数量')
expect(previewSurfaceSource.includes('splitCounts.validation'), '数据集概览应显示验证集数量')
expect(previewSurfaceSource.includes('splitCounts.test'), '数据集概览应显示测试集数量')
expect(!source.includes('DatasetSplitNavigator'), '独立数据集详情不应再混合展示三个切分')
expect(previewSurfaceSource.includes('class="code-line"'), '内容查看器应提供逐行展示')
expect(previewSurfaceSource.includes('class="line-number"'), '内容查看器应显示行号')
expect(source.includes('previewLoading'), '切换文件时应提供独立加载状态')

View File

@@ -31,7 +31,9 @@ for (const name of [
assert.match(datasetLine, /source: 'task'/, `${name} 必须标记为数据任务来源`)
}
assert.match(viewSource, /const activeTab = ref<DatasetSource>\('upload'\)/)
assert.match(viewSource, /route\.query\.tab === 'task' \? 'task' : 'upload'/)
assert.doesNotMatch(viewSource, /hasSplitCounts|splitLabels/)
assert.match(viewSource, /DATASET_TYPE_MAP\[String\(row\.type\)\.toLowerCase\(\)\]/)
assert.match(
viewSource,
/if \(activeTab\.value === 'task'\) \{\s*return dataList\.value\.filter\(\(item\) => item\.source === 'task'\)\s*\}/,