Files
ops2/.workbuddy/memory/2026-04-16.md
T
2026-04-16 18:55:11 +08:00

3.7 KiB
Raw Blame History

2026-04-16 工作日志

OPS2 系统工作流程分析

完成了对 OPS2 流程管理系统三端架构的全面分析,生成了完整的工作流程分析报告(ops2_workflow_analysis.md)。

系统技术栈

  • 后端:Go + Gin + GORM,支持 SQLite/MySQL/PostgreSQL 可配置切换
  • PC前端:Vue3 + Vite + Pinia + Axios
  • 移动端:uni-appVue3+Vite),目标 H5 + Android

核心功能模块

  1. 用户认证Cookie-based 认证,MD5+salt 密码哈希,支持 Remember Me
  2. 日程管理:日历事件 CRUD,权限分层(创建者/模块管理员/全局管理员)
  3. 采购订单6种状态流转(pending→ordered→arrived→received/lost/returned),含完整审计日志
  4. 文件系统SHA256 内容去重,MIME 白名单校验,图片上传服务

移动端重构(对标 PC 前端)

完成了 ops_uniapp 移动端的全面重构,参考 PC 前端架构对齐。

新增/重构文件

  • api/request.js:统一请求封装(自动注入 cookie、统一 err_code 解析、cookie 过期自动跳登录)
  • api/auth.jsapi/schedule.jsapi/purchase.js:对标 PC 端 API 模块
  • store/user.js:轻量单例 Store(对标 PC 端 Pinia useUserStore,含 restoreSession
  • pages/signin.vue:重构登录页(表单验证、密码显示/隐藏、remember me
  • pages/index/index.vue:重构首页(今日日程卡片 + 待处理采购统计)
  • pages/setting/my_info.vue:重构设置页(头像上传、信息修改、退出登录)
  • pages.json:修正 API 路径前缀(/api/v1 → /api),更新页面路由
  • App.vue:接入 userStore.restoreSession()

关键设计

  • API base 统一为 /api(修复旧版 /api/v1 错误)
  • cookie 认证流程与 PC 端完全对齐
  • store/user.js 用模块单例替代 Piniauni-app 兼容)

补建预留路由对应的 Vue 文件

修复了 vite:import-analysis 报错(pages.json 声明了路由但文件不存在)。

新建文件

  • pages/schedule/schedule.vue:移动端日程月份视图,支持按月浏览、添加/编辑/删除日程、颜色分类,30s 轮询刷新
  • pages/purchase/list.vue:移动端采购订单列表,支持搜索/状态过滤/分页加载更多;底部抽屉查看订单详情(费用明细/图片/变更记录);已登录可变更订单状态

重要发现

  • 移动端 my_network_func.jshead_path = "/api/v1" 与后端实际 /api 路径不匹配,需修复
  • 审计日志系统完善(TabScheduleLog、TabPurchaseLog、TabPurchaseCommit
  • 后端同时托管静态前端产物,单体部署架构

@api 命名空间重构(修复 404 模块请求)

问题

GET http://localhost:5173/api/auth.js net::ERR_ABORTED 404

manifest.json 配置了 /api 代理到后端 8080,导致所有 /api 开头的请求都被代理。 即使加了 vite.config.js 的 resolve.aliasHBuilderX 的内置 dev server 行为也不完全符合预期。

解决

将 API 模块目录从 api/ 重命名为 @api/,彻底消除与 /api 代理前缀的冲突。

  • api/@api/,所有 import 路径相应更新
  • 真正的后端 API 请求走 /api(代理到 8080
  • @api/*.js 模块不走 /api 代理,不会冲突
  • manifest.json 的 h5.devServer 只保留 disableHostCheckproxy 移至 vite.config.js

更新文件

  • @api/request.js@api/auth.js@api/schedule.js@api/purchase.js(新建)
  • store/user.jspages/signin.vuepages/setting/my_info.vuepages/index/index.vuepages/schedule/schedule.vuepages/purchase/list.vue(更新 import 路径)
  • vite.config.js(简化 alias 配置)
  • 删除旧 api/ 目录