ERPTurbo_Admin/openspec/project.md
shenyifei 1ee0bf173c docs(openspec): 添加OpenSpec指令和项目上下文文档
- 创建AGENTS.md,定义AI助手的OpenSpec使用规范
- 添加project.md,描述ERPTurbo_Admin项目的技术栈和约定
- 建立完整的OpenSpec目录结构和工作流指引
- 包含代码风格、命名约定和架构模式等项目规范
- 提供API设计、测试策略和Git工作流指导原则
2025-11-21 14:28:55 +08:00

176 lines
5.9 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.

# Project Context
## Purpose
ERPTurbo_Admin 是寻鸿科技的企业资源规划ERP管理系统为企业提供全面的生产管理、库存管理、经销商管理、订单处理等核心业务功能。系统旨在提高企业运营效率实现业务流程数字化和智能化管理。
## Tech Stack
### 前端框架
- **React 18** - 主要UI框架使用TypeScript开发
- **UmiJS Max 4.4.9** - 企业级React应用框架提供路由、构建、部署等一体化解决方案
- **Ant Design 5.25.2** - 企业级UI设计语言和组件库
- **Ant Design Pro Components 2.8.6** - 高级业务组件
- **NutUI React 3.0.18** - 移动端UI组件库用于移动端适配
### 状态管理
- **Valtio** - 现代化状态管理库
- **DVA** - 数据流方案(兼容性考虑)
- **React Query** - 服务端状态管理和数据获取
### 表单处理
- **Formily 2.3.2** - 企业级表单解决方案
- **@formily/antd-v5** - Formily与Ant Design v5的集成
### 样式和主题
- **TailwindCSS 3.4.17** - 原子化CSS框架
- **antd-style 3.7.1** - Ant Design样式增强方案
- **Styled Components 6.1.17** - CSS-in-JS样式库
### 工具库
- **Lodash 4.17.21** - 实用工具函数库
- **Day.js 1.11.13** - 轻量级日期处理库
- **Axios 1.7.4** - HTTP客户端
- **UUID 10.0.0** - 唯一标识符生成
- **CryptoJS 4.2.0** - 加密解密功能
### 编辑器和文档
- **@wangeditor-next/editor** - 富文本编辑器
- **Markdown-it 14.1.0** - Markdown解析器
- **XLSX 0.18.5** - Excel文件处理
### 地图服务
- **腾讯地图API** - 地图功能集成
### 开发工具
- **TypeScript 5.6.3** - 类型安全的JavaScript超集
- **PNPM** - 包管理器,支持工作空间
- **Prettier 3.3.3** - 代码格式化
- **ESLint** - 代码质量检查
- **Husky 9.1.6** - Git钩子管理
- **Lint-staged 15.2.10** - 暂存文件检查
## Project Conventions
### 代码风格
- **缩进**: 使用Tab缩进大小为4个空格宽度
- **行长度**: 最大80字符
- **文件编码**: UTF-8
- **换行符**: LF (Unix风格)
- **尾随空格**: 删除所有尾随空格
- **文件结尾**: 所有文件以换行符结尾
### 命名约定
- **组件文件**: PascalCase (例: `UserList.tsx`)
- **函数/变量**: camelCase (例: `getUserList`)
- **常量**: SCREAMING_SNAKE_CASE (例: `API_BASE_URL`)
- **文件/目录**: kebab-case (例: `user-management/`)
- **接口/类型**: PascalCase以I或T开头可选 (例: `UserVO`, `APIResponse`)
### 目录结构
```
packages/app-operation/src/
├── components/ # 通用组件
├── pages/ # 页面组件
├── services/ # API服务
├── models/ # 数据模型
├── utils/ # 工具函数
├── constants/ # 常量定义
├── layout/ # 布局组件
├── locales/ # 国际化文件
├── assets/ # 静态资源
└── wrappers/ # 高阶组件包装器
```
### 架构模式
- **微前端架构**: 使用PNPM工作空间管理多个应用
- **分层架构**:
- 表现层 (Presentation): React组件和页面
- 业务层 (Business): 业务逻辑和状态管理
- 数据层 (Data): API调用和数据持久化
- **模块化设计**: 按业务领域划分模块 (dealer, product, operation等)
- **组件化开发**: 优先使用可复用组件
### 测试策略
- **当前状态**: 项目暂无专门的测试配置
- **推荐策略**:
- 单元测试使用Jest + Testing Library
- 集成测试使用Cypress或Playwright
- 代码覆盖率:目标 > 80%
- 测试文件命名: `*.test.tsx``*.spec.tsx`
### Git工作流
- **分支策略**:
- `master`: 主分支,生产环境代码
- `feature/*`: 功能开发分支
- `hotfix/*`: 紧急修复分支
- **提交规范**: 使用Conventional Commits
- `feat:` 新功能
- `fix:` 修复bug
- `refactor:` 重构代码
- `docs:` 文档更新
- `style:` 代码格式调整
- `test:` 测试相关
- `chore:` 构建过程或辅助工具变动
- **代码质量**: 使用Husky + Lint-staged进行预提交检查
### API设计规范
- **RESTful API**: 遵循REST设计原则
- **OpenAPI**: 使用Swagger进行API文档化
- **数据格式**: 统一使用JSON
- **错误处理**: 标准化错误响应格式
- **分页**: 统一分页参数和响应格式
## Domain Context
### 业务模块
- **经销商管理 (Dealer)**: 经销商信息、返点计算、配置管理
- **产品管理 (Product)**: 产品数据、规格管理
- **订单管理 (Order)**: 订单处理、发货管理
- **基础数据 (Basic Data)**: 生产预付、工人预付、固定费用
- **纸箱管理 (Box)**: 纸箱规格管理
- **系统设置 (Setting)**: 智能识别配置、系统参数
### 核心概念
- **用户角色**: 普通用户、管理员、经销商
- **权限管理**: 基于角色的访问控制 (RBAC)
- **多租户**: 支持多平台/渠道隔离
- **国际化**: 默认中文,支持多语言扩展
## Important Constraints
### 技术约束
- **浏览器支持**: 现代浏览器 (Chrome 80+, Firefox 75+, Safari 13+)
- **响应式设计**: 支持桌面端和移动端
- **性能要求**: 页面加载时间 < 3秒
- **安全要求**:
- XSS防护
- CSRF防护
- 敏感数据加密
- API鉴权
### 业务约束
- **数据一致性**: 关键业务数据必须保持一致性
- **审计日志**: 重要操作需要记录审计日志
- **数据备份**: 定期备份关键业务数据
- **合规要求**: 符合企业数据管理规范
## External Dependencies
### 云服务
- **阿里云OSS**: 文件存储服务
- **腾讯地图API**: 地图功能服务
### API服务
- **业务API**: 自建后端API服务
- **认证服务**: SSO单点登录服务
### 第三方集成
- **支付接口**: 支付宝微信支付预留
- **短信服务**: 短信通知服务预留
- **邮件服务**: 邮件通知服务预留
### 开发环境
- **Node.js**: >= 16.0.0
- **PNPM**: >= 8.0.0
- **Git**: >= 2.30.0