添加状态信息

1首先在数据字典里加入可借阅和不可借阅状态

2导入数据字典

javascript 复制代码
export default {
  name: "Book",
  dicts: ['book_borrow_status'],//导入数据字典
  data() {
    return {
      formData: {
        name: null,
        author: null,
        num: null,
        price: null,
        typeId: null,
        status:null//新加状态属性
      },

3设置状态按钮

html 复制代码
<el-table-column label="是否可借阅" align="center" prop="status">
        <template slot-scope="scope">
          <el-switch
            v-model="scope.row.status"
            active-value="0"
            inactive-value="1"
            @change="handleStatusChange(scope.row)"
            :disabled="scope.row.bookStock === 0"//禁用按钮
          ></el-switch>
        </template>
      </el-table-column>

4设置函数实现状态功能

javascript 复制代码
    handleStatusChange(row){
      let text = row.status === "0" ? "可借阅" : "不可借阅"
      this.$modal.confirm('确认要将"' + row.name + '"变为"' + text + '"吗?').then(function() {
        return changeBookStatus(row.id, row.status)
      }).then(() => {
        this.$modal.msgSuccess("设置" + text + "成功")
      }).catch(function() {
        row.status = row.status === "0" ? "1" : "0"
      })
    },

5实现changeBookStatus

javascript 复制代码
// 图书状态修改
export function changeBookStatus(id, status) {
  const data = {
    id,
    status
  }
  return request({
    url: '/book/book/changeStatus',
    method: 'put',
    data: data
  })
}

6实现后端controller

java 复制代码
    /**
     * 状态修改
     */
    @PreAuthorize("@ss.hasPermi('book:book:edit')")
    @Log(title = "图书", businessType = BusinessType.UPDATE)
    @PutMapping("/changeStatus")
    public AjaxResult changeStatus(@RequestBody Book book)
    {
        return toAjax(bookService.updateBookStatus(book));
    }
}

7实现业务逻辑

java 复制代码
    /**
     * 修改图书状态
     *
     * @param book 图书
     * @return 结果
     */
    @Override
    public int updateBookStatus(Book book)
    {
        return bookMapper.updateBookStatus(book);
    }
}

8接口连接

IBookService接口

java 复制代码
    /**
     * 修改用户状态
     *
     * @param book 图书
     * @return 结果
     */
    public int updateBookStatus(Book book);
}

IBookMapper接口

java 复制代码
    public int updateBookStatus(Book book);

9mapper.xml写sql逻辑

XML 复制代码
    <update id="updateBookStatus" parameterType="Book">
        update t_book set status = #{status} where id = #{id}
    </update>

10在service实现类里写业务

当书籍不是空的时候添加自动为可借阅状态

java 复制代码
@Override
    public int insertBook(Book book)
    {
//        if(book.getStatus() != null && "".equals(book.getStatus()))
        if(book != null &&!StringUtils.hasLength(book.getStatus())){
            book.setStatus("1");
        }
        return bookMapper.insertBook(book);
    }

当仓库为0的时候设置状态为不可借阅

java 复制代码
@Override
    public int updateBook(Book book)
    {
        if(book.getBookStock() == 0){
            book.setStatus("1");
        }
        return bookMapper.updateBook(book);
    }
相关推荐
踏着七彩祥云的小丑3 小时前
pytest——Mark标记
开发语言·python·pytest
Dream of maid3 小时前
Python12(网络编程)
开发语言·网络·php
小李子呢02114 小时前
前端八股CSS(2)---动画的实现方式
前端·javascript
W23035765734 小时前
经典算法:最长上升子序列(LIS)深度解析 C++ 实现
开发语言·c++·算法
Y4090014 小时前
【多线程】线程安全(1)
java·开发语言·jvm
不爱吃炸鸡柳4 小时前
Python入门第一课:零基础认识Python + 环境搭建 + 基础语法精讲
开发语言·python
minji...5 小时前
Linux 线程同步与互斥(三) 生产者消费者模型,基于阻塞队列的生产者消费者模型的代码实现
linux·运维·服务器·开发语言·网络·c++·算法
Dxy12393102165 小时前
Python基于BERT的上下文纠错详解
开发语言·python·bert
GreenTea5 小时前
从 Claw-Code 看 AI 驱动的大型项目开发:2 人 + 10 个自治 Agent 如何产出 48K 行 Rust 代码
前端·人工智能·后端