3.1 KiB
加油登记统计卡片对齐 HTML
目标: 按用户指定的 index(7).html 展示统计数据与卡片布局,将卡片置于列表检索栏上方。
范围: 现有加油信息汇总页面,沿用 P01 列表模式(参考 web-admin/src/views/system/unit/index.vue),保留卡片筛选列表、真实自然月、正常未删除记录及租户/数据权限。原型的固定演示日期不移植。车辆档案没有罐车车型字段,不伪造车型;副行展示真实司机与车辆状态。
实现: 在现有汇总接口增加 liters / prevLiters / runKm / prevRunKm / prevQuarterRateL100;保留旧油耗字段兼容消费者。自然季及上季按原型计算,里程边界只使用区间之前一个自然月,缺失时回退区间首尾。所有有权限的自有车辆都展示,无记录加油量/里程为 0、油耗为 —。三栏分别为当月加油量、当月里程、当月/季度油耗,各自显示相应环比。白底、12px 圆角、14×16px 内边距、12px 间距、4/2 列,小屏补充单列;主色遵守 Fresh Mint。
执行步骤
- 为汇总接口添加 SQLite 回归用例:升数/里程/油耗、跨年上季度、无数据车辆、权限和作废/软删排除。
- 扩展
backend/app/services/pl_vehicle_fuel_service.py、backend/app/schemas/pl/vehicle_fuel.py和前端 API 类型,不变更数据库。 - 调整
FuelRegisterListPage.vue卡片顺序,重做FuelPlateMonthCards.vue三栏及环比样式;验证零基数、空值、持平、涨跌格式。 - 运行后端定向 pytest、前端定向测试和构建,审查差异,更新知识图谱。
验证结果
- 后端定向 pytest:20 项通过;前端统计工具函数测试:3 项通过;卡片 ESLint / Stylelint 通过。
- 浏览器确认真实数据、四列布局、卡片位于检索栏上方;点击皖H57837 后列表由 209 条筛为 23 条,再点取消。
- 全量类型检查被现有 API 返回类型等错误阻断;本次新卡片与工具函数无类型诊断。
- 独立只读审查未发现阻塞问题。
用户确认的里程口径修订
月/季度均改为「下一周期第一次有效里程 − 本周期第一次有效里程」。下一周期没有有效读数时,取本周期首末差并标记暂估;不足两笔为数据不足,读数倒退为里程异常。上月/上季采用相同算法参与环比。加油量仍按登记日期汇总,油耗作为参考估算,不推定每笔加油对应前后哪段行程。保持租户/数据权限和叉车、油桶排除。查询范围扩到下季度,按独立周期边界分组,防止未来周期升数混入本期。增加状态字段和卡片说明,无数据库变更。
验证覆盖:首笔排序与空读数、跨年下周期、暂估转完整、异常、未来升数不混入、权限过滤、状态标签呈现。
修订验证完成:后端 23 项、前端 4 项测试通过;卡片 ESLint/Stylelint 通过;生产构建通过(1m34s)。浏览器验证月/季度暂估及数据不足标签,独立代码复审通过。已重载本地后端。