From a76a8cce476ceccbc061a3f51681b6090a7d3741 Mon Sep 17 00:00:00 2001
From: zhizhijie <zhizhijie@users.noreply.gitee.com>
Date: 星期五, 11 九月 2026 17:32:41 +0800
Subject: [PATCH] feat: 汇总大表排名页随报表期刷新 + 同比列统一百分数显示

---
 traffic-audit-web/src/views/AuditResult.vue |   30 ++++++++++++++++++++----------
 1 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/traffic-audit-web/src/views/AuditResult.vue b/traffic-audit-web/src/views/AuditResult.vue
index f4b7278..7db2d4f 100644
--- a/traffic-audit-web/src/views/AuditResult.vue
+++ b/traffic-audit-web/src/views/AuditResult.vue
@@ -50,7 +50,9 @@
           <div class="sev-card sev-pending"><b>{{ severityStats.pending }}</b> 寰呭鐞�</div>
           <div class="sev-card sev-done"><b>{{ severityStats.done }}</b> 宸插鐞�</div>
         </div>
-        <el-form v-if="!focusMode" :inline="true" style="margin-top:8px;flex:none">
+        <div v-if="!focusMode" class="audit-filter-bar">
+        <el-form :inline="true">
+          <el-form-item label="绛涢��"></el-form-item>
           <el-form-item label="浼佷笟鍚嶇О">
             <el-input v-model="enterpriseFilter" placeholder="杈撳叆浼佷笟鍚嶇О鍏抽敭瀛�" clearable style="width:200px" @keyup.enter.native="queryResults"></el-input>
           </el-form-item>
@@ -59,11 +61,12 @@
               <el-option v-for="rn in ruleOptions" :key="rn" :label="rn" :value="rn"></el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="闂绫诲瀷">
+          <el-form-item label="闂鑼冨洿">
             <el-radio-group v-model="issueScope" size="small" @change="updateBatchSelection">
-              <el-radio-button label="verify">鏍稿疄鍨�</el-radio-button>
-              <el-radio-button label="all">鍏ㄩ儴</el-radio-button>
+              <el-radio-button label="verify">浠呴渶鏍稿疄</el-radio-button>
+              <el-radio-button label="all">鍚彁閱掑瀷</el-radio-button>
             </el-radio-group>
+            <span class="hint">鎻愰啋鍨嬩粎鎻愮ず鍙樺寲銆佷笉闇�澶勭悊锛屽鍑洪粯璁や笉鍚�</span>
           </el-form-item>
           <el-form-item label="鐘舵��">
             <el-select v-model="statusScope" style="width:110px" @change="updateBatchSelection">
@@ -87,9 +90,11 @@
             <el-button size="small" plain @click="statsCollapsed = !statsCollapsed">{{ statsCollapsed ? '灞曞紑' : '鏀惰捣' }}瑙勫垯缁熻</el-button>
           </el-form-item>
           <el-form-item>
-            <span style="color:#909399;font-size:12px">鍏� {{ results.length }} 鏉¢棶棰橈紝{{ mergedResults.length }} 瀹朵紒涓�</span>
+            <span style="color:#303133;font-size:13px;font-weight:600">褰撳墠绛涢�� {{ filteredResults.length }} 鏉� / {{ mergedResults.length }} 瀹朵紒涓�</span>
+            <span style="color:#909399;font-size:12px;margin-left:8px">锛堝叡 {{ results.length }} 鏉¢棶棰橈級</span>
           </el-form-item>
         </el-form>
+        </div>
         <div v-if="ruleStats.length && !statsCollapsed && !focusMode" class="rule-stats" style="flex:none">
           <div class="stats-cards">
             <div v-for="rs in sortedRuleStats" :key="rs.ruleId" class="stat-card"
@@ -354,7 +359,7 @@
   data() {
     return {
       period: '', reportType: 'H2032', loading: false, marking: false, results: [], ruleStats: [], statsCollapsed: false,
-      enterpriseFilter: '', ruleFilter: '', viewMode: 'detail', issueScope: 'verify', statusScope: 'all', batchSelection: [], focusMode: false,
+      enterpriseFilter: '', ruleFilter: '', viewMode: 'merged', issueScope: 'verify', statusScope: 'all', batchSelection: [], focusMode: false,
       explainDrafts: {}, savingExplainId: null, expandedExplain: null,
       monthVisible: false, monthLoading: false, monthType: '', monthPeriod: '', monthKeyword: '', monthRecords: [], monthColumns: []
     }
@@ -367,7 +372,7 @@
     },
     severityStats() {
       const s = { red: 0, yellow: 0, pending: 0, done: 0 }
-      this.results.forEach(r => {
+      this.filteredResults.forEach(r => {
         if (r.alertLevel === 'RED') s.red++
         else if (r.alertLevel === 'YELLOW') s.yellow++
         if (r.status === 'PENDING') s.pending++
@@ -383,9 +388,6 @@
     someSelected() {
       const list = this.filteredResults
       return list.some(r => r._selected) && !this.allSelected
-    },
-    isReminderRow(r) {
-      return !!(r && r.ruleCode === 'RULE_004')
     },
     filteredResults() {
       const kw = (this.enterpriseFilter || '').trim()
@@ -424,6 +426,9 @@
     }
   },
   methods: {
+    isReminderRow(r) {
+      return !!(r && r.ruleCode === 'RULE_004')
+    },
     dataType(t) { return DATA_TYPE_MAP[t] || '' },
     explainType(t) { return EXPLAIN_TYPES.indexOf(t) >= 0 },
     openMonthReport(row) {
@@ -769,4 +774,9 @@
 .mr-sec-tab th { background: #F5F7FA; font-weight: 600; }
 .mr-note { margin: 6px 12px 12px; background: #FDF6EC; border: 1px solid #FAECD8; border-radius: 4px; padding: 8px 10px; font-size: 12px; color: #8a6d3b; white-space: pre-wrap; word-break: break-all; }
 .mr-note-line { margin: 2px 0; }
+
+.audit-filter-bar { background:#FAFAFA; border:1px solid #EBEEF5; border-radius:8px; padding:2px 12px 0; margin-top:8px; flex:none; }
+.audit-filter-bar .el-form-item { margin-bottom:6px; }
+.audit-filter-bar .el-form-item__label { color:#606266; font-weight:600; }
+.hint { color:#909399; font-size:12px; margin-left:6px; white-space:nowrap; }
 </style>

--
Gitblit v1.9.1