From ecb5ac1198f23554e5f0cc97b2f946e3b0b8225e Mon Sep 17 00:00:00 2001
From: zhizhijie <zhizhijie@users.noreply.gitee.com>
Date: 星期一, 28 九月 2026 15:20:27 +0800
Subject: [PATCH] docs(差异清单): 新增汇总大表差异比对工具 + 2026-08 差异明细(生成件 vs 手工定稿,1401 条按类归档);HANDOFF 记录结论并更正 2020 累计列误判

---
 traffic-audit-web/src/views/ReportExport.vue |   23 ++++++++---------------
 1 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/traffic-audit-web/src/views/ReportExport.vue b/traffic-audit-web/src/views/ReportExport.vue
index cdebf87..d9e76d3 100644
--- a/traffic-audit-web/src/views/ReportExport.vue
+++ b/traffic-audit-web/src/views/ReportExport.vue
@@ -168,16 +168,18 @@
             <el-progress :percentage="taskInfo.percent || 0" :status="taskInfo.status === 'FAILED' ? 'exception' : (taskDone ? 'success' : null)"
                          :stroke-width="14"></el-progress>
             <p class="task-step">{{ taskInfo.step || '鎺掗槦涓�' }}</p>
-            <p class="task-meta" v-if="taskInfo.period">鎶ヨ〃鏈� {{ taskInfo.period }}銆�{{ taskInfo.fromCache ? '涓婃鐢熸垚鐢ㄦ椂' : '宸茬敤' }} {{ (taskInfo.elapsedMs / 1000).toFixed(1) }} 绉�</p>
-            <p class="task-meta" v-if="taskInfo.fromCache">鏈鐩存帴浣跨敤 {{ taskCacheTime }} 鐢熸垚鐨勭粨鏋滐紙10 鍒嗛挓鍐呬笖鏈熼棿娌℃湁鏂板鍏ユ暟鎹級銆傚闇�鎸夋渶鏂版暟鎹噸绠楋紝璇风偣銆岄噸鏂扮敓鎴愩�嶃��</p>
+            <p class="task-meta" v-if="taskInfo.period && !taskInfo.fromCache">鎶ヨ〃鏈� {{ taskInfo.period }}銆�宸茬敤 {{ ((taskInfo.elapsedMs || 0) / 1000).toFixed(1) }} 绉�</p>
+            <p class="task-meta" v-else-if="taskInfo.period">鎶ヨ〃鏈� {{ taskInfo.period }}銆�涓婃鐢熸垚浜� {{ taskCacheTime }}</p>
+            <p class="task-meta" v-if="taskInfo.staleCache">涓婃鐢熸垚鐨勭粨鏋滃凡鍥犳暟鎹垨姣嶇増鍙樺寲澶辨晥锛屾湰娆℃寜鏈�鏂版暟鎹噸绠椼��</p>
+            <p class="task-meta" v-if="taskInfo.fromCache">鏈鐩存帴娌跨敤 {{ taskCacheTime }} 鐢熸垚鐨勭粨鏋滐紙鏈熼棿娌℃湁鏂扮殑鏁版嵁瀵煎叆锛夈�傚闇�鎸夋渶鏂版暟鎹噸绠楋紝璇风偣銆岄噸鏂扮敓鎴愩�嶃��</p>
             <p class="task-done" v-if="taskDownloaded">
-              宸茶嚜鍔ㄤ笅杞斤細<b>{{ taskFileName }}</b><span v-if="taskFileSize">锛坽{ taskFileSizeText }}锛�</span><br>
-              娴忚鍣ㄦ病寮瑰嚭涓嬭浇鏃跺彲鐐广�屽啀娆′笅杞姐�嶁�斺�旂敤鏈湴缂撳瓨淇濆瓨锛屼笉浼氶噸鏂拌姹傛湇鍔″櫒銆�
+              宸茶嚜鍔ㄤ笅杞斤細<b>{{ taskFileName }}</b><span v-if="taskFileSize">锛坽{ taskFileSizeText }}锛�</span>锛屾枃浠跺湪娴忚鍣ㄩ粯璁や笅杞界洰褰曘��
             </p>
