# 药店管理系统 **Repository Path**: VilanStudio/pharmacy-management-system ## Basic Information - **Project Name**: 药店管理系统 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-30 - **Last Updated**: 2026-10-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 药店管理系统 基于 FastAPI + Vue3 + MySQL 的现代化药店管理系统,提供药品管理、库存管理、销售管理、会员管理等功能。 ## 技术栈 ### 后端 - **FastAPI** - 现代化的 Python Web 框架 - **SQLAlchemy** - ORM 框架 - **MySQL** - 关系型数据库 - **PyMySQL** - MySQL 数据库驱动 - **Pydantic** - 数据验证 - **python-jose** - JWT 认证 - **bcrypt** - 密码加密 ### 前端 - **Vue 3** - 渐进式 JavaScript 框架 - **Vite** - 下一代前端构建工具 - **TypeScript** - JavaScript 的超集 - **Element Plus** - Vue 3 UI 组件库 - **Pinia** - Vue 状态管理 - **Vue Router** - 路由管理 - **Axios** - HTTP 客户端 - **ECharts** - 数据可视化 ## 功能特性 ### 核心功能 - ✅ 用户认证与授权(JWT) - ✅ 基于角色的权限控制(RBAC) - ✅ 药品信息管理 - ✅ 库存管理(入库/出库) - ✅ 销售管理(开单/退款) - ✅ 会员管理 - ✅ 数据统计与可视化 - ✅ 库存预警 - ✅ 服务评价 ### 系统特点 - 🎨 现代化的 UI 设计 - 📱 响应式布局,支持移动端 - 🔐 安全的身份认证 - 📊 丰富的数据统计图表 - 🚀 高性能的前后端分离架构 ## 项目结构 ``` pharmacy-management-system/ ├── python_fastapi/ # 后端项目 │ ├── app/ │ │ ├── api/ # API 路由 │ │ │ └── endpoints/ # 各模块端点 │ │ ├── core/ # 核心配置 │ │ ├── models/ # 数据模型 │ │ └── schemas/ # Pydantic 模型 │ ├── .env # 环境变量配置 │ ├── requirements.txt # Python 依赖 │ └── run.py # 启动文件 ├── vue3_vite/ # 前端项目 │ ├── src/ │ │ ├── api/ # API 接口 │ │ ├── components/ # 组件 │ │ ├── views/ # 页面 │ │ ├── stores/ # 状态管理 │ │ └── router/ # 路由配置 │ ├── package.json # 前端依赖 │ └── vite.config.ts # Vite 配置 └── mysql_data/ # 数据库脚本 └── init.sql # 初始化脚本 ``` ## 环境要求 - **Python**: 3.10+ - **Node.js**: 16+ - **MySQL**: 8.0+ - **pnpm**: 8+ (推荐) 或 npm ## 安装步骤 ### 1. 克隆项目 ```bash git clone cd pharmacy-management-system ``` ### 2. 数据库配置 #### 创建数据库 ```bash mysql -u root -p ``` ```sql CREATE DATABASE pharmacy_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` #### 导入初始化脚本 ```bash mysql -u root -p pharmacy_db < mysql_data/init.sql ``` ### 3. 后端配置 #### 安装依赖 ```bash cd python_fastapi pip install -r requirements.txt ``` #### 配置环境变量 编辑 `.env` 文件,修改数据库连接信息: ```env # 数据库配置 MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_USER=root MYSQL_PASSWORD=your_password MYSQL_DB=pharmacy_db # JWT配置 - 请修改为你自己的密钥 SECRET_KEY=your-secret-key-here ``` **重要**: 生产环境请务必修改 `SECRET_KEY`,可以使用以下命令生成: ```bash python -c "import secrets; print(secrets.token_urlsafe(32))" ``` #### 启动后端服务 ```bash python run.py ``` 后端服务将在 `http://127.0.0.1:8000` 启动 API 文档地址:`http://127.0.0.1:8000/docs` ### 4. 前端配置 #### 安装依赖 ```bash cd vue3_vite pnpm install # 或使用 npm npm install ``` #### 启动前端服务 ```bash pnpm dev # 或使用 npm npm run dev ``` 前端服务将在 `http://localhost:5173` 启动 ## 默认账号 系统预置了以下测试账号(密码均为 `123456`): | 用户名 | 角色 | 权限说明 | |--------|------|----------| | admin | 管理员 | 拥有所有权限 | | pharmacist | 药师 | 药品管理、库存管理 | | cashier | 收银员 | 销售管理、会员管理 | ## 开发说明 ### 后端开发 #### 添加新的 API 端点 1. 在 `app/models/` 创建数据模型 2. 在 `app/schemas/` 创建 Pydantic 模型 3. 在 `app/api/endpoints/` 创建路由文件 4. 在 `app/api/__init__.py` 注册路由 #### 数据库迁移 ```bash # 生成迁移文件 alembic revision --autogenerate -m "description" # 执行迁移 alembic upgrade head ``` ### 前端开发 #### 添加新页面 1. 在 `src/views/` 创建页面组件 2. 在 `src/router/index.ts` 添加路由 3. 在 `src/api/` 添加 API 接口 #### 构建生产版本 ```bash pnpm build # 或 npm run build ``` 构建产物在 `dist/` 目录 ## API 文档 启动后端服务后,访问以下地址查看 API 文档: - Swagger UI: `http://127.0.0.1:8000/docs` - ReDoc: `http://127.0.0.1:8000/redoc` ## 主要功能模块 ### 1. 用户管理 - 用户登录/登出 - 用户信息管理 - 角色权限分配 ### 2. 药品管理 - 药品信息录入 - 药品分类管理 - 药品库存查询 - 药品信息编辑/删除 ### 3. 库存管理 - 药品入库 - 药品出库 - 库存预警 - 临期药品提醒 - 库存记录查询 ### 4. 销售管理 - 销售开单 - 订单查询 - 订单退款 - 销售统计 ### 5. 会员管理 - 会员注册 - 会员信息管理 - 会员消费记录 - 会员积分管理 ### 6. 数据统计 - 销售趋势分析 - 药品销售排行 - 分类销售占比 - 会员消费排行 ## 常见问题 ### 1. 数据库连接失败 检查 `.env` 文件中的数据库配置是否正确,确保 MySQL 服务已启动。 ### 2. 前端无法连接后端 确保后端服务已启动,检查 `vite.config.ts` 中的代理配置。 ### 3. 权限不足 使用 admin 账号登录,在系统管理中为用户分配相应权限。 ### 4. 端口被占用 修改后端 `run.py` 或前端 `vite.config.ts` 中的端口配置。 ## 注意事项 1. **生产环境部署** - 修改 `.env` 中的 `SECRET_KEY` - 修改 `ALLOWED_ORIGINS` 为实际的前端域名 - 使用 HTTPS 协议 - 配置防火墙规则 2. **数据安全** - 定期备份数据库 - 不要将 `.env` 文件提交到版本控制 - 使用强密码 3. **性能优化** - 配置数据库连接池 - 启用 Redis 缓存 - 使用 CDN 加速静态资源 ## 许可证 MIT License ## 联系方式 如有问题或建议,请提交 Issue 或 Pull Request。