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

77 lines
3.7 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-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.js``api/schedule.js``api/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.js``head_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.js``pages/signin.vue``pages/setting/my_info.vue``pages/index/index.vue``pages/schedule/schedule.vue``pages/purchase/list.vue`(更新 import 路径)
- `vite.config.js`(简化 alias 配置)
- 删除旧 `api/` 目录