Commit Graph

607 Commits

Author SHA1 Message Date
chengkai3 a8307bfd2d fix: change FLOWER_API_BASE_URL to use container hostname fquiz-flower instead of compose service name flower 2026-07-02 09:55:40 +08:00
chengkai3 b39ce8c2c0 fix: add http://223.109.142.84:3001 to API_CORS_ORIGINS for direct frontend access 2026-07-02 08:42:22 +08:00
chengkai3 bd8a764b35 fix: CORS 修复 - 允许 223.109.142.84:8000 直连请求 + nginx sub_filter
- .env.prod: API_CORS_ORIGINS 增加 http://223.109.142.84:8000
  (前端 JS 中硬编码了 NEXT_PUBLIC_API_BASE_URL=http://223.109.142.84:8000,
   请求直接打到容器的 8000 端口绕过 nginx,需在 CORS 层放行)
- 84 nginx: /_next/static/ location 增加 sub_filter 规则将
  http://223.109.142.84:8000 重写为 https://www.quizck.cn(长期方案)
2026-07-01 23:13:54 +08:00
chengkai3 4781615a01 fix: 修复 CORS 配置 - 将占位域名改为实际域名
- deploy/pro-deploy/.env.prod: API_CORS_ORIGINS
  从 https://quiz.example.com 改为
  https://www.quizck.cn,https://quizck.cn,http://localhost:3000,http://127.0.0.1:3000
2026-07-01 22:30:41 +08:00
chengkai3 ea23863e4d fix: 将 tpbig.exe 打包到 Docker 镜像中
- 新增 api/static/wine/ATP/tpbig.exe (1.3MB):从 atp-models 工程引入
- 新增 api/static/wine/atp/tpbig.exe (1.3MB):从 atp-models 工程引入
- 新增 api/docker-entrypoint.sh:容器启动时自动将 tpbig.exe 复制到
  wine_allowed_root(/app/data/wine/) 的对应路径下,兼容 bind mount
- 更新 api/Dockerfile:COPY static/ → /app/static/,设置 ENTRYPOINT
  为 docker-entrypoint.sh

原理:Docker Compose 将 ./data/app 以 bind mount 挂载到 /app/data,
镜像中 /app/data 下的内容会被隐藏。通过 entrypoint 在启动时检查并
复制 tpbig.exe 到 bind mount 目录中,确保无论 volume 是否为空都能
正确初始化。
2026-07-01 21:44:19 +08:00
chengkai3 c9247778f7 [fix]: 恢复缺失的 deploy/local/compose.yml 和 nginx.conf 文件
playwright E2E 测试发现:
1. compose.yml 和 nginx.conf 从 deploy/local/ 目录被意外删除
2. Docker 项目 'local' 的配置文件丢失,容器重启后无法重建
3. 添加 deploy/local/data/ 到 .gitignore 防止 Docker 运行时数据被提交

Playwright 测试验证结果:
- /fl/login 登录页加载正常 (HTTP 200)
- admin/admin 登录成功,跳转到后台页面
- 无 JS 控制台错误
- 静态资源(CSS/favicon)加载正常
- API /health 健康检查正常
2026-06-30 16:35:45 +08:00
Admin 5c60fd5c78 [chore]: 清理测试文件 2026-06-29 14:34:43 +08:00
Admin c5acf74504 Merge branch 'dev' of ssh://223.109.142.84:8022/Admin/fquiz into dev 2026-06-29 14:33:17 +08:00
Admin 6e4a1d6c47 [test]: 测试内网 Git 仓库提交 14:32:08 2026-06-29 14:32:08 +08:00
chengkai3 bc5424794d [chore]: 删除 GitHub Actions 工作流配置(仓库已迁移到 Gitea) 2026-06-29 14:05:00 +08:00
chengkai3 bd969305aa [chore]: 测试 Gitea 远程仓库提交流程(README 小改)
fquiz 镜像构建与部署 / build-and-push (push) Has been cancelled
fquiz 镜像构建与部署 / deploy (push) Has been cancelled
2026-06-29 13:45:47 +08:00
chengkai3 cfc348f457 [chore]:[FL-xxx] 统一 REDIS_PASSWORD 为 Cp990803,对齐 .env 和 .env.prod
fquiz 镜像构建与部署 / build-and-push (push) Has been cancelled
fquiz 镜像构建与部署 / deploy (push) Has been cancelled
2026-06-28 22:59:54 +08:00
chengkai3 febf8b6c67 [fix]:[FL-226][ATP模型上传时去掉最外层目录]
修改上传逻辑,在打包ZIP时自动去掉选中文件夹的最外层目录名,
只保留里面的文件和子目录结构。

示例:
- 选择文件夹:/my-model/subdir/file.txt
- 之前上传后:my-model/subdir/file.txt
- 现在上传后:subdir/file.txt

实现细节:
- 解析webkitRelativePath,按/分割路径
- 使用slice(1)去掉第一个路径段(最外层目录名)
- 重新拼接剩余路径段

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 22:43:46 +08:00
chengkai3 75316e788e [fix]:[FL-226][ATP模型上传支持目录]
恢复ATP模型上传时的目录选择功能,同时保持去掉提示信息的改动。

