From dbe0421bfedf445e73e8213a0a801df1e6ae9ae1 Mon Sep 17 00:00:00 2001 From: shishengliang Date: Fri, 16 Oct 2026 18:23:57 +0800 Subject: [PATCH] =?UTF-8?q?fix(assets):=20=E7=A7=BB=E9=99=A4=E6=95=85?= =?UTF-8?q?=E9=9A=9C=E6=8F=90=E6=8A=A5=E6=9D=A5=E6=BA=90=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/asset-fault-management.md | 2 +- src/modules/assets/faults/FaultManagement.tsx | 2 +- src/modules/assets/faults/dashboard-export.ts | 2 +- src/modules/assets/faults/dashboard.css | 10 ---------- 4 files changed, 3 insertions(+), 13 deletions(-) diff --git a/docs/asset-fault-management.md b/docs/asset-fault-management.md index 8d9d7e0..85e6780 100644 --- a/docs/asset-fault-management.md +++ b/docs/asset-fault-management.md @@ -84,7 +84,7 @@ 故障管理按最新确认保留「管理总览 / 多维分析 / 故障明细」三个页签。管理总览与处理效率合并,恢复原有页面及统计:今日新增、本日解决、当前在办(待处理 + 处理中,逾期为子集)、累计台账,沿用 `/overview` 接口;下方直接展示原有故障处理趋势与故障运维周报。趋势默认近30天,周报默认周六至周五,分别选择日期、导出和下钻。管理总览不受其他页签的业务筛选影响。多维分析、故障明细保留新增分析能力及统一日期、区域、客户、品牌车型查询;更多筛选包含城市、业务部门、运维处置人、故障程度、故障部位、库存状态,点击查询生效。 -- 期间新增故障:所选提报日期内的有效故障。卡片增加“运维提报”和“AI提报”数量及下钻;两者之和等于期间新增,沿用日期、权限及业务筛选。来源优先读取 `report_method`:运维上报显示“运维提报”,客户上报显示“AI提报”;旧数据未标明有效上报方式时,有真实 `source_work_order_id` 关联归客户上报,否则归运维上报,与 OneOS 历史展示逻辑一致。该分类不使用 `fault_source` 故障来源字典,也不推断所有客户上报均由 AI 自动创建。对比上期采用紧邻本期、天数相同的区间;上期为零时显示无可比基数。 +- 期间新增故障:所选提报日期内的有效故障。卡片及导出仅展示期间新增总量,不再拆分提报来源。对比上期采用紧邻本期、天数相同的区间;上期为零时显示无可比基数。 - 受影响车辆:同批故障按关联车辆 ID 去重,缺 ID 时使用故障车牌;两者都缺失的不计车辆数,单列数据完整性提示。车辆跨组可能重复,不直接累加。 - 当前在办:已应用业务筛选下,所有日期的待处理 + 处理中。逾期为其子集;最长逾期按截止时间到数据时间的天数向上取整。 - 区域、等级、客户、车型分布和车型×部位矩阵:按本期提报队列统计,闭环状态截至更新时间。一单多部位分别计入单元格,车型合计按单去重。 diff --git a/src/modules/assets/faults/FaultManagement.tsx b/src/modules/assets/faults/FaultManagement.tsx index 528a362..d6dd581 100644 --- a/src/modules/assets/faults/FaultManagement.tsx +++ b/src/modules/assets/faults/FaultManagement.tsx @@ -43,7 +43,7 @@ export default function FaultManagement(){ {!data&&loading?
正在汇总故障分析…
:data&&
{tab==='多维分析'&&<>
-

对比上期 0?'fd-orange':'fd-blue'}>{t?.change==null?'无可比基数':`${t.change>0?'+':''}${t.change.toFixed(1)}%`}上期 {t?.previous} 单

+
+

对比上期 0?'fd-orange':'fd-blue'}>{t?.change==null?'无可比基数':`${t.change>0?'+':''}${t.change.toFixed(1)}%`}上期 {t?.previous} 单

涉及 {t?.customers} 家已关联客户按车辆去重

+

最长逾期 {t?.longestOverdueDays} 天在办子集

diff --git a/src/modules/assets/faults/dashboard-export.ts b/src/modules/assets/faults/dashboard-export.ts index 3931747..2cfb3e0 100644 --- a/src/modules/assets/faults/dashboard-export.ts +++ b/src/modules/assets/faults/dashboard-export.ts @@ -2,7 +2,7 @@ import type { FaultDashboardResponse } from '../../../shared/assets/faults'; export async function downloadDashboard(data:FaultDashboardResponse,filters:string) { const {default:ExcelJS}=await import('exceljs');const book=new ExcelJS.Workbook();book.creator='羚牛氢能 BI'; const tables: {name:string;headers:string[];rows:(string|number)[][]}[]=[ - {name:'管理总览',headers:['指标','数量','口径'],rows:[['期间新增故障',data.totals.reported,'按提报日期'],['运维提报',data.totals.operationsReported,'本期新增故障中的运维上报'],['AI提报',data.totals.customerReported,'本期新增故障中的客户上报'],['受影响车辆',data.totals.vehicles,'本期故障车辆去重'],['当前在办',data.totals.open,'全部待处理 + 处理中'],['逾期',data.totals.overdue,'当前在办中超过处置截止时间'],['待处理',data.totals.waiting,'全部待处理'],['处理中',data.totals.processing,'全部处理中'],['今日新增',data.totals.todayReported,'北京时间今日提报'],['本日解决',data.totals.todayClosed,'北京时间今日解决'],['累计台账',data.totals.ledger,'当前筛选范围的全部有效故障']]}, + {name:'管理总览',headers:['指标','数量','口径'],rows:[['期间新增故障',data.totals.reported,'按提报日期'],['受影响车辆',data.totals.vehicles,'本期故障车辆去重'],['当前在办',data.totals.open,'全部待处理 + 处理中'],['逾期',data.totals.overdue,'当前在办中超过处置截止时间'],['待处理',data.totals.waiting,'全部待处理'],['处理中',data.totals.processing,'全部处理中'],['今日新增',data.totals.todayReported,'北京时间今日提报'],['本日解决',data.totals.todayClosed,'北京时间今日解决'],['累计台账',data.totals.ledger,'当前筛选范围的全部有效故障']]}, ...Object.entries(data.distributions).map(([key,rows])=>({name:({region:'区域分布',level:'故障程度',customer:'客户影响',model:'车型分布'} as Record)[key],headers:['分组','本期故障','已闭环','未闭环','影响车辆','当前在办'],rows:rows.map(r=>[r.label,r.reported,r.closed,r.unclosed,r.vehicles,r.open])})), {name:'车型与部位',headers:['品牌车型','故障部位','故障数量'],rows:data.matrix.cells.filter(c=>c.count).map(c=>[c.model,c.category,c.count])}, ]; diff --git a/src/modules/assets/faults/dashboard.css b/src/modules/assets/faults/dashboard.css index e8adff7..40ef0ca 100644 --- a/src/modules/assets/faults/dashboard.css +++ b/src/modules/assets/faults/dashboard.css @@ -121,13 +121,3 @@ @media(max-width:1100px) { .fd-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); } } - -/* Keep the report-source breakdown and comparison readable at both card widths. */ -.fd-kpis>.fd-kpi { height:148px; } -.fd-kpis .fd-report-parts { margin-top:auto; } -.fd-kpis .fd-reported-kpi>p { min-height:16px; margin-top:6px; } -@media(max-width:767px) { - .fd-kpis>.fd-kpi { height:142px; } - .fd-kpis .fd-report-parts { gap:3px; } - .fd-kpis .fd-report-parts button { padding:3px 4px; } -}