添加状态信息

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);
    }
相关推荐
deli0070074 分钟前
Markdown 实时预览器:左边写右边看,排版效率翻倍
前端·ai编程
电商API_180079052476 分钟前
速卖通商品采集API技术文章
java·开发语言·c++·api·跨境电商·商品详情
一晌小贪欢8 分钟前
Python办公14:批量解压文件夹内的所有 ZIP/RAR 并自动分类
开发语言·python·excel·数据可视化·python办公
郑州光合科技余经理9 分钟前
海外版外卖系统架构:订单怎么流转、权限怎么分
java·开发语言·前端·系统架构·uni-app·php·ai编程
Python 实战手记10 分钟前
企业微信主体变更公证书办理全解析:适用场景、材料规范、踩坑点与Python信息校验脚本
开发语言·python·企业微信
longxiaozhang611 分钟前
C#异常处理:程序出错了怎么办?
开发语言·数据库·c#
郝学胜-神的一滴21 分钟前
Effective Python 条款 1:确认你正在使用的 Python 版本
开发语言·数据结构·python·程序人生·算法
pengyu24 分钟前
【Kotlin 协程修仙录 · 炼虚境 · 初阶】 | 虚空造物:Channel 基础与协程间通信的管道艺术
android·前端·kotlin
提线木偶25 分钟前
CORS 到底谁说了算?一份跨域配置的避坑指南
前端·后端
九九落1 小时前
北京时间校准怎么做?电脑和手机时间不准的排查方法
javascript