修改内容:
- 恢复Upload组件的directory和multiple属性,允许用户选择文件夹
- 将按钮文本从"选择文件"改回"选择文件夹"
- 恢复ZIP打包逻辑,将选中的文件夹内容打包成ZIP后上传
- 修复beforeUpload回调,使用prev => [...prev, file]累加文件而不是覆盖

技术细节:
后端upload_asset_files函数已支持ZIP文件自动解压(检测.zip扩展名),
因此前端需要将目录文件打包成ZIP上传,以保留目录结构。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 22:13:10 +08:00
chengkai3 8bc7201783 [fix]:[FL-216][ATP模型管理: 去掉版本概念,上传文件直接展示]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 20:34:46 +08:00
chengkai3 18ed6ede30 [fix]:[FL-216][ATP模型管理: 去掉版本概念,上传文件直接展示]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 20:22:27 +08:00
chengkai3 2b030f9b21 [chore]:[FL-xxx] 将 deploy/pro-deploy/.env 加入 .gitignore,避免 git pull 覆盖线上配置 2026-06-28 19:12:48 +08:00
chengkai3 b80ad69545 [feat]:[FL-xxx][Redis 密码认证] 补充 deploy/pro-deploy/.env 的 REDIS_PASSWORD 变量,修复误删的 MINIO_API_PORT 2026-06-28 19:08:59 +08:00
chengkai3 08ba3e19d3 [fix]:[FL-215][ATP模型管理去掉版本概念:上传文件直接用于展示]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 18:47:35 +08:00
chengkai3 54384cb829 [feat]:[FL-222][引入更多AntDesign图标(至少50个)覆盖菜单管理配置需求]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 18:23:53 +08:00
chengkai3 b36024a98e [chore]:[FL-220][更新package-lock.json]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 18:22:24 +08:00
chengkai3 192fc29709 [feat]:[FL-220][引入更多AntDesign图标(70+),覆盖系统业务场景]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 18:22:24 +08:00
chengkai3 468c34b1f0 [fix]:[FL-225][修复AI问答页面用户消息输入框不兼容暗黑主题]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 18:20:43 +08:00
chengkai3 aa4c9928f1 [fix]:[FL-223][维度管理页面操作列宽度调整]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 18:11:18 +08:00
chengkai3 a0abbe16da [feat]:[FL-xxx][Redis 添加密码认证] 新增 REDIS_PASSWORD 环境变量,更新所有服务 Redis 连接 URL 2026-06-28 18:10:33 +08:00
chengkai3 1a997817ed [feat]:[FL-224][优化AI问答页面:左下角按钮改为文案,左上角增加新建会话加号按钮]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 18:09:38 +08:00
chengkai3 f1688ae560 [feat]:[FL-219]引入50+个AntDesign图标供菜单配置使用
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 18:07:13 +08:00
chengkai3 d23fcdcd05 [fix]:[FL-221][维度管理页面操作列太窄导致换行]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 18:01:27 +08:00
chengkai3 9ad385ec38 [feat]:[FL-218][操作文档展示页面样式优化]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 17:55:05 +08:00
chengkai3 9580d57b6b [fix]:[FL-217][定时任务管理页面优化]去掉新建任务,编辑只允许改状态和频率
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 17:28:15 +08:00
chengkai3 d69c449821 [feat]:[FL-214][任务监控页面改造]
改动内容:
1. 移除生成时间、执行节点、在线、离线、任务统计信息的展示
2. 移除自动刷新按钮和自动刷新功能
3. 过滤"到期定时任务派发"任务,不在页面上展示
4. 移除监控分组、接收时间、位置参数、关键字参数、异常信息列
5. 将"查看日志"按钮重命名为"日志",增加"详情"按钮(查看任务参数),增加"异常"按钮(查看异常日志)
6. 同步更新移动端卡片视图

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 16:06:18 +08:00
chengkai3 e0d357eb52 fix:[FL-207][避雷器组合下直接显示所有模型文件]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 15:54:11 +08:00
chengkai3 cc988abdac feat:[FL-212][任务监控页面支持查看执行日志]
- 后端添加任务日志存储和查询API
  - 新增 /api/v1/admin/task-logs 端点支持上传、获取和列出任务日志
  - 日志存储到MinIO,路径格式: logs/YYYY/MM/DD/{task_id}.log
  - 新增 task_log_service 处理MinIO存储交互
  - 新增 task_log schema 定义API请求响应格式

- 前端任务监控页面添加查看日志功能
  - 在任务表格和卡片视图中添加"查看日志"按钮
  - 点击按钮打开模态框显示任务执行日志
  - 支持桌面端表格和移动端卡片两种视图

- 新增单元测试验证日志路径生成和错误处理

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 15:31:05 +08:00
chengkai3 f210c029b6 fix:[FL-207][恢复避雷器组合层级并支持模型文件下钻]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 15:30:39 +08:00
chengkai3 0820f27f5d fix:[FL-207][场景下钻后直接展示模型列表]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 15:14:09 +08:00
chengkai3 cbd5718669 fix:[FL-207][文件视图改为列表样式]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:55:31 +08:00
chengkai3 2fccb89e49 [feat]:[FL-209][新建维度时维度类型改为下拉选择]
将新建维度表单中的维度类型字段从文本输入框改为下拉选择框,提升用户体验。

