图书订阅管理系统——管理员书籍管理模块乔十六

——动作:管理员登陆成功先进入主页面,点击书籍管理进行入书籍管理页面,如图4个分块,主要实现前三个。

有了这样的总体设计,首先所有页面的底部都公用,所以让其继承于主页面,那么势必要以共有部分作为父布局组件,其余通过路由跳转、又或者直接组件嵌套;公用底部,因此有了一个AdminLayOut,另外在里面设置背景颜色等基础;底部以上的头和体,则继续分,展示首页、三个底部按钮跳转的页面,他们公用左上角的icon,单独提出来,但是他们的头不一样,因此从这里形成了两组AdminHome和ManageBookLayout,AdminHome用于管理员第一次登陆的展示;ManageBookLayout用于数据管理页总组件,关于书籍管理,主要3个要实现的,他们的头、体都不一样,这里书籍管理页面以及三个功能页面也可以和AdminHome同级,这里之所以单独成ManageBookLayout,方便路由层级管理和理解,不然放一块太乱了。路由层级、文件结构如下图(右2副图)。

——动作:管理员点击增加书籍,进入增加书籍页面,输入书籍的6个信息,点击提交

——实现思路:管理员点击提交后,数据会通过发送请求,服务器通过监听端口,以及请求中的路由匹配机制,解析前端提交给服务器的数据,保存到数据库中,并返回数据保存的结果。

——前端代码逻辑:点击按钮后,页面拿到一份管理员输入的数据,通过调用二次封装的ajax,发送POST请求,主要代码如下:

