Files
ops2/.workbuddy/memory/MEMORY.md
T
2026-03-31 15:46:15 +08:00

99 lines
4.5 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.
# 项目长期记忆 - OPS2
## 项目概况
- **项目名称**OpsOperations 运营管理系统)
- **类型**:前后端分离的工作流/运营管理系统
- **工作区路径**`c:\Users\wuwen\Documents\prj\ops2`
## 技术栈
### 后端(backend/
- **语言**Go
- **框架**GinHTTP 框架)+ GORMORM
- **数据库**:支持 SQLite / MySQL / PostgreSQL(通过配置切换)
- **配置**YAML 格式,路径 `./data/config.yaml`,模板在 `./defConfig/configTemp.yaml`
- **静态文件**:后端直接 serve `./dist` 目录下的前端构建产物
- **TLS**:支持 HTTPS(可配置)
### 前端(frontend/ops_vue_js/)⬅️ 主力开发目录
- **框架**Vue 3 + JavaScript(非 TypeScript
- **路由**Vue RouterHash 模式)
- **构建工具**Vite 7
- **CSS 框架**Tailwind CSS v4@tailwindcss/vite 插件)
- **图标**@tabler/icons-vue
- **状态管理**Pinia
- **国际化**vue-i18n
- **日期选择**flatpickr / litepicker
- **文件上传**FilePond
- **图片裁剪**CropperJS@cropper/elements
- **日历**FullCalendar(含 daygrid/timegrid/list/interaction
- **其他组件**imageCropper、tagadder、dateTimePicker、useDropzone 等
- ~~**UI 框架**TablerBootstrap 5 + @tabler/core~~ 已弃用(2026-03-31 迁移至 Tailwind
> 注意:`frontend/ops_vue/`TypeScript 版)是旧目录,已弃用
### 前端页面路由(ops_vue_js
- `/` — 首页(HomeView
- `/login` — 登录(AuthLayout
- `/register` — 注册(AuthLayout
- `/forgot_password` — 找回密码(AuthLayout
- `/admin` — 管理后台
- `/schedule` — 日程/排班(FullCalendar
- `/purchase` — 采购订单列表
- `/purchase/addorder` — 新增采购订单
- `/purchase/showorder/:id` — 查看采购订单详情
- `/warehouse` — 仓库管理
- `/settings/account` — 账户设置
- `/settings/contact` — 联系信息设置
- `/settings/security` — 安全设置
- `/404` — 404 页面
## 数据模型(GORM 表结构)
- `TabUser_` - 用户表(name 唯一索引,支持 md5/md5salt 密码哈希)
- `TabUserGroups_` - 用户组表
- `TabUserGroupBinds_` - 用户-组绑定关系表
- `TabUserInfo_` - 用户详情表(头像、性别、语言等)
- `TabCookie_` - Session Cookie 表(含过期时间、记住我功能)
- `TabFileInfo_` - 文件信息表(支持图片/视频/音乐/PDF)
- `APIRequestLog_` - API 请求日志表
- `TabPurchaseOrder` - 采购订单表(含照片JSON、快递单号、订单状态)
- `TabPurchaseCosts` - 采购费用明细表
## API 路由结构
- `POST /api/users/...` - 用户相关(登录、注册、鉴权)
- `POST /api/files/...` - 文件上传管理
- `POST /api/purchase/getorders` - 获取采购订单列表(分页)
- `POST /api/purchase/addorder` - 新增采购订单
- `GET /api/static/...` - 静态资源访问
- 认证方式:请求体中携带 `userCookieValue` 字段
## 前端页面
- 见上方"前端页面路由"章节
## 项目现状(2026-03-31
- 后端基础架构完整,采购模块已有基础实现
- 前端 `ops_vue_js` 目录是主力开发目录(Vue 3 + Tailwind CSS v4
- **已完成前端整体重构**API 层 async/await、Router 导航守卫、composables、布局分离
- **已完成 Tabler → Tailwind CSS v4 迁移**
- **已修复所有字符损坏文件**(20 个 Vue 文件,因批量脚本偏移错误)
- 所有页面构建通过,6169 modules, 0 errors
- 前端构建产物放在 `backend/dist/` 供后端 serve
- `frontend/ops_vue/`TypeScript 版)是旧目录,已弃用
## 经验教训
- **批量字符替换脚本危险**:需在源码上使用前先备份,并限定替换范围
- **`@tabler/icons-vue` 不包含所有图标**:如 `IconFileTypeText` 不存在,使用前需确认
## 前端重构后架构(2026-03-31
- **API 层**`src/api/` — axios 实例 + 拦截器,async/await 封装
- **Composables**`src/composables/` — usePageTitle、useValidation、isValidEmail
- **Stores**`src/stores/user.js`(精简)、`src/stores/toast.js`(全局通知)
- **布局**`src/layouts/DefaultLayout.vue`(主站)、`AuthLayout.vue`(认证页)
- **公共组件**AppHeader、AppFooter、AppToast、SettingNav
- **命名规范**PascalCase 文件名,camelCase 函数名
## 开发规范
- API 请求统一携带 `userCookieValue` 做身份验证
- 响应统一用 `ReturnJson(ctx, errorCode, data)` 格式
- 错误码定义在 `./defConfig/errorCodes.json`