首页 > 其他分享 >9 管理员功能-修改图书

9 管理员功能-修改图书

时间:2024-10-15 14:21:25浏览次数:10  
标签:set 修改 book 管理员 result 图书 row

1 请求接口

请求路径:http://localhost:8082/book/updateBook
请求方式:PUT
接口描述:提交登录的token信息,要求为管理员权限,根据获取的bookId来修改指定的图书相关信息。
请求参数:postman中使用 raw 模式,提交JSON格式请求体。

2 修改图书后台功能实现(Java)

//更新图书信息
    @PutMapping("/updateBook")
    public Result updateBookMsg(@RequestBody Book book){
        UpdateWrapper<Book> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("book_id", book.getBookId())
                .set("book_name", book.getBookName())
                .set("book_isbn", book.getBookIsbn())
                .set("book_press", book.getBookPress())
                .set("book_author", book.getBookAuthor())
                .set("book_pagination", book.getBookPagination())
                .set("book_price", book.getBookPrice())
                .set("book_uploadtime", book.getBookUploadtime())
                .set("book_status", book.getBookStatus())
                .set("book_borrower", book.getBookBorrower())
                .set("book_borrowtime", book.getBookBorrowtime())
                .set("book_returntime", book.getBookReturntime());
        boolean result = iBookService.update(updateWrapper);
        if (result) {
            return Result.success("修改图书成功!");
        } else {
            return Result.error("修改失败,图书可能不存在或是出现错误!");
        }

    }

3 /api/book.js中添加修改图书的接口代码

// 修改图书
export const bookUpdateService = (bookData) => {
    return request.put('/book/updateBook', bookData)
}

4 修改BookResourcesVue组件中 图书列表部分框架如下

   <!-- 图书列表 -->
        <el-table :data="books" style="width: 100%" :default-sort="{ prop: 'bookName', order: 'descending' }">
            <el-table-column label="书名" sortable>
                <template #default="{ row }">
                    <el-input v-if="isEditing(row)" v-model="row.bookName" />
                    <span v-else>{{ row.bookName }}</span>
                </template>
            </el-table-column>
            <el-table-column label="ISBN">
                <template #default="{ row }">
                    <el-input v-if="isEditing(row)" v-model="row.bookIsbn" />
                    <span v-else>{{ row.bookIsbn }}</span>
                </template>
            </el-table-column>
            <el-table-column label="出版社">
                <template #default="{ row }">
                    <el-input v-if="isEditing(row)" v-model="row.bookPress" />
                    <span v-else>{{ row.bookPress }}</span>
                </template>
            </el-table-column>
            <el-table-column label="作者">
                <template #default="{ row }">
                    <el-input v-if="isEditing(row)" v-model="row.bookAuthor" />
                    <span v-else>{{ row.bookAuthor }}</span>
                </template>
            </el-table-column>
            <el-table-column label="页数">
                <template #default="{ row }">
                    <el-input v-if="isEditing(row)" v-model.number="row.bookPagination" />
                    <span v-else>{{ row.bookPagination }}</span>
                </template>
            </el-table-column>
            <el-table-column label="价格">
                <template #default="{ row }">
                    <el-input v-if="isEditing(row)" v-model="row.bookPrice" />
                    <span v-else>{{ row.bookPrice }}</span>
                </template>
            </el-table-column>
            <el-table-column label="上传时间" prop="bookUploadtime"></el-table-column>
            <el-table-column label="状态" prop="bookStatus" sortable></el-table-column>
            <el-table-column label="借阅人" prop="bookBorrower"></el-table-column>
            <el-table-column label="借阅时间" prop="bookBorrowtime"></el-table-column>
            <el-table-column label="归还时间" prop="bookReturntime"></el-table-column>
            <el-table-column v-if="useruserInfoStore.isAdmin" label="操作" width="100">
                <template #default="{ row }">
                    <el-button v-if="!isEditing(row)" :icon="Edit" circle plain type="primary"
                        @click="startEdit(row.bookId)"></el-button>
                    <el-button v-else :icon="Check" circle plain type="success" @click="updateBook(row)">提交</el-button>
                    <el-button v-if="isEditing(row)" :icon="Close" circle plain type="danger"
                        @click="cancelEdit()">取消</el-button>
                    <el-button v-if="!isEditing(row)" :icon="Delete" circle plain type="danger"
                        @click="deleteBook(row.bookId)"></el-button>
                </template>
            </el-table-column>
            <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>

            <template #empty>
                <el-empty description="没有数据" />
            </template>
        </el-table>

5 调用接口代码,实现编辑功能

// 开始编辑图书
const startEdit = (bookId) => {
    editingBookId.value = bookId

}

