3.7 KiB
3.7 KiB
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
核心功能模块
- 用户认证:Cookie-based 认证,MD5+salt 密码哈希,支持 Remember Me
- 日程管理:日历事件 CRUD,权限分层(创建者/模块管理员/全局管理员)
- 采购订单:6种状态流转(pending→ordered→arrived→received/lost/returned),含完整审计日志
- 文件系统: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/目录