Skip to content

Commit b2fefbf

Browse files
committed
v11.2.0: Advanced filtering, selection statistics, and AI/security fixes
1 parent 51cbcc6 commit b2fefbf

9 files changed

Lines changed: 455 additions & 314 deletions

File tree

CHANGELOG.md

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,23 @@
11
# 火车出行记录管理系统 - 更新日志
22

3+
## 版本 11.2 (2026-03-24) - 数据筛选与多选统计增强
4+
5+
### 🎯 重大更新
6+
- **表格首行插入** - 修改了数据录入逻辑,新增行默认插入在表格最上方,契合“最新优先”的展示逻辑
7+
- **多维度检索系统** - 在管理页面引入高级筛选条,支持年份、车次、型号、站点、城市等跨字段模糊搜索
8+
- **勾选统计模式** - 表格新增多选框(支持一键全选),勾选后实时汇总显示选中项的里程、费用与时长
9+
10+
### ✨ 新增功能
11+
- **统计悬浮框** - 选中行时动态弹出统计条,清空选择或退出模式后自动隐藏
12+
- **配置模板文件** - 提供了 `js/config.example.js` 示例配置,明确了 Git 忽略与本地私密配置的最佳实践
13+
14+
### 🔧 改进与修复
15+
- **AI 问答请求修复** - 修正了 `config.js` 中三方 AI 接口地址引用的变量名错误,恢复问答功能
16+
- **搜索防冲突优化** - 修复了全选复选框点击事件冒泡导致触发列表排序的问题
17+
- **清理测试文件** - 移除了项目中残留的 `test_ai.js` 等临时调试脚本
18+
19+
---
20+
321
## 版本 11.1 (2026-03-04) - 回放性能优化与数据同步修复
422

523
### 🎯 重大更新
@@ -88,5 +106,5 @@ js/
88106

89107
---
90108

91-
**最新版本**: v11.1
92-
**更新日期**: 2026-03-04
109+
**最新版本**: v11.2
110+
**更新日期**: 2026-03-24

README.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 🚆✈️ Train & Flight Records Manager (v11.1.0)
1+
# 🚆✈️ Train & Flight Records Manager (v11.2.0)
22

33
一个功能强大的离线网页应用,用于记录、管理、可视化和分析您的火车和飞机出行历史。
44

@@ -273,15 +273,14 @@ npx serve
273273
-**API Key 本地化**:所有 API 密钥仅存储在本地
274274
-**云同步可选**:是否使用云端同步完全由您决定
275275

276-
## 🆕 最新更新 (v11.1.0)
276+
## 🆕 最新更新 (v11.2.0)
277277

278-
### 🚀 回放性能优化与数据同步修复
279-
-**动画回放性能极致优化** - 重写核心绘制引擎(O(N²) → O(1)),长路线回放丝般顺滑
280-
- 🔄 **动态播放速度** - 短途快速走完、长途视觉耗时更真实,配合速度滑块自由调节
281-
- 🎯 **智能防抖跟随** - 画面跟随增加 300ms 节流,运镜更平滑不抖动
282-
- 🐛 **修复模式切换数据丢失** - 火车/飞机切换时统计、图表、地图数据完整同步
283-
- 🐛 **修复跨页导航统计丢失** - 引入智能等待机制解决 Chart.js 竞态条件
284-
- 🐛 **修复 UI 控件层级** - 动画回放弹窗不再被主地图控件穿透
278+
### 🔍 数据筛选与多选统计增强
279+
-**表单交互逻辑优化** - 新增记录现在默认插入到表格首行,优化录入体验
280+
- 🔍 **多字段高级筛选** - 在管理页面新增年份、车次、型号、起终点站、起终点城市等多维度动态筛选功能
281+
- 📊 **选中行数据统计** - 引入“多选统计”模式,可勾选多行记录实时汇总计算总里程、总花费与总时长
282+
- 🛡️ **安全审计与配置分流** - 完善 `.gitignore` 与 API 配置逻辑,新增 `config.example.js` 模板,支持本地私密配置与 GitHub 示例分流
283+
- 🤖 **AI 问答修复** - 修复了 Gemini/三方 AI 在特定配置下请求地址失效的 Bug
285284

286285
### 🖱️ 交互体验与 UI 增强 (v11.0.0)
287286
-**全局统一 ESC 关闭** - 全站所有弹窗、遮罩层、菜单均支持 ESC 键一键关闭

app.html

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -689,10 +689,30 @@ <h5 style="margin: 0 0 8px 0; font-size: 12px; color: var(--text-color);">🗺
689689
</div>
690690
</div>
691691

