cabinetBox.jsp 13.4 KB
 <%@ page import="com.myproject.webapp.controller.webService.StorageDataController" %>
<%@ include file="/common/taglibs.jsp"%>
<%@ page language="java" pageEncoding="UTF-8"%>

<head>
    <title><fmt:message key="${storage.name}"/></title>
    <meta name="menu" content="Home"/>

    <link href="${ctx}/assets/global/plugins/bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>
    <link href="${ctx}/assets/global/css/components.css" id="style_components" rel="stylesheet" type="text/css"/>


</head>


<c:set var="user" value="<%= StorageDataController.getLoginUser()%>" scope="session"/>

<style>

    .contentBody{
        text-align: center; /*让div内部文字居中*/
        width: 80%;
        height:550px;
        margin: auto;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
    }
    .posBox{
        height: 100px;
        text-align: center;
        padding-top:35px;
        margin-bottom:10px;
        font-size: 16px;
        vertical-align: middle;
        word-wrap:break-word ;

    }
    .stepBox{
        display: none;
    }

    .imageBox{
        margin-top: 40px;
        width:100%;
        height:auto;
    }

    .codeBox{
        margin-top: 40px;
    }

    .boxAvaible{
        cursor: pointer;
    }

    .userInfo{
        text-align: right;
        margin-bottom: 10px;
    }

    .noOp{
        background-color: #e5e5e5 !important;
        cursor: auto !important;
    }
    .msg{
        font-size: 30px;
        color:#ffde5d;
    }
    .pn{
        color:#ffb848 !important;
    }
</style>

<body>
<div class="row dashboard-stat purple-plum" style="margin: 0;height: 100%;">
    <div class="contentBody">
        <div id="step0" class="stepBox">
            <div class="msg">
                <fmt:message key="cabinet.card"/>
            </div>
        </div>
        <div id="step1" class="stepBox">
            <div class="row">
                <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
                    <div class="bg-grey-silver posBox" name="1-1">1-1
                        <div class="pn"></div></div>
                </div>
                <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
                    <div class="posBox" style="padding-top: 0px;" id="userBox">
                        <div class="userInfo">
                            <span id="opUser"></span> [<a href="#" id="quit"><fmt:message key="cabinet.exit"/> </a>]
                        </div>
                        <div style="width: 100%;">
                            <input type="text" class="form-control" placeholder="PN" id="query">
                        </div>
                    </div>

                </div>
                <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
                    <div class="bg-grey-silver posBox" name="3-1">
                        <div class="pn"></div>3-1</div>
                </div>
            </div>
            <div class="row">
                <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
                    <div class="bg-grey-silver posBox" name="1-2">1-2
                        <div class="pn"></div></div>
                </div>
                <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
                    <div class="bg-grey-silver posBox" name="2-1">2-1
                        <div class="pn"></div></div>
                </div>
                <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
                    <div class="bg-grey-silver posBox" name="3-2">3-2
                        <div class="pn"></div></div>
                </div>
            </div>
            <div class="row">
                <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
                    <div class="bg-grey-silver posBox" name="1-3">1-3
                        <div class="pn"></div></div>
                </div>
                <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
                    <div class="bg-grey-silver posBox" name="2-2">2-2
                        <div class="pn"></div></div>
                </div>
                <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
                    <div class="bg-grey-silver posBox" name="3-3">3-3
                        <div class="pn"></div>
                    </div>
                </div>
            </div>
            <div class="row">
                <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
                    <div class="bg-grey-silver posBox" name="1-4">1-4
                        <div class="pn"></div></div>
                </div>
                <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
                    <div class="bg-grey-silver posBox" name="2-3">
                        2-3
                        <div class="pn"></div>
                    </div>
                </div>
                <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
                    <div class="bg-grey-silver posBox" name="3-4">3-4
                        <div class="pn"></div></div>
                </div>
            </div>
            <div class="row">
                <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
                    <div class="bg-grey-silver posBox" name="1-5">1-5
                        <div class="pn"></div></div>
                </div>
                <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
                    <div class="bg-grey-silver posBox" name="2-4">2-4
                        <div class="pn"></div></div>
                </div>
                <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
                    <div class="bg-grey-silver posBox" name="3-5">3-5
                        <div class="pn"></div></div>
                </div>
            </div>
        </div>


        <fmt:message key="cabinet.msg.closeDoor" var="initMsg"/>
        <%--信息填写--%>
        <div id="step2" class="stepBox">
            <input type="text" class="form-control" id="scan-code"/>
            <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
                <div class="imageBox">
                    <img src="${ctx}/images/nopic.png" alt="" class="img-responsive" id="theImg">
                </div>
            </div>
            <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
                <div class="codeBox">

                    <div class="alert alert-info col-lg-12" id="msg">
                        ${initMsg}
                    </div>

                    <div class="form-group col-lg-12">
                        <label class="control-label col-md-3"><fmt:message key="cabinet.pos"/></label>
                        <div class="col-md-9">
                            <input type="text" class="form-control" readonly id="posName">
                        </div>
                    </div>

                    <div class="form-group col-lg-12">
                        <label class="control-label col-md-3"><fmt:message key="barcode.barcode"/> </label>
                        <div class="col-md-9">
                            <input type="text" class="form-control" readonly id="barcode">
                        </div>
                    </div>


                    <div class="form-group  col-lg-12">
                        <label class="control-label col-md-3"><fmt:message key="barcode.partNumber"/></label>
                        <div class="col-md-9">
                            <input type="text" class="form-control" readonly id="partNumber">
                        </div>
                    </div>


                    <div class="form-group  col-lg-12">
                        <label class="control-label col-md-3"><fmt:message key="barcode.amount"/></label>
                        <div class="col-md-9">
                            <input type="text" class="form-control" id="amount" readonly>
                        </div>
                    </div>


                    <div class="clearfix col-lg-12">
                        <div class="form-group  col-lg-6 col-sm-6">
                            <a href="#" class="btn btn-lg green m-icon-big" id="inBtn">
                                <fmt:message key="cabinet.in"/> <i class="m-icon-big-swapup m-icon-white"></i>
                            </a>
                        </div>

                        <div class="form-group  col-lg-6 col-sm-6">
                            <a href="#" class="btn btn-lg yellow m-icon-big" id="outBtn">
                                <fmt:message key="cabinet.out"/><i class="m-icon-big-swapdown m-icon-white"></i>
                            </a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<fmt:message key="cabinet.error.noCode" var="noCodeError"/>
