feat(mes/eqp/check): add inspector summary statistics table

新增按实际巡检人维度的巡检汇总统计表格,展示巡检人、巡检次数、通过/不通过数量及通过率
This commit is contained in:
2026-06-03 16:59:03 +08:00
parent ec08a360a0
commit 40ebca2573

View File

@@ -37,6 +37,17 @@
</el-descriptions>
<!-- 负责人汇总 -->
<el-card class="section-card" v-if="inspectorSummary.length" style="margin-bottom: 16px;">
<div slot="header"><i class="el-icon-user"></i> 按实际巡检人汇总</div>
<el-table :data="inspectorSummary" size="small" stripe border>
<el-table-column prop="inspector" label="巡检人" />
<el-table-column prop="total" label="巡检次数" align="center" />
<el-table-column prop="pass" label="通过" align="center" />
<el-table-column prop="fail" label="不通过" align="center" />
<el-table-column prop="passRate" label="通过率" align="center" />
</el-table>
</el-card>
<el-card class="section-card" v-if="personSummary.length" style="margin-bottom: 16px;">
<div slot="header"><i class="el-icon-user"></i> 按负责人汇总</div>
<el-table :data="personSummary" size="small" stripe border>
@@ -195,6 +206,22 @@ export default {
const end = new Date(this.dateRange[1]);
return Math.ceil((end - start) / (1000 * 60 * 60 * 24)) + 1;
},
inspectorSummary() {
const map = {};
this.records.forEach(r => {
const name = r.inspector || '未指定';
if (!map[name]) {
map[name] = { inspector: name, total: 0, pass: 0, fail: 0 };
}
map[name].total++;
if (r.runStatus === 1) map[name].pass++;
else if (r.runStatus === 2) map[name].fail++;
});
return Object.values(map).map(p => ({
...p,
passRate: p.total > 0 ? (p.pass / p.total * 100).toFixed(1) + '%' : '0%',
}));
},
personSummary() {
const personMap = {};
this.partList.forEach(p => {