@@ -161,7 +161,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="task-right">
|
||||
<span class="status running">{{ statusText(item) }}</span>
|
||||
<span class="status running">
|
||||
{{ statusText(item) }}
|
||||
<span v-if="taskFilterSummary(item)" class="status-filter-summary">({{ taskFilterSummary(item) }})</span>
|
||||
</span>
|
||||
<button type="button" class="btn-delete" @click="deleteTaskRecord(item)">删除</button>
|
||||
</div>
|
||||
</li>
|
||||
@@ -190,7 +193,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="task-right">
|
||||
<span class="status" :class="statusClass(item)">{{ statusText(item) }}</span>
|
||||
<span class="status" :class="statusClass(item)">
|
||||
{{ statusText(item) }}
|
||||
<span v-if="taskFilterSummary(item)" class="status-filter-summary">({{ taskFilterSummary(item) }})</span>
|
||||
</span>
|
||||
<button v-if="canDownload(item)" type="button" class="download" @click="downloadResult(item)">下载</button>
|
||||
<button v-if="item.resultId" type="button" class="btn-delete" @click="deleteTaskRecord(item)">删除</button>
|
||||
</div>
|
||||
@@ -565,6 +571,17 @@ function statusClass(item: CollectDataHistoryItem) {
|
||||
return 'pending'
|
||||
}
|
||||
|
||||
function taskFilterSummary(item: CollectDataHistoryItem) {
|
||||
const status = normalizeTaskStatus(item)
|
||||
if (status !== 'SUCCESS' && !item.success) return ''
|
||||
|
||||
const dedupeFiltered = Number(item.dedupeFilteredCount) || 0
|
||||
const invalidFiltered = Number(item.invalidFilteredCount) || 0
|
||||
const brandRejected = Number(item.brandRejectedCount) || 0
|
||||
const finalRowCount = Number(item.finalRowCount ?? item.rowCount) || 0
|
||||
return `去重 ${dedupeFiltered} · 无效品牌 ${invalidFiltered} · 品牌拒绝 ${brandRejected} · 保留 ${finalRowCount}`
|
||||
}
|
||||
|
||||
function taskProgressPercent(item: CollectDataHistoryItem) {
|
||||
const value = Number(item.progressPercent)
|
||||
if (Number.isFinite(value)) return Math.max(0, Math.min(100, Math.round(value)))
|
||||
@@ -794,6 +811,7 @@ onBeforeUnmount(() => {
|
||||
.status.failed { background: rgba(231, 76, 60, .18); color: #ff6b6b; }
|
||||
.status.running { background: rgba(52, 152, 219, .18); color: #3498db; }
|
||||
.status.pending { background: rgba(149, 165, 166, .18); color: #bdc3c7; }
|
||||
.status-filter-summary { font-weight: 400; }
|
||||
.download { padding: 6px 10px; color: #d6ecff; background: rgba(52, 152, 219, .18); }
|
||||
.btn-delete { padding: 6px 10px; color: #ff8f8f; background: rgba(231, 76, 60, .12); }
|
||||
.task-progress { margin-top: 8px; max-width: 520px; }
|
||||
|
||||
Reference in New Issue
Block a user