bklLiudl
2024-02-18 e3ef3289ab63c62dfa4f04e08addcdf8fca7dcba
平库入库,地码文本框增加回车验证功能
4个文件已修改
1214 ■■■■ 已修改文件
Pda/View/AsnSetting/pingKuEnter.html 1163 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/PdaAsnController.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pda/View/AsnSetting/pingKuEnter.html
@@ -1,589 +1,634 @@
<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="user-scalable=0,width=device-width,initial-scale=1.0" />
        <meta charset="UTF-8" />
        <!-- <meta name="viewport" content="width=device-width, initial-scale=0.665, minimum-scale=0.5, maximum-scale=1, user-scalable=no" /> -->
        <!-- <meta name="viewport" content="width=device-width, initial-scale=0.665" /> -->
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Boxline PDA</title>
        <link rel="stylesheet" href="/layui/css/layui.css" />
        <link rel="stylesheet" href="/css/style.css" />
        <script src="/js/adaptive.js"></script>
        <link rel="stylesheet" href="/css/my.css" />
        <style type="text/css">
            .layout-bill-info {
                height: auto;
                /* background-color: #009E94; */
            }
            .btn-ok-blue {
                border: none;
                color: #FFFFFF;
                background-color: #0a93e3;
                width: 48%;
                height: 36px;
                border-radius: 5px;
            }
            .btn-ok-red {
                border: none;
                color: #FFFFFF;
                background-color: #9f1707;
                width: 48%;
                height: 36px;
                border-radius: 5px;
            }
            .btn-ok-blue:active {
                opacity: 0.8;
            }
            .btn-ok-red:active {
                opacity: 0.8;
            }
            .foot-container {
                text-align: center;
                /* background-color: #007DDB; */
            }
        </style>
        <link rel="stylesheet" href="/css/adapter.css" />
    </head>
    <body>
        <div id="" class="main-content">
            <div id="" class="layout-title">
                <table border="" cellspacing="" cellpadding="">
                    <tr>
                        <td class="img-back"><a href="../index.html"><img src="/assets/back.jpg" ></a></td>
                        <td class="title-text" lang>平库入库</td>
                        <td class="title-menu-icon"><img id="menuImg" src="/assets/menu.jpg" ></td>
                    </tr>
                </table>
<head>
    <meta name="viewport" content="user-scalable=0,width=device-width,initial-scale=1.0" />
    <meta charset="UTF-8" />
    <!-- <meta name="viewport" content="width=device-width, initial-scale=0.665, minimum-scale=0.5, maximum-scale=1, user-scalable=no" /> -->
    <!-- <meta name="viewport" content="width=device-width, initial-scale=0.665" /> -->
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Boxline PDA</title>
    <link rel="stylesheet" href="/layui/css/layui.css" />
    <link rel="stylesheet" href="/css/style.css" />
    <script src="/js/adaptive.js"></script>
    <link rel="stylesheet" href="/css/my.css" />
    <style type="text/css">
        .layout-bill-info {
            height: auto;
            /* background-color: #009E94; */
        }
        .btn-ok-blue {
            border: none;
            color: #FFFFFF;
            background-color: #0a93e3;
            width: 48%;
            height: 36px;
            border-radius: 5px;
        }
        .btn-ok-red {
            border: none;
            color: #FFFFFF;
            background-color: #9f1707;
            width: 48%;
            height: 36px;
            border-radius: 5px;
        }
        .btn-ok-blue:active {
            opacity: 0.8;
        }
        .btn-ok-red:active {
            opacity: 0.8;
        }
        .foot-container {
            text-align: center;
            /* background-color: #007DDB; */
        }
    </style>
    <link rel="stylesheet" href="/css/adapter.css" />