<fmt:message key="cabinet.msg.finish" var="finishedMsg"/>

<script src="${ctx}/assets/global/plugins/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">

    $(".btn").addClass("noOp");
    <c:forEach items="${slots}" var="pos">
        $("[name='${pos.posName}']").attr("id","${pos.id}");
    </c:forEach>

    $('#query').change(function () {
        $(".pn").text("");
        var pn = $(this).val();
        $.post("${ctx}/service/store/cabinet/findPn", {pn: pn, cid: '${show}'}, function (data) {
            $('#query').val("");
            $('#query').attr("placeholder", pn);
            for (var x in data) { // 遍历Array
                $("[name='"+x+"'] .pn").text(data[x]);
            }
        });
    });
    $(".posBox").click(function(){
        if($(this).hasClass("boxAvaible")){
            var posId = $(this).attr("id");
            $.post("${ctx}/service/store/cabinet/openDoor", {posId: posId, cid: '${show}'}, function (data) {
                if(data){
                    showError(data,true);
                }else{
                    $(".btn").addClass("noOp");
                }
            });
        }
    });


    getStep = function (){
        $.post("${ctx}/service/store/cabinet/step", {cid: '${show}'}, function (data) {
            $(".stepBox").hide();
            $("#posName").val(data.currentPos);
            $("#step"+data.step).show();
            if(data.step == 1){
                $("#barcode").val("");
                $("#partNumber").val("");
                $("#amount").val("");
                showError("${initMsg}",false);
                var user = data.currentUser;
                if(user){
                    $('#query').focus();
                    $("#opUser").text(user.username);
                    $(".userInfo").show();
                    var posArr = user.cabinetPosIds;
                    $(".posBox").removeClass("boxAvaible bg-blue-madison bg-grey-silver");
                    $(".posBox").addClass("bg-grey-silver");
                    $("#userBox").removeClass("bg-grey-silver");
                    if(posArr){
                        for(var i in posArr){
                            $("div[id='"+posArr[i]+"'").removeClass("bg-grey-silver");
                            $("div[id='"+posArr[i]+"'").addClass("boxAvaible bg-blue-madison");
                        }
                    }
                }
            }else if(data.step == 2){
                $('#scan-code').focus();
                $('.pn').text("");
            }

        });
    }


    function showError(erroMsg, isErrorMsg){
        if(isErrorMsg){
            $("#msg").addClass("alert-danger");
        }else{
            $("#msg").removeClass("alert-danger");
        }
        $("#msg").text(erroMsg);
        $(".btn").addClass("noOp");
    }

    $("#quit").click(function (){

        $.post("${ctx}/service/store/cabinet/quit", {cid: '${show}'}, function (data) {

        });
    });

    $(".btn").click(function (){
        var noOp = $(this).hasClass("noOp");
        if(!noOp){
            var code = $("#barcode").val();
            $.post("${ctx}/service/store/cabinet/inOutPos", {cid: '${show}', code: code}, function (result) {
                if(result != ''){
                    showError(result, true);
                }else{
                    $("#barcode").val("");
                    $("#partNumber").val("");
                    $("#amount").val("");
                    showError("${finishedMsg}",false);
                }
            });
        }
    });

    $("#scan-code").change(function () {
        $(".btn").addClass("noOp");
        var codeValue = $(this).val();
        $(this).text("");
        $("#barcode").text("");
        $("#partNumber").val("");
        $("#amount").val("");
        $(this).val("");
        $(this).attr("placeholder", codeValue);
        $.post("${ctx}/service/store/resolveBarcode", {code: codeValue}, function (data) {
            if (data) {
                var barcode = data.barcode;
                if(barcode){
                    $("#barcode").val(barcode.barcode);
                    $("#partNumber").val(barcode.partNumber);
                    $("#amount").val(barcode.amount);
                    $("#theImg").attr("src","${ctx}"+data.showImg);
                    if(barcode.posName == null || barcode.posName == ''){
                        $("#inBtn").removeClass("noOp");
                    }else{
                        $("#outBtn").removeClass("noOp");
                    }
                }else{
                    showError("${noCodeError}",true);
                }
            } else {
                showError("${noCodeError}",true);
            }
        });
    })


    function flush(){
        //定时执行,2秒
        getStep();
        window.setTimeout(flush, 200);
    }
    flush();


</script>
</body>