主要修改:
1. 将维度类型字段从 Input 改为 Select 组件
2. 使用 mode="tags" 支持选择现有类型或输入新类型
3. 支持搜索和清空功能
4. 修改 CreateDimensionValues 类型定义,支持字符串或数组
5. 修改 handleCreateDimension 函数,处理 tags 模式返回的数组

用户体验优化:
- 可以从现有维度类型中快速选择
- 支持搜索过滤
- 也可以输入新的维度类型
- 避免输入错误或不一致的类型名称

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:54:14 +08:00
chengkai3 dd978aa973 [feat]:[FL-209][维度管理页面添加按维度类型排序]
在维度管理页面的查询接口中添加排序参数,按维度类型升序排序。

主要修改:
- 在 dimensionsQueryParams 中添加 sort_by=dimension_type 参数
- 添加 sort_order=asc 参数,实现升序排序
- 确保查询结果按维度类型有序展示

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:49:18 +08:00
chengkai3 46a77c0dcc [fix]:[FL-211][文件管理页面的按钮样式跟系统不符]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:47:34 +08:00
chengkai3 6c1cead3d9 fix:[FL-207][修改为文件视图模式-逐级下钻导航]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:37:11 +08:00
chengkai3 148ce356ee fix:[FL-210][去掉系统消息页面的刷新按钮]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:36:16 +08:00
chengkai3 d370750dec [fix]:[FL-209][维度管理页面一致性优化]
统一维度管理页面与用户管理页面的风格、样式和交互规范,实现系统风格一致性。

主要修改:
1. 移除新增按钮的图标,与用户管理页面保持一致
2. 修改导入的图标,使用 EditOutlined 替代 PlusOutlined
3. 统一筛选表单样式,使用 rowGap: 12 并添加表单项宽度设置
4. 新增移动端响应式卡片视图支持,包含无限滚动加载
5. 统一分页配置,默认 pageSize 改为 20,pageSizeOptions 改为 [10, 20, 50, 100]
6. 统一 Modal 确认按钮文本为"创建维度项"
7. 添加表格滚动高度动态计算逻辑,支持自适应视口
8. 新增 CSS 样式类支持卡片视图和暗黑主题
9. 添加表格容器类名和 CSS 变量支持

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:33:04 +08:00
chengkai3 90d1e4f788 [feat]:[FL-208][优化worker监控页面]
1. 预取配置硬编码显示为1
2. 移除自动刷新功能,刷新按钮改为主题色
3. 移除"生成时间、执行节点、在线、离线"统计信息展示
4. 修复队列列"默认队列"重复显示问题
5. 修复执行节点列内容超长时的溢出问题

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:32:19 +08:00
chengkai3 d66f768d44 feat:[FL-207][给ATP模型管理增加树形视图]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:18:27 +08:00
chengkai3 3dc29afbd4 [feat]:[FL-206][优化维度管理功能]
- 维度类型改为允许手动输入创建
- 字段标签优化:编码→维度编码,名称→维度名称,父节点ID→父维度
- 父维度改为下拉选择,支持搜索
- 添加循环引用检查,防止选择自己的子孙节点作为父节点
- 表格中父维度显示为"名称 (编码)"格式

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 13:58:11 +08:00
chengkai3 0b05398306 [refactor]:[FL-206][移除维度管理树形视图]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 13:54:31 +08:00
chengkai3 fb0800ce22 fix:[FL-202][ATP模型管理改造] 将loading显示位置从右上角移至列表
- 移除右上角的 Spin 组件
- 表格 loading 状态改为 assetsQuery.isLoading || assetsQuery.isFetching
- 对齐用户管理页面的 loading 显示方式

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 12:26:51 +08:00
chengkai3 4bc1eab0f1 fix:[FL-202][ATP模型管理改造] 移除上传表单提示文案
- 移除"支持选择整个目录,将保留原始目录结构"提示文本

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 11:31:17 +08:00
chengkai3 069be0968e feat:[FL-202][ATP模型管理改造] 列表显示值格式化为中文
- 新增 formatDimensionValue 函数,将原始数据值映射为用户友好的中文显示格式
- 表格列渲染使用格式化函数:电压等级带单位(35kV)、塔型显示中文(干字塔)、场景显示中文(反击)、避雷器组合显示标签(M1)
- 卡片视图同步使用格式化函数显示
- 匹配新建表单下拉选项中的展示格式

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 11:16:48 +08:00
chengkai3 5f0b4b0256 [fix]:[FL-205][模型删除时同步删除存储文件]
- 更新 delete_asset 函数,在删除数据库记录前先删除物理文件
- 遍历模型的所有 release,逐个删除其存储路径下的文件
- 使用 try-except 确保文件删除失败不会阻塞数据库清理
- 新增测试用例 test_delete_asset_removes_storage_files 验证文件删除功能

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 11:15:06 +08:00