692+
<div style="margin: 0 0 8px 0; display: flex; align-items: center; gap: 15px; flex-wrap: wrap;">
693+
<button id="addRowBtn"
694+
style="padding:6px 10px;font-size:12px;border:1px solid var(--border-color);background:var(--btn-bg);color:var(--text-color);border-radius:4px;cursor:pointer;flex-shrink:0;">
695+
新增一行</button>
696+
697+
<div style="display: flex; gap: 8px; align-items: center; font-size: 12px; flex-wrap: wrap;">
698+
<span style="color:var(--text-color); font-weight:600;">筛选:</span>
699+
<input type="text" id="filterYear2" placeholder="年份" style="padding:4px 6px; font-size:11px; border:1px solid var(--border-color); background:var(--input-bg); color:var(--text-color); border-radius:4px; width:60px;">
700+
<input type="text" id="filterTrainNo" placeholder="车次/航班" style="padding:4px 6px; font-size:11px; border:1px solid var(--border-color); background:var(--input-bg); color:var(--text-color); border-radius:4px; width:70px;">
701+
<input type="text" id="filterTrainType" placeholder="车型号/航司" style="padding:4px 6px; font-size:11px; border:1px solid var(--border-color); background:var(--input-bg); color:var(--text-color); border-radius:4px; width:80px;">
702+
<input type="text" id="filterStartStation" placeholder="起点站" style="padding:4px 6px; font-size:11px; border:1px solid var(--border-color); background:var(--input-bg); color:var(--text-color); border-radius:4px; width:80px;">
703+
<input type="text" id="filterStartCity" placeholder="起点城市" style="padding:4px 6px; font-size:11px; border:1px solid var(--border-color); background:var(--input-bg); color:var(--text-color); border-radius:4px; width:80px;">
704+
<input type="text" id="filterEndStation" placeholder="终点站" style="padding:4px 6px; font-size:11px; border:1px solid var(--border-color); background:var(--input-bg); color:var(--text-color); border-radius:4px; width:80px;">
705+
<input type="text" id="filterEndCity" placeholder="终点城市" style="padding:4px 6px; font-size:11px; border:1px solid var(--border-color); background:var(--input-bg); color:var(--text-color); border-radius:4px; width:80px;">
706+
<button id="clearTableFilterBtn" style="padding:4px 8px; font-size:11px; background:var(--btn-bg); color:var(--text-color); border:1px solid var(--border-color); border-radius:4px; cursor:pointer;">清空</button>
707+
<button id="toggleSelectionBtn" style="padding:4px 8px; font-size:11px; background:var(--primary-color, #0d6efd); color:#fff; border:none; border-radius:4px; cursor:pointer; margin-left:10px;">多选统计</button>
708+
</div>
709+
</div>
710+
<div id="selectionStats" style="display: none; margin-bottom: 8px; padding: 6px 10px; background: rgba(13, 110, 253, 0.1); border-left: 3px solid #0d6efd; border-radius: 4px; font-size: 12px; color: var(--text-color);">
711+
</div>
692712
<table id="historyTable">
693713
<thead>
694714
<tr>
695-
<th class="sortable" data-field="datetime">#</th>
715+
<th class="sortable" data-field="datetime"><input type="checkbox" id="selectAllRowsCb" style="margin-right:4px;">#</th>
696716
<th class="sortable" data-field="date">日期</th>
697717
<th class="sortable" data-field="time">时间</th>
698718
<th class="sortable" data-field="duration">时长</th>
@@ -714,11 +734,6 @@ <h5 style="margin: 0 0 8px 0; font-size: 12px; color: var(--text-color);">🗺
714734
</thead>
715735
<tbody></tbody>
716736
</table>
717-
<div style="margin: 8px 0 0;">
718-
<button id="addRowBtn"
719-
style="padding:6px 10px;font-size:12px;border:1px solid var(--border-color);background:var(--btn-bg);color:var(--text-color);border-radius:4px;cursor:pointer;">
720-
新增一行</button>
721-
</div>
722737
</div>
723738

724739

css/app.css

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1522,4 +1522,9 @@ td.highlight-cell {
15221522
.context-menu .menu-item:hover {
15231523
background: rgba(13, 110, 253, 0.1);
15241524
color: var(--primary-color);
1525-
}
1525+
}
1526+
/* Selection Mode Checkboxes */
1527+
#historyTable:not(.show-checkboxes) .row-checkbox,
1528+
#historyTable:not(.show-checkboxes) #selectAllRowsCb {
1529+
display: none !important;
1530+
}

0 commit comments

Comments
 (0)