Commit Graph

17 Commits

Author SHA1 Message Date
Sisyphus
072696321e fix(cron): 统一为 6 字段格式兼容 cron@4.4.0
【事故修复】
REPLACE(schedule, ' 1-5', '') 把 '0 8 * * 1-5' 损坏为 '0 8 * *'(4 字段,少 2 段),
cron v4.4.0 解析时报 Too few fields → API 崩溃循环重启 533 次。

【修复】
- 生产 DB: 中电建 0 0 8 * * * / 新矿 0 5 8 * * * (6 字段,含秒位)
- seed.ts: 同步修正
- CRON_PRESETS: 前端预设值也改为 6 字段格式
- 生产 API 已重启(pid 2325762, health OK)
2026-07-16 16:54:00 +08:00
Sisyphus
6964380de5 chore(crawler): 去掉「每4小时」选项,保留每6小时/每天早晚/手动 2026-07-16 16:35:06 +08:00
Sisyphus
68f6fc5c16 feat(ui): 前端 UI 组件化重构 + 发布表单增强
【新组件】
- ErrorBoundary: 全局错误边界,渲染崩溃时显示重试/刷新按钮
- ui/Toast: 全局 Toast 通知系统 (success/error/warning/info),Context Provider 模式
- ui/Modal: 统一弹窗 (ESC关闭 + loading遮罩 + 自定义footer)
- ui/Skeleton: 骨架屏 (SkeletonTable / SkeletonCard)
- ui/Lightbox: 图片放大灯箱

【页面迁移】
- InquiryPage: useToast + Modal + SkeletonTable 替换手写代码,新增 pubForm
  发布前预填联系人/电话/地址 + 发布时传 body 给后端
- LeadDetailPage: 迁移到 Toast + Modal
- ProductPage: 迁移到 Toast + Modal + SkeletonTable
- AdminPage: 迁移到 useToast
- ComparisonPage: 迁移到 Toast + SkeletonTable
- ImagePage: 迁移到 Toast + SkeletonCard

【基础设施】
- globals.css: 新增 fadeIn/slideUp 动画
- page.tsx: SPA 根接入 ToastProvider + ErrorBoundary
- tailwind.config.ts: 新增 animate keyframes

【后端】
- integration.service.ts: MCP session 管理 + charset 修复
- lead.controller.ts/lead.service.ts: 发布端点增强 + 物料提取服务注入
2026-07-16 15:46:37 +08:00
Sisyphus
9702d4b8ae chore: 忽略 tsbuildinfo 构建缓存文件
apps/web/tsconfig.tsbuildinfo 是增量编译缓存,不应纳入版本控制。
2026-07-14 11:57:43 +08:00
Sisyphus
0d2dce6b73 fix(admin): MCP 对接弹窗防误关 — 屏蔽遮罩点击 + 加关闭按钮 + ESC 支持
填表期间误点遮罩会丢失已填内容(apiKey/appSecret 等),改为只能用右上角 ×
或 ESC 键关闭。
2026-07-14 11:56:56 +08:00
Sisyphus
a822d7782b feat(ui): 品类筛选框升级为可输入关键词过滤的 Combobox
【问题】
询价发布助手筛选工具栏的品类下拉框有 53+ 个选项,用户难以快速定位。

【改动】
- 把品类 filter 从统一 .map(select) 里拆出,改成自定义 Combobox:
  - input + 浮动下拉面板 (z-30)
  - 关键词过滤 (toLowerCase + includes 模糊匹配,中文友好)
  - 键盘导航: ↓/↑ 高亮 / Enter 选中 / Esc 关闭 / Backspace 空时清空筛选
  - 鼠标: hover 高亮 / click 选中 / click outside 关闭 (useEffect + ref)
  - 选中项右侧显示 ✓
  - 已选非默认时显示 × 清空按钮
- 其他 5 个 filter (公告日期/星级/甲方级别/来源平台/负责人) 保持原生 select 不变
- 状态: catInput / catOpen / catHighlightIdx / catRef,useMemo 缓存过滤结果