constonFinish=async(values)=>{console.log('Receivedvaluesofform:',values,fileList);try{constresponse=awaitreqAddBook({author:values.author,bookName:values.bookName,bookInfo:values.bookInfo,publisher:values.publisher,bookNum:values.bookNum,bookImg:fileList[0].thumbUrl,});console.log("请求成功",response);if(response.data.status===1){navigate('/admin/manageBooks/addBook',{replace:false});}elseif(response.data.status===0){//如果当前用户已经存在就提示一下alert(response.data.msg)}}catch(error){console.log("请求失败",error);}}reqAddBook=data=>ajax(base.baseurl+base.addBook,data,'POST');//添加图书的接口,发送POST请求//服务器注册一个路由_管理员增加书籍router.post("/admin/manageBooks/addbook",(req,res)=>{addBookServer(req.body,res);})——后台逻辑:服务器接收到数据后,调用addBookServer函数对数据进行进一步处理,存如数据库。但是需要注意,考虑到用户可能同一本书多次添加,本系统没有在前端去加进一步的防误触判定,询问用户是否确定保存,之在服务器端做了判定:如果是同一本书,数量改为相加后的结果。

constBookModel=require("../src/db/book");constaddBookServer=(data,res)=>{BookModel.find({bookName:data.bookName,author:data.author,publisher:data.publisher},(err,docs)=>{if(docs.length>0){//修改数据库的bookNum属性+data.bookNum就行letbookNum=parseInt(docs[0].bookNum)+parseInt(data.bookNum);console.log(bookNum)BookModel.updateOne({bookName:data.bookName,author:data.author,publisher:data.publisher},{$set:{bookNum:bookNum}},(err)=>{if(!err)console.log('修改成功')console.log(err);})res.send({msg:"数据保存成功",status:1})}else{letmodel=newBookModel(data)model.save((err)=>{if(!err){console.log("数据保存成功");res.send({msg:"数据保存成功",status:1})}else{console.log("数据保存失败")res.send({msg:`该书已存在${docs.length}本`,status:0})}})}})}module.exports=addBookServer;基本的设计过程,3个功能点的设计都类似,代码我不一一去放了,只说一下思路和设计页面,方便理解。

(3)删除书籍

——动作:管理员点击删除书籍,进入删除书籍页面,输入书籍作者和书名,点击删除按钮,每次删除都把数据库的最新的5条消息返回展示在前端

——实现思路:管理员点击提交后,数据会通过发送请求,服务器通过监听端口,以及请求中的路由匹配机制,解析前端提交给服务器的数据,进行数据库数据的更新,并返回数据删除后的结果和删除日志记录。

——后端代码逻辑:服务器拿到数据后,先进行删除,如果删除结果中,删除数量>0,说明成功执行了删除,非无效删除(本没有这个书时进行的删除),保存删除记录,成功后返回最新的5条删除记录。

(4)更改书籍

——动作:管理员点击更改书籍,进入更改书籍页面,输入书籍作者和书名,点击检索按钮,如果能检索到,结果会作为输入框的默认值展示,否则会提示,没有这本书

——实现思路:管理员点击提交后,数据会通过发送请求,服务器通过监听端口,以及请求中的路由匹配机制,解析前端提交给服务器的数据。在这个功能模块里进行了两次请求发送,第一次检索,第二次数据更新,每次都返回数据更新结果。

——前端代码逻辑:点击按钮后,页面拿到一份管理员输入的数据,通过调用二次封装的ajax,发送POST请求;接收到后端返回的书籍信息,保存到本地state,作为输入框默认输入,管理员根据提示进一步填写数据并提交更新数据,在接受后台更新状态结果

——后端代码逻辑:服务器第一次拿到数据后,先进行检索,返回检索结果;第二次接收到服务器数据,进行数据更新。

(5)补充主页展示

主页:搜索框、推荐书籍展示、轮播图设置三个功能。

轮播图直接采用的antd4的样式;整体的设计逻辑是,点击设置---》出现图2,搜索框搜索书籍,数据展示在上方===》选择想要检索的书籍===》在下方选择想要放在轮播图中的书籍===》点击提交,回到图1。

THE END
1.系统设计图书管理系统设计1系统简介图书管理系统模版以下是一个图书管理系统的简单开发设计。 1. 系统功能模块设计 前端模块 首页界面(前台用户): 图书展示(分类浏览、搜索功能) 图书详情页(显示书籍详细信息、用户评论等) 用户操作(如借阅、还书) 用户登录/注册 后台管理界面(管理员): 图书管理(新增、删除、编辑书籍信息) https://blog.csdn.net/qq_45729306/article/details/144018982
2.图书管理系统系统架构设计图mob649e81643021的技术博客本文介绍了图书管理系统的基本架构以及各个核心功能模块的实现示例。我们通过代码示例展示了用户注册、图书添加、借阅管理和通知服务的基本逻辑,并用序列图和表格清晰地呈现了系统交互和数据结构设计。通过这样的设计,图书管理系统能够有效地提升用户体验,使借阅和管理图书的过程更加高效。https://blog.51cto.com/u_16175499/12468662
3.模块化示例,这些示例如何体现模块化设计的优势与挑战?图书管理系统是一个用于管理图书馆图书资源、借阅信息以及用户信息的系统,通过模块化设计,可以将系统划分为不同的功能模块,便于维护和扩展。 2. 模块划分 以下是对图书管理系统进行模块化的详细划分: 3. 模块功能实现 以下是对各个模块功能实现的简要描述: https://www.kdun.com/ask/1181217.html
4.图书管理系统功能模块设计详细说明1、一、 系统功能模块图1 读者信息管理功能说明:记录用户主要信息并作为认证借书证的资料;借书证编号、用户账号、密码、姓名、性别、邮箱、部门(工作单位)、年龄、身份证号码、出生日期、借书限制、信用状态、状态,密码重置关联库:用户信息库、借书历史库、预约记录库相关操作:查询、增加、修改、注销、锁定操作流程图:https://www.renrendoc.com/paper/99876104.html
5.图书管理系统系统设计(精选6篇)图书管理系统设计 1、需求分析 图书管理信息采用文件保存,因而要提供文件的输入输出操作;要实现对图书基本信息的查询,则要提供查找操作(提供按书名、作者名查询两种查询方式)和显示操作;要实现对撤销图书信息的删除则要提供文件记录的删除操作;办理借书或还书手续需要提供修改操作;另外还要提供键盘式选择菜单以实现功能选择https://www.360wenmi.com/f/fileu9ihjn2g.html
6.图书管理系统功能模块完整.pdf. 图书管理系统功能模块 一.系统功能模块 1.登录 2.改密 3.日志管理 (1)、日志生成 (2)、日志查询 4.卡信息管理 (1)、空白卡管理 (2)、卡发放 (3)、卡挂失 (4)、卡补办 5.用户信息管理 (1)、学生 (2)、老师 6.门禁点阅读器管理 二.图书信息管理模块 1.图书编号生成(自动生成) 录入时自动生成https://max.book118.com/html/2022/0412/7152060162004111.shtm
7.三个模块教你搭建图书管理系统咱们可以自定义图书管理和借阅记录模块,图书管理模块可以自定义对应需要记录的书籍信息,下面是小编简单搭建的基本信息。比如可以记录书名、类型、价格、目前状态、存放位置等等。 自定义好图书管理模块的字段信息后,咱们可以根据自己自定义好的字段信息把整理好的书籍数据批量导入到系统中,CRM的查询功能可以实时查询出每本书https://www.jiandaoyun.com/article/post/10171.html
8.图书管理系统功能模块设计详细说明.docx图书管理系统功能模块设计详细说明.一、 系统功能模块图读者信息管理功能说明书挂失登记:用户编号、图书编号、借出时间、应还时间、破坏状况说明、补偿金额、操作员编号图书破坏补偿登记:用户编号、图书编号、借出时间、应还时间、破坏状况说明、补偿金额、操作员编号图书信息库,可借图书数目更新关系库:用户信息库、图书https://m.taodocs.com/p-586120787.html
9.图书管理系统设计与实现—看这篇就够了腾讯云开发者社区图书管理系统设计与实现 图书馆人员结构复杂,人员数量有限,涉及方面很广,如果还使用手工操作处理图书借阅问题,工作将非常繁琐,需要大量的人力、物理、财力,极大的浪费了资源,对于图书管理人员来说,图书馆管理包括图书信息管理、图书类别管理、借阅信息管理、管理员信息管理等等。而这些项目在过去靠手工操作,需要手工记录这些https://www.cloud.tencent.com/developer/article/1697988
10.图书管理系统总体设计避免出现频繁的设计变动。 3. 系统总体设计 3.1 系统功能结构设计 图3-1 系统功能结构 1、图书管理系统主要是用户模块和管理员模块。 2、用户模块:该模块用户可见,允许用户注册,用户借书,用户还书,且该模块是整个系统的核心,主要集中在对图书借阅信息的增删改查等与业务需求有关的系统设计。 3、管理员模块:该https://www.jianshu.com/p/7967c63b2f75
11.图书管理系统的设计与实现(关于图书管理系统论文)文化关键词:图书管理系统;数据库设计;系统功能模块;信息化管理 一、引言 在知识经济时代,图书馆作为知识存储与传播的重要场所,馆藏规模持续扩大,读者流量不断攀升,传统依靠手工登记、卡片检索的图书管理模式暴露出诸多弊端,诸如借阅流程繁琐、查找书籍耗时、图书统计困难、无法实时掌握馆藏动态等。利用现代信息技术开发图书管理http://www.tnsroot.cn/culture/202411/t20241123_57265.shtml