#
luxiaotao1123
2021-03-24 454e10394b27f49b21e808bb2a5f30ffc91c2240
src/main/webapp/static/js/custOrder/custOrder.js
@@ -1,10 +1,28 @@
var pageCurr;
layui.use(['table','laydate', 'form'], function(){
function right(){
    top.popupRight = top.layui.admin.popupRight({
        id: 'LAY_adminPopupLayerTest'
        , area: '750px'
        , type: 2
        , content:'custOrder/matQuery.html'
        , success: function(){
            // $('#'+ this.id).html('<div style="padding: 20px;">放入内容</div>');
            //admin.view(this.id).render('system/xxx')
        }
        , end: function () {
            $(".layui-laypage-btn")[0].click();
        }
    });
}
layui.config({
    base: baseUrl + "/static/layui/lay/modules/"  // 配置模块所在的目录
}).use(['table', 'laydate', 'form', 'tableX'], function(){
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer;
    var layDate = layui.laydate;
    var form = layui.form;
    var tableX = layui.tableX;
    // 数据渲染
    tableIns = table.render({
@@ -20,20 +38,21 @@
        cols: [[
            {type: 'checkbox'}
//            ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
            ,{field: 'number', align: 'center',title: '销售单号'}
            ,{field: 'billDate', align: 'center',title: '单据日期'}
            ,{field: 'bTypeId', align: 'center',title: '客户编号'}
            ,{field: 'eTypeId', align: 'center',title: '经手人编号'}
            ,{field: 'number', align: 'center',title: '单号'}
            ,{field: 'btypeId', align: 'center',title: '客户编号'}
            ,{field: 'etypeId', align: 'center',title: '经手人编号', hide: true}
            ,{field: 'userCode', align: 'center',title: '商品编号'}
            ,{field: 'qty', align: 'center',title: '商品数量'}
            ,{field: 'price', align: 'center',title: '商品单价'}
            ,{field: 'comment', align: 'center',title: '商品备注'}
            ,{field: 'status$', align: 'center',title: '状态'}
            ,{field: 'price', align: 'center',title: '商品单价', hide: true}
            ,{field: 'comment', align: 'center',title: '商品备注', hide: true}
            ,{field: 'status$', align: 'center',title: '状态', templet: '#statusTpl', width: 100}
            ,{field: 'billDate', align: 'center',title: '单据日期'}
            // ,{field: 'createTime$', align: 'center',title: '添加时间'}
            ,{field: 'updateTime$', align: 'center',title: '修改时间'}
            ,{field: 'updateTime$', align: 'center',title: '修改时间', hide: true}
            // ,{field: 'memo', align: 'center',title: '备注'}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:100}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width: 120}
        ]],
        request: {
            pageName: 'curr',
@@ -55,6 +74,7 @@
                top.location.href = baseUrl+"/";
            }
            pageCurr=curr;
            tableX.merges('custOrder', [1, 11]);
            limit();
            form.on('checkbox(tableCheckbox)', function (data) {
                var _index = $(data.elem).attr('table-index')||0;
@@ -94,20 +114,6 @@
    table.on('toolbar(custOrder)', function (obj) {
        var checkStatus = table.checkStatus(obj.config.id);
        switch(obj.event) {
            case 'addData':
                layer.open({
                    type: 2,
                    title: '新增',
                    maxmin: true,
                    area: [top.detailWidth, top.detailHeight],
                    content: 'custOrder_detail.html',
                    success: function(layero, index){
                        layer.getChildFrame('#data-detail-submit-edit', index).hide();
                       clearFormVal(layer.getChildFrame('#detail', index));
                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
                    }
                });
                break;
            case 'deleteData':
                var data = checkStatus.data;
                if (data.length === 0){
@@ -123,7 +129,7 @@
                            success: function (res) {
                                if (res.code === 200){
                                    layer.closeAll();
                                    tableReload(false);
                                    $(".layui-laypage-btn")[0].click();
                                } else if (res.code === 403){
                                    top.location.href = baseUrl+"/";
                                } else {
@@ -181,74 +187,223 @@
        switch (obj.event) {
            // 拣货
            case 'stockOut':
                layer.confirm(data.number + ' 订单拣货', {shadeClose: true}, function(){
                    layer.closeAll();
                    $.ajax({
                        url: baseUrl+"/work/stock/out",
                        headers: {'token': localStorage.getItem('token')},
                        contentType:'application/json;charset=UTF-8',
                        data: JSON.stringify({
                            number: data.number
                        }),
                        method: 'POST',
                        success: function (res) {
                            if (res.code === 200){
                var loadIndex = layer.load(2);
                $.ajax({
                    url: baseUrl + "/work/stock/out/preview",
                    headers: {'token': localStorage.getItem('token')},
                    contentType: 'application/json;charset=UTF-8',
                    data: JSON.stringify({
                        number: data.number
                    }),
                    method: 'POST',
                    success: function (res) {
                        layer.close(loadIndex);
                        // 成功
                        if (res.code === 200){
                            layer.open({
                                type: 1
                                ,title: false
                                ,closeBtn: false
                                ,offset: '100px'
                                // ,area: ['800px','450px']
                                ,area: '1000px'
                                ,shade: 0.5
                                ,shadeClose: true
                                ,id: 'LAY_layuipro'
                                ,btn: ['立即生成', '稍后处理']
                                ,btnAlign: 'c'
                                ,moveType: 1 //拖拽模式,0或者1
                                ,content: $('#stoukOutPreview')
                                ,success: function(layero, index){
                                    table.render({
                                        elem: '#stoPreTab',
                                        data: res.data,
                                        page: true,
                                        cellMinWidth: 100,
                                        // ,width: admin.screen() > 1 ? 892 : ''
                                        height: 432,
                                        cols: [[
                                            {field: 'title', title: '商品', align: 'center'},
                                            {field: 'anfme', title: '总数量', align: 'center', style: 'font-weight: bold', width: 90},
                                            {field: 'type', title: '仓库', align: 'center', templet: '#typeTpl', width: 90},
                                            {field: 'locNo', title: '货位', align: 'center'},
                                            {field: 'prior$', title: '推荐货位', align: 'center', width: 100},
                                            {field: 'reduce', title: '数量', align: 'center', width: 90, style: 'font-weight: bold'},
                                            // {field: 'remQty', title: '余量', align: 'center', width: 80},
                                            {field: 'total', title: '总量', align: 'center', width: 90},
                                        ]],
                                        done: function () {
                                            tableX.merges('stoPreTab', [0,1,2]);
                                            $('.layui-table-body.layui-table-main').css("overflow", "auto")
                                        }
                                    });
                            } else if (res.code === 20001) {
                                layer.confirm(res.msg, {shadeClose: true}, function(){
                                }
                                ,yes: function(index, layero){
                                    //按钮【马上拣货】的回调
                                    stockOut(data.number);
                                }
                                ,btn2: function(index, layero){
                                    //按钮【稍后处理】的回调
                                    //return false 开启该代码可禁止点击该按钮关闭
                                }
                            });
                        // 缺料
                        } else if (res.code === 20001) {
                            layer.confirm(res.msg, {
                                    shadeClose: true
                                    , area: ['400px']
                                    , btn: ['库存调拨', '取消']
                                }, function() {
                                    // 库存调拨
                                    stockTransfer(data.number);
                                    layer.closeAll();
                                })
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            } else {
                                layer.msg(res.msg)
                            }
                            layer.close(index);
                                }, function() {
                                    // printPakouts(data.number);
                                    layer.closeAll();
                                }
                            )
                        } else if (res.code === 403){
                            top.location.href = baseUrl+"/";
                        } else {
                            layer.msg(res.msg, {icon: 1})
                        }
                    })
                });
                break;
            // 详情
            case 'detail':
                layer.open({
                    type: 2,
                    title: '详情',
                    maxmin: true,
                    area: [top.detailWidth, top.detailHeight],
                    shadeClose: true,
                    content: 'custOrder_detail.html',
                    success: function(layero, index){
                        setFormVal(layer.getChildFrame('#detail', index), data, true);
                        top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
                        layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
                        layero.find('iframe')[0].contentWindow.layui.form.render('select');
                        layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
                    }
                });
                })
                break;
            // 编辑
            case 'edit':
                layer.open({
                    type: 2,
                    title: '修改',
                    maxmin: true,
                    area: [top.detailWidth, top.detailHeight],
                    content: 'custOrder_detail.html',
                    success: function(layero, index){
                        layer.getChildFrame('#data-detail-submit-save', index).hide();
                        setFormVal(layer.getChildFrame('#detail', index), data, false);
                        top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
                        top.convertDisabled(layer.getChildFrame('', index), true);
                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
                        layero.find('iframe')[0].contentWindow.layui.form.render('select');
                        layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
                    }
                });
            // 打印
            case 'print':
                layer.confirm('开始打印' +data.number + ' 拣货单?', {shadeClose: true}, function(){
                    layer.closeAll();
                    printPakouts(data.number);
                })
                break;
        }
    });
    // 开始拣货
    function stockOut(number) {
        // layer.confirm(number + ' 订单开始拣货?', {shadeClose: true}, function(){
            layer.closeAll();
            $.ajax({
                url: baseUrl+"/work/stock/out",
                headers: {'token': localStorage.getItem('token')},
                contentType:'application/json;charset=UTF-8',
                data: JSON.stringify({
                    number: number
                }),
                method: 'POST',
                success: function (res) {
                    // 成功
                    if (res.code === 200){
                        layer.confirm(res.msg, {
                                shadeClose: true
                                , btn: ['打印拣货单']
                            }, function() {
                                layer.closeAll();
                                printPakouts(number);
                            }
                        )
                    // 缺料
                    } else if (res.code === 20001) {
                        layer.confirm(res.msg, {
                                shadeClose: true
                                , btn: ['库存调拨', '取消']
                            }, function() {
                                // 库存调拨
                                layer.closeAll();
                            }, function() {
                            alert(number)
                                layer.closeAll();
                            }
                        )
                    } else if (res.code === 403){
                        top.location.href = baseUrl+"/";
                    } else {
                        layer.msg(res.msg, {icon: 2})
                    }
                    $(".layui-laypage-btn")[0].click();
                }
            })
        // });
    }
    // 库存调拨
    function stockTransfer(number) {
        $.ajax({
            url: baseUrl + "/work/stock/transfer",
            headers: {'token': localStorage.getItem('token')},
            data: {
                number: number
            },
            method: 'POST',
            success: function (res) {
                if (res.code === 200) {
                    layer.msg(res.msg, {icon: 1})
                } else if (res.code === 403) {
                    top.location.href = baseUrl + "/";
                } else {
                    layer.msg(res.msg, {icon: 2})
                }
            }
        });
    }
    // 打印拣货单
    function printPakouts(docNumber) {
        $.ajax({
            url: baseUrl+"/work/stock/out/print",
            headers: {'token': localStorage.getItem('token')},
            data: JSON.stringify({
                number: docNumber
            }),
            contentType:'application/json;charset=UTF-8',
            method: 'POST',
            success: function (res) {
                if (res.code === 200){
                    res.data["barcodeUrl"]=baseUrl+"/custOrder/code/auth?type=1&param="+res.data.docNum;
                    var tpl = $('#pakoutPrintTpl').html();
                    var template = Handlebars.compile(tpl);
                    var html = template(res);
                    var box = $("#pakoutPrintBox");
                    box.html(html);box.show();
                    box.print({
                        mediaPrint:true,
                        deferred: $.Deferred().done(function () {
                            layer.confirm('[重要] 打印是否成功?',  {btn: ['Yes', 'No']}, function(){
                                $.ajax({
                                    url: baseUrl+"/pakout/print/auth",
                                    headers: {'token': localStorage.getItem('token')},
                                    data: {
                                        docNumber: docNumber
                                    },
                                    method: 'POST',
                                    success: function (res) {
                                        if (res.code === 200){
                                            layer.closeAll();
                                            $(".layui-laypage-btn")[0].click();
                                            layer.msg(res.msg, {icon: 1})
                                        } else if (res.code === 403){
                                            top.location.href = baseUrl+"/";
                                        } else {
                                            layer.msg(res.msg, {icon: 2})
                                        }
                                    }
                                })
                            });
                        })
                    });
                    box.hide();
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                } else {
                    layer.msg(res.msg, {icon: 2})
                }
            }
        })
    }
    // 数据保存动作
    form.on('submit(save)', function () {
@@ -357,22 +512,22 @@
        page: {
            curr: pageCurr
        },
        done: function (res, curr, count) {
            if (res.code === 403) {
                top.location.href = baseUrl+"/";
            }
            pageCurr=curr;
            if (res.data.length === 0 && count !== 0) {
                tableIns.reload({
                    where: searchData,
                    page: {
                        curr: pageCurr-1
                    }
                });
                pageCurr -= 1;
            }
            limit(child);
        }
        // done: function (res, curr, count) {
        //     if (res.code === 403) {
        //         top.location.href = baseUrl+"/";
        //     }
        //     pageCurr=curr;
        //     if (res.data.length === 0 && count !== 0) {
        //         tableIns.reload({
        //             where: searchData,
        //             page: {
        //                 curr: pageCurr-1
        //             }
        //         });
        //         pageCurr -= 1;
        //     }
        //     limit(child);
        // }
    });
}