77 lines
3.7 KiB
Markdown
77 lines
3.7 KiB
Markdown
# 2026-04-16 工作日志
|
||
|
||
## OPS2 系统工作流程分析
|
||
|
||
完成了对 OPS2 流程管理系统三端架构的全面分析,生成了完整的工作流程分析报告(ops2_workflow_analysis.md)。
|
||
|
||
### 系统技术栈
|
||
- 后端:Go + Gin + GORM,支持 SQLite/MySQL/PostgreSQL 可配置切换
|
||
- PC前端:Vue3 + Vite + Pinia + Axios
|
||
- 移动端:uni-app(Vue3+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 用模块单例替代 Pinia(uni-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.alias,HBuilderX 的内置 dev server 行为也不完全符合预期。
|
||
|
||
### 解决
|
||
将 API 模块目录从 `api/` 重命名为 `@api/`,彻底消除与 `/api` 代理前缀的冲突。
|
||
|
||
- `api/` → `@api/`,所有 import 路径相应更新
|
||
- 真正的后端 API 请求走 `/api`(代理到 8080)
|
||
- `@api/*.js` 模块不走 `/api` 代理,不会冲突
|
||
- `manifest.json` 的 h5.devServer 只保留 disableHostCheck,proxy 移至 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/` 目录
|