</head>
<body>
    <div id="" class="main-content">
        <div id="" class="layout-title">
            <table border="" cellspacing="" cellpadding="">
                <tr>
                    <td class="img-back"><a href="../index.html"><img src="/assets/back.jpg"></a></td>
                    <td class="title-text" lang>平库入库</td>
                    <td class="title-menu-icon"><img id="menuImg" src="/assets/menu.jpg"></td>
                </tr>
            </table>
        </div>
        <div id="" class="layout-sub-content">
            <div id="menuList" class="menu">
                <ul class="" style="text-align: center;">
                    <li><a href="../index.html" lang>主页</a></li>
                    <!-- <li><a href="productEnterConfirm.html">入库信息确认</a></li> -->
                    <li><a href="../login.html" lang>重新登录</a></li>
                </ul>
            </div>
            <div id="" class="layout-sub-content" >
                <div id="menuList" class="menu">
                    <ul class="" style="text-align: center;">
                        <li><a href="../index.html" lang>主页</a></li>
                        <!-- <li><a href="productEnterConfirm.html">入库信息确认</a></li> -->
                        <li><a href="../login.html" lang>重新登录</a></li>
                    </ul>
                </div>
                <div id="" class="layout-bill-info">
                    <form class="layui-form" action="" style="height: auto;">
                        <div id="" class="layui-form-item layout-dropdownlist" >
                            <label class="layui-form-label" lang>入库单:</label>
                            <div class="layui-input-block" id="selectDiv">
                                <select id="bar" lay-filter="getbar" lay-search>
                                    <option value=""></option>
                                </select>
                                <img src="/assets/down_arraw.png" >
                            </div>
            <div id="" class="layout-bill-info">
                <form class="layui-form" action="" style="height: auto;">
                    <div id="" class="layui-form-item layout-dropdownlist">
                        <label class="layui-form-label" lang>入库单:</label>
                        <div class="layui-input-block" id="selectDiv">
                            <select id="bar" lay-filter="getbar" lay-search>
                                <option value=""></option>
                            </select>
                            <img src="/assets/down_arraw.png">
                        </div>
                        <div id="" class="layui-form-item layout-input">
                            <label class="layui-form-label" lang>托盘条码:</label>
                            <div class="layui-input-block">
                                <input id="PalletNo" type="text" lay-verify="stock" lang langholder placeholder="请扫描托盘条码"
                                    autocomplete="off" class="layui-input">
                            </div>
                        </div>
                        <div id="" class="layui-form-item layout-input">
                            <label class="layui-form-label" lang>地码:</label>
                            <div class="layui-input-block">
                                <input id="LocatNo" type="text" lay-verify="stock" lang langholder placeholder="请扫描地码"
                                    autocomplete="off" class="layui-input">
                            </div>
                        </div>
                    </form>
                    <div id="" style="text-align: center;">
                        <button class="btn-ok-blue" type="button" lay-submit lay-filter="formBind">确认入库</button>
                    </div>
                    <div id="" class="layui-form-item layout-input">
                        <label class="layui-form-label" lang>托盘条码:</label>
                        <div class="layui-input-block">
                            <input id="PalletNo" type="text" lay-verify="stock" lang langholder placeholder="请扫描托盘条码"
                                autocomplete="off" class="layui-input">
                        </div>
                    </div>
                    <div id="" class="layui-form-item layout-input">
                        <label class="layui-form-label" lang>地码:</label>
                        <div class="layui-input-block">
                            <input id="LocatNo" type="text" lay-verify="stock" lang langholder placeholder="请扫描地码"
                                autocomplete="off" class="layui-input">
                        </div>
                    </div>
                </form>
                <div id="" style="text-align: center;">
                    <button class="btn-ok-blue" type="button" lay-submit lay-filter="formBind">确认入库</button>
                </div>
                <div id="" class="cut-line" >
                    <img src="/assets/fengexian.png" >
                </div>
                <div class="layout-tbl-paging" id="" >
                    <div id="" class="tbl-title">
                        <table class="layout-tbl-input" border="0" cellspacing="" cellpadding="" >
                            <tr>
                                <td>
                                    <!-- <div class="layout-boxinfo">
            </div>
            <div id="" class="cut-line">
                <img src="/assets/fengexian.png">
            </div>
            <div class="layout-tbl-paging" id="">
                <div id="" class="tbl-title">
                    <table class="layout-tbl-input" border="0" cellspacing="" cellpadding="">
                        <tr>
                            <td>
                                <!-- <div class="layout-boxinfo">
                                        <label class="layui-form-label" lang style="width: 35%;">托盘号:</label>
                                        <div class="layui-input-block" style="width: 70%;">
                                            <input id="PalletNo" type="text" disabled lay-verify="required" placeholder=""
                                                autocomplete="off" class="layui-input" style="margin-left: -35px;">
                                        </div>
                                    </div> -->
                                </td>
                                <td>
                                    <div class="layout-boxinfo">
                                        <label class="layui-form-label" style="color: #FF0000" lang>箱子数量:</label>
                                        <div class="layui-input-block">
                                            <input id="boxNum" type="text" disabled lay-verify="required" placeholder=""
                                                autocomplete="off" class="layui-input">
                                        </div>
                            </td>
                            <td>
                                <div class="layout-boxinfo">
                                    <label class="layui-form-label" style="color: #FF0000" lang>箱子数量:</label>
                                    <div class="layui-input-block">
                                        <input id="boxNum" type="text" disabled lay-verify="required" placeholder=""
                                            autocomplete="off" class="layui-input">
                                    </div>
                                </td>
                            </tr>
                        </table>
                    </div>
                    <table id="tableBoxList" class="tbl-box-list" border="" cellspacing="" cellpadding="">
                        <tr><th lang>箱码</th><th lang>名称</th><th lang>数量</th></tr>
                        <tr id="boxCell" style="display: none">
                            <td id="BoxNo" name="BoxNo">AG000001</td>
                            <td id="SkuName" name="SkuName">疫苗名称名称名称</td>
                            <td id="Qty" name="Qty">30</td>
                            <!-- <td name="del">
                                </div>
                            </td>
                        </tr>
                    </table>
                </div>
                <table id="tableBoxList" class="tbl-box-list" border="" cellspacing="" cellpadding="">
                    <tr>
                        <th lang>箱码</th>
                        <th lang>名称</th>
                        <th lang>数量</th>
                    </tr>
                    <tr id="boxCell" style="display: none">
                        <td id="BoxNo" name="BoxNo">AG000001</td>
                        <td id="SkuName" name="SkuName">疫苗名称名称名称</td>
                        <td id="Qty" name="Qty">30</td>
                        <!-- <td name="del">
                                <div id="" class="tbl-btn-del" lang>
                                    删除
                                </div>
                            </td> -->
                        </tr>
                    </table>
                    <!-- 分页 -->
                    <table id="tableBoxPages" class="tbl-box-pages" border="" cellspacing="" cellpadding="">
                        <tr >
                            <td class="page-prev" lang>上一页</td>
                            <td class="page-num page-num-select">1</td>
                            <td class="page-num">2</td>
                            <td class="page-num">3</td>
                            <td class="page-num">4</td>
                            <td class="page-num">5</td>
                            <td class="page-next" lang>下一页</td>
                        </tr>
                    </table>
                </div>
            </div>
                    </tr>
                </table>
                <!-- 分页 -->
                <table id="tableBoxPages" class="tbl-box-pages" border="" cellspacing="" cellpadding="">
                    <tr>
                        <td class="page-prev" lang>上一页</td>
                        <td class="page-num page-num-select">1</td>
                        <td class="page-num">2</td>
                        <td class="page-num">3</td>
                        <td class="page-num">4</td>
                        <td class="page-num">5</td>
                        <td class="page-next" lang>下一页</td>
                    </tr>
                </table>
            </div>
        </div>
        <script src="/js/jquery-3.5.1.min.js"></script>
        <script src="/layui/layui.js"></script>
        <script src="/js/public.js"></script>
        <script src="/js/language.js"></script>
        <script src="/js/jquery.cookie.js"></script>
        <script>
            layui.use(['form', 'jquery'], function() {
                var form = layui.form
                initLanguage()
                setLanguage()
                //当前分页
                var curPageIndex = 1
                var billList = null
                var IsHuiKu=0 //是否回库,0:否 1:是
    </div>
    <script src="/js/jquery-3.5.1.min.js"></script>
    <script src="/layui/layui.js"></script>
    <script src="/js/public.js"></script>
    <script src="/js/language.js"></script>
    <script src="/js/jquery.cookie.js"></script>
    <script>
        layui.use(['form', 'jquery'], function () {
            var form = layui.form
                //获取入库单
                function getBar(selectedvalue) {
                    if (selectedvalue) {
                        let item = getCurBillInfo(selectedvalue)
                        let str = item.ImportWarehouseId + "; " + item.WarehouseName + "; "
                        if(item.LanewayCode == ""){
                            str += ""
                        }else{
                            str += item.LanewayCode
                            str += ";"
                        }
                        if(item.LanewayName == null || $.isPlainObject(item.LanewayName)){
                            str += ""
                        }else{
                            str += item.LanewayName
                        }
                        $('#whName').val(str)
            initLanguage()
            setLanguage()
            //当前分页
            var curPageIndex = 1
            var billList = null
            var IsHuiKu = 0 //是否回库,0:否 1:是
            //
            //获取入库单
            function getBar(selectedvalue) {
                if (selectedvalue) {
                    let item = getCurBillInfo(selectedvalue)
                    let str = item.ImportWarehouseId + "; " + item.WarehouseName + "; "
                    if (item.LanewayCode == "") {
                        str += ""
                    } else {
                        $('#whName').val('')
                        str += item.LanewayCode
                        str += ";"
                    }
                    if (item.LanewayName == null || $.isPlainObject(item.LanewayName)) {
                        str += ""
                    } else {
                        str += item.LanewayName
                    }
                    $('#whName').val(str)
                } else {
                    $('#whName').val('')
                }
                //获取当前所选入库单的信息
                function getCurBillInfo(billcode){
                    for(var i in billList){
                        if(billList[i].ImportBillCode == billcode){
                            return billList[i]
                        }
                    }
                    return null
                }
            }
                $("#selectDiv").click(function(){
                    var input = $('select[id="bar"]').next().find('.layui-select-title input')
                    var val = input.val()
                    //先更新一下入库单
                    updateBillList(function(data){
                        $('select[id="bar"]').next().addClass('layui-form-selected')
                        $('select[id="bar"]').next().find('.layui-select-title input').val(val)
                    })
                })
                //更新入库单
                function updateBillList(callback){
                    var input = $('select[id="bar"]').next().find('.layui-select-title input')
                    var val = input.val()
                    $("#bar").empty()
                    $("#bar").append('<option value =>' + '</option>');
                    form.render('select');
                    var param = {
                        Type: '0,1,2,3',
                    };
                    sendData(IP + "/PdaAsn/GetArrivalNotices", param, 'post', function(res) {
                        if (res.code == 0) { //成功
                            billList = deepCopy(res.data)
                            console.log(billList)
                            for (var i = 0; i < billList.length; i++) {
                                $("#bar").append('<option value =' + billList[i].ASNNo + '>' + billList[i]
                                    .ASNNo +
                                    '</option>');
                            }
                            form.render('select');
                            if(!val){
                                $('#bar').siblings("div.layui-form-select").find('dl').find('.layui-select-tips').addClass('layui-this')
                            }else{
                                var sel = 'dd[lay-value=' + val + ']';
                                $('#bar').siblings("div.layui-form-select").find('dl').find(sel).addClass('layui-this')
                            }
                            callback(billList)
                        } else { //不成功
                            // billList = null
                            // layer.msg(res.msg, {
                            //     icon: 2,
                            //     time: 2000 //2秒关闭(如果不配置,默认是3秒)
                            // }, function() {});
                        }
                    });
                }
                //当托盘条码输入框失去焦点时,检查一下托盘状态
                $("#PalletNo").blur(function(){
                    checkPalletStat()
                })
                $("#PalletNo").keydown(function(e) {
                    if (e.keyCode === 13) {
                        //检查托盘状态
                        checkPalletStat();
                    }
                });
                //检查托盘状态
                function checkPalletStat(){
                    if($("#PalletNo").val() == ""){
                        return
                    }
                    IsHuiKu=0
                    var param1 = {
                        "PalletNo": $("#PalletNo").val()
                    }
                    //获取托盘管理的入库单
                    sendData(IP + "/PdaAsn/GetASNNoByPalletNo", param1, 'post', function(res) {
                        if (res.code == 0) { //成功
                            $("#bar").append('<option value =' + res.data + '>' + res.data +'</option>');
                            $("#bar").find("option[value='"+res.data+"']").prop("selected",true);
                            form.render();
                            if(res.data==''){
                                IsHuiKu=1
                            }
                            var param = {
                                "PalletNo": $("#PalletNo").val()
                            }
                            //检查托盘状态
                            sendData(IP + "/PdaAsn/IsEnablePalletNo", param, 'post', function(res) {
                                if (res.code == 0) { //成功
                                    $.cookie('PalletNo', $("#PalletNo").val());
                                    refreshTable()
                                } else { //不成功
                                    layer.msg(res.msg, {
                                        icon: 2,
                                        time: 2000 //2秒关闭(如果不配置,默认是3秒)
                                    }, function() {});
                                }
                            });
                        } else { //不成功
                            layer.msg(res.msg, {
                                icon: 2,
                                time: 2000 //2秒关闭(如果不配置,默认是3秒)
                            }, function() {
                                //先清空一下箱子列表
                                let trs = $("#tableBoxList tr")
                                let len = trs.length
                                for(i=len - 1; i >=2; i--){
                                    trs[i].remove();
                                }
                            });
                            return
                        }
                    });
                }
                //渲染列表
                function refreshTable() {
                    //先清空一下箱子列表
                    let trs = $("#tableBoxList tr")
                    let len = trs.length
                    for(i=len - 1; i >=2; i--){
                            trs[i].remove();
                    }
                    //设置托盘号
                    $("#PalletNo").val($.cookie('PalletNo'))
                    var param = {
                        // PalletNo: $.cookie('PalletNo')
                        PalletNo: $.cookie('PalletNo'),
                        IsHuiKu : IsHuiKu
                    };
                    sendData(IP + "/PdaAsn/GetBoxInfos", param, 'post', function(res) {
                        console.log(res)
                        if (res.code == 0) { //成功
                            console.log(res)
                            $("#boxNum").val(res.data.length)
                            var list = res.data
                            var arrTrs = new Array()
                            let idx = 0
                            for(var i in list) {
                                // list[i].BoxNo
                                var tr = $("#boxCell").eq(0).clone();
                                tr.appendTo("#tableBoxList");
                                tr.attr('id', list[i].BoxNo)
                                idx++;
                                tr.attr('index', idx)
                                tr.find("td[name='BoxNo']").html(list[i].BoxNo);
                                tr.find("td[name='SkuName']").html(list[i].SkuName);
                                tr.find("td[name='Qty']").html(list[i].Qty);
                                var code = list[i].BoxNo
                                //console.log("code is "+code)
                                // //console.log("BoxNo is "+tr.find("td[name='BoxNo']").html())
                                tr.show();
                                arrTrs[i] = tr
                            }
                            //设置分页
                            setPages(1, list.length)
                        } else { //不成功
                            layer.msg("无数据", {
                                icon: 2,
                                time: 2000 //2秒关闭(如果不配置,默认是3秒)
                            }, function() {});
                            $("#boxNum").val(0)
                            setPages(1, 0)
                        }
                    });
                }
                //确认入库
                form.on('submit(formBind)', function(data) {
                    // if (!$.cookie('userId')) {
                    //     layer.msg('登陆失效,请重新登陆', {
                    //         icon: 2,
                    //         time: 2000 //2秒关闭(如果不配置,默认是3秒)
                    //     }, function() {
                    //         location.href = "login.html";
                    //         //回调
                    //     });
                    // }
                    let bval = $('select[id="bar"]').next().find('.layui-select-title input').val()
                    if (!bval && IsHuiKu==0) {
                        layer.msg('请选择入库单', {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        });
                        return;
                    }
                    if (!$("#PalletNo").val()) {
                        layer.msg('请扫描托盘条码', {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        });
                        return;
                    }
                    if (!$("#LocatNo").val()) {
                        layer.msg('请扫描地码', {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        });
                        return;
                    }
                    let item = getCurBillInfo(bval)
                    var param = {
                        PalletNo:$("#PalletNo").val(),
                        LocatNo:$("#LocatNo").val(),
                        ASNNo:$("#bar").val()
                    }
                    param.Qty=Number(param.Qty)
                    sendData(IP + "/PdaAsn/ConfirmInStock", param, 'post', function(res) {
                        if (res.code == 0) { //成功
                            layer.msg(res.msg, {
                                icon: 1,
                                time: 2500 //2秒关闭(如果不配置,默认是3秒)
                            }, function() {
                                clearTable()
                                $("#PalletNo").val('')
                            });
                        } else { //不成功
                            layer.msg(res.msg, {
                                icon: 2,
                                time: 2000 //2秒关闭(如果不配置,默认是3秒)
                            }, function() {
                                //回调
                            });
                        }
                    });
                    return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
                });
                function clearTable(){
                    $("#PalletNo").val('')
                    $("#boxNum").val('')
                    let trs = $("#tableBoxList tr")
                    let len = trs.length
                    for(i=len - 1; i >=2; i--){
                            trs[i].remove();
            //获取当前所选入库单的信息
            function getCurBillInfo(billcode) {
                for (var i in billList) {
                    if (billList[i].ImportBillCode == billcode) {
                        return billList[i]
                    }
                }
                form.verify({
                    stock: [/^[\S]{8}$/, '托盘条码必须为六位字符']
                });
                return null
            }
                function onClickPrevPage(){
                    //console.log("上一页按钮被点击")
                    if(curPageIndex == 1){
                        return
                    }
                    setCurPage(curPageIndex - 1)
                }
                function onClickNextPage(){
                    //console.log("下一页按钮被点击")
                    let n = getBoxPageNum()
                    if(curPageIndex == n){
                        return
                    }
                    setCurPage(curPageIndex + 1)
                }
                function getBoxPageNum()
                {
                    let num = $("#tableBoxList tr").length
                    if(num <= 2 ){
                        return 0
                    }
                    let pageNum = Math.floor(num / 10);
                    if(num % 10 > 0){
                        pageNum += 1;
                    }
                    return pageNum
                }
                //设置分页
                function setPages(pageIndex, boxNum){
                    if(boxNum <= 0){
                        //列表为空,隐藏分页页码
                        $("#tableBoxPages").hide()
                        return
                    }
                    let pageNum = Math.floor(boxNum / 10);
                    if(boxNum % 10 > 0){
                        pageNum += 1;
                    }
                    //console.log("pageNum is " + pageNum)
                    $("#tableBoxPages").find("tr").remove()
                    let table = $("#tableBoxPages")
                    $("<tr></tr>").appendTo("#tableBoxPages")
                    // let newTr = table.append("<tr></tr>")
                    // newTr.append("<td class='page-prev'>上一页</td>")
                    $("<td id='prevPage' class='page-prev'>上一页</td>").appendTo("#tableBoxPages tr")
                    $("#tableBoxPages tr").eq(0).find("td[id^='prevPage']").click(function(){
                        onClickPrevPage()
                    })
                    for(i=1; i < pageNum + 1; i++){
                        // newTr.append("<td class='page-num'>"+ i +"</td>")
                        $("<td class='page-num'>"+ i +"</td>").appendTo("#tableBoxPages tr")
                    }
                    // newTr.append("<td class='page-next'>下一页</td>")
                    $("<td id='nextPage' class='page-next'>下一页</td>").appendTo("#tableBoxPages tr")
                    $("#tableBoxPages tr").eq(0).find("td[id^='nextPage']").click(function(){
                        onClickNextPage()
                    })
                    // pages.show()
                    $("#tableBoxPages").show()
                    setCurPage(1)
                }
                //设置当前分页
                function setCurPage(pageIndex){
                    let totalTrNum = $("#tableBoxList tr").length
                    if(totalTrNum <= 2 ){
                        //console.log("tableBoxList 为空 totalTrNum: " + totalTrNum)
                        //curPageIndex = 1
                        return
                    }
                    let pageNum = getBoxPageNum()
                    if(pageIndex > pageNum){
                        //console.log("设置的页码超出页数, pageIndex : " + pageIndex)
                        //curPageIndex = 1
                        return
                    }
                    let startIndex = (pageIndex - 1) * 10 + 1
                    let n = totalTrNum - startIndex
                    let endIndex = 0
                    if(n > 9){
                        endIndex = startIndex + 9
                    }else{
                        endIndex = startIndex + n
                    }
                    //console.log("startIndex is "+startIndex)
                    //console.log("endIndex is "+endIndex)
                    //startIndex =2
                    //endIndex = 2
                    let trs = $("#tableBoxList tr")
                    //console.log("行数 "+trs.length)
                    let d = 0
                    for(let i = 2; i < trs.length; i++){
                        //console.log("行索引 " + trs.eq(i).attr('index'))
                        let t = trs.eq(i)
                        d = t.attr('index')
                        if(d >= startIndex && d <= endIndex){
                            //console.log("需要显示")
                            //显示行
                            t.show()
                        }else{
                            //隐藏行
                            t.hide()
                        }
                    }
                    curPageIndex = pageIndex
                    let ptr = $("#tableBoxPages tr")
                    for(let i = 1; i < pageNum+1; i++){
                        ptr.eq(0).find("td").eq(i).removeClass("page-num-select")
                        if(i == curPageIndex){
                            ptr.eq(0).find("td").eq(i).addClass("page-num-select")
                        }
                    }
                    //console.log("totalTrNum is " + totalTrNum)
                }
                $("#menuImg").click(function(e){
                    e.stopPropagation()
                    if($("#menuList").is(":hidden")){
                        $("#menuList").show()
                    }else{
                        $("#menuList").hide()
                    }
                })
                $('body').click(function(){
                    // //console.log("body")
                    $("#menuList").hide()
            $("#selectDiv").click(function () {
                var input = $('select[id="bar"]').next().find('.layui-select-title input')
                var val = input.val()
                //先更新一下入库单
                updateBillList(function (data) {
                    $('select[id="bar"]').next().addClass('layui-form-selected')
                    $('select[id="bar"]').next().find('.layui-select-title input').val(val)
                })
            })
        </script>
    </body>
</html>
            //更新入库单
            function updateBillList(callback) {
                var input = $('select[id="bar"]').next().find('.layui-select-title input')
                var val = input.val()
                $("#bar").empty()
                $("#bar").append('<option value =>' + '</option>');
                form.render('select');
                var param = {
                    Type: '0,1,2,3',
                };
                sendData(IP + "/PdaAsn/GetArrivalNotices", param, 'post', function (res) {
                    if (res.code == 0) { //成功
                        billList = deepCopy(res.data)
                        console.log(billList)
                        for (var i = 0; i < billList.length; i++) {
                            $("#bar").append('<option value =' + billList[i].ASNNo + '>' + billList[i]
                                .ASNNo +
                                '</option>');
                        }
                        form.render('select');
                        if (!val) {
                            $('#bar').siblings("div.layui-form-select").find('dl').find('.layui-select-tips').addClass('layui-this')
                        } else {
                            var sel = 'dd[lay-value=' + val + ']';
                            $('#bar').siblings("div.layui-form-select").find('dl').find(sel).addClass('layui-this')
                        }
                        callback(billList)
                    } else { //不成功
                        // billList = null
                        // layer.msg(res.msg, {
                        //     icon: 2,
                        //     time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        // }, function() {});
                    }
                });
            }
            //当托盘条码输入框失去焦点时,检查一下托盘状态
            $("#PalletNo").blur(function () {
                checkPalletStat()
            })
            $("#PalletNo").keydown(function (e) {
                if (e.keyCode === 13) {
                    //检查托盘状态
                    checkPalletStat();
                }
            });
            //检查托盘状态
            function checkPalletStat() {
                if ($("#PalletNo").val() == "") {
                    return
                }
                IsHuiKu = 0
                var param1 = {
                    "PalletNo": $("#PalletNo").val()
                }
                //获取托盘管理的入库单
                sendData(IP + "/PdaAsn/GetASNNoByPalletNo", param1, 'post', function (res) {
                    if (res.code == 0) { //成功
                        $("#bar").append('<option value =' + res.data + '>' + res.data + '</option>');
                        $("#bar").find("option[value='" + res.data + "']").prop("selected", true);
                        form.render();
                        if (res.data == '') {
                            IsHuiKu = 1
                        }
                        var param = {
                            "PalletNo": $("#PalletNo").val()
                        }
                        //检查托盘状态
                        sendData(IP + "/PdaAsn/IsEnablePalletNo", param, 'post', function (res) {
                            if (res.code == 0) { //成功
                                $.cookie('PalletNo', $("#PalletNo").val());
                                refreshTable()
                            } else { //不成功
                                layer.msg(res.msg, {
                                    icon: 2,
                                    time: 2000 //2秒关闭(如果不配置,默认是3秒)
                                }, function () { });
                            }
                        });
                    } else { //不成功
                        layer.msg(res.msg, {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function () {
                            //先清空一下箱子列表
                            let trs = $("#tableBoxList tr")
                            let len = trs.length
                            for (i = len - 1; i >= 2; i--) {
                                trs[i].remove();
                            }
                        });
                        return
                    }
                });
            }
            // 储位信息(地码)失去焦点后触发验证
            $("#LocatNo").blur(function () {
                CheckLocatNo()
            })
            // 储位信息(地码)点击回车后触发验证
            $("#LocatNo").keydown(function (e) {
                if (e.keyCode === 13) {
                    CheckLocatNo();
                }
            });
            // 验证储位信息(地码)是否可用
            function CheckLocatNo() {
                if ($("#LocatNo").val() == "") {
                    return
                }
                var param1 = {
                    "LocatNo": $("#LocatNo").val()
                }
                //获取托盘管理的入库单
                sendData(IP + "/PdaAsn/CheckLocatNo", param1, 'post', function (res) {
                    if (res.code != 0) { //成功
                        layer.msg(res.msg, {
                            icon: 0,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        });
                        // 清空地码信息。暂定清空输入框信息
                        $("#LocatNo").val('');
                        return
                    }
                });
            }
            //渲染列表
            function refreshTable() {
                //先清空一下箱子列表
                let trs = $("#tableBoxList tr")
                let len = trs.length
                for (i = len - 1; i >= 2; i--) {
                    trs[i].remove();
                }
                //设置托盘号
                $("#PalletNo").val($.cookie('PalletNo'))
                var param = {
                    // PalletNo: $.cookie('PalletNo')
                    PalletNo: $.cookie('PalletNo'),
                    IsHuiKu: IsHuiKu
                };
                sendData(IP + "/PdaAsn/GetBoxInfos", param, 'post', function (res) {
                    console.log(res)
                    if (res.code == 0) { //成功
                        console.log(res)
                        $("#boxNum").val(res.data.length)
                        var list = res.data
                        var arrTrs = new Array()
                        let idx = 0
                        for (var i in list) {
                            // list[i].BoxNo
                            var tr = $("#boxCell").eq(0).clone();
                            tr.appendTo("#tableBoxList");
                            tr.attr('id', list[i].BoxNo)
                            idx++;
                            tr.attr('index', idx)
                            tr.find("td[name='BoxNo']").html(list[i].BoxNo);
                            tr.find("td[name='SkuName']").html(list[i].SkuName);
                            tr.find("td[name='Qty']").html(list[i].Qty);
                            var code = list[i].BoxNo
                            //console.log("code is "+code)
                            // //console.log("BoxNo is "+tr.find("td[name='BoxNo']").html())
                            tr.show();
                            arrTrs[i] = tr
                        }
                        //设置分页
                        setPages(1, list.length)
                    } else { //不成功
                        layer.msg("无数据", {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function () { });
                        $("#boxNum").val(0)
                        setPages(1, 0)
                    }
                });
            }
            //确认入库
            form.on('submit(formBind)', function (data) {
                // if (!$.cookie('userId')) {
                //     layer.msg('登陆失效,请重新登陆', {
                //         icon: 2,
                //         time: 2000 //2秒关闭(如果不配置,默认是3秒)
                //     }, function() {
                //         location.href = "login.html";
                //         //回调
                //     });
                // }
                let bval = $('select[id="bar"]').next().find('.layui-select-title input').val()
                if (!bval && IsHuiKu == 0) {
                    layer.msg('请选择入库单', {
                        icon: 2,
                        time: 2000 //2秒关闭(如果不配置,默认是3秒)
                    });
                    return;
                }
                if (!$("#PalletNo").val()) {
                    layer.msg('请扫描托盘条码', {
                        icon: 2,
                        time: 2000 //2秒关闭(如果不配置,默认是3秒)
                    });
                    return;
                }
                if (!$("#LocatNo").val()) {
                    layer.msg('请扫描地码', {
                        icon: 2,
                        time: 2000 //2秒关闭(如果不配置,默认是3秒)
                    });
                    return;
                }
                let item = getCurBillInfo(bval)
                var param = {
                    PalletNo: $("#PalletNo").val(),
                    LocatNo: $("#LocatNo").val(),
                    ASNNo: $("#bar").val()
                }
                param.Qty = Number(param.Qty)
                sendData(IP + "/PdaAsn/ConfirmInStock", param, 'post', function (res) {
                    if (res.code == 0) { //成功
                        layer.msg(res.msg, {
                            icon: 1,
                            time: 2500 //2秒关闭(如果不配置,默认是3秒)
                        }, function () {
                            clearTable()
                            $("#PalletNo").val('')
                        });
                    } else { //不成功
                        layer.msg(res.msg, {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function () {
                            //回调
                        });
                    }
                });
                return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
            });
            function clearTable() {
                $("#PalletNo").val('')
                $("#boxNum").val('')
                let trs = $("#tableBoxList tr")
                let len = trs.length
                for (i = len - 1; i >= 2; i--) {
                    trs[i].remove();
                }
            }
            form.verify({
                stock: [/^[\S]{8}$/, '托盘条码必须为六位字符']
            });
            function onClickPrevPage() {
                //console.log("上一页按钮被点击")
                if (curPageIndex == 1) {
                    return
                }
                setCurPage(curPageIndex - 1)
            }
            function onClickNextPage() {
                //console.log("下一页按钮被点击")
                let n = getBoxPageNum()
                if (curPageIndex == n) {
                    return
                }
                setCurPage(curPageIndex + 1)
            }
            function getBoxPageNum() {
                let num = $("#tableBoxList tr").length
                if (num <= 2) {
                    return 0
                }
                let pageNum = Math.floor(num / 10);
                if (num % 10 > 0) {
                    pageNum += 1;
                }
                return pageNum
            }
            //设置分页
            function setPages(pageIndex, boxNum) {
                if (boxNum <= 0) {
                    //列表为空,隐藏分页页码
                    $("#tableBoxPages").hide()
                    return
                }
                let pageNum = Math.floor(boxNum / 10);
                if (boxNum % 10 > 0) {
                    pageNum += 1;
                }
                //console.log("pageNum is " + pageNum)
                $("#tableBoxPages").find("tr").remove()
                let table = $("#tableBoxPages")
                $("<tr></tr>").appendTo("#tableBoxPages")
                // let newTr = table.append("<tr></tr>")
                // newTr.append("<td class='page-prev'>上一页</td>")
                $("<td id='prevPage' class='page-prev'>上一页</td>").appendTo("#tableBoxPages tr")
                $("#tableBoxPages tr").eq(0).find("td[id^='prevPage']").click(function () {
                    onClickPrevPage()
                })
                for (i = 1; i < pageNum + 1; i++) {
                    // newTr.append("<td class='page-num'>"+ i +"</td>")
                    $("<td class='page-num'>" + i + "</td>").appendTo("#tableBoxPages tr")
                }
                // newTr.append("<td class='page-next'>下一页</td>")
                $("<td id='nextPage' class='page-next'>下一页</td>").appendTo("#tableBoxPages tr")
                $("#tableBoxPages tr").eq(0).find("td[id^='nextPage']").click(function () {
                    onClickNextPage()
                })
                // pages.show()
                $("#tableBoxPages").show()
                setCurPage(1)
            }
            //设置当前分页
            function setCurPage(pageIndex) {
                let totalTrNum = $("#tableBoxList tr").length
                if (totalTrNum <= 2) {
                    //console.log("tableBoxList 为空 totalTrNum: " + totalTrNum)
                    //curPageIndex = 1
                    return
                }
                let pageNum = getBoxPageNum()
                if (pageIndex > pageNum) {
                    //console.log("设置的页码超出页数, pageIndex : " + pageIndex)
                    //curPageIndex = 1
                    return
                }
                let startIndex = (pageIndex - 1) * 10 + 1
                let n = totalTrNum - startIndex
                let endIndex = 0
                if (n > 9) {
                    endIndex = startIndex + 9
                } else {
                    endIndex = startIndex + n
                }
                //console.log("startIndex is "+startIndex)
                //console.log("endIndex is "+endIndex)
                //startIndex =2
                //endIndex = 2
                let trs = $("#tableBoxList tr")
                //console.log("行数 "+trs.length)
                let d = 0
                for (let i = 2; i < trs.length; i++) {
                    //console.log("行索引 " + trs.eq(i).attr('index'))
                    let t = trs.eq(i)
                    d = t.attr('index')
                    if (d >= startIndex && d <= endIndex) {
                        //console.log("需要显示")
                        //显示行
                        t.show()
                    } else {
                        //隐藏行
                        t.hide()
                    }
                }
                curPageIndex = pageIndex
                let ptr = $("#tableBoxPages tr")
                for (let i = 1; i < pageNum + 1; i++) {
                    ptr.eq(0).find("td").eq(i).removeClass("page-num-select")
                    if (i == curPageIndex) {
                        ptr.eq(0).find("td").eq(i).addClass("page-num-select")
                    }
                }
                //console.log("totalTrNum is " + totalTrNum)
            }
            $("#menuImg").click(function (e) {
                e.stopPropagation()
                if ($("#menuList").is(":hidden")) {
                    $("#menuList").show()
                } else {
                    $("#menuList").hide()
                }
            })
            $('body').click(function () {
                // //console.log("body")
                $("#menuList").hide()
            })
        })
    </script>
</body>
</html>
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -1281,6 +1281,30 @@
            }
        }
        /// <summary>
        /// 验证储位地址(地码)是否可用
        /// </summary>
        /// <param name="locatNo">储位编码</param>
        /// <returns></returns>
        public string CheckLocatNo(string locatNo)
        {
            try
            {
                string strMsg = "";
                var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == locatNo && w.Status == "0" && w.WareHouseNo == "W02");
                if (storageLocat == null)
                {
                    throw new Exception("-1:地码(储位信息)不存在或非空闲状态,请核查!");
                }
                return strMsg;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        //根据箱码获取物料、批次、数量等信息
        public PdaPalletNoCheckDto GetBoxInfoByBoxNo(string boxNo)
        {
Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs
@@ -55,6 +55,13 @@
        //根据托盘号获取入库单号
        string GetASNNoByPalletNo(string palletNo);
        /// <summary>
        /// 验证储位地址(地码)是否可用。
        /// </summary>
        /// <param name="LocatNo"></param>
        /// <returns></returns>
        string CheckLocatNo(string LocatNo);
        //根据箱码获取物料、批次、数量等信息
        PdaPalletNoCheckDto GetBoxInfoByBoxNo(string boxNo);
Wms/Wms/Controllers/PdaAsnController.cs
@@ -383,6 +383,26 @@
                return Ok(new { code = 1, msg = e.Message });
            }
        }
        /// <summary>
        /// 验证储位(地码)是否可用
        /// </summary>
        /// <param name="model">LocatNo储位地址</param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult CheckLocatNo(PalletBindVm model)
        {
            try
            {
                var result = _PdaAsnSvc.CheckLocatNo(model.LocatNo);
                return Ok(new { code = 0, msg = "验证成功!", data = result });
            }
            catch (Exception e)
            {
                return Ok(new { code = 1, msg = e.Message });
            }
        }
        #endregion
        #region 零箱入库