欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 11 图书借阅功能实现(Vue3+element plus +Spring Boot)

11 图书借阅功能实现(Vue3+element plus +Spring Boot)

2025/2/22 2:19:25 来源:https://blog.csdn.net/zi__you/article/details/142982338  浏览:    关键词:11 图书借阅功能实现(Vue3+element plus +Spring Boot)

目录

  • 1 功能描述
  • 2 接口地址
  • 3 后端代码
  • 4 api/book.js中编写借阅图书的接口代码
  • 5 BookResourcesVue.vue组件中完成点击事件borrowBook
  • 6 功能演示

1 功能描述

普通用户借阅图书,点击借阅按钮,修改图书状态,最多能够借阅3本图书。

2 接口地址

图书借阅
GET http://localhost:8082/book/borrowBook

3 后端代码

 //用户借阅图书功能@GetMapping("/borrowBook")public Result userBorrowBook(String bookId){User user = ThreadLocalUtil.get();
//      查询用户当前借了是否达到三本书,如果达到,禁止借阅QueryWrapper<Book> queryWrapper = new QueryWrapper<>();queryWrapper.eq("book_borrower",user.getUserName());List<Book> books = iBookService.list(queryWrapper);if(books.size()>=3){return Result.error("借阅图书失败,借阅图书数量已达上限!");}//定义时间格式DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");//获取当前时间 格式为 yyyy-MM-ddString borrowTime = LocalDate.now().format(dateFormatter);//设置还书时间为当前时间的30天之后String returnTime =  LocalDate.now().plusDays(30).format(dateFormatter);//通过book_id查找需要借阅的图书UpdateWrapper<Book> updateWrapper = new UpdateWrapper<>();updateWrapper.eq("book_id",bookId).set("book_borrower",user.getUserName()).set("book_status","1").set("book_borrowtime",borrowTime).set("book_returntime",returnTime);boolean result = iBookService.update(updateWrapper); // 调用 update 方法if (result) {return Result.success("借阅图书成功");} else {return Result.error("借阅失败,可能图书已被其他人借阅或者是其他问题!");}}

4 api/book.js中编写借阅图书的接口代码

//借阅图书 发送get请求
export const bookBorrowService = (bookId) => {return request.get('/book/borrowBook', { params: { bookId: bookId } })
}

5 BookResourcesVue.vue组件中完成点击事件borrowBook

 <el-table-column v-else label="操作" width="100"><template #default="{ row }"><el-button v-if="row.bookStatus == 0" plain type="primary"@click="borrowBook(row.bookId)">借阅</el-button><el-button v-if="row.bookStatus == 1" plain disabled type="primary"@click="borrowBook(row.bookId)">借阅</el-button></template></el-table-column>

点击借阅,实现对应代码

// 导入借阅图书的接口
import { bookBorrowService } from '@/api/book.js'
const borrowBook = async (bookId) => {// 提示要借阅吗 如果确定 提交借阅申请await ElMessageBox.confirm('确定要借阅吗?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {// 用户点击了确定console.log("要借阅的图书为:" + bookId);bookBorrowService(bookId).then(result => {ElMessage.success(result.message ? result.message : '借阅成功')// 刷新列表getBooks()})}).catch(error => {ElMessage.error(error.message)})}

6 功能演示

添加链接描述
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词