自动化立体仓库 - WMS系统
pang.jiabao
2025-04-15 7317c0c6f3e88ff9476c16e473391e8b8cb2c3ee
src/main/webapp/static/js/picking/picking.js
@@ -2,6 +2,8 @@
var printMatCodeNos = [];
var ordernoo = "123";
var insTbCount = 0;
var selectedData = [];
var selectType = 'one';
layui.config({
    base: baseUrl + "/static/layui/lay/modules/"
}).use(['table','laydate', 'form', 'admin', 'layer'], function(){
@@ -12,6 +14,12 @@
    var form = layui.form;
    var admin = layui.admin;
    layDate.render({
        elem: '.layui-laydate-range'
        ,type: 'datetime'
        ,range: true
    });
    // 数据渲染
    tableIns = table.render({
        elem: '#saasLog',
@@ -21,19 +29,20 @@
        limit: 15,
        limits: [15, 30, 50, 100, 200, 500],
        // toolbar: '#toolbar',
        cellMinWidth: 50,
        // cellMinWidth: 50,
        height: 'full-120',
        cols: [[
            // {type: 'checkbox'}
            {type: 'numbers'}
            {type: 'checkbox'}
            ,{type: 'numbers', title: '序号'}
            ,{field: 'wrkNo', align: 'center',title: 'id', hide:true}
            ,{field: 'doc_num',title: '拣货单号' }
            ,{align: 'center', title: '二维码', toolbar: '#operate', width: 200 , hide:true}
            ,{align: 'center', title: '明细', toolbar: '#tbLook', minWidth: 160, width: 160}
            ,{field: 'status$', align: 'center',title: '状态'}
            // ,{field: 'custName', align: 'center',title: '客户名称', width: 160}
            ,{field: 'createTime$', align: 'center',title: '操作时间'}
            ,{align: 'center', title: '操作', toolbar: '#operate'}
            ,{field: 'custName', align: 'center',title: '客户名称', width: 160}
            ,{field: 'createTime$', align: 'center',title: '创建时间'}
            ,{field: 'updateTime$', align: 'center',title: '出库时间'}
            ,{align: 'center', title: '操作', toolbar: '#operate',width: 300}
        ]],
        request: {
@@ -41,7 +50,6 @@
            pageSize: 'limit'
        },
        parseData: function (res) {
            console.log(res);
            return {
                'code': res.code,
                'msg': res.msg,
@@ -65,6 +73,19 @@
                if ($(this).text() === '未出库') {
                    $('tr').eq(index).css("color", 'red');
                }
            });
            // 重新勾选
            var selectedOrderNos = selectedData.map(item => item.doc_num);
            var indexArr = []
            res.data.forEach(function (item,index) {
                if (selectedOrderNos.includes(item.doc_num)) {
                    indexArr.push(index)
                }
            })
            table.setRowChecked('saasLog',{
                index: indexArr
            });
        }
    });
@@ -97,7 +118,13 @@
                btnPrint2(data.wrkNo, data.doc_num, 4);
                break;
            case "del":
                doDel(data.docNum);
                doDel(data);
                break;
            case "printExcel":
                printExcel(data);
                break;
            case "exportExcel2":
                exportExcel2(data);
                break;
            case "look":
                var $a = $(obj.tr).find('a[lay-event="look"]');
@@ -106,8 +133,8 @@
                var left = offset.left;
                layer.open({
                    type: 1,
                    title: false,
                    area: '1200px',
                    title: '单据明细',
                    area: '1500px',
                    offset: [top + 'px', (left - 450 + $a.outerWidth()) + 'px'],
                    shade: .01,
                    shadeClose: true,
@@ -118,7 +145,7 @@
                            id:'lookSSXMTable',
                            elem: '#lookSSXMTable',
                            headers: {token: localStorage.getItem('token')},
                            url: baseUrl+'/ManPakOut/list/auth',
                            url: baseUrl+'/ManPakOut/list/auth1',
                            where: {
                                doc_num: data.doc_num,
                                uuid: data.uuid
@@ -127,18 +154,22 @@
                            cellMinWidth: 100,
                            cols: [[
                                {type: 'numbers'}
                                ,{field: 'id', align: 'center',title: 'id', hide:true}
                                ,{field: 'wrkNo', align: 'center',title: 'id', hide:true}
                                ,{field: 'docNum', align: 'center',title: '拣货单号'}
                                ,{field: 'uuid', align: 'center',title: 'uuid'}
                                ,{field: 'locNo', align: 'center',title: '库位'}
                                ,{field: 'matnr', align: 'center',title: '物料号'}
                                ,{field: 'maktx', align: 'center',title: '商品名称'}
                                ,{field: 'batch', align: 'center',title: '批号'}
                                ,{field: 'barcode', align: 'center',title: '包号'}
                                // ,{field: 'matnr', align: 'center',title: '物料号'}
                                ,{field: 'maktx', align: 'center',title: '牌号'}
                                ,{field: 'anfme', align: 'center',title: '数量'}
                                ,{field: 'createTime$', align: 'center',title: '操作时间'}
                                ,{field: 'updateTime$', align: 'center',title: '操作时间'}
                                ,{field: 'count', align: 'center',title: '完成数'}
                                ,{field: 'status$', align: 'center',title: '状态'}
                                ,{field: 'memo', align: 'center',title: '备注'}
                                ,{field: 'specs', align: 'center',title: '发货时间'}
                                ,{field: 'createBy', align: 'center',title: '', hide:true}
                                ,{align: 'center', title: '操作', toolbar: '#operateDetl'}
                            ]],
                            request: {
                                pageName: 'curr',
@@ -175,17 +206,113 @@
        }
    });
    table.on('tool(lookSSXMTable)', function(obj) {
        var data = obj.data;
        console.log(data);
        switch (obj.event) {
            case "delDetl":
                layer.confirm('确定要删除吗?', {
                    shade: .1,
                    skin: 'layui-layer-admin'
                }, function (i) {
                    layer.close(i);
                    layer.load(2);
                    $.ajax({
                        url: baseUrl+"/pakout/deleteDetl/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data:{
                            wrkNo:data.wrkNo
                        },
                        method: 'GET',
                        success: function (res) {
                            layer.closeAll('loading');
                            if (res.code === 200){
                                tableIns.reload({page: {curr: 1}});
                                layer.msg(res.msg, {icon: 1});
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            }else {
                                layer.msg(res.msg, {icon: 2});
                            }
                        }
                    })
                })
                break;
        }
    })
    // 搜索
    form.on('submit(search)', function (data) {
        pageCurr = 1;
        tableReload(false);
    });
    // 复选框勾选事件
    table.on('checkbox(saasLog)', function (obj) {
        if (obj.type === 'all' && obj.checked) {
            selectType = 'all'
        } else if (obj.type === 'one' && obj.checked) {
            selectType = 'one'
            selectedData.push(obj.data); // 选中时保存数据
        } else if (obj.type === 'one' && !obj.checked && obj.index !== undefined) {
            selectType = 'one'
            selectedData = selectedData.filter(item => item.doc_num !== obj.data.doc_num); // 取消时移除数据
        } else if (obj.type === 'all' && !obj.checked && obj.index === undefined) {
            selectType = 'one'
            selectedData = [];
        }
    });
    // 重置
    form.on('submit(reset)', function (data) {
        pageCurr = 1;
        selectedData = []
        selectType = 'one'
        clearFormVal($('#search-box'));
        tableReload(false);
    });
    // 导出
    form.on('submit(exportExcel)', function (data) {
        layer.confirm('确定导出Excel吗', {shadeClose: true}, function () {
            layer.closeAll();
            layer.load(1, {shade: [0.1, '#fff']});
            var reqData = {};
            reqData.type = selectType;
            if (reqData.type === 'one') {
                if (selectedData.length === 0) {
                    layer.msg('请先勾选数据')
                    layer.closeAll('loading');
                    return
                }
                reqData.docNumList = selectedData.map(item => item.doc_num);
            } else {
                var searchData = {};
                $.each($('#search-box [name]').serializeArray(), function() {
                    searchData[this.name] = this.value;
                });
                reqData.queryWhere = searchData
            }
            $.ajax({
                url: baseUrl + "/pakOut/excelExport3/auth",
                headers: {'token': localStorage.getItem('token')},
                data: JSON.stringify(reqData),
                contentType: 'application/json;charset=UTF-8',
                method: 'POST',
                xhrFields: {
                    responseType: 'blob'  // 处理返回的文件流
                },
                success: function (res) {
                    var link = document.createElement('a');
                    link.href = URL.createObjectURL(res);  // 使用 Blob 对象生成临时 URL
                    link.download = new Date().getTime() + '.xlsx';  // 设置下载的文件名
                    document.body.appendChild(link);
                    link.click();  // 触发下载
                    document.body.removeChild(link);
                }
            });
            layer.closeAll('loading');
        });
    });
    // 时间选择器
@@ -284,10 +411,9 @@
                        for (let i = 0; i < res.data.length; i++){
                            sum += res.data[i].anfme;
                            console.log("sum:"+res.data.anfme);
                        }
                        json.anfmeSum = sum;
                        json.custName = json.data[0].custName;
                        var barcodeUrl = baseUrl + "/ManPakOut/code/auth?type=1&param=" + res.data[0].docNum;
                        console.log("barcodeUrl:"+barcodeUrl);
                        json.barcodeUrl = barcodeUrl;
@@ -296,9 +422,9 @@
                            var className = templateDom.attr("class");
                            if (className === 'template-barcode') {
                                json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2&param=" + (json.data[i].docNum+";"+json.data[i].matnr+";"+json.data[i].batch+";"+json.data[i].anfme+";"+json.data[i].locNo+";");
                                json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2&param=" + (json.data[i].docNum+";"+json.data[i].matnr+";"+json.data[i].batch+";"+json.data[i].anfme+";"+json.data[i].locNo+";"+json.data[i].barcode+";"+json.data[i].nodeId+";"+json.data[i].wrkNo+";"+json.data[i].maktx);
                            } else {
                                json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2&param=" + (json.data[i].docNum+";"+json.data[i].matnr+";"+json.data[i].batch+";"+json.data[i].anfme+";"+json.data[i].locNo+";");
                                json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2&param=" + (json.data[i].docNum+";"+json.data[i].matnr+";"+json.data[i].batch+";"+json.data[i].anfme+";"+json.data[i].locNo+";"+json.data[i].barcode+";"+json.data[i].nodeId+";"+json.data[i].wrkNo+";"+json.data[i].maktx);
                            }
                        }
                        var tpl = templateDom.html();
@@ -318,8 +444,8 @@
            })
        }
    function doDel(docNum) {
        console.log(docNum)
    function doDel(data) {
        console.log(data)
        layer.confirm('确定要删除吗?', {
            shade: .1,
            skin: 'layui-layer-admin'
@@ -330,7 +456,7 @@
                url: baseUrl+"/pakout/delete/auth",
                headers: {'token': localStorage.getItem('token')},
                data:{
                    docNum:docNum
                    docNum:data.doc_num
                },
                method: 'GET',
                success: function (res) {
@@ -348,9 +474,23 @@
        });
    }
    function printExcel(data){
        layer.confirm('确定导出Excel吗', {shadeClose: true}, function(){
            layer.closeAll();
            layer.load(1, {shade: [0.1,'#fff']});
            location.href = baseUrl+"/pakout/printExport/auth?orderNo="+data.doc_num;
            layer.closeAll('loading');
        });
    }
    function exportExcel2(data){
        layer.confirm('确定导出Excel吗', {shadeClose: true}, function(){
            layer.closeAll();
            layer.load(1, {shade: [0.1,'#fff']});
            location.href = baseUrl+"/pakOut/exportExcel2/auth?orderNo="+data.doc_num;
            layer.closeAll('loading');
        });
    }
});