| 修改demo页面 提交比较项目
| 15 小时前 |
| feat(demo): 添加 Docker 部署、会话隔离、内联日志与 nginx 代理支持
后端 (demo/app.py):
- 使用 APIRouter 将 API 同时挂载到 /api 和 /demo/api,兼容直接访问与 nginx /demo/ 反向代理
- StaticFiles 在 router 之后注册,避免 /demo/api/* 被静态文件拦截
- 删除独立的 POST /api/log 接口,改为业务 API 内联记日志(查询规则、保存规则、删除规则、结算、退款)
- 新增 _log_event() 滚动日志与 _get_client_info(),自动采集客户端 IP 和 User-Agent
- 错误响应统一为 FastAPI HTTPException,不再返回 tuple
- 新增基于 X-Session-ID 的会话隔离规则库,单会话最多 5 条规则
- 新增每小时 TTL 清理,自动删除超过 24 小时的会话数据
前端 (demo/static/index.html):
- 删除 track() 方法及所有 this.track() 调用,日志改为服务端自动记录
- 新增 getOrCreateSessionId(),在 localStorage 中维持稳定会话 ID
- 新增 refundHistory[] 与 refundedQtyMap,支持多次部分退款
- 退款状态判定改为按商品数量检查,避免 Decimal 精度问题
- 修复运费展示、规则列表样式、复选框选中样式、卡片对齐
- 商品卡片增加 SKU/分类/标签 tooltip,购物车显示 SKU
- API 路径使用相对路径,适配 nginx /demo/ 前缀代理
| 7 天前 |