Spring Boot圖書管理系統項目實戰-8.續借圖書

導航:

pre:  7.借閱圖書

next:9.歸還圖書

 

只挑重點的講,具體的請看項目源碼。

1.項目源碼

需要的朋友請給個贊,並留下郵箱,給你們發!

 

2.頁面設計

2.1 bookReBorrow.html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>續借圖書</title>
    <link rel="stylesheet" href="/static/layui/css/layui.css" th:href="@{/static/layui/css/layui.css}">

</head>

<body>
<!-- 內容主體區域 -->
<div>
    <!--<div class="demoTable" style="padding: 15px">
        搜索:
        <div class="layui-inline">
            <input class="layui-input" id="find" autocomplete="off">
        </div>
        <button class="layui-btn" data-type="reload" id="queryRole">搜索</button>
    </div>-->

    <table id="tb_bookBorrow" lay-filter="tb_bookBorrow"></table>

</div>

<!--編輯表單-->
<script type="text/html" id="book-toolbar">
    <!--<div class="layui-btn-container">
        <button class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon">&#xe608;</i>新增</button>
        <button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="remove"><i class="layui-icon">&#xe640;</i>刪除
        </button>
    </div>-->
    <!--<div class="layui-btn-container">
        <button class="layui-btn layui-btn-sm" lay-event="getCheckData">獲取選中行數據</button>
        <button class="layui-btn layui-btn-sm" lay-event="getCheckLength">獲取選中數目</button>
        <button class="layui-btn layui-btn-sm" lay-event="isAll">驗證是否全選</button>
    </div>-->
</script>

<script type="text/html" id="barOps">
    <a class="layui-btn layui-btn-sm" lay-event="edit"><i class="layui-icon">&#xe642;</i> </a>
</script>

<script src="/static/js/jquery-1.11.3.min.js" th:src="@{/static/js/jquery-1.11.3.min.js}"></script>
<script src="/static/layui/layui.all.js" th:src="@{static/layui/layui.all.js}"></script>
<script src="/static/js/util.js" th:src="@{/static/js/util.js}"></script>

<!--ctx-->
<script th:replace="~{fragment::ctx}"/>

<script>
    var element, layer, laydate, table, form,userTable;

    function reload(){
        userTable.reload();
    }

    $(function () {
        // 使用模塊
        layui.use(['element', 'layer', 'laydate', 'table', 'form'], function () {
            element = layui.element;
            layer = layui.layer;
            laydate = layui.laydate;
            table = layui.table;
            form = layui.form;
        });

        //第一個實例
         userTable = table.render({
            elem: '#tb_bookBorrow'
            , height: 515
            , url: ctx+'api/bookBorrow/getPageResult' //數據接口
            , page: true //開啓分頁
            , toolbar: '#book-toolbar'
            /*,request: {
                pageName: 'pageNo' //頁碼的參數名稱,默認:page
                ,limitName: 'pageSize' //每頁數據量的參數名,默認:limit
            }
            , response: {
                statusName: 'code', //規定返回的狀態碼字段爲code
                statusCode: 200 //規定成功的狀態碼爲200,默認爲0
            }
            , parseData: function (res) {
                 return {
                     "code": res.code, //解析接口狀態
                     "msg": res.msg, //解析提示文本
                     "count": res.records, //解析數據長度
                     "data": res.rows //解析數據列表
                 }
             }*/
            , cols: [
                [ //表頭
                {type: 'checkbox', fixed: 'left'}
                , {field: 'id', title: 'ID', width: 80, sort: true, fixed: 'left',hide:true}
                , {field: 'borrowStatus', title: '狀態', width: 80,hide:true}
                , {field: 'readerCode', title: '讀者編碼', width: 160}
                , {field: 'readerName', title: '讀者姓名', width: 160}
                , {field: 'readerSex', title: '讀者性別', width: 120}
                , {field: 'readerPhone', title: '讀者電話', width: 160}
                , {field: 'bookIsbn', title: '圖書ISBN', width: 160}
                , {field: 'bookName', title: '圖書名稱', width: 160}
                , {field: 'bookAuthor', title: '圖書作者', width: 120}
                , {field: 'bookCategory', title: '圖書分類', width: 120}
                , {field: 'bookLocation', title: '圖書位置', width: 180}
                , {field: 'bookTotal', title: '圖書數量', width: 120}
                , {field: 'bookLeft', title: '圖書剩餘', width: 120}
                , {field: 'borrowDate', title: '借閱日期', width: 120,templet:'<div>{{ layui.util.toDateString(d.borrowDate, "yyyy-MM-dd") }}</div>'}
                , {field: 'returnDate', title: '應還日期', width: 120,templet:'<div>{{ layui.util.toDateString(d.returnDate, "yyyy-MM-dd") }}</div>'}
                , {field: 'borrowDays', title: '借閱天數', width: 120}
                , {field: 'remark', title: '備註', width: 180}
                , {fixed: 'right', title: '操作', toolbar: '#barOps', width: 120}
            ]
             ]
        });


        //工具欄事件

        // 監聽工具條
        table.on('tool(tb_bookBorrow)', function (obj) {
            var data = obj.data;
            // 修改
            if (obj.event === 'edit') {
                top.layer.open({
                    type: 2,
                    offset: '10px',
                    title: "修改借閱",
                    area: ['800px', '680px'],
                    content: [ctx+'bookReBorrowEdit/'+data.id]
                });
            }
        });
    });



