# 2026-04-23 工作记录 ## 分析 OPS2 流程管理平台架构 完成了对项目前后端完整运行逻辑的分析: - **项目性质**:内部流程管理平台,前后端同源部署(后端 Gin serve 前端 dist) - **后端**:Go 1.24 + Gin + GORM,支持 SQLite/MySQL/PostgreSQL 三选一 - **前端**:Vue 3 + Vite + Pinia + Tailwind CSS,Hash History 路由 - **认证**:自实现 Cookie Token(非 JWT),存于数据库,支持"记住我"滚动续期 - **数据库**:13 张表,涵盖用户体系(4张)、认证日志(2张)、文件(1张)、日程(2张)、采购(5张,含软删除+操作日志双保险) - **核心功能**:日程日历(FullCalendar,公开可访问)+ 采购流程管理(完整状态流转)+ 用户系统 - **权限设计**:基于用户组(schedule_admin / purchase_admin),内存缓存管理员 ID 列表 - **文件系统**:SHA256 内容寻址,自动去重存储 - **API 协议**:统一 `{ userCookieValue, data }` 请求体,统一 `{ err_code, err_msg, return }` 响应体 ## 新增 work_order 工单模块 完整实现了工单模块,文件清单: **后端(backend/my_work/routers/)** - `apiWorkOrder.go`:4张表(TabWorkOrder / TabWorkOrderFileBind / TabWorkOrderCommit / TabWorkOrderLog)+ 7个接口(add/update/list/get/commit/delete/count)+ work_order_admin 用户组 - `api.go`:注册 `/api/work_order/*` 路由 - `main.go`:注册 `ApiWorkOrderInit()` **前端(frontend/ops_vue_js/src/)** - `api/work_order.js`:API 封装 - `views/work_order/WorkOrderList.vue`:工单列表页(分页+状态筛选) - `views/work_order/AddEditWorkOrder.vue`:新增/编辑页(图片上传 useDropzone) - `views/work_order/ShowWorkOrder.vue`:详情页(进度时间线+新增进度表单) - `router/index.js`:注册4条路由(list/add/edit/:id/show/:id) - `components/AppHeader.vue`:导航菜单添加"工单"入口 - `i18n/zh-CN.json` & `i18n/en.json`:添加 work_order 翻译节和 appname.work_order **工单状态枚举**:pending/checked/parts_ordered/repaired/returned/unrepairable **commit 图片支持**: - 后端:新增 `TabWorkOrderCommitFileBind` 表(commit_id/work_order_id/file_id),commit 接口接收 `photos` 数组,get 接口返回每条 commit 的 photos - 前端:ShowWorkOrder.vue 新增进度表单底部加了 useDropzone 组件,每条进度时间线下方展示关联图片 - API:`commit(id, status, comment, photos)` 函数签名新增 photos 参数 **工单关联采购订单**: - 后端:新增 `TabWorkOrderPurchaseOrderBind` 表(work_order_id/commit_id/purchase_order_id),支持多对多关联 - commit 接口新增 `purchaseOrderIds` 参数([]uint) - get 接口每条 commit 返回 `purchaseOrders` 数组(包含 id/title/status) - 新增 `/search_purchase_orders` 接口:空搜索返回最新5条,支持 ID 精确匹配和标题/备注模糊匹配 - 前端:状态选 `parts_ordered` 时显示采购订单搜索框(防抖300ms),输入框获取焦点自动搜索 - 时间线每条 commit 下方展示关联的采购订单链接(点击跳转到采购详情页)