# 公司图书管理系统 **Repository Path**: natural-code-weaver/library-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-01-15 - **Last Updated**: 2026-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 企业图书资源管理系统 一个基于 Vue 3 + Spring Boot 的企业级图书管理系统,支持图书借阅、归还、续借、收藏等功能。 ## 技术栈 **前端** - Vue 3 + Vite - Element Plus - Pinia (状态管理) - Vue Router - Axios - ECharts (数据可视化) **后端** - Spring Boot 2.7 - MyBatis-Plus - JWT (身份认证) - Knife4j (API文档) - MySQL 8.0 ## 功能特性 ### 普通用户 - 图书浏览、搜索、详情查看 - 借阅申请、续借、归还 - 个人收藏管理 - 借阅历史查询 - 公告查看 ### 图书管理员 - 图书管理(增删改查、封面上传) - 分类管理 - 借阅审批 - 归还处理 ### 系统管理员 - 用户管理(启用/禁用/重置密码) - 公告管理 - 数据统计(借阅趋势、分类统计、部门统计、用户排行) ## 快速开始 ### 环境要求 - Node.js 16+ - JDK 8+ - Maven 3.6+ - MySQL 8.0+ ### 1. 数据库初始化 ```bash # 登录 MySQL mysql -u root -p # 创建数据库并导入结构 source library-backend/sql/library_db.sql # 导入测试数据 source library-backend/sql/realistic_test_data.sql ``` ### 2. 后端配置 修改 `library-backend/src/main/resources/application.yml` 中的数据库连接: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/library_db?useSSL=false&serverTimezone=Asia/Shanghai username: root password: 123456 # 改为你的密码 ``` ### 3. 启动后端 ```bash cd library-backend mvn spring-boot:run ``` 后端启动后访问: - API 地址: http://localhost:8080/api - API 文档: http://localhost:8080/api/doc.html ### 4. 启动前端 ```bash cd library-frontend npm install npm run dev ``` 前端访问地址: http://localhost:3000 ## 演示账号 | 角色 | 用户名 | 密码 | 说明 | |------|--------|------|------| | 系统管理员 | admin | 123456 | 拥有所有权限 | | 图书管理员 | libadmin | 123456 | 图书和借阅管理 | | 普通用户 | liuwei | 123456 | 借阅和收藏功能 | 其他测试用户:wangjing, zhangming, lina, zhaopeng, huangyan, zhoujie, wuqiang, sunli, yangfan(密码均为 123456) ## 项目结构 ``` ├── library-backend/ # 后端项目 │ ├── src/main/java/com/library/ │ │ ├── common/ # 通用类 │ │ ├── config/ # 配置类 │ │ ├── controller/ # 控制器 │ │ ├── dto/ # 数据传输对象 │ │ ├── entity/ # 实体类 │ │ ├── interceptor/ # 拦截器 │ │ ├── mapper/ # MyBatis Mapper │ │ ├── service/ # 服务层 │ │ └── utils/ # 工具类 │ ├── src/main/resources/ │ │ ├── mapper/ # MyBatis XML │ │ └── application.yml # 配置文件 │ └── sql/ # SQL 脚本 │ ├── library_db.sql # 数据库结构 │ └── realistic_test_data.sql # 测试数据 │ ├── library-frontend/ # 前端项目 │ ├── src/ │ │ ├── api/ # API 接口 │ │ ├── layout/ # 布局组件 │ │ ├── router/ # 路由配置 │ │ ├── stores/ # Pinia 状态 │ │ ├── styles/ # 全局样式 │ │ ├── utils/ # 工具函数 │ │ └── views/ # 页面组件 │ │ ├── admin/ # 管理员页面 │ │ ├── book/ # 图书页面 │ │ └── user/ # 用户页面 │ └── vite.config.js # Vite 配置 │ └── README.md ``` ## 数据库表结构 | 表名 | 说明 | |------|------| | t_user | 用户表 | | t_category | 图书分类表 | | t_book | 图书表 | | t_borrow_record | 借阅记录表 | | t_book_collection | 收藏表 | | t_notice | 公告表 | ## 借阅规则 - 借阅期限:30天 - 最大借阅数:5本 - 续借次数:最多2次 - 逾期费用:0.5元/天 ## 常见问题 **Q: 启动后端报数据库连接错误?** A: 检查 MySQL 是否启动,数据库是否创建,用户名密码是否正确。 **Q: 前端页面空白?** A: 检查后端是否正常启动,浏览器控制台是否有报错。 **Q: 图片上传失败?** A: 确保 `library-backend/uploads` 目录存在且有写入权限。 ## License MIT