</script>
</body>

</html>

2.2 bookReBorrowEdit.html

<!DOCTYPE html>
<html  xmlns:th="http://www.thymeleaf.org">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>續借編輯</title>
    <link rel="stylesheet" href="/static/layui/css/layui.css" th:href="@{/static/layui/css/layui.css}">

    <style type="text/css">

    </style>
</head>

<body style="width: 800px;height: 600px;">
<!--編輯表單-->
<div id="editBook">
    <form class="layui-form" id="saveBookBorrow" style="margin-top:10px">
        <input type="hidden" name="id" id="id" th:value="${bookBorrow.id}">
        <input type="hidden" name="borrowStatus" id="borrowStatus" th:value="${bookBorrow.borrowStatus}">

        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">讀者編號</label>
                <div class="layui-input-inline">
                    <input type="text" name="readerCode" id="readerCode" required lay-verify="required" autocomplete="off"
                           class="layui-input  layui-disabled" placeholder="必填" th:value="${bookBorrow.readerCode}">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label">圖書ISBN</label>
                <div class="layui-input-inline">
                    <input type="text" name="bookIsbn" id="bookIsbn" required lay-verify="required" autocomplete="off"
                           class="layui-input  layui-disabled" placeholder="必填" th:value="${bookBorrow.bookIsbn}">
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">讀者姓名</label>
                <div class="layui-input-inline">
                    <input type="text" name="readerName" id="readerName" class="layui-input layui-disabled" th:value="${bookBorrow.readerName}">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label">圖書名稱</label>
                <div class="layui-input-inline">
                    <input type="text" name="bookName" id="bookName" class="layui-input layui-disabled" th:value="${bookBorrow.bookName}">
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">讀者性別</label>
                <div class="layui-input-inline">
                    <input type="text" name="readerSex" id="readerSex" class="layui-input layui-disabled" th:value="${bookBorrow.readerSex}">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label">圖書作者</label>
                <div class="layui-input-inline">
                    <input type="text" name="bookAuthor" id="bookAuthor" class="layui-input layui-disabled" th:value="${bookBorrow.bookAuthor}">
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">讀者電話</label>
                <div class="layui-input-inline">
                    <input type="text" name="readerPhone" id="readerPhone" class="layui-input layui-disabled" th:value="${bookBorrow.readerPhone}">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label">圖書分類</label>
                <div class="layui-input-inline">
                    <input type="text" name="bookCategory" id="bookCategory" class="layui-input layui-disabled" th:value="${bookBorrow.bookCategory}">
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">借出日期</label>
                <div class="layui-inline">
                    <input type="text" name="borrowDate" id="borrowDate" required lay-verify="required" autocomplete="off"
                           class="layui-input  layui-disabled" th:value="${#dates.format(bookBorrow.borrowDate,'yyyy-MM-dd')}">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label">圖書位置</label>
                <div class="layui-input-inline">
                    <input type="text" name="bookLocation" id="bookLocation" class="layui-input layui-disabled" th:value="${bookBorrow.bookLocation}">
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">應還日期</label>
                <div class="layui-inline">
                    <input type="text" name="returnDate" id="returnDate" required lay-verify="required" autocomplete="off"
                           class="layui-input layui-disabled" th:value="${#dates.format(bookBorrow.returnDate,'yyyy-MM-dd')}">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label">圖書數量</label>
                <div class="layui-input-inline">
                    <input type="text" name="bookTotal" id="bookTotal" class="layui-input layui-disabled" th:value="${bookBorrow.bookTotal}">
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">借閱天數</label>
                <div class="layui-input-inline">
                    <input type="text" name="borrowDays" id="borrowDays" class="layui-input layui-disabled" th:value="${bookBorrow.borrowDays}">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label">圖書剩餘</label>
                <div class="layui-input-inline">
                    <input type="text" name="bookLeft" id="bookLeft" class="layui-input layui-disabled" th:value="${bookBorrow.bookLeft}">
                </div>
            </div>
        </div>

        <div class="layui-form-item layui-form-text">
            <div class="layui-inline">
                <label class="layui-form-label">續借天數</label>
                <div class="layui-input-inline">
                    <input type="text" name="reBorrowDays" id="reBorrowDays" class="layui-input"  lay-verify="number|integer" value="0">
                </div>
            </div>

            <div class="layui-inline">
                <label class="layui-form-label">備註</label>
                <div class="layui-input-block">
                    <textarea name="remark" placeholder="請輸入內容" class="layui-textarea  layui-disabled" th:text="${bookBorrow.remark}"></textarea>
                </div>
            </div>
        </div>

        <div class="layui-form-item" style="margin-top:40px" id="check">
            <div class="layui-input-block">
                <button class="layui-btn  layui-btn-submit " lay-submit="" lay-filter="saveBookBorrow">保存</button>
            </div>
        </div>
    </form>
