This commit is contained in:
2026-04-16 18:55:11 +08:00
parent 88c080889e
commit 5146e98479
17 changed files with 3171 additions and 674 deletions
+76
View File
@@ -0,0 +1,76 @@
# 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/` 目录
View File