# 2026-06-24 BOM弹窗同步功能+供应商修复+物料清单展示优化 ## 背景 产品信息管理 → 点击BOM按钮弹窗,需要对包材绑定信息核对后同步到物料清单管理。 ## 改动 ### 1. BOM弹窗新增"同步"按钮 - 弹窗左下方新增「🔄 同步」按钮 - 点击后调用 `/api/product/sync_bom` 接口 - 将成品已有BOM数据同步到物料清单管理(bom表),同时确保物料已作为包材产品创建 ### 2. BOM弹窗供应商显示修复 - `product_detail_with_bom` 查询缺少 `LEFT JOIN suppliers`,供应商字段为空 - 增加 `LEFT JOIN suppliers ms ON m.supplier_code = ms.supplier_code`,并 SELECT `material_supplier` 字段 ### 3. BOM弹窗关闭按钮显示问题 - `×` 在某些设备上渲染后看起来像小"1" - 改为 Unicode `✕` ### 4. 物料清单管理排序 - 改为 `ORDER BY MAX(b.id) DESC`,最新同步的数据排在前面 - 修复了 `DISTINCT` 不能与 `MAX()` 共用的 SQL 错误 ### 5. 物料清单管理用量列拆分 - 原来物料名称和用量拼接显示为「名称 × 用量」,容易误解为乘法 - 新增独立「用量」列,名称和用量分列显示 ### 6. 仓库导入改为直接上传CSV - 前端去掉 FileReader 解析 CSV,改为 FormData 上传文件 - 后端自动识别编码(utf-8-sig → gbk → utf-8),Excel 保存的GBK也可识别 - 用 Python `csv.reader` 解析,支持引号内逗号 - 列名校验+逐行报错提示 已记录