添加状态信息

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);
    }
相关推荐
豆苗学前端7 分钟前
vue3+TypeScript 实现一个图片占位符生成器
前端·面试·github
neon12049 分钟前
Vue 3 父子组件通信核心机制详解:defineProps、defineEmits 与 defineExpose 完全指南
前端·javascript·vue.js·前端框架
Ciito14 分钟前
vue+moment将分钟调整为5的倍数(向下取整)
javascript·vue.js
Juchecar25 分钟前
Vue3 开发环境搭建及循序渐进学习指南
前端·javascript
Data_Adventure41 分钟前
@scqilin/phone-ui手机外观组件库
前端
一点一木1 小时前
Vue Vapor 事件机制深潜:从设计动机到源码解析
前端·vue.js·vapor
kyle~1 小时前
Qt---Qt函数库
开发语言·qt
FSHOW1 小时前
记一次开源_大量SVG的高性能渲染
前端·react.js
小牛.7931 小时前
Web第二次作业
前端·javascript·css
Acrelhuang1 小时前
基于柔性管控终端的新能源汽车充电站有序充电系统设计与实现
java·开发语言·人工智能