【体验】
- 输入'钢' → 立即显示 钢材/钢格栅 等候选
- 输入'电缆' → 显示 电线电缆
- 空 input + Enter → 选中'全部品类' 等价清空筛选
- 已选'钢材'显示在 placeholder + 右侧 × 按钮

【部署】
web 重新构建 + sync .next 到生产 + PM2 重启 pingtai-web
2026-07-01 14:18:13 +08:00
Sisyphus
f625dd0de1 refactor: 移动 CategoryInferenceService 到 product-category 模块,修复循环依赖
- 移动 category-inference.service.ts 从 lead/ 到 product-category/
- 修复所有 import 路径
- InquiryPage 品类筛选改为动态 API 加载
2026-07-01 02:38:30 +08:00
Sisyphus
761200a70c feat: 询价发布助手去掉状态筛选,列表状态列替换为品类 2026-06-30 17:43:56 +08:00
Sisyphus
c1c7342621 feat: 询价发布助手详情面板增加发布按钮 2026-06-30 17:20:03 +08:00
Sisyphus
3a72d6396c feat: 入库时写入 category 字段 + 导出 inferCategory + apiBase ?? 修复 2026-06-29 17:34:27 +08:00
Sisyphus
785db9277d fix: 商品生图助手容错 — API 返回非数组时设空数组避免崩溃 2026-06-29 17:33:21 +08:00
Sisyphus
d8d49f7e88 fix: 修复生产环境登录双/api路径问题
API_BASE为空时用||替代??,确保fallback到localhost:4000

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-26 17:12:19 +08:00
Sisyphus
481d01c89f feat: 简化侧栏 - 移除冗余的线索详情菜单项,扁平化线索池入口
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-26 17:05:41 +08:00
Sisyphus
44609be8c7 feat: 线索池品类选项扩展、隐藏数量列、采集器按钮样式优化
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-06-26 16:25:06 +08:00
Sisyphus
49f922444a feat(F002-P1): 调试期累积修复
- 商品上架 MCP: 简化 batchPublish, price=0 默认 0.01, sku 用 spec/name
- 集成 service: 完善 import_products 调用链
- 前端 ProductPage: 调整按钮与列表
- 文档: 本地开发工作流 + devbox F002 升级需求
- 脚本: rotate-mcp-key.sh (一键密钥轮换)
2026-06-25 10:01:45 +08:00
Sisyphus
672a4b41b2 feat(F002-P0-A): 商品上架 - Mac 端 publish-to-direv API + web 按钮
- product.service.ts: 新增 publishToDirev() 调 MCP import_products
- product.controller.ts: 新增 POST /api/products/publish-to-direv
- product.module.ts: 引入 IntegrationModule
- ProductPage.tsx: 工具栏加 '上架 B2B' 按钮 (绿色)
- 字段映射: Product(category/price/brand) → MCP(category_id/price/brandName)
2026-06-24 12:20:22 +08:00
Sisyphus
afac18e843 feat(F002): W26 + W29.x + W30 + W31 平台助手全部改动首次 commit
- W26: NestJS API + Next.js Web + Prisma + SQLite scaffold
- W26: Lead 模型 + Crawler + 询价发布助手 (线索池 + 一键发布)
- W29.x: MCP 集成 (Integration 模型 + connectMcp + publish_rfq 5 工具端到端跑通)
- W30: 3 字段补充 (notes / quotationType / quotationDemand)
- W31 P1: 自动填 enterpriseId / userId (Prisma companyUserId 字段 + get_app_identity tool + lead.service.ts publishArgs)
- W31: detail 详情页 + admin UI 集成管理 (OpenAppListView + AuditLogListView)

关联: ~/Documents/02-平台开发/产品开发/F002-W31-交接文档.md
GIT-AUDIT-REPORT-2026-06-24.md
2026-06-24 11:07:11 +08:00