# 2026-04-24 日志

## 项目梳理

- 完整梳理了 ops2 项目的运行逻辑
- 涉及：后端 Go + Gin 架构、Web 前端 Vue 3 + Vite、移动端 uni-app 基础框架

## 核心模块梳理

### 用户认证 (apiUsers.go)
- Cookie 认证机制，密码加盐哈希
- 各模块独立管理员组（purchase_admin / work_order_admin / schedule_admin / warehouse_admin）
- 默认创建 admin 用户

### 文件管理 (apiFiles.go)
- SHA256 哈希去重存储（同一文件只存一份）
- 支持图片/视频/音频/PDF 等类型
- 头像单独存储

### 日程排班 (apiSchedule.go)
- 日程表（软删除）+ 操作日志
- 日期范围查询

### 仓库模块 (apiWarehouse.go)
- 容器（树形，最多5层嵌套）+ 物品管理
- 支持工单关联、物品移动记录、操作日志

### 采购模块 (apiPurchase.go)
- 订单状态：pending → ordered → arrived → received / lost / returned
- 费用明细（多币种）、图片上传、状态记录
- 可关联工单

### 工单模块 (apiWorkOrder.go)
- 工单状态：pending → checked → parts_ordered → repaired → returned / unrepairable
- 可关联仓库物品和采购订单
- 特殊逻辑：送还时自动移除物品容器绑定

## 移动端登录功能开发

### 完成的功能

1. **api/index.js** - API 封装层
   - uni.request 统一封装
   - 自动注入 userCookieValue
   - Cookie 过期自动处理（-44 错误码）
   - 支持文件上传

2. **stores/user.js** - 用户状态管理
   - userCookie / user / userInfo 状态
   - isLoggedIn / cookieValue / username / avatarUrl 计算属性
   - login(cookie) - 登录保存
   - logout() - 清除状态
   - restoreSession() - 启动时恢复会话
   - fetchUserInfo() - 获取用户信息

3. **api/user.js** - 用户 API
   - login / register / getUserInfo / changePassword / changeEmail / updateInfo / updateAvatar

4. **pages/login/login.vue** - 登录页面（已完成 100%）
   - 表单验证
   - 调用登录 API
   - 记住登录选项
   - 登录成功跳转用户中心
   - 错误提示（密码错误/用户名不存在）

5. **pages/user/user.vue** - 用户中心（已完成 100%）
   - 未登录状态：显示登录入口
   - 已登录状态：显示用户信息卡片 + 功能菜单 + 退出登录
   - 快捷入口：订单/工单/仓库/日程
   - 退出登录确认对话框

## 移动端工程分析 (ops2_uniapp)

**技术栈**: uni-app + Vue 3 + Pinia + HBuilderX

**已完成**:
- 基础框架搭建
- Pinia 状态管理（config.js, user.js）
- 自定义 Toast 组件
- 登录页（✅ 100%）+ 设置页（90%）
- 用户中心（✅ 100%）

**API 封装**: 已完善 Cookie 认证机制

**当前总完成度**: ~50%

**待完成**:
- 4个 TabBar 页面功能实现（index/order/message/work-order/schedule/warehouse）
- 后端各模块对接

## 下一步

移动端登录和用户中心已完成，可以：
1. ~~开发主页（index）仪表盘~~ ✅
2. 开发订单列表（order）
3. 继续完善其他功能页面

---

## 下午开发记录

### 1. TabBar 导航修改
- 改为：主页 → 订单 → 仓库 → 用户
- 新增 `pages/warehouse/warehouse.vue`
- 新增 `static/tabbar/warehouse*.png`

### 2. API 层完善
- **api/schedule.js** - 日程管理（getEvents/addEvent/editEvent/deleteEvent）
- **api/purchase.js** - 采购订单（getOrders/getOrder/getOrderCount）

### 3. 主页功能开发 (pages/index/index.vue)
- 欢迎语 + 今日日期显示
- 今日日程列表（调用 scheduleApi.getEvents）
- 订单统计（待处理/已到达/已收件，调用 purchaseApi.getOrderCount）
- 快捷入口卡片

### 4. 主页页面交互
- 未登录时显示"欢迎使用 OPS 系统"
- 登录后显示"用户名，您好！"
- 日程按颜色标签显示
- 订单数量有状态提示（待处理>0时橙色高亮）
- 点击统计和快捷入口跳转到对应 TabBar 页面

### 5. TabBar 导航再次修改（增加工单）
- 改为：主页 → 订单 → 工单 → 仓库 → 用户
- 新增 `pages/workorder/workorder.vue` - 工单列表页
  - 顶部统计：待处理/已检查/已下单零件/已维修
  - 状态下拉筛选
  - 工单卡片列表（ID/状态/标题/描述/创建时间）
  - 状态颜色标签
  - 分页加载
- 新增 `api/work_order.js` - 工单 API（list/get/getCount/add/update/delete/commit）
- 新增 `static/tabbar/workorder*.png` - 工单图标（复制订单图标）

### 6. 仓库页面完善 (pages/warehouse/warehouse.vue)

**新增功能**:
- 容器卡片长按菜单（编辑/删除）
- 新增容器弹窗完善：
  - 父容器选择（可选将容器添加到其他目录）
  - 颜色标签选择（8种预设颜色）
  - 图片上传（最多3张）
  - 备注输入
- 容器卡片显示颜色边框和图标背景色
- 删除容器前检查是否有子容器/物品

**后端更新** (apiWarehouse.go):
- TabWarehouseContainer 添加 Color 字段
- add_container / update_container 接口支持 color 参数

**前端关键函数**:
- onContainerLongPress() - 长按显示操作菜单
- showEditModal() / confirmDeleteContainer() - 编辑/删除
- openParentPicker() / selectParent() - 父容器选择
- selectColor() - 颜色选择
- chooseImage() / uploadImage() / removePhoto() - 图片管理
