fix(frontend): 标明重新生成前的数据集状态

This commit is contained in:
caoxiaozhu
2026-07-27 09:39:23 +08:00
parent e4ea1f168c
commit ce0f908d20
2 changed files with 19 additions and 4 deletions

View File

@@ -57,6 +57,8 @@ assert.match(detailSource, /publishDataProcess\(taskId\.value,/, '发布数据
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, /const hasPublishedOutputs = computed\(\(\) => outputDatasets\.value\.length > 0\)/, '详情页没有独立识别仍然存在的已发布数据集')
assert.match(detailSource, /v-if="hasPublishedOutputs && !outputDatasetId"[\s\S]*?当前生成结果尚未重新发布,以下为上次已发布数据集,仍可正常使用/, '重新生成任务没有说明上次发布数据集仍然可用')
assert.match(detailSource, /class="output-dataset-row"[\s\S]*?class="output-dataset-cell"[\s\S]*?class="output-dataset-links"/, '输出数据集没有独立的多行对齐布局')
assert.match(detailSource, /\.output-dataset-links[\s\S]*?display:\s*inline-grid[\s\S]*?grid-template-columns:\s*max-content[\s\S]*?text-align:\s*left/, '输出数据集名称没有统一左边缘')
assert.match(detailSource, /\.output-dataset-links[\s\S]*?\.el-button[\s\S]*?width:\s*100%[\s\S]*?margin-left:\s*0/, '输出数据集链接没有清除默认间距或统一宽度')
@@ -64,7 +66,7 @@ assert.match(detailSource, /\.el-button\s*>\s*span[\s\S]*?width:\s*100%[\s\S]*?d
assert.match(detailSource, /\.el-button i[\s\S]*?margin-left:\s*auto/, '输出数据集跳转图标没有统一右对齐')
assert.match(detailSource, /将发布三个独立数据集/, '发布说明仍未明确生成三个独立数据集')
assert.match(detailSource, /function startRegeneration\(\)[\s\S]*?name: 'data-process-regenerate'[\s\S]*?params: \{ id: taskId\.value \}/, '重新生成按钮没有携带原任务 ID 进入命名路由')
assert.match(detailSource, /const canRegenerate = computed\(\(\) => \{[\s\S]*?status === 'pending'[\s\S]*?status === 'failed'[\s\S]*?status === 'stopped'[\s\S]*?status === 'completed'[\s\S]*?outputDatasetId\.value/, '详情页没有覆盖可恢复的重新生成任务状态')
assert.match(detailSource, /const canRegenerate = computed\(\(\) => \{[\s\S]*?status === 'pending'[\s\S]*?status === 'failed'[\s\S]*?status === 'stopped'[\s\S]*?status === 'completed'[\s\S]*?outputDatasetId\.value[\s\S]*?hasPublishedOutputs\.value/, '详情页没有覆盖指针已清空但旧发布数据集仍存在的重新生成任务')
assert.match(detailSource, /v-if="canRegenerate"[\s\S]*?@click="startRegeneration"[\s\S]*?重新生成/, '可恢复任务没有收敛为单一重新生成入口')
assert.match(detailSource, /v-if="detail\.status === 'completed' && !outputDatasetId"[\s\S]*?@click="openPublishDialog"[\s\S]*?发布为三个数据集/, '未发布完成任务没有保留首次发布入口')
assert.doesNotMatch(detailSource, /查看三个数据集|重新同步数据集|resyncPublishedDataset/, '已发布任务仍保留旧查看或同步按钮')

View File

@@ -168,12 +168,13 @@ const outputDatasetName = computed(() => (
outputDatasets.value.map((item) => item.name).join('、')
))
const outputDatasetId = computed(() => detail.value?.output_dataset_id || null)
const hasPublishedOutputs = computed(() => outputDatasets.value.length > 0)
const canRegenerate = computed(() => {
const status = detail.value?.status
return status === 'pending'
|| status === 'failed'
|| status === 'stopped'
|| (status === 'completed' && Boolean(outputDatasetId.value))
|| (status === 'completed' && (Boolean(outputDatasetId.value) || hasPublishedOutputs.value))
})
const creatorName = computed(() => detail.value?.creator_name || detail.value?.creator || '-')
const createTime = computed(() => detail.value?.create_time || detail.value?.created_at)
@@ -485,7 +486,7 @@ onBeforeUnmount(() => {
type="primary"
@click="openPublishDialog"
>
<i class="fa fa-database" />发布为三个数据集
<i class="fa fa-database" style="margin-right: 4px;" />发布为三个数据集
</el-button>
<el-button
v-if="canRegenerate"
@@ -493,7 +494,7 @@ onBeforeUnmount(() => {
type="primary"
@click="startRegeneration"
>
<i class="fa fa-refresh" />重新生成
<i class="fa fa-refresh" style="margin-right: 4px;" />重新生成
</el-button>
</div>
<p>{{ detail.description || '暂无任务描述' }}</p>
@@ -558,6 +559,10 @@ onBeforeUnmount(() => {
<div class="output-dataset-row">
<dt>输出数据集</dt>
<dd class="output-dataset-cell">
<p
v-if="hasPublishedOutputs && !outputDatasetId"
class="output-dataset-hint"
>当前生成结果尚未重新发布以下为上次已发布数据集仍可正常使用</p>
<div v-if="outputDatasets.length" class="output-dataset-links">
<el-button
v-for="dataset in outputDatasets"
@@ -836,6 +841,14 @@ onBeforeUnmount(() => {
.output-dataset-cell { min-width: 0; }
.output-dataset-hint {
margin: 0 0 6px;
color: #d97706;
font-size: 12px;
line-height: 1.5;
text-align: left;
}
.output-dataset-links {
max-width: 100%;
min-width: 0;