- 新增OpenSpec代理配置文件,包括文档自动维护专家、代码分析师、Java开发专家、React开发专家和Taro/NutUI开发专家 - 添加OpenSpec规范说明文档,定义项目规范驱动开发流程 - 配置项目级OpenSpec设置,包括技术栈和架构模式约定 - 更新.gitignore文件,排除.bmad-core和Claude相关目录 - 升级Node.js版本至22.11.0 - 优化format.ts工具函数格式化和价格验证逻辑 - 添加AGENTS.md和CLAUDE.md说明文件,集成OpenSpec指令
165 lines
5.7 KiB
Markdown
165 lines
5.7 KiB
Markdown
# Project Context
|
||
|
||
## Purpose
|
||
瓜联丨西瓜产业一体化智能管理平台 - 基于微信小程序的多端ERP系统,专注于西瓜产业的采购管理、供应商管理、交付管理等核心业务流程数字化。项目旨在为西瓜产业链提供高效的数字化管理工具,提升供应链效率和透明度。
|
||
|
||
## Tech Stack
|
||
|
||
### 前端核心
|
||
- **React 18.0.0** + **TypeScript 5.1.6** - 现代化前端开发框架
|
||
- **Taro 4.1.7** - 多端跨平台解决方案,支持微信小程序、H5、支付宝等平台
|
||
- **Zustand 5.0.3** - 轻量级全局状态管理
|
||
- **SWR 2.3.6** - 数据获取和缓存策略
|
||
|
||
### UI与样式
|
||
- **NutUI 3.0.18** - 微信小程序专用React组件库
|
||
- **TailwindCSS 4.1** + **PostCSS** - 原子化CSS框架
|
||
- **Sass** - CSS预处理器
|
||
- **CSS Variables** - 统一主题系统设计
|
||
|
||
### 开发工具链
|
||
- **pnpm workspace** - 包管理和工作空间
|
||
- **Webpack 5.94.0** - 构建工具
|
||
- **Babel 7.x** + **SWC** - 代码编译
|
||
- **ESLint** + **Prettier** + **Husky** - 代码质量和Git钩子
|
||
- **Jest 29.3.1** - 单元测试框架
|
||
|
||
### 数据与网络
|
||
- **Axios 1.7.4** - HTTP客户端
|
||
- **OpenAPI** - API类型定义生成
|
||
- **本地存储** - 数据持久化
|
||
|
||
## Project Conventions
|
||
|
||
### Code Style
|
||
|
||
#### 命名规范
|
||
- **组件**: PascalCase (如: CustomTabBar, PurchaseSection)
|
||
- **文件**: kebab-case (如: purchase-order-list.tsx)
|
||
- **变量/函数**: camelCase (如: getUserInfo, handleSubmit)
|
||
- **常量**: SCREAMING_SNAKE_CASE (如: API_BASE_URL)
|
||
- **CSS类**: TailwindCSS原子类 + 自定义kebab-case类
|
||
|
||
#### 代码组织
|
||
```
|
||
src/
|
||
├── pages/ # 页面组件,按业务模块分组
|
||
├── components/ # 通用组件,按功能分组
|
||
├── services/ # API服务层
|
||
├── store/ # 状态管理
|
||
├── utils/ # 工具函数
|
||
└── types/ # TypeScript类型定义
|
||
```
|
||
|
||
#### TypeScript规范
|
||
- 启用严格类型检查
|
||
- 优先使用interface定义对象结构
|
||
- 使用联合类型和泛型提高类型复用性
|
||
- 避免使用any类型,必要时使用unknown
|
||
|
||
### Architecture Patterns
|
||
|
||
#### 分层架构
|
||
- **表现层**: React组件 + Taro页面
|
||
- **业务层**: 业务逻辑组件 + HOC
|
||
- **服务层**: API调用 + 数据转换
|
||
- **状态层**: Zustand全局状态 + SWR缓存
|
||
|
||
#### 设计模式
|
||
- **HOC模式**: 基础HOC提供全局功能(认证、权限等)
|
||
- **组合模式**: 组件按功能分层组合
|
||
- **策略模式**: 不同角色的业务逻辑策略
|
||
- **观察者模式**: SWR数据订阅和更新
|
||
|
||
#### 模块化设计
|
||
- 按业务功能垂直切分模块
|
||
- 模块内部高内聚,模块间低耦合
|
||
- 统一的导出和依赖管理
|
||
|
||
### Testing Strategy
|
||
- **单元测试**: Jest + React Testing Library,覆盖核心业务逻辑
|
||
- **组件测试**: 关键组件的渲染和交互测试
|
||
- **API测试**: 服务层接口调用测试
|
||
- **端到端测试**: 关键业务流程的集成测试
|
||
- **目标覆盖率**: 核心模块80%以上
|
||
|
||
### Git Workflow
|
||
- **主要分支**: master (生产), develop (开发)
|
||
- **功能分支**: feature/功能名,从develop创建
|
||
- **修复分支**: hotfix/问题描述,从master创建
|
||
- **提交规范**: Conventional Commits,使用中文提交信息
|
||
- **代码审查**: 所有PR必须经过代码审查
|
||
|
||
## Domain Context
|
||
|
||
### 核心业务模块
|
||
1. **采购管理**:
|
||
- 采购单创建、编辑、提交
|
||
- 多级审核流程(采购员→审核员→审批员)
|
||
- 采购历史记录和状态追踪
|
||
- 费用计算和价格管理
|
||
|
||
2. **供应商管理**:
|
||
- 供应商信息维护
|
||
- 供应商资质管理
|
||
- 采购历史关联
|
||
|
||
3. **交付管理**:
|
||
- 交付单创建和管理
|
||
- 配送状态跟踪
|
||
- 交付确认和验收
|
||
|
||
4. **用户权限**:
|
||
- 基于角色的访问控制(RBAC)
|
||
- 功能权限动态分配
|
||
- 多角色身份支持
|
||
|
||
### 业务流程
|
||
- **采购流程**: 需求确认 → 供应商选择 → 采购单创建 → 多级审核 → 执行采购
|
||
- **交付流程**: 采购完成 → 交付安排 → 物流跟踪 → 确认收货
|
||
|
||
### 数据模型关键概念
|
||
- **采购单**: 采购业务的核心实体,包含商品、数量、价格、供应商等信息
|
||
- **角色权限**: 采购员、审核员、审批员等不同角色的操作权限
|
||
- **状态流转**: 采购单从创建到完成的完整生命周期管理
|
||
|
||
## Important Constraints
|
||
|
||
### 技术约束
|
||
- **微信小程序限制**: 包体积限制、API调用限制、UI组件限制
|
||
- **多端兼容**: 必须同时支持微信小程序和H5平台
|
||
- **性能要求**: 首屏加载时间 < 3秒,操作响应时间 < 1秒
|
||
- **离线支持**: 关键数据本地缓存,支持弱网环境
|
||
|
||
### 业务约束
|
||
- **数据一致性**: 采购状态、库存数据等关键信息的实时一致性
|
||
- **权限控制**: 严格的基于角色的功能访问控制
|
||
- **审计追踪**: 所有操作必须可追溯,支持审计需求
|
||
- **数据安全**: 敏感业务数据加密存储和传输
|
||
|
||
### 合规约束
|
||
- **隐私保护**: 遵循数据隐私保护相关法规
|
||
- **微信生态**: 符合微信小程序开发规范和审核要求
|
||
|
||
## External Dependencies
|
||
|
||
### 微信生态服务
|
||
- **微信登录**: 用户身份认证
|
||
- **微信支付**: 支付集成(如需要)
|
||
- **微信消息推送**: 业务消息通知
|
||
|
||
### 核心业务API
|
||
- **RESTful API**: 后端业务系统接口
|
||
- **文件上传服务**: 附件、图片上传
|
||
- **PDF生成服务**: 采购单、交付单等文档生成
|
||
|
||
### 第三方服务
|
||
- **地图服务**: 位置相关功能(如需要)
|
||
- **统计分析**: 业务数据分析
|
||
- **Lottie动画**: 动画效果支持
|
||
|
||
### 开发与部署
|
||
- **CI/CD平台**: 持续集成和部署
|
||
- **代码托管**: Git仓库管理
|
||
- **包管理**: npm/pnpm私有仓库(如需要)
|