</div>


<script src="/static/js/jquery-1.11.3.min.js" th:src="@{/static/js/jquery-1.11.3.min.js}"></script>
<script src="/static/layui/layui.all.js" th:src="@{/static/layui/layui.all.js}"></script>
<script src="/static/js/util.js" th:src="@{/static/js/util.js}"></script>

<!--ctx-->
<script th:replace="~{fragment::ctx}"/>

<script>
    var element, layer, laydate, form;

    var reBorrowDays = $("#reBorrowDays").val();
    var borrowDays = $("#borrowDays").val();
    var borrowDays1, returnDate;

    $(function () {
        // 使用模塊
        layui.use(['element', 'layer', 'laydate', 'form'], function () {
            element = layui.element;
            layer = layui.layer;
            laydate = layui.laydate;
            form = layui.form;
        });

        $("#reBorrowDays").on(" input propertychange",function(){
            calc();
        });

        // 根據續借天數計算 還書日期
        calc();
        // 監聽表單提交
        // 修改
        form.on('submit(saveBookBorrow)', function (data) {
            console.log(JSON.stringify(data.field));
            $.ajax({
                url: ctx+'api/bookBorrow/save',
                type: 'POST',
                async: false,
                contentType: "application/json",
                dataType: "json",
                data: JSON.stringify(data.field),
                success: function (result) {
                    if (result.code == 200) {
                        cleanForm("#saveBookBorrow");
                        top.$(".layui-show").find("iframe")[0].contentWindow.userTable.reload();
                        top.layer.closeAll();//關閉所有的彈出層
                    } else {
                        layer.alert(result.message);
                    }
                }
            });

            return false;

        });
    });

    function calc() {
        reBorrowDays = $("#reBorrowDays").val();
        returnDate = dateAddDays($("#returnDate").val(),reBorrowDays);
        borrowDays1 = parseInt(borrowDays) + parseInt(reBorrowDays); //?

        $("#borrowDays").val(borrowDays1);
        $("#returnDate").val(returnDate);

        console.log(returnDate);
        console.log(borrowDays);
    }

</script>
</body>

</html>

3.續借圖書service

參考:借閱圖書。

4.續借圖書controller

參考:借閱圖書。

 

 

 

 

需要源碼的朋友留下郵箱:)

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章