提交更改
This commit is contained in:
@@ -594,10 +594,10 @@ async function refreshTaskProgress() {
|
||||
if (task.status === 'SUCCESS' || task.status === 'FAILED') {
|
||||
removePollingTask(task.id)
|
||||
shouldRefreshDashboard = true
|
||||
if (task.status === 'SUCCESS') addPendingFileTask(task.id)
|
||||
if (item && isResultPreparing(item)) addPendingFileTask(task.id)
|
||||
else removePendingFileTask(task.id)
|
||||
}
|
||||
if (item && task.status === 'SUCCESS' && pendingFileTaskIds.value.includes(task.id)) {
|
||||
if (item && (task.status === 'SUCCESS' || task.status === 'FAILED') && pendingFileTaskIds.value.includes(task.id)) {
|
||||
const fileStatus = (item.fileStatus || '').toUpperCase()
|
||||
if (item.fileReady || fileStatus === 'SUCCESS' || fileStatus === 'FAILED') {
|
||||
removePendingFileTask(task.id)
|
||||
@@ -651,10 +651,10 @@ function settlePendingFileTasks() {
|
||||
}
|
||||
const taskStatus = (item.taskStatus || '').toUpperCase()
|
||||
const fileStatus = (item.fileStatus || '').toUpperCase()
|
||||
if (taskStatus === 'FAILED' || item.fileReady || fileStatus === 'SUCCESS' || fileStatus === 'FAILED') {
|
||||
if (item.fileReady || fileStatus === 'SUCCESS' || fileStatus === 'FAILED') {
|
||||
continue
|
||||
}
|
||||
if (taskStatus === 'SUCCESS') {
|
||||
if (taskStatus === 'SUCCESS' || taskStatus === 'FAILED') {
|
||||
remaining.push(taskId)
|
||||
}
|
||||
}
|
||||
@@ -767,6 +767,7 @@ function statusText(item: AppearancePatentHistoryItem) {
|
||||
if (status === 'PENDING') return '已解析待推送'
|
||||
if (isResultPreparing(item)) return '结果生成中'
|
||||
if (isResultBuildFailed(item)) return '结果生成失败'
|
||||
if (hasDownloadableResult(item)) return '已完成'
|
||||
if (status === 'SUCCESS' || item.success) return '已完成'
|
||||
if (status === 'FAILED') return '失败'
|
||||
return '等待中'
|
||||
@@ -775,6 +776,7 @@ function statusText(item: AppearancePatentHistoryItem) {
|
||||
function statusClass(item: AppearancePatentHistoryItem) {
|
||||
const status = normalizeTaskStatus(item)
|
||||
if (status === 'RUNNING' || isResultPreparing(item)) return 'running'
|
||||
if (hasDownloadableResult(item)) return 'success'
|
||||
if (isResultBuildFailed(item) || status === 'FAILED') return 'failed'
|
||||
if (status === 'SUCCESS' || item.success) return 'success'
|
||||
return 'pending'
|
||||
@@ -783,10 +785,10 @@ function statusClass(item: AppearancePatentHistoryItem) {
|
||||
function isResultPreparing(item: AppearancePatentHistoryItem) {
|
||||
const status = normalizeTaskStatus(item)
|
||||
const fileStatus = (item.fileStatus || '').toUpperCase()
|
||||
if (status !== 'SUCCESS') return false
|
||||
if (status !== 'SUCCESS' && status !== 'FAILED') return false
|
||||
if (canDownload(item)) return false
|
||||
if (fileStatus === 'FAILED' || fileStatus === 'SUCCESS') return false
|
||||
return true
|
||||
return status === 'SUCCESS' || hasActiveFileJob(item)
|
||||
}
|
||||
|
||||
function normalizeTaskStatus(item: AppearancePatentHistoryItem) {
|
||||
@@ -819,6 +821,10 @@ function canDownload(item: AppearancePatentHistoryItem) {
|
||||
return Boolean(item.resultId && (item.fileReady || item.downloadUrl))
|
||||
}
|
||||
|
||||
function hasDownloadableResult(item: AppearancePatentHistoryItem) {
|
||||
return canDownload(item)
|
||||
}
|
||||
|
||||
function fileProgressPercent(item: AppearancePatentHistoryItem) {
|
||||
const percent = Number(item.fileProgressPercent || 0)
|
||||
if (Number.isFinite(percent) && percent > 0) {
|
||||
|
||||
@@ -149,6 +149,8 @@
|
||||
<div class="files">任务 ID:{{ item.taskId }}</div>
|
||||
<div class="files">开始时间:{{ formatDateTime(item.startedAt || item.createdAt) }}</div>
|
||||
<div class="files">行数:{{ item.rowCount ?? '-' }}</div>
|
||||
<div class="files">总数据去重过滤:{{ item.dedupeFilteredCount ?? 0 }}</div>
|
||||
<div class="files">不符合 ASIN 过滤:{{ item.invalidFilteredCount ?? 0 }}</div>
|
||||
</div>
|
||||
<div class="task-right">
|
||||
<span class="status running">{{ statusText(item) }}</span>
|
||||
@@ -170,6 +172,8 @@
|
||||
<div class="files">任务 ID:{{ item.taskId ?? '-' }}</div>
|
||||
<div class="files">开始时间:{{ formatDateTime(item.startedAt || item.createdAt) }}</div>
|
||||
<div class="files">结束时间:{{ formatDateTime(item.finishedAt) }}</div>
|
||||
<div class="files">总数据去重过滤:{{ item.dedupeFilteredCount ?? 0 }}</div>
|
||||
<div class="files">不符合 ASIN 过滤:{{ item.invalidFilteredCount ?? 0 }}</div>
|
||||
<div v-if="item.resultFilename" class="files">{{ item.resultFilename }}</div>
|
||||
<div v-if="item.error" class="files">错误:{{ item.error }}</div>
|
||||
</div>
|
||||
|
||||
@@ -2283,6 +2283,10 @@ export interface CollectDataHistoryItem {
|
||||
success?: boolean;
|
||||
error?: string;
|
||||
rowCount?: number;
|
||||
dedupeFilteredCount?: number;
|
||||
invalidFilteredCount?: number;
|
||||
brandRejectedCount?: number;
|
||||
finalRowCount?: number;
|
||||
createdAt?: string;
|
||||
startedAt?: string;
|
||||
finishedAt?: string;
|
||||
|
||||
Reference in New Issue
Block a user