// 取消编辑图书
const cancelEdit = () => {
    editingBookId.value = null
}

// 更新图书
import { bookUpdateService } from '@/api/book.js'
const updateBook = (book) => {
    bookUpdateService(book).then(result => {
        ElMessage.success(result.message ? result.message : '更新成功')
        // 刷新列表
        getBooks()
        // 取消编辑状态
        editingBookId.value = null
    }).catch(error => {
        ElMessage.error(error.message)
    })
}

6 功能演示

修改操作演示
修改图书操作演示
在这里插入图片描述

标签:set,修改,book,管理员,result,图书,row
From: https://blog.csdn.net/zi__you/article/details/142952891

相关文章

  • 清除openstack导出的qcow2格式的Windows16镜像的管理员密码
    由于公司使用的openstack版本太老,无法使用cloudbase-init传递元数据修改win16镜像的管理员密码,所以琢磨其它办法,搞了一个星期。原理:使用kpartx挂载镜像,然后使用chntpw清空密码,并修改cloudbase-init配置文件里的重置密码选项。准备环境系统:centos7.5磁盘80G(转换win16镜像由qcow......
  • 公司网站框架怎么修改?
    要修改公司网站的框架,你可以按照以下步骤进行:需求分析:确定修改的目的和目标。收集用户反馈或业务需求,明确哪些部分需要改进。设计新框架:根据收集到的需求重新设计网站结构图。制作线框图或原型图,展示页面布局、导航结构等关键元素。技术选型:评估现有技术栈是否......
  • 怎么修改自己公司网站内容?
    要修改公司网站的内容,可以按照以下步骤操作:登录后台管理系统:如果你的公司网站使用了内容管理系统(CMS),例如WordPress、Drupal或Joomla,你需要登录到该系统的管理后台。通常可以通过在网站域名后面加上 /admin 或 /wp-admin 来访问后台登录页面。获取登录凭证:确保你有......
  • 请问如何修改网站内容
    要修改网站的内容,通常有几种方法,具体取决于网站的技术栈和你的访问权限。下面是一些常见的方法:直接编辑源文件:如果你有对服务器上网站文件的直接访问权限(例如通过FTP/SFTP或直接在服务器上操作),可以直接编辑HTML、CSS、JavaScript等文件来修改内容。使用CMS(内容管理系统):......
  • 怎么修改网站内容怎么修改网站内容后上传到网页上
    要修改网站内容并上传到网页上,你可以按照以下步骤操作:获取网站源码:如果你有网站的源代码,可以直接进行下一步。如果没有源代码,需要从服务器或版本控制系统(如Git)下载最新的源代码。编辑网站文件:使用文本编辑器(如VSCode,SublimeText)打开网站的HTML、CSS、JavaScript等......
  • 怎样修改网站
    修改网站通常涉及以下几个步骤:确定需求:首先明确你需要对网站进行哪些方面的修改,比如更新内容、调整布局、增加新功能或修复问题等。备份现有网站:在进行任何更改之前,请确保先备份现有的网站文件和数据库,以防万一修改过程中出现问题可以恢复。选择编辑工具:根据网站的技术栈(如HTM......
  • 如何修改自己网站的域名
    修改网站的域名通常涉及以下几个步骤:购买新域名:在域名注册商处购买您想要的新域名。更新DNS设置:登录到您的域名注册商或托管服务提供商的控制面板。修改DNS记录,将新的域名指向您网站的服务器IP地址或CDN地址。更新网站配置:如果您的网站使用的是CMS系统(如WordPre......
  • 宝塔面板网站目录修改
    可以设置当前站点的目录地址、站点程序的运行目录、防跨站攻击、写访问日志。防跨站攻击:开启防跨站攻击。通过限制PHP脚本所能访问的范围,防跨站攻击(open_basedir)可以增加服务器的安全性,防止恶意脚本访问服务器上的其他数据和应用程序。就像你限制小孩只能在家里的院子里玩......
  • 修改网站源代码的步骤
    修改网站源代码通常涉及以下几个步骤:备份现有代码:在进行任何更改之前,确保对当前的源代码进行完整备份。这有助于在出现问题时恢复到修改前的状态。获取源代码:通过FTP/SFTP、Git或其他版本控制系统将网站源代码下载到本地计算机上。分析需求:明确你需要做出哪些具......
  • 请问怎样修改公司的网站内容?
    要修改公司的网站内容,通常可以按照以下步骤进行:获取访问权限:确保你拥有网站后台管理系统的登录凭证。备份现有内容:在进行任何更改之前,先备份当前的网站内容和数据库,以防意外丢失数据。规划更改内容:明确你需要修改的具体内容,如文本、图片或页面布局等。准备好新......