shishengliang
c2f21a3a8a
fix: restore post-v1.1.14 features while preserving asset updates
...
ci/woodpecker/push/woodpecker Pipeline was successful
Undo the full-tree rollback in 6ea1b3d and restore the pre-rollback v1.2.0 code. Preserve the new asset flow rules, abnormal inventory separation, range drilldowns and date picker; adapt the regression test to the restored routes layout.
2026-09-16 10:48:32 +08:00
shishengliang
6ea1b3d5dd
revert: restore v1.1.14 ( 37a9f303)
ci/woodpecker/push/woodpecker Pipeline failed
2026-09-16 09:29:30 +08:00
dsh-agent
507bc90ed2
refactor(stage5): 合并重复实现,移除失效的演示能力
...
Excel 导出(原先 4 份各自拼装 workbook)
- 新增 src/shared/xlsx.ts 作为唯一实现:文件名统一 .xlsx、sheet 名截断到 31 字符,
对外提供 buildAoaSheet / buildJsonSheet / writeWorkbook / exportAoaSheet / exportJsonSheet。
只收敛"组装与写出"这一层,各调用方仍自行决定列宽、冻结与数字格式,导出样式不变。
- 迁移 assets(内联 json_to_sheet + writeFile)、mileage/xlsx-export、
hydrogen 的两份 helper(prototype-download.ts 与 download-xls.js,均已删除)。
高德地图(原先 2 份近乎逐行复制)
- 新增 src/shared/amap.ts:SDK 版本、插件列表、安全码注入、底图参数、
控件位置与热力图色带只在此处定义;两个画布只保留各自的半径/透明度。
- 图例渐变条原先把同一组色值又写了一遍,改为复用 shared 的常量,图例与地图不会漂移。
数值格式化
- 两个下钻视图各自复制了同样的 formatNumber/format(共 42 处调用),
统一到 hydrogen/model/display-format.ts 的 formatFixed;默认路径与既有行为逐字一致。
- 原 display-format.ts 里的 finiteNumber/formatNumber/formatScaled 无任何生产调用方,
只被自己的测试引用;改为 formatFixed + blankForMissing 显式选项,
既保留了"真零 vs 不可用"的区分能力,也不再留无人使用的导出。测试同步重写。
失效的演示能力
- Blur / DemoModeProvider 恒为 enabled=false,等于永久 no-op:
移除 13 个文件里 50 处 <Blur> 包裹(渲染结果不变)、删除 components/Blur.tsx
与 Shell 中的 Provider,调用方直接渲染原表达式。
未做(刻意)
- src/lib/cn.ts 不引入 tailwind-merge:全仓只有 2 处调用,不值得新增传递依赖。已在文档说明。
架构守护新增 2 条:只有 shared/amap.ts 可加载高德 SDK;
modules/** 不得再出现 book_new / book_append_sheet / writeFile(。
lint / test(137) / build 全绿,可达性仍为 0 未引用文件。
2026-09-11 10:28:32 +08:00
kfluous and HiFox Agent
a177781fe7
feat(energy): integrate self-operated station customers and receipts
...
ci/woodpecker/push/woodpecker Pipeline was canceled
Co-authored-by: HiFox Agent <agents-noreply@hifox.com >
2026-09-05 17:03:15 +08:00
kkfluous
62efef0ab9
feat(energy): rebuild hydrogen BI board and drill-through
ci/woodpecker/push/woodpecker Pipeline was successful
2026-08-20 13:59:03 +08:00
kkfluous
06fe75b4c7
refactor: modularize application domains
2026-08-13 12:03:34 +08:00
kkfluous
bd0627d00f
feat(mileage): add daily operations report
2026-08-12 23:05:07 +08:00
kkfluous
ae4b5d30e7
fix: restore mobile navigation typography
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-13 22:02:49 +08:00
kkfluous
392a36a0ec
feat: add vehicle and hydrogen heatmaps
ci/woodpecker/push/woodpecker Pipeline was successful
2026-07-13 21:44:03 +08:00
lingniu
a558db5795
Polish mobile BI filters and summaries
ci/woodpecker/push/woodpecker Pipeline was successful
2026-06-27 22:43:43 +08:00
lingniu
b0caa5afcb
feat: polish BI dashboards and bump version
ci/woodpecker/push/woodpecker Pipeline was successful
2026-06-27 21:59:33 +08:00
lnljyang
e7ba5315e1
拆分菜单 通过url区分访问
ci/woodpecker/push/woodpecker Pipeline was successful
2026-05-14 17:44:04 +08:00
kkfluous and Claude Opus 4.7
8d861538af
fix(feedback): 第一步选完类型后点「下一步」无反应
...
ci/woodpecker/push/woodpecker Pipeline was successful
next() 漏写了 step===1 且 type 已选的分支,按钮只在「未选」时
拦截,「已选」时进入空函数体直接返回,没有 setStep(2)。
补上 step===1 已选时 setStep(2),行为:
- 直接点卡片:保持原有自动下一步(onClick 里 setStep)
- 选中后用底部「下一步」按钮:现在也能正常推进
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-30 14:37:46 +08:00
kkfluous and Claude Opus 4.7
bdefb878a5
style(feedback): 选类型副标题换成轮转动态提示
...
ci/woodpecker/push/woodpecker Pipeline was successful
step 1 标题下的「选一个最贴近的类型」改成 RotatingFooterHint,
6 条文案 4 秒一轮(含「数字背后还有故事,等下一次上线揭晓」等)。
RotatingFooterHint 兼容自定义对齐:传 className 就完全覆盖
默认 mt-1 + justify-center;不传则保持底部居中(其他模块的用法)。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-30 14:34:21 +08:00
kkfluous and Claude Opus 4.7
1a3d48b2d1
feat(feedback): 反馈 FAB 菜单加「反馈管理」入口,BI-ADMIN-FEEDBACK 角色可见
...
ci/woodpecker/push/woodpecker Pipeline was successful
- shared/auth/roles 新增 FEEDBACK_ADMIN_ROLES = ['BI-ADMIN-FEEDBACK']
+ canManageFeedback() helper(含 FULL_ACCESS_ROLES 兜底)
- FeedbackFab 菜单:在「我的反馈」下方加分割线 + 紫色 ⚙ 图标的「反馈管理」
仅 canManageFeedback 为 true 时渲染,跳到 #/admin/feedback
- 后端守卫:GET /api/feedback/list 与 PATCH /api/feedback/:id 加角色判断
无权限返回 403。/mine /submit /upload 仍对全部登录用户开放。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-30 14:20:45 +08:00
kkfluous and Claude Opus 4.7
c5541fbbf5
style(feedback): 选类型步骤改用 Lucide 图标 + 克制白卡
...
ci/woodpecker/push/woodpecker Pipeline was successful
之前用 emoji + 整卡渐变背景,颜色饱和度高、和系统其他模块的视觉
语言不一致,看起来有点像玩具。
新视觉:
- 替换 emoji 为 Lucide 图标:Lightbulb / Bug / Palette / NotebookPen
与项目其他模块(Truck/Route/Zap)保持一致
- 卡片白底 + 1px 浅边框,hover 阴影;选中态用 ring 替代填色
- 图标放在彩色圆角小容器里(amber/rose/violet/blue),强度更克制
- 标题升级到 13px,副标题统一 11px slate-400 medium
- 入场级联动画 + 微交互(hover y=-1,→ 按钮位移)
文案微调:「想反馈点什么?」+ 副标题「选一个最贴近的类型」
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-30 14:16:26 +08:00
kkfluous and Claude Opus 4.7
90b34b681e
feat(feedback): 移除联系方式步骤,登录态用户身份已知
...
ci/woodpecker/push/woodpecker Pipeline was successful
之前第三步要求填写微信/钉钉等联系方式,但用户已登录,后端已经
记录 user_id / user_name(与水印取的同一份),可以直接通过内部
渠道触达,无需再问。
流程从 4 步收紧为 3 步:
1) 选类型
2) 写内容 + 截图 + 板块
3) 成功页
提交概览页一并删除(信息不变就直接提交,少一次点击)。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-30 14:14:54 +08:00
kkfluous and Claude Opus 4.7
90b1266fe5
fix(feedback): 反馈弹窗禁止背景点击关闭,只能用 X 按钮
...
ci/woodpecker/push/woodpecker Pipeline was successful
之前点击外部遮罩会关闭弹窗,用户填到一半误触会丢失全部已输入内容。
去掉 backdrop 的 onClick={close},只保留右上角 X 按钮关闭路径。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-30 14:08:22 +08:00
kkfluous and Claude Opus 4.7
20ebb16e08
feat(feedback): 截图上传 + 我的反馈历史 + 后台管理页
...
ci/woodpecker/push/woodpecker Pipeline was successful
后端
- 接入阿里云 OSS(ali-oss SDK),bucket=lnh2etest,目录 /dos/feedback/YYYY-MM-DD/
- POST /api/feedback/upload:单图 multipart 上传,限制 5MB,仅 png/jpeg/webp/gif
- bi_user_feedback 增加 screenshots(JSON)、reply_content/reply_user/reply_at、user_id 索引
老表通过 try-catch 自动 ALTER 兼容
- POST /api/feedback/submit:增加 screenshots[] 字段
- GET /api/feedback/mine:当前用户自己的反馈历史
- PATCH /api/feedback/:id:更新状态 + 回复
- GET /api/feedback/list:增加 status 过滤
前端
- FeedbackFab 改为悬浮按钮 + 弹出菜单:「提个建议」/「我的反馈」
- 弹窗 Step 2 增加截图区:点击选择 / 多张 / 直接 Ctrl+V 粘贴
缩略图预览 + 单张移除,最多 6 张,上传中转圈
- FeedbackHistoryDrawer 新组件:底部抽屉展示自己的反馈
含状态徽章(待处理/处理中/已完成/已忽略)、截图缩略图、产品同学回复区
- 新增隐藏后台管理页 /admin/feedback(或 #/admin/feedback)
状态分类计数 + 列表 + 详情弹窗(改状态 + 写回复,状态选项含徽章色)
待处理项有快捷按钮(标记处理中 / 忽略)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-30 14:06:21 +08:00
kkfluous and Claude Opus 4.7
e8f1604c11
feat: 全局反馈系统 + 各模块底部统一动态提示
...
ci/woodpecker/push/woodpecker Pipeline was successful
- 新增 components/RotatingFooterHint:统一文案+蓝色脉冲,4 秒轮换
- 新增 components/FeedbackFab:右下角悬浮按钮(渐变 + 心形信封 + 黄色脉冲点),
点击打开 4 步引导式弹窗
Step 1 选类型(💡 新维度 / 🐛 bug / 🎨 界面 / 📝 其他)
Step 2 描述需求 + 选当前板块(chip)
Step 3 留联系方式(可选)+ 提交概览
Step 4 ❤️ 成功页(弹簧 √ 动画)
顶部 spring 进度条,底部上一步/下一步,下拉手柄,背景点击或 X 关闭
- 后端 routes/feedback:bi_user_feedback 表(自动建表,含 status 字段)
POST /api/feedback/submit + GET /api/feedback/list
- Shell 全局挂载 FeedbackFab,自动从 hash 检测当前模块
- 各模块底部追加 RotatingFooterHint:
AssetsModule / MileageModule / SchedulingModule / EleImportPage
HydrogenOverview / HydrogenDaily / ElectricOverview / ElectricDaily
(HydrogenOverview 旧的内嵌实现已替换为共享组件)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-30 13:50:39 +08:00
kkfluous and Claude Opus 4.7
09b9862f1f
feat(energy): add module shell, register in nav
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-28 11:15:55 +08:00
kkfluous and Claude Opus 4.6
db5ca2e686
feat(scheduling): wire up scheduling module in app navigation
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-16 20:26:53 +08:00
kkfluous and Claude Opus 4.6
188d2b105f
fix: 关闭全局演示模糊模式,恢复车牌等敏感字段正常显示,版本号 1.1.5
...
ci/woodpecker/push/woodpecker Pipeline was successful
Shell.tsx 的 DemoModeProvider 之前设为 enabled={true},Blur 组件包裹的
车牌/客户名/经理名全部被 blur(5px) 盖住。改为 false 恢复真实显示。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-15 18:59:58 +08:00
kkfluous and Claude Opus 4.6
f3b795e8a9
fix: 小程序/webview 内需点两次返回才能退出的问题,版本号 1.1.3
...
ci/woodpecker/push/woodpecker Pipeline was successful
Shell 首次挂载时用 location.hash= 同步模块到 URL hash,会 push 一条多余
的 history 记录;webview 里第一次返回只是回到 hash 为空的同一页面没有
视觉变化,得再按一次才能真正退出。
改为 history.replaceState 更新 hash,切换 tab 也走 replace,整个应用
只占用一个 history 记录,一次返回即可退出。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-15 17:13:01 +08:00
kkfluous and Claude Opus 4.6
71ff459111
fix: 补提交缺失的 Blur 组件,修复 CI 打包找不到模块,版本号 1.1.2
...
ci/woodpecker/push/woodpecker Pipeline was successful
AssetsModule 等引用 src/components/Blur 但该文件未纳入版本库导致 CI
rollup 报 Could not resolve "../../components/Blur"。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-15 16:53:57 +08:00
kkfluous and Claude Opus 4.6
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 and Claude Opus 4.6
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 and Claude Opus 4.6
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 and Claude Opus 4.6
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 and Claude Opus 4.6
2a10c5ae31
fix: 修复统计报表移动端适屏问题
...
- Shell main 添加 min-w-0 overflow-x-hidden 防止 flex 子元素溢出
- trend API 排除当天数据 (stat_date < CURDATE()),只返回前7天
- StatisticsView 移除移动端 overflow-hidden,改为仅 landscape 模式
- 图表和列表卡片在移动端正确显示全宽内容
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-01 21:36:25 +08:00
kkfluous and Claude Sonnet 4.6
bb3dbde1c7
feat: 创建 Shell 布局组件(侧边栏 + 底部导航)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-01 19:19:26 +08:00
kkfluous and Claude Sonnet 4.6
de0320bfcd
refactor: 抽取 SearchSelect 为公共组件
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-01 19:18:16 +08:00