+            <p class="task-error" v-else-if="taskDone">鑷姩涓嬭浇娌℃垚鍔燂紝鍙偣銆屼繚瀛樻枃浠躲�嶅啀瀛樹竴娆°��</p>
             <p class="task-error" v-if="taskInfo.status === 'FAILED'">{{ taskInfo.error }}</p>
           </div>
           <span slot="footer">
-            <el-button size="small" :disabled="!taskDone" @click="downloadTaskFile()">{{ taskDownloaded ? '鍐嶆涓嬭浇' : (taskInfo.fromCache ? '涓嬭浇' : '淇濆瓨鏂囦欢') }}</el-button>
+            <el-button size="small" v-if="taskDone && !taskDownloaded" @click="downloadTaskFile()">淇濆瓨鏂囦欢</el-button>
             <el-button size="small" :disabled="taskRunning" @click="restartTask">閲嶆柊鐢熸垚</el-button>
             <el-button size="small" v-if="taskRunning" @click="minimizeTask">鍚庡彴杩愯</el-button>
             <el-button size="small" v-else type="primary" @click="closeTask">鍏抽棴</el-button>
@@ -216,11 +218,10 @@
       taskVisible: false,
       taskInfo: {},
       taskTimer: null,
-      // 杩涘害寮圭獥锛氬畬鎴愬悗浼氳嚜鍔ㄤ笅杞戒竴娆★紝杩欓噷璁板綍銆屽凡涓嬭浇銆嶄笌鏂囦欢淇℃伅锛堥噸澶嶇偣鍑昏蛋鏈湴缂撳瓨锛屼笉鍐嶈姹傚悗绔級
+      // 杩涘害寮圭獥锛氬畬鎴愬悗浼氳嚜鍔ㄤ笅杞戒竴娆★紝杩欓噷璁板綍銆屾槸鍚﹀凡涓嬭浇銆嶄笌鏂囦欢淇℃伅锛堝凡涓嬭浇灏变笉鍐嶆樉绀轰笅杞芥寜閽級
       taskDownloaded: false,
       taskFileName: '',
       taskFileSize: 0,
-      taskBlob: null,
       taskKey: 'summaryWorkbook',
       modules: [
         {
@@ -548,7 +549,6 @@
       this.taskDownloaded = false
       this.taskFileName = ''
       this.taskFileSize = 0
-      this.taskBlob = null
       this.loading = 'gen-' + this.curModule.key
       const params = Object.assign({}, this.buildParams(), { refresh: refresh ? 'true' : 'false' })
       api.get('/report/exportTask/summaryWorkbook', { params, timeout: 60000 })
@@ -612,15 +612,8 @@
       if (!id) return
       const name = this.taskInfo.fileName || ('鐢熸垚_閬撹矾杩愯緭閲忔眹鎬昏〃_' + this.period + '.xlsx')
       this.taskFileName = name
-      // 宸茬粡涓嬭浇杩囷細鐩存帴鐢ㄥ唴瀛橀噷鐨� Blob 鍐嶅瓨涓�娆★紝涓嶅啀璇锋眰鍚庣锛堥伩鍏嶅悓涓�浠芥枃浠堕噸澶嶆媺鍙� 1MB+锛�
-      if (this.taskBlob) {
-        this.downloadBlob(this.taskBlob, name)
-        this.$message.success('宸蹭粠鏈湴缂撳瓨淇濆瓨锛�' + name)
-        return
-      }
       api.get('/report/exportTask/' + id + '/file', { responseType: 'blob', timeout: 120000 })
         .then(res => {
-          this.taskBlob = res
           this.taskFileSize = (res && res.size) || 0
           this.taskDownloaded = true
           this.downloadBlob(res, name)

--
Gitblit v1.9.1