kkfluous
|
cbbdb7bb5f
|
fix: 2-3字客户名脱敏改为 首字+* (如 徐*)
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 20:24:43 +08:00 |
|
kkfluous
|
9c9d7a3805
|
feat: 全局客户名称脱敏(首尾保留+中间三个*)
ci/woodpecker/push/woodpecker Pipeline was successful
- 2-3字: 首字+*** (徐***)
- 4-6字: 首2字+***+末1字 (嘉兴***司)
- 7字+: 首4字+***+末2字 (嘉兴市乍***公司)
- 覆盖所有接口: monitoring, targets, vehicles, weekly-detail
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 20:23:24 +08:00 |
|
kkfluous
|
e7efe179b7
|
fix: 未授权页面增加两种进入方式说明
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 18:19:18 +08:00 |
|
kkfluous
|
39f89c30a2
|
fix: 库存统计(inventory-stats/inventory-analysis)不设数据权限,对所有人开放
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 18:15:15 +08:00 |
|
kkfluous
|
8ed2031c45
|
feat: 水印移到全局Shell,资产和里程页面都有水印
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 18:12:48 +08:00 |
|
kkfluous
|
c2d227059c
|
feat: 实时监控加载动画 - KPI骨架屏+车辆列表skeleton
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 18:10:18 +08:00 |
|
kkfluous
|
1680c53279
|
feat: 支持 URL path 路由进入不同模块
ci/woodpecker/push/woodpecker Pipeline was successful
/vehicle 或 /assets → 资产管理
/mileage → 里程管理
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 18:05:24 +08:00 |
|
kkfluous
|
b5806b3148
|
feat: 生产环境配置 EXTERNAL_API_BASE=lnh2e.com 和 JWT_SECRET
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 18:01:49 +08:00 |
|
kkfluous
|
840bf30517
|
fix: 本周动态也基于权限过滤后的车辆计算
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 16:57:32 +08:00 |
|
kkfluous
|
441f574238
|
fix: /summary 和 /by-type 接口补上权限过滤(之前遗漏)
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 16:54:29 +08:00 |
|
kkfluous
|
143c1a57bb
|
debug: 添加权限过滤日志定位问题
ci/woodpecker/push/woodpecker Pipeline was successful
|
2026-04-02 16:48:29 +08:00 |
|
kkfluous
|
4cd76b6a30
|
feat: 添加 /api/auth/me 调试端点查看当前用户权限
ci/woodpecker/push/woodpecker Pipeline was successful
|
2026-04-02 16:44:41 +08:00 |
|
kkfluous
|
09719f3cd6
|
fix: 水印改为 用户名+时间 替代 羚牛氢能+时间
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 16:38:20 +08:00 |
|
kkfluous
|
bf1f1946e4
|
fix: 合并 exchange+login 为一步,直接从 jumpToken 响应提取用户信息签发JWT
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 16:04:09 +08:00 |
|
kkfluous
|
a7ec5ba7b0
|
fix: 防止 StrictMode 双重调用导致 jumpToken 重复消费
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 15:59:11 +08:00 |
|
kkfluous
|
f66049dcbc
|
feat: 前端认证网关 + API 自动附加 JWT
ci/woodpecker/push/woodpecker Pipeline was successful
- AuthProvider 管理 jumpToken 交换和 JWT 生命周期
- 未授权页面(ShieldX 图标 + 提示文字)
- 加载中旋转动画
- fetchJson 全局客户端自动附加 Authorization header
- 401 响应触发重新认证
- JWT 存 sessionStorage,刷新不丢失
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 15:38:22 +08:00 |
|
kkfluous
|
2575778293
|
feat: 后端用户认证和权限过滤
- 新增 auth 模块:jumpToken 代理交换、用户信息获取、JWT 签发
- 三级权限:full(所有权限/数智中心/BI-Leader)、department(BI-Leader-Dep)、personal
- 添加 managerId 到车辆数据模型,支持个人级别按 userId 精确过滤
- auth 中间件保护所有 /api/* 端点(跳过 /api/health 和 /api/auth/*)
- 所有路由集成 filterByPermission 权限过滤
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 15:35:29 +08:00 |
|
kkfluous
|
6dbd36dcd3
|
refactor: replace mileage monolith with modular route files
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 13:35:58 +08:00 |
|
kkfluous
|
7ec422c13a
|
refactor: create targets route handler
|
2026-04-02 13:33:14 +08:00 |
|
kkfluous
|
890050ed55
|
refactor: create trend route handler
|
2026-04-02 13:33:05 +08:00 |
|
kkfluous
|
ac2a16e7b7
|
refactor: create monitoring route handler
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-02 13:32:32 +08:00 |
|
kkfluous
|
459b0400b4
|
refactor: extract monitoring cache module
|
2026-04-02 13:31:07 +08:00 |
|
kkfluous
|
1a169feaa6
|
refactor: extract vehicle-info query module
|
2026-04-02 13:30:19 +08:00 |
|
kkfluous
|
bc1e0ea32e
|
refactor: extract mileage shared types
|
2026-04-02 13:30:02 +08:00 |
|
kkfluous
|
460d17f07f
|
fix: 合并图例到批次栏,压缩间距,最大化表格可见行数
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 11:59:06 +08:00 |
|
kkfluous
|
ae42893d3e
|
fix: 批次筛选移到全屏顶部为pill按钮,不占表格列
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 11:52:23 +08:00 |
|
kkfluous
|
177ac9752f
|
feat: 全屏表格增加批次筛选列,修复筛选依赖
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 11:48:12 +08:00 |
|
kkfluous
|
997374cf25
|
feat: 客户多选筛选、统计报表里程与监控看板数据一致
ci/woodpecker/push/woodpecker Pipeline was successful
- 资产管理按客户筛选改为多选(支持同时选多个客户)
- 新增 MultiSearchSelect 组件(搜索+标签+复选框)
- 统计报表 todayTotal 改用监控缓存数据,与里程看板一致
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 11:31:54 +08:00 |
|
kkfluous
|
8822ddf8ae
|
feat: 车牌区域筛选、型号批次筛选、回到顶部修复、删除涨跌幅
ci/woodpecker/push/woodpecker Pipeline was successful
- 新增车牌区域筛选(粤/沪/浙+数量),替代旧地区代码
- 新增型号批次筛选(从考核目标名称筛选车辆)
- 客户/部门增加"无值"选项筛选空值
- 修复回到顶部按钮在iOS上失效
- 删除KPI卡片涨跌幅百分比显示
- 全屏刷新按钮实际触发数据重新加载+加载动画
- 统计报表全屏刷新按钮修复
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 11:21:38 +08:00 |
|
kkfluous
|
adc9c3a9db
|
feat: 多项优化 - 全屏加载全部数据、无值筛选、刷新按钮、加载动画、负值显示为0
ci/woodpecker/push/woodpecker Pipeline was successful
- 全屏监控一次加载全部车辆数据,支持完整滚动和筛选
- 客户/部门筛选增加"无值"选项筛选空数据
- 全屏刷新按钮实际触发数据重新加载,带旋转动画
- 全屏筛选时显示加载遮罩
- 负值里程前端显示为0
- 未对接车机显示"未对接"替代"-"
- 删除"未同步"标签
- 统计报表配色统一为白色主题、KPI联动选中项目
- 统计报表全屏表格列合并优化
- 车辆明细面板增加日期选择、租赁状态/部门/客户信息、里程合计
- 每分钟自动刷新数据
- 清除按钮修复租赁状态重置
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 10:52:45 +08:00 |
|
kkfluous
|
06a2edc470
|
feat: 租赁状态与部门分列筛选,未同步车辆显示-,卡片增加今/总标签,全屏监控压缩优化
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 10:01:17 +08:00 |
|
kkfluous
|
affe356f43
|
fix: 默认日期改用本地时间,凌晨5点前显示前一天
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 01:13:52 +08:00 |
|
kkfluous
|
e57b8d8801
|
fix: 全屏模式重新设计为纵向布局
ci/woodpecker/push/woodpecker Pipeline was successful
- 去掉 CSS transform 旋转(移动端不兼容)
- KPI 改为单行横排4个卡片
- 标题栏+KPI 紧凑排列在顶部
- 表格区域占满剩余空间,可滚动查看所有列
- 移动端和桌面端统一布局
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 00:38:26 +08:00 |
|
kkfluous
|
8b95e53098
|
fix: 回到顶部改为 scrollTo(0) 确保完全回到页面顶端
用 window.scrollTo + documentElement.scrollTop 双重保险,
替代 scrollIntoView 避免只滚动到哨兵位置。
全屏模式改为 CSS transform 旋转实现移动端横屏。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 00:32:35 +08:00 |
|
kkfluous
|
bfee8344b9
|
fix: 全屏按钮增加横屏锁定
点击全屏按钮后:进入浏览器全屏 + 锁定横屏方向
退出全屏时:解除横屏锁定
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 00:27:14 +08:00 |
|
kkfluous
|
ca4a84f84b
|
fix: 查询日期默认为当天
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 00:22:33 +08:00 |
|
kkfluous
|
94277efc24
|
fix: 车辆详情清单标题也吸顶,与KPI合为一个sticky块
Tab栏 + KPI统计 + 清单标题 三层吸顶:
- Tab栏 sticky top-0
- KPI + 清单标题 sticky top-[44px]
移动端和Web端都生效。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 00:19:49 +08:00 |
|
kkfluous
|
787fa27949
|
fix: overflow-x-hidden 改为 overflow-x:clip 修复 sticky 吸顶
overflow-x:hidden 会创建滚动容器导致 position:sticky 失效,
改用 overflow-x:clip 裁剪溢出但不破坏 sticky 定位。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 00:15:38 +08:00 |
|
kkfluous
|
c5ee78e892
|
feat: Tab栏和KPI卡片吸顶固定
滚动列表时:
- Tab栏(实时监控/统计报表/每日汇报)sticky固定在顶部
- KPI统计卡片sticky固定在Tab栏下方,略缩小间距
- 背景色匹配页面避免透出内容
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 00:11:35 +08:00 |
|
kkfluous
|
50eaeb05ae
|
fix: 统计报表用年度完成率替代总完成率
- 完成率改用 current_year_completion_rate 平均值
- 50%达标数改用 current_year_completion_rate >= 0.5
- 修复后数据:40台普货 完成率51.6% 50%达标15台
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 00:08:46 +08:00 |
|
kkfluous
|
1d8e827374
|
fix: 回到顶部按钮用 IntersectionObserver 检测+scrollIntoView
- 顶部放哨兵元素,离开视口时显示回到顶部按钮
- 点击用 scrollIntoView 替代 window.scrollTo,兼容各种布局
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-02 00:05:42 +08:00 |
|
kkfluous
|
54c8449f7b
|
fix: 用 IntersectionObserver 替代 scroll 事件实现瀑布流
scroll 事件在某些布局下不触发,改用 IntersectionObserver
监听列表底部哨兵元素,进入视口时自动加载下一页,更可靠。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-01 23:59:54 +08:00 |
|
kkfluous
|
b7b254546c
|
fix: 改进瀑布流滚动和回到顶部的可靠性
- 使用 ref 避免 loadMore 依赖导致事件重复注册
- 同时监听 window 和 document 的 scroll 事件
- 降低回到顶部按钮触发阈值到 400px
- 增大触底检测距离到 300px
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-01 23:52:38 +08:00 |
|
kkfluous
|
82dac759be
|
fix: 环比统计跟随筛选条件正确计算
每辆车缓存其昨日里程(yesterdayKm),筛选后的环比基于
相同筛选条件下的车辆计算,而非全局对比。
例如筛选"业务一部"后,今日和昨日都只统计一部的车辆。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-01 23:50:07 +08:00 |
|
kkfluous
|
0b8bbbb063
|
feat: 支持查询指定日期里程+删除搜索关键词和车牌号筛选
- 后端支持 date 参数,指定日期时实时查询数据库(不用缓存)
- 同时查询前一天数据计算环比
- 高级筛选添加"查询日期"日期选择器
- 删除高级筛选中的"搜索关键词"和"车牌号"(已有快捷筛选)
- 筛选标签支持显示日期条件
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-01 23:41:03 +08:00 |
|
kkfluous
|
cbf0e18634
|
fix: 里程环比改为真实值(与前一天对比)
- 后端缓存刷新时查询前一天总里程(yesterdayTotal)
- 前端计算真实环比:(今日-昨日)/昨日*100%
- 上涨显示蓝色↑,下跌显示红色↓
- 昨日无数据时不显示环比
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-01 23:33:52 +08:00 |
|
kkfluous
|
66de41d50b
|
fix: KPI统计跟随筛选条件变化+客户筛选修正+部门排序
- KPI统计(总里程/平均单车/监控台数)改为基于筛选后数据计算
- 移除不需要的 onlineCount 字段
- 快捷筛选"按客户"和全屏表格"客户"列改为真正的客户筛选
- 删除混乱的 projects 变量映射
- 部门列表按 一部→二部→三部 顺序排序
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-01 23:29:31 +08:00 |
|
kkfluous
|
c73e20bacf
|
fix: 快捷筛选按客户改为客户筛选、删除日期筛选、更新频率文案
- 快捷筛选"按客户"改为真正的客户名称筛选(独立于项目筛选)
- 删除高级筛选中的"日期区间"和"日期"(无后端支持)
- "40MIN更新"改为"每分钟更新"
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-01 23:26:34 +08:00 |
|
kkfluous
|
8fffa141f4
|
fix: 修复车牌搜索失效,确保所有筛选条件正常
- 后端新增 plate 查询参数支持
- 前端将 filterPlate 传给 API 并加入依赖数组
- 所有筛选条件(部门/项目/主体/车牌/搜索/里程范围)
均正确传递到后端并触发数据刷新
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-01 23:22:12 +08:00 |
|
kkfluous
|
cb620e5101
|
feat: 筛选条件标签展示+单独删除+清除全部
筛选后在 KPI 卡片上方展示活跃筛选条件标签(蓝色圆角),
每个标签可单独点×删除,右侧"清除"按钮重置所有筛选。
支持:部门/项目/主体/车牌/搜索/里程范围/地区。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-01 23:18:55 +08:00 |
|