添加状态信息

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);
    }
相关推荐
好好学习啊天天向上几秒前
CFD,GPU加速效果,FUN3D GPU移植加速效果2
javascript·opencv·webpack
LYOBOYI1236 分钟前
qml的基本语法讲解
java·开发语言
tgethe6 分钟前
==和equals的区别
java·开发语言·jvm
接着奏乐接着舞。8 分钟前
3D地球可视化教程 - 第6篇:蜂巢网格与自定义几何体
前端·vue.js·3d·threejs
GISer_Jing10 分钟前
Taro打造电商项目实战
前端·javascript·人工智能·aigc·taro
期待のcode11 分钟前
java数据类型
java·开发语言
幽络源小助理11 分钟前
简约个人发卡系统开源源码已测 – PHP源码
开发语言·php
KLW7515 分钟前
vue watch监听
前端·javascript·vue.js
夏幻灵18 分钟前
从0开始学JAVA-2 String和char的区别
java·开发语言
huluang18 分钟前
高性能Word文档批注处理器的设计与实现
开发语言·c#·word