2025-09-20 15:19:59 +08:00
|
|
|
|
# 活牛采购智能数字化系统
|
|
|
|
|
|
|
|
|
|
|
|
## 项目概述
|
|
|
|
|
|
|
|
|
|
|
|
活牛采购智能数字化系统是一个专为活牛采购业务设计的全栈Web应用,提供从供应商管理、订单处理、运输调度到支付结算的完整数字化解决方案。
|
|
|
|
|
|
|
|
|
|
|
|
## 技术栈
|
|
|
|
|
|
|
|
|
|
|
|
### 后端技术
|
|
|
|
|
|
- **运行环境**: Node.js 18+
|
|
|
|
|
|
- **Web框架**: Express.js 4.x
|
|
|
|
|
|
- **数据库**: MySQL 8.0
|
|
|
|
|
|
- **ORM框架**: Sequelize 6.x
|
|
|
|
|
|
- **认证授权**: JWT (jsonwebtoken)
|
|
|
|
|
|
- **API文档**: Swagger/OpenAPI 3.0
|
|
|
|
|
|
- **数据验证**: Joi
|
|
|
|
|
|
- **进程管理**: PM2
|
|
|
|
|
|
|
|
|
|
|
|
### 前端技术
|
|
|
|
|
|
- **框架**: Vue.js 3.x
|
|
|
|
|
|
- **构建工具**: Vite
|
|
|
|
|
|
- **UI组件库**: Element Plus
|
|
|
|
|
|
- **状态管理**: Pinia
|
|
|
|
|
|
- **路由管理**: Vue Router 4.x
|
|
|
|
|
|
- **HTTP客户端**: Axios
|
|
|
|
|
|
|
|
|
|
|
|
## 核心功能
|
|
|
|
|
|
|
|
|
|
|
|
### 🔐 认证授权系统
|
|
|
|
|
|
- JWT Token认证机制
|
|
|
|
|
|
- 基于角色的权限控制(RBAC)
|
|
|
|
|
|
- 多用户类型支持(管理员、采购员、供应商、司机)
|
|
|
|
|
|
- 资源级别的访问控制
|
|
|
|
|
|
|
|
|
|
|
|
### 👥 用户管理
|
|
|
|
|
|
- 用户注册、登录、信息管理
|
|
|
|
|
|
- 用户状态管理(激活、暂停、删除)
|
|
|
|
|
|
- 用户角色和权限分配
|
|
|
|
|
|
- 用户操作日志记录
|
|
|
|
|
|
|
|
|
|
|
|
### 📋 订单管理
|
|
|
|
|
|
- 订单创建、编辑、审核流程
|
|
|
|
|
|
- 订单状态跟踪和管理
|
|
|
|
|
|
- 订单统计和报表分析
|
|
|
|
|
|
- 订单导入导出功能
|
|
|
|
|
|
|
|
|
|
|
|
### 🏢 供应商管理
|
|
|
|
|
|
- 供应商信息录入和维护
|
|
|
|
|
|
- 供应商资质证书管理
|
|
|
|
|
|
- 供应商评价和信用体系
|
|
|
|
|
|
- 供应商合作关系管理
|
|
|
|
|
|
|
|
|
|
|
|
### 🚛 运输管理
|
|
|
|
|
|
- 运输任务创建和分配
|
|
|
|
|
|
- 实时运输状态跟踪
|
|
|
|
|
|
- GPS定位和路线优化
|
|
|
|
|
|
- 运输费用计算和结算
|
|
|
|
|
|
|
|
|
|
|
|
### 👨💼 司机管理
|
|
|
|
|
|
- 司机档案和资质管理
|
|
|
|
|
|
- 司机任务分配和调度
|
|
|
|
|
|
- 司机绩效考核系统
|
|
|
|
|
|
- 司机培训记录管理
|
|
|
|
|
|
|
|
|
|
|
|
### 🚗 车辆管理
|
|
|
|
|
|
- 车辆信息和证件管理
|
|
|
|
|
|
- 车辆维护保养计划
|
|
|
|
|
|
- 车辆保险和年检提醒
|
|
|
|
|
|
- 车辆使用统计分析
|
|
|
|
|
|
|
|
|
|
|
|
### 💰 支付管理
|
|
|
|
|
|
- 多种支付方式支持
|
|
|
|
|
|
- 自动账单生成和管理
|
|
|
|
|
|
- 财务对账和结算
|
|
|
|
|
|
- 支付统计和报表
|
|
|
|
|
|
|
|
|
|
|
|
## 项目结构
|
2025-09-02 21:59:27 +08:00
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
niumall/
|
2025-09-20 15:19:59 +08:00
|
|
|
|
├── backend/ # 后端应用
|
|
|
|
|
|
│ ├── src/
|
|
|
|
|
|
│ │ ├── config/ # 配置文件
|
|
|
|
|
|
│ │ ├── controllers/ # 控制器层
|
|
|
|
|
|
│ │ ├── services/ # 服务层
|
|
|
|
|
|
│ │ ├── models/ # 数据模型
|
|
|
|
|
|
│ │ ├── routes/ # 路由定义
|
|
|
|
|
|
│ │ ├── middleware/ # 中间件
|
|
|
|
|
|
│ │ ├── utils/ # 工具函数
|
|
|
|
|
|
│ │ └── main.js # 应用入口
|
|
|
|
|
|
│ ├── tests/ # 测试文件
|
|
|
|
|
|
│ └── package.json # 依赖配置
|
|
|
|
|
|
├── frontend/ # 前端应用
|
|
|
|
|
|
│ ├── src/
|
|
|
|
|
|
│ │ ├── components/ # Vue组件
|
|
|
|
|
|
│ │ ├── views/ # 页面视图
|
|
|
|
|
|
│ │ ├── router/ # 路由配置
|
|
|
|
|
|
│ │ ├── store/ # 状态管理
|
|
|
|
|
|
│ │ ├── utils/ # 工具函数
|
|
|
|
|
|
│ │ └── main.js # 应用入口
|
|
|
|
|
|
│ └── package.json # 依赖配置
|
|
|
|
|
|
├── docs/ # 项目文档
|
|
|
|
|
|
│ ├── API接口文档.md
|
|
|
|
|
|
│ ├── 系统架构文档.md
|
|
|
|
|
|
│ └── 部署运维文档.md
|
|
|
|
|
|
└── README.md # 项目说明
|
2025-09-02 21:59:27 +08:00
|
|
|
|
```
|
2025-09-02 01:23:16 +08:00
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
## 快速开始
|
2025-09-02 01:23:16 +08:00
|
|
|
|
|
2025-09-02 21:59:27 +08:00
|
|
|
|
### 环境要求
|
2025-09-20 15:19:59 +08:00
|
|
|
|
- Node.js 18.x 或更高版本
|
|
|
|
|
|
- MySQL 8.0 或更高版本
|
|
|
|
|
|
- npm 8.x 或更高版本
|
2025-09-11 09:23:37 +08:00
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
### 安装步骤
|
2025-09-11 09:23:37 +08:00
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
1. **克隆项目**
|
2025-09-02 01:23:16 +08:00
|
|
|
|
```bash
|
2025-09-20 15:19:59 +08:00
|
|
|
|
git clone https://github.com/your-org/niumall.git
|
|
|
|
|
|
cd niumall
|
2025-09-02 21:59:27 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
2. **安装后端依赖**
|
2025-09-02 21:59:27 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
cd backend
|
2025-09-02 01:23:16 +08:00
|
|
|
|
npm install
|
2025-09-02 21:59:27 +08:00
|
|
|
|
```
|
2025-09-02 01:23:16 +08:00
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
3. **配置环境变量**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cp .env.example .env
|
|
|
|
|
|
# 编辑 .env 文件,配置数据库连接等信息
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
4. **初始化数据库**
|
2025-09-11 09:23:37 +08:00
|
|
|
|
```bash
|
2025-09-20 15:19:59 +08:00
|
|
|
|
# 创建数据库
|
|
|
|
|
|
mysql -u root -p -e "CREATE DATABASE niumall CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
|
2025-09-11 09:23:37 +08:00
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
# 运行数据库迁移
|
|
|
|
|
|
npm run migrate
|
2025-09-11 09:23:37 +08:00
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
# 创建管理员用户
|
|
|
|
|
|
node create_admin.js
|
2025-09-11 09:23:37 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
5. **启动后端服务**
|
2025-09-02 21:59:27 +08:00
|
|
|
|
```bash
|
2025-09-02 01:23:16 +08:00
|
|
|
|
npm run dev
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
6. **安装前端依赖**
|
2025-09-02 21:59:27 +08:00
|
|
|
|
```bash
|
2025-09-20 15:19:59 +08:00
|
|
|
|
cd ../frontend
|
|
|
|
|
|
npm install
|
2025-09-02 21:59:27 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
7. **启动前端服务**
|
2025-09-02 21:59:27 +08:00
|
|
|
|
```bash
|
2025-09-20 15:19:59 +08:00
|
|
|
|
npm run dev
|
2025-09-02 21:59:27 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
8. **访问应用**
|
|
|
|
|
|
- 前端应用: http://localhost:5173
|
|
|
|
|
|
- 后端API: http://localhost:3000
|
|
|
|
|
|
- API文档: http://localhost:3000/api-docs
|
2025-09-02 21:59:27 +08:00
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
## 开发指南
|
2025-09-02 21:59:27 +08:00
|
|
|
|
|
|
|
|
|
|
### 代码规范
|
2025-09-20 15:19:59 +08:00
|
|
|
|
- 使用ESLint进行代码检查
|
|
|
|
|
|
- 使用Prettier进行代码格式化
|
|
|
|
|
|
- 遵循JavaScript Standard Style
|
|
|
|
|
|
- 提交前运行测试和代码检查
|
2025-09-02 21:59:27 +08:00
|
|
|
|
|
|
|
|
|
|
### 分支管理
|
2025-09-20 15:19:59 +08:00
|
|
|
|
- `main`: 主分支,用于生产环境
|
|
|
|
|
|
- `develop`: 开发分支,用于集成测试
|
|
|
|
|
|
- `feature/*`: 功能分支,用于新功能开发
|
|
|
|
|
|
- `hotfix/*`: 热修复分支,用于紧急修复
|
|
|
|
|
|
|
|
|
|
|
|
### 提交规范
|
2025-09-02 21:59:27 +08:00
|
|
|
|
```
|
|
|
|
|
|
feat: 新功能
|
|
|
|
|
|
fix: 修复bug
|
|
|
|
|
|
docs: 文档更新
|
|
|
|
|
|
style: 代码格式调整
|
|
|
|
|
|
refactor: 代码重构
|
|
|
|
|
|
test: 测试相关
|
2025-09-20 15:19:59 +08:00
|
|
|
|
chore: 构建过程或辅助工具的变动
|
2025-09-02 21:59:27 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
## API文档
|
|
|
|
|
|
|
|
|
|
|
|
系统提供完整的RESTful API接口,支持以下功能模块:
|
|
|
|
|
|
|
|
|
|
|
|
- **认证模块** (`/api/auth`): 用户登录、注册、令牌管理
|
|
|
|
|
|
- **用户管理** (`/api/users`): 用户CRUD操作和权限管理
|
|
|
|
|
|
- **订单管理** (`/api/orders`): 订单全生命周期管理
|
|
|
|
|
|
- **供应商管理** (`/api/suppliers`): 供应商信息和资质管理
|
|
|
|
|
|
- **运输管理** (`/api/transports`): 运输任务和状态管理
|
|
|
|
|
|
- **司机管理** (`/api/drivers`): 司机档案和调度管理
|
|
|
|
|
|
- **车辆管理** (`/api/vehicles`): 车辆信息和维护管理
|
|
|
|
|
|
- **支付管理** (`/api/payments`): 支付记录和财务管理
|
|
|
|
|
|
|
|
|
|
|
|
详细的API接口文档请参考:[API接口文档](./docs/API接口文档.md)
|
|
|
|
|
|
|
|
|
|
|
|
## 系统架构
|
|
|
|
|
|
|
|
|
|
|
|
系统采用前后端分离的架构设计,后端使用分层架构模式:
|
|
|
|
|
|
|
|
|
|
|
|
- **路由层**: 处理HTTP请求和响应
|
|
|
|
|
|
- **控制器层**: 业务逻辑协调和数据验证
|
|
|
|
|
|
- **服务层**: 核心业务逻辑实现
|
|
|
|
|
|
- **数据层**: 数据模型和数据库操作
|
|
|
|
|
|
|
|
|
|
|
|
详细的系统架构说明请参考:[系统架构文档](./docs/系统架构文档.md)
|
|
|
|
|
|
|
|
|
|
|
|
## 部署指南
|
|
|
|
|
|
|
|
|
|
|
|
系统支持多种部署方式:
|
|
|
|
|
|
|
|
|
|
|
|
### 传统部署
|
|
|
|
|
|
- 单机部署:适用于小规模应用
|
|
|
|
|
|
- 集群部署:适用于高并发场景
|
|
|
|
|
|
- 负载均衡:支持多实例负载均衡
|
|
|
|
|
|
|
|
|
|
|
|
### 容器化部署
|
|
|
|
|
|
- Docker部署:快速部署和环境隔离
|
|
|
|
|
|
- Docker Compose:多服务编排
|
|
|
|
|
|
- Kubernetes:云原生部署和管理
|
|
|
|
|
|
|
|
|
|
|
|
### 云平台部署
|
|
|
|
|
|
- 阿里云ECS:弹性计算服务
|
|
|
|
|
|
- 腾讯云CVM:云服务器
|
|
|
|
|
|
- AWS EC2:亚马逊云计算服务
|
|
|
|
|
|
|
|
|
|
|
|
详细的部署和运维指南请参考:[部署运维文档](./docs/部署运维文档.md)
|
|
|
|
|
|
|
|
|
|
|
|
## 测试
|
|
|
|
|
|
|
|
|
|
|
|
### 单元测试
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 后端单元测试
|
|
|
|
|
|
cd backend
|
|
|
|
|
|
npm test
|
|
|
|
|
|
|
|
|
|
|
|
# 前端单元测试
|
|
|
|
|
|
cd frontend
|
|
|
|
|
|
npm test
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 集成测试
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 运行集成测试
|
|
|
|
|
|
npm run test:integration
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### API测试
|
|
|
|
|
|
- 使用Postman进行API测试
|
|
|
|
|
|
- 提供完整的Postman Collection
|
|
|
|
|
|
- 支持自动化API测试
|
|
|
|
|
|
|
|
|
|
|
|
## 监控和日志
|
|
|
|
|
|
|
|
|
|
|
|
### 应用监控
|
|
|
|
|
|
- PM2进程监控
|
|
|
|
|
|
- 系统资源监控
|
|
|
|
|
|
- 应用性能监控
|
|
|
|
|
|
|
|
|
|
|
|
### 日志管理
|
|
|
|
|
|
- 结构化日志记录
|
|
|
|
|
|
- 日志轮转和归档
|
|
|
|
|
|
- 错误日志告警
|
|
|
|
|
|
|
|
|
|
|
|
### 健康检查
|
|
|
|
|
|
- 应用健康检查接口
|
|
|
|
|
|
- 数据库连接检查
|
|
|
|
|
|
- 外部服务依赖检查
|
|
|
|
|
|
|
|
|
|
|
|
## 安全特性
|
|
|
|
|
|
|
|
|
|
|
|
### 认证安全
|
|
|
|
|
|
- JWT Token认证
|
|
|
|
|
|
- 密码加密存储
|
|
|
|
|
|
- 会话管理和超时
|
|
|
|
|
|
|
|
|
|
|
|
### 授权安全
|
|
|
|
|
|
- 基于角色的访问控制
|
|
|
|
|
|
- 资源级权限验证
|
|
|
|
|
|
- API接口权限保护
|
|
|
|
|
|
|
|
|
|
|
|
### 数据安全
|
|
|
|
|
|
- 输入数据验证和过滤
|
|
|
|
|
|
- SQL注入防护
|
|
|
|
|
|
- XSS攻击防护
|
|
|
|
|
|
|
|
|
|
|
|
### 传输安全
|
|
|
|
|
|
- HTTPS强制加密
|
|
|
|
|
|
- CORS跨域配置
|
|
|
|
|
|
- 请求频率限制
|
|
|
|
|
|
|
|
|
|
|
|
## 性能优化
|
|
|
|
|
|
|
|
|
|
|
|
### 数据库优化
|
|
|
|
|
|
- 索引优化
|
|
|
|
|
|
- 查询优化
|
|
|
|
|
|
- 连接池管理
|
|
|
|
|
|
|
|
|
|
|
|
### 缓存策略
|
|
|
|
|
|
- Redis缓存
|
|
|
|
|
|
- 查询结果缓存
|
|
|
|
|
|
- 静态资源缓存
|
|
|
|
|
|
|
|
|
|
|
|
### 前端优化
|
|
|
|
|
|
- 代码分割
|
|
|
|
|
|
- 懒加载
|
|
|
|
|
|
- 资源压缩
|
|
|
|
|
|
|
|
|
|
|
|
## 贡献指南
|
|
|
|
|
|
|
|
|
|
|
|
我们欢迎社区贡献!请遵循以下步骤:
|
|
|
|
|
|
|
|
|
|
|
|
1. Fork项目到你的GitHub账户
|
|
|
|
|
|
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
|
|
|
|
|
|
3. 提交你的更改 (`git commit -m 'Add some AmazingFeature'`)
|
|
|
|
|
|
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
|
|
|
|
|
5. 创建Pull Request
|
|
|
|
|
|
|
|
|
|
|
|
### 贡献类型
|
|
|
|
|
|
- 🐛 Bug修复
|
|
|
|
|
|
- ✨ 新功能开发
|
|
|
|
|
|
- 📚 文档改进
|
|
|
|
|
|
- 🎨 UI/UX优化
|
|
|
|
|
|
- ⚡ 性能优化
|
|
|
|
|
|
- 🔧 配置和工具改进
|
|
|
|
|
|
|
|
|
|
|
|
## 许可证
|
|
|
|
|
|
|
|
|
|
|
|
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
|
|
|
|
|
|
|
|
|
|
|
|
## 联系我们
|
|
|
|
|
|
|
|
|
|
|
|
- **项目维护者**: NiuMall Team
|
|
|
|
|
|
- **邮箱**: contact@niumall.com
|
|
|
|
|
|
- **官网**: https://www.niumall.com
|
|
|
|
|
|
- **技术支持**: support@niumall.com
|
|
|
|
|
|
|
|
|
|
|
|
## 更新日志
|
|
|
|
|
|
|
|
|
|
|
|
### v1.0.0 (2024-01-01)
|
|
|
|
|
|
- 🎉 初始版本发布
|
|
|
|
|
|
- ✨ 完整的业务功能模块
|
|
|
|
|
|
- 🔐 JWT认证和权限控制
|
|
|
|
|
|
- 📱 响应式前端界面
|
|
|
|
|
|
- 📖 完整的API文档
|
|
|
|
|
|
- 🚀 Docker容器化支持
|
2025-09-02 21:59:27 +08:00
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
## 致谢
|
2025-09-02 21:59:27 +08:00
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
感谢所有为这个项目做出贡献的开发者和用户!
|
2025-09-02 21:59:27 +08:00
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
特别感谢以下开源项目:
|
|
|
|
|
|
- [Express.js](https://expressjs.com/) - Web应用框架
|
|
|
|
|
|
- [Vue.js](https://vuejs.org/) - 前端框架
|
|
|
|
|
|
- [Sequelize](https://sequelize.org/) - ORM框架
|
|
|
|
|
|
- [Element Plus](https://element-plus.org/) - UI组件库
|
|
|
|
|
|
- [MySQL](https://www.mysql.com/) - 数据库系统
|
2025-09-02 21:59:27 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
2025-09-02 01:23:16 +08:00
|
|
|
|
|
2025-09-20 15:19:59 +08:00
|
|
|
|
**活牛采购智能数字化系统** - 让活牛采购更智能、更高效!
|