Files
ops2/.workbuddy/memory/2026-04-24.md
T
2026-04-24 20:35:59 +08:00

157 lines
5.2 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-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` - 工单 APIlist/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() - 图片管理