chengkai3
|
fac00c0536
|
fix:[FL-218][角色管理列表接口返回 500]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 16:13:47 +08:00 |
|
chengkai3
|
93b580649a
|
fix:[FL-216][菜单管理页面暗黑主题适配]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 15:48:11 +08:00 |
|
chengkai3
|
0f62776cbd
|
[feat]:[FL-214][fl-analysis 防雷计算页面UI交互重构]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 15:25:29 +08:00 |
|
chengkai3
|
57fbdbf25a
|
[fix]:[FL-156][任务监控移动端无限滚动对齐]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 15:10:03 +08:00 |
|
chengkai3
|
7022d7f266
|
[fix]:[FL-213][修复高程文件记录服务导入失败]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 14:34:38 +08:00 |
|
chengkai3
|
bf8b77af80
|
[fix]:[FL-152][对齐角色分页交互细节]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 12:10:57 +08:00 |
|
chengkai3
|
58d6efe6fe
|
[fix]:[FL-212][修复高程文件记录页构建类型错误]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 12:00:23 +08:00 |
|
chengkai3
|
faa47e26cd
|
[fix]:[FL-153][系统参数状态交互对齐]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 11:20:24 +08:00 |
|
chengkai3
|
f8eef853a7
|
[fix]:[FL-151][补齐菜单管理页一致性细节]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 11:15:44 +08:00 |
|
chengkai3
|
260e6598ef
|
[fix]:[FL-160][对齐系统日志筛选交互]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 11:12:47 +08:00 |
|
chengkai3
|
3d8013da57
|
[fix]:[FL-156][任务监控页面分页细节对齐]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 11:11:26 +08:00 |
|
chengkai3
|
64dbe4567e
|
[fix]:[FL-157][对齐Worker移动卡片间距]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 11:08:36 +08:00 |
|
chengkai3
|
86870f4610
|
feat: 高程管理重构 - 从数据集中心到文件中心
## 重构目标
将高程数据管理从"数据集中心"模式重构为"文件中心"模式,去掉 ElevationDataset 概念,
扁平化为 ElevationFileRecord,每条记录对应一个高程文件。
## 主要变更
### 数据库层
- 新增 `elevation_file_record` 表,合并原 dataset 核心字段
- 更新 `elevation_apply_job` 和 `elevation_data_import_job`,添加 `file_record_id` 字段
- 创建数据迁移脚本 `001_add_elevation_file_record.sql`
- 保留旧表用于向后兼容
### 后端 API
- 新增 `/api/v1/elevation/records` 路由组(推荐使用)
- GET /records - 文件记录列表
- POST /records - 上传文件并创建记录(上传即创建)
- GET /records/{id} - 获取记录详情
- PATCH /records/{id} - 更新记录
- DELETE /records/{id} - 删除记录
- POST /records/{id}/analyze - 触发分析
- POST /records/{id}/terrain/build - 生成地形瓦片
- GET /records/{id}/preview - 预览数据
- 保留 `/api/v1/elevation/datasets` 路由用于向后兼容
- Apply API 支持 `file_record_id` 和 `dataset_id` 双 ID
### 后端代码
- 新增 `elevation_file_record_service.py` (601 行),包含完整 CRUD 和操作逻辑
- 新增模型 `ElevationFileRecord`
- 新增 Schema:FileRecordSummary, CreateRequest, UpdateRequest 等
- 新增 Celery 任务:
- `analyze_elevation_file_record_job`
- `build_elevation_file_record_terrain_job`
- 新增执行函数:
- `execute_file_record_analysis_job`
- `execute_file_record_terrain_build_job`
- 更新模型字段,支持双 ID 关联
### 前端
- 新增简化页面 `/admin/elevation-records` (542 行)
- 从原 1760 行简化到 542 行
- 上传即创建,无需先建数据集
- 每行直接对应一个文件
- 操作更直观
### 文档
- 新增 `REFACTOR_SUMMARY.md` 完整重构说明
- 新增 `api/migrations/README.md` 迁移指南
## 用户体验改进
旧流程(4步):
1. 创建数据集(填编码+名称)
2. 导入文件到数据集
3. 分析数据集
4. 预览/地形/回填
新流程(2步):
1. 上传文件(填来源+分辨率)→ 自动创建+分析
2. 预览/地形/回填
## 向后兼容
- 保留旧表和旧 API,新旧系统可并存
- Apply Job 同时支持新旧 ID
- 提供平滑迁移路径
## 技术指标
- 代码简化:前端从 1760 行 → 542 行(-69%)
- 概念简化:去除"数据集"中间层
- API 数量:新增 8 个文件记录端点
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-20 09:01:16 +08:00 |
|
chengkai3
|
09835543a2
|
[feat]:[FL-159][杆塔模型管理页面一致性优化]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 08:38:07 +08:00 |
|
chengkai3
|
495c73cc9e
|
[feat]:[FL-160][系统日志页面一致性优化]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 08:17:14 +08:00 |
|
chengkai3
|
c9b2b332fd
|
[fix]:[FL-152][对齐角色管理弹窗与分页细节]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 08:12:35 +08:00 |
|
chengkai3
|
b2dd07d8e8
|
feat:[FL-158][ATP模型管理页面一致性优化]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 08:04:37 +08:00 |
|
chengkai3
|
90309ee0e4
|
[feat]:[FL-156][任务监控页面一致性优化]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 07:59:23 +08:00 |
|
chengkai3
|
7e4a1ff5e4
|
[feat]:[FL-157][Worker监控页面一致性优化]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 07:53:19 +08:00 |
|
chengkai3
|
21b23c1cce
|
fix:[FL-42][统一系统日志错误反馈]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 07:30:40 +08:00 |
|
chengkai3
|
83956f2587
|
[fix]:[FL-155][菜单管理页面最后3项细节优化]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 07:15:48 +08:00 |
|
chengkai3
|
a9a2d32fd5
|
[feat]:[FL-154][系统消息页面一致性优化]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 07:00:47 +08:00 |
|
chengkai3
|
012b62fab9
|
[feat]:[FL-153][系统参数管理页面一致性优化]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 06:50:53 +08:00 |
|
chengkai3
|
6989775abe
|
[fix]:[FL-151][菜单管理页React Query架构对齐]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 04:13:56 +08:00 |
|
chengkai3
|
06c23e5ff0
|
[fix]:[FL-152][补齐角色管理页面一致性细节]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 02:17:21 +08:00 |
|
chengkai3
|
2c1a4cd361
|
[feat]:[FL-152][角色管理页面一致性优化]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 01:04:52 +08:00 |
|
chengkai3
|
763a7814e1
|
[fix]:[FL-151][菜单管理页面一致性优化]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 00:52:07 +08:00 |
|
chengkai3
|
fcc8dfc01e
|
feat:[FL-122][杆塔模型管理页面对齐用户管理页面风格样式交互]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 23:27:00 +08:00 |
|
chengkai3
|
4834a567a8
|
[feat]:[FL-120][角色管理页面对齐用户管理分页交互]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 23:26:20 +08:00 |
|
chengkai3
|
455b7c54bb
|
[feat]:[FL-118][菜单管理页对齐用户管理页规范]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 23:18:45 +08:00 |
|
chengkai3
|
22ef1f0055
|
[fix]:[FL-125][系统参数管理页面继续对齐用户管理页面交互与移动端样式]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 23:13:00 +08:00 |
|
chengkai3
|
0a776c1cf8
|
fix:[FL-119][菜单管理状态切换接口统一]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 23:06:15 +08:00 |
|
chengkai3
|
8084561d10
|
[fix]:[FL-210][修复系统消息菜单类型错误]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 22:41:19 +08:00 |
|
chengkai3
|
1309251017
|
[fix]:[FL-89][杆塔模型管理页面:统一初始化加载状态展示]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 17:15:32 +08:00 |
|
chengkai3
|
cb87f3832b
|
[feat]:[FL-108][系统日志页面:实现关键词防抖搜索,对齐用户管理页面交互]
实现系统日志页面的防抖搜索功能,提升交互体验与用户管理页面保持一致
改动内容:
- 添加 actionDebounceTimeoutRef 和 userIdDebounceTimeoutRef 用于防抖管理
- 新增 handleActionChange 和 handleUserIdChange 处理器,实现500ms防抖逻辑
- 输入框变化时自动重置 offset、cardViewPage 和 allLoadedLogs
- 添加 useEffect 清理函数,组件卸载时清理 timeout
- 更新表格和卡片视图的 Input onChange 使用新的防抖处理器
- 保留"查询"和"重置筛选"按钮作为快捷操作
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 17:14:53 +08:00 |
|
chengkai3
|
7772ac163c
|
[feat]:[FL-99][ATP模型管理页面搜索表单布局与交互优化]
- 实现实时搜索(debounce 500ms),移除搜索和重置按钮
- 添加 keywordDebounceTimeoutRef 管理防抖定时器
- 添加 handleKeywordChange 处理输入变化并触发防抖
- 添加 cleanup effect 防止内存泄漏
- 与用户管理页面交互模式保持一致
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 17:13:34 +08:00 |
|
chengkai3
|
58bb284a09
|
[feat]:[FL-98][杆塔模型管理页面:实现卡片视图的无限滚动加载]
- 添加 Spin 组件导入用于加载提示
- 新增状态变量: cardViewPage, allLoadedModels, isLoadingMore
- 添加 pageCardRef 引用到主 Card 组件
- 实现累积加载逻辑: 监听数据变化并累积已加载模型
- 实现滚动监听: 滚动到底部时自动加载下一页
- 卡片视图使用 allLoadedModels 替代 pagedItems
- 添加加载状态指示器: 加载更多时显示 Spin,全部加载完成时显示提示
- 移除卡片视图下的 Pagination 组件,仅在列表视图显示
- 添加筛选条件变化时重置卡片视图状态的逻辑
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 17:13:10 +08:00 |
|
chengkai3
|
e60b303ba9
|
[feat]:[FL-93][菜单管理页面添加分页状态管理]
- 新增 pagination 状态管理当前页和每页条数
- loadMenus 函数添加 limit 和 offset 参数到 API 请求
- 更新表格分页配置使用状态值并添加 onChange 回调
- 筛选条件变化时重置分页到第一页
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 17:12:43 +08:00 |
|
chengkai3
|
2b1aef77ab
|
feat:[FL-95][角色管理页面对齐用户管理页面风格样式交互]
主要改动:
1. 数据管理:迁移到 React Query(useQuery/useMutation),替换手动的 useState + fetchWithAuth
2. 错误和成功提示:添加 success 状态,useToastFeedback 同时处理成功和错误消息
3. 卡片视图:实现无限滚动加载,替换分页模式
4. 表单布局:卡片视图时使用 vertical 布局,去掉"关键词"标签和"搜索"按钮
5. 关键词搜索:实现 500ms 防抖自动搜索,无需手动点击
6. 卡片样式:添加 admin-roles-role-card 和 admin-roles-role-card-field CSS 类
7. Modal 标题:包含角色名称和编码,如"编辑角色:运营管理员(admin.operator)"
8. 按钮样式:与用户管理页面保持一致
技术细节:
- 使用 @tanstack/react-query 管理数据状态和缓存
- 卡片视图累积已加载数据,滚动到底部自动加载更多
- 防抖搜索避免频繁请求
- 统一的成功/错误反馈机制
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 17:12:15 +08:00 |
|
chengkai3
|
1d180f5040
|
[fix]:[FL-101][系统参数管理页面对齐用户管理页面风格样式交互]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 17:11:52 +08:00 |
|
chengkai3
|
ee62b12393
|
feat:[FL-94][ATP模型管理页面添加Dropdown组件支持]
- 添加 Dropdown、MenuProps 和 MoreOutlined 导入
- 更新操作列宽度从 200px 到 240px
- 引入 rowBusy 状态管理
- 添加空的 moreMenuItems 菜单项数组(预留扩展)
- 操作列和卡片视图同步添加条件渲染的 Dropdown 按钮
- 对齐用户管理页面的交互模式
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 17:10:08 +08:00 |
|
chengkai3
|
f3843df6c5
|
[feat]:[FL-82][菜单管理页面添加防抖定时器清理逻辑]
在组件卸载时清理防抖定时器,防止内存泄漏。
改动说明:
- 添加 useEffect 清理函数,在组件卸载时清除 keywordDebounceTimeoutRef
备注:
菜单管理页面的防抖搜索功能已在之前的提交中实现(FL-85),本次补充缺失的清理逻辑,使其与用户管理页面完全一致。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 17:09:08 +08:00 |
|
chengkai3
|
c16b1d9fc1
|
[feat]:[FL-85][菜单管理页面卡片视图添加无限滚动加载功能]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 17:07:17 +08:00 |
|
chengkai3
|
810674b389
|
fix:[FL-87][杆塔模型管理页面:统一未授权页面展示样式]
将杆塔模型管理页面的未授权和未登录展示从 Ant Design Card 组件改为语义化 HTML 结构,与用户管理页面保持一致。
- 替换 Card/Space/Button/Typography 组件为 <main> 容器和原生 HTML 元素
- 使用与用户管理页面完全相同的 CSS 类和布局结构
- 保持居中布局和响应式效果一致
- 提升页面状态展示的用户体验统一性
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 17:06:54 +08:00 |
|
chengkai3
|
18eb053ff1
|
fix:[FL-81][菜单管理页面卡片视图搜索表单布局不符合用户管理页面规范]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 17:06:20 +08:00 |
|
chengkai3
|
c48a1f9bcb
|
fix:[FL-83][杆塔模型管理页面:统一页面容器结构]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 17:06:07 +08:00 |
|
chengkai3
|
81e56893da
|
fix:[FL-84][ATP模型管理页面缺少Modal组件导入]
在 web/src/app/admin/atp-models/page.tsx 的 antd 导入中添加 Modal 组件。
变更:
- 在第13行添加 Modal 导入,保持与 users/page.tsx 一致的导入风格
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 17:05:40 +08:00 |
|
chengkai3
|
aeabdab275
|
[fix]:[FL-86][ATP模型管理页面缺少Empty组件导入]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 17:05:05 +08:00 |
|
chengkai3
|
3a03cf54ed
|
fix:[FL-88][菜单管理页面卡片删除按钮引用未定义函数导致运行时错误]
- 修复删除按钮 onClick 引用未定义的 requestDeleteMenu 函数
- 改为使用 Modal.confirm 进行二次确认,与用户管理页面保持一致
- 移除 loading 属性,确认对话框内的按钮会显示 loading
- 确认后调用正确的 removeMenu 函数
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 17:03:55 +08:00 |
|
chengkai3
|
7614f134b5
|
feat:[FL-70][ATP模型管理页面:添加移动端响应式支持(卡片视图)]
- 引入useMobileDetection hook检测移动设备
- 实现卡片布局,包含模型名称、编码、业务维度、版本信息和操作按钮
- 添加视图切换逻辑,移动端自动使用卡片视图
- 新增CSS样式支持卡片视图和暗色模式
- 与用户管理页面保持一致的移动端体验
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 16:45:51 +08:00 |
|