1首先在數據字典里加入可借閱和不可借閱狀態
2導入數據字典
export default {name: "Book",dicts: ['book_borrow_status'],//導入數據字典data() {return {formData: {name: null,author: null,num: null,price: null,typeId: null,status:null//新加狀態屬性},
3設置狀態按鈕
<el-table-column label="是否可借閱" align="center" prop="status"><template slot-scope="scope"><el-switchv-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設置函數實現狀態功能
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
// 圖書狀態修改
export function changeBookStatus(id, status) {const data = {id,status}return request({url: '/book/book/changeStatus',method: 'put',data: data})
}
6實現后端controller
/*** 狀態修改*/@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實現業務邏輯
/*** 修改圖書狀態** @param book 圖書* @return 結果*/@Overridepublic int updateBookStatus(Book book){return bookMapper.updateBookStatus(book);}
}
8接口連接
IBookService接口
/*** 修改用戶狀態** @param book 圖書* @return 結果*/public int updateBookStatus(Book book);
}
IBookMapper接口
public int updateBookStatus(Book book);
9mapper.xml寫sql邏輯
<update id="updateBookStatus" parameterType="Book">update t_book set status = #{status} where id = #{id}</update>
10在service實現類里寫業務
當書籍不是空的時候添加自動為可借閱狀態
@Overridepublic 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的時候設置狀態為不可借閱
@Overridepublic int updateBook(Book book){if(book.getBookStock() == 0){book.setStatus("1");}return bookMapper.updateBook(book);}