# 2026-05-27 工作日志 ## 今日工作 ### 1. 🔄 首页退出登录入口改造 - 从明显的退出按钮 → 右上角 `⋯` 更多菜单 - 点击弹出 ActionSheet,选"退出登录"再确认 - 后续可扩展其他选项(个人设置等) - **文件:** `pages/index/index.vue` ### 2. 🐛 物料选择器切换分类时已选物料清空 - **原因:** `loadMaterialList()` 从接口重新拉数据,`materialList` 被重建为初始值(`quantity: 0, price: 0`) - **修复:** `selectCategory` 切换前保存已选物料 → `_buildSavedMap` 在新列表加载后恢复 - 4 个页面统一修复:`purchase.vue`, `production.vue`, `material.vue`, `sales.vue` - 额外恢复已选保存逻辑(因 HMR 替换丢失过一次,重新补回) ### 3. 💰 单价回填方案变更 - **最初方案:** localStorage 缓存 `lastPrice_purchase_{materialId}` / `lastPrice_sales_{materialId}` - **修正方案:** `StockPageDTO` 接口原生带 `lastInboundPrice` / `lastOutboundPrice`,直接读接口字段 - 去掉 localStorage 缓存代码 - **文件:** `pages/inbound/purchase.vue`, `pages/outbound/sales.vue` - 采购映射 `item.lastInboundPrice || 0` - 销售映射 `item.lastOutboundPrice || 0` ### 4. 💰 单价必须校验 - `handleDirectSubmit` 加必填校验(采购/销售) - 提交时如果某物料单价为空 → Toast 提示 + 阻止提交 ### 5. 工具/环境 - 项目路径:`/mnt/d/Projects/HBuilderProjects/erp-app/` - 使用 sed/node 处理 CRLF 换行问题(WSL 挂载的 Windows 文件系统) - HMR 热更新后有时需要手动 F5 刷新 ## 重要决策 - **单价来源:** 优先使用接口返回数据,避免客户端缓存不一致 - `StockPageDTO.lastInboundPrice` → 采购入库上次单价 - `StockPageDTO.lastOutboundPrice` → 销售出库上次单价 - 生产入库/领料出库无单价需求,保持原样 ## 未完成 / 待验证 - HBuilderX 运行测试以上所有改动 - H5 浏览器验证分类切换 + 单价回填 + 提交校验