This commit is contained in:
2026-04-24 00:37:24 +08:00
parent 1b1ec7f64d
commit 5693472f64
11 changed files with 101 additions and 164 deletions
-17
View File
@@ -1,17 +0,0 @@
{
"version": 2,
"sessions": {
"ebf5e3bab92e4319aec2c39116541728": [
{
"expertId": "BackendArchitect",
"name": "磐石石",
"profession": "后端架构师",
"avatarUrl": "https://acc-1258344699.cos.accelerate.myqcloud.com/workbuddy/experts/avatars/02-Engineering/BackendArchitect/BackendArchitect.png",
"promptUrl": "https://acc-1258344699.cos.accelerate.myqcloud.com/workbuddy/experts/experts/02-Engineering/BackendArchitect/BackendArchitect_zh.md",
"usedAt": 1776327849643,
"industryId": "all"
}
]
},
"lastUpdated": 1776336333635
}
-76
View File
@@ -1,76 +0,0 @@
# 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/` 目录
+10 -28
View File
@@ -1,31 +1,13 @@
# 2026-04-23 日志
# 2026-04-23
## 物品详情页编辑弹窗增加图片管理功能
- 仓库容器详情页(WarehouseContainerDetail.vue):物品列表表格在序列号列后新增备注列,显示 `item.Remark` 字段,colspan 从 6 改为 7
- 仓库总览页(WarehouseOverview.vue):物品列表表格同样在序列号列后新增备注列,显示 `item.Remark` 字段,colspan 从 6 改为 7
- 工单详情页(ShowWorkOrder.vue):卡头时间显示从仅"创建时间"改为"创建时间 + 更新时间",使用 `order.UpdatedAt`,中英文 i18n 新增 `work_order.updated_at`
**涉及文件:**
- `frontend/ops_vue_js/src/views/warehouse/WarehouseItemDetail.vue` — 编辑弹窗增加 `useDropzone` 组件,支持加载已有图片、上传新图片、删除图片
- `frontend/ops_vue_js/src/components/useDropzone.vue` — 导出 `loadInitialFiles` 方法供外部调用
# 2026-04-24
**实现方式:**
- 编辑弹窗中新增 `editDropzoneRef` ref,绑定 `useDropzone` 组件
- `openEdit()` 时调用 `loadInitialFiles()` 刷新初始文件
- `submitEdit()` 时从 dropzone 获取所有图片哈希(包含新上传和已存在的),一并传给 `updateItem` API
- 后端 `update_item` API 已支持 `photos` 字段,会重建图片绑定
**关键代码片段:**
```javascript
// 提交时获取所有图片哈希
const photos = getEditPhotoHashes()
warehouseApi.updateItem({ id, name, serial_number, remark, quantity, photos })
```
## 物品编辑改为独立页面
**涉及文件:**
- `frontend/ops_vue_js/src/views/warehouse/WarehouseItemEdit.vue` — 新建,物品编辑独立页面
- `frontend/ops_vue_js/src/views/warehouse/WarehouseItemDetail.vue` — 编辑按钮改为 `router.push('/warehouse/item/edit/:id')`,移除弹窗代码
- `frontend/ops_vue_js/src/router/index.js` — 新增 `/warehouse/item/edit/:id` 路由
**实现方式:**
- 创建 `WarehouseItemEdit.vue``onMounted` 获取物品数据(包含已有图片),通过 `setTimeout` 调用 `loadInitialFiles()` 加载到 dropzone
- 详情页编辑按钮改为跳转,移除弹窗及相关 state/function
- 后端 apiWarehouse.goTabWarehouseContainer 和 TabWarehouseItem 的 CreatedAt/UpdatedAt 从 string 改为 *time.Time,加 gorm autoCreateTime/autoUpdateTime tag,清理了所有手动设置时间的代码(6 处),所有字段补齐 json tag
- 工单列表页(WorkOrderList.vue):创建时间列后新增更新时间列,显示 `order.UpdatedAt`colspan 从 4 改为 5
- 仓库总览页(WarehouseOverview.vue):容器列表和物品列表均新增更新时间列(创建时间后),colspan 从 7 改为 8,中英文 i18n 新增 `warehouse.updated_at`
- 容器详情页(WarehouseContainerDetail.vue):卡头元信息、子容器列表、物品列表三处均新增更新日期列/显示
- 物品详情页(WarehouseItemDetail.vue):卡头新增更新日期显示;修复移动物品弹窗中目标容器搜索下拉框闪退问题(@mousedown.prevent + blur 延迟关闭)