Files
ops2/.workbuddy/memory/2026-04-23.md
T
2026-04-23 15:50:06 +08:00

50 lines
3.1 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-23 工作记录
## 分析 OPS2 流程管理平台架构
完成了对项目前后端完整运行逻辑的分析:
- **项目性质**:内部流程管理平台,前后端同源部署(后端 Gin serve 前端 dist
- **后端**Go 1.24 + Gin + GORM,支持 SQLite/MySQL/PostgreSQL 三选一
- **前端**Vue 3 + Vite + Pinia + Tailwind CSSHash 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 下方展示关联的采购订单链接(点击跳转到采购详情页)