处理后台新需求
Build Backend JAR / build (push) Failing after 16m58s

This commit is contained in:
supernijia
2026-08-09 20:08:39 +08:00
parent f7e26ee266
commit 38216a1885
42 changed files with 3425 additions and 424 deletions
@@ -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; }