Files
ops2/.workbuddy/memory/2026-04-23.md
T
2026-04-23 20:03:48 +08:00

36 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-04-23 工作日志
## warehouse 模块前端开发
### 今日完成
- `apiWarehouse.go` 重写,参照 `apiWorkOrder.go` 模式
- 修复 4 处图片绑定查询 `hash` 未使用的问题
- 清理 6 处重复的 `AuthenticationAuthority` 调用
- 容器列表页 (`WarehouseContainerList.vue`) — 根容器列表 + 统计卡片
- 容器详情页 (`WarehouseContainerDetail.vue`) — 子容器/物品 Tab + 新增子容器弹窗
- 新增物品独立页 (`WarehouseAddItem.vue`) + 路由注册
- 路由: `/warehouse/container/:id/add-item`
- 物品 Tab 按钮从弹窗改为跳转独立页面
- 使用 `useDropzone` 组件上传图片
- 物品详情页 (`WarehouseItemDetail.vue`) — 物品信息 + 移动历史/关联工单 Tab
- **合并页面 (`WarehouseOverview.vue`)** — 容器+物品合并到一个页面
- 路由 `/warehouse/container` 直接渲染此页面
- 顶部 3 格统计卡片(容器数/物品数/未入库)
- Tab 切换「容器」/「物品」
- 容器 Tab:搜索+表格+分页+新增/编辑弹窗+删除确认
- 物品 Tab:搜索(400ms防抖)+表格+分页+删除确认
- 删除了 `/warehouse/item` 独立路由和侧边栏「物品总览」入口
- 补充 i18n key(中/英双语)
### 踩坑
- 后端 `TabWarehouseItem.SerialNumber` JSON 字段名为 `serial_number`(小写),前端须对应
- `useDropzone` 组件通过 `dropzoneRef.value.return_files()` 获取已上传文件的 hash 数组
- `RouterLink` 在此项目为全局组件,无需 import
- `watch` 需要显式 import`import { ref, reactive, computed, onMounted, watch } from 'vue'`
- **项目没有 daisyUI**,所有样式均用纯 Tailwind CSS v4 实现
- 不用 `btn``tabs``tab``input-bordered``table``modal``join``form-control``badge``card` 等 daisyUI 类
- 用 Tailwind 自定义样式:`rounded-xl border border-gray-200 bg-white shadow dark:border-dk-muted dark:bg-dk-card`
- 加载动画用自定义 SVG spinner,不用 `loading loading-spinner`
- **弹窗用 `<Transition name="fade">` + `v-if` + `@click.self` 关闭,不用 `<dialog :open>`**`<dialog>``:open` 属性在某些场景不会正确响应 false
- **批量修改 Vue 模板后务必检查缩进**:逐块替换时外层 div 的闭合标签容易被吞,造成 "Element is missing end tag" 错误