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

5.2 KiB
Raw Blame History

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() - 图片管理