#
wang..123
2022-03-23 63a0de547069fce19536b278ccd412a211ce8b11
src/main/webapp/static/js/wave/wave.js
@@ -1,13 +1,14 @@
var pageCurr;
layui.config({
    base: baseUrl + "/static/layui/lay/modules/"
}).use(['table','laydate', 'form', 'admin'], function(){
}).use(['table','laydate', 'form', 'admin','tableMerge'], function(){
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer;
    var layDate = layui.laydate;
    var form = layui.form;
    var admin = layui.admin;
    var tableMerge = layui.tableMerge;
    // 数据渲染
    tableIns = table.render({
@@ -20,19 +21,16 @@
        toolbar: '#toolbar',
        cellMinWidth: 50,
        cols: [[
            {type: 'checkbox'}
            ,{field: 'id', align: 'center',title: 'ID'}
            ,{field: 'hostId', align: 'center',title: ''}
            ,{field: 'uuid', align: 'center',title: '编号'}
            ,{field: 'waveNo', align: 'center',title: '波次号'}
            ,{field: 'ordersQty', align: 'center',title: '订单数量'}
            {field: 'waveNo', align: 'center',title: '波次编号'}
            ,{field: 'ordersQty', align: 'center',title: '合并订单数量'}
            ,{field: 'status$', align: 'center',title: '审核状态'}
            ,{align: 'center', title: '明细', toolbar: '#tbLook', minWidth: 140, width: 140}
            ,{field: 'memo', align: 'center',title: '备注'}
            ,{field: 'createBy', align: 'center',title: '添加人员'}
            ,{field: 'createTime$', align: 'center',title: '添加时间'}
            ,{field: 'updateBy', align: 'center',title: '修改人员'}
            ,{field: 'updateTime$', align: 'center',title: '修改时间'}
            ,{field: 'createBy', align: 'center',title: '添加人员',hide:true}
            ,{field: 'createTime$', align: 'center',title: '添加时间',hide:true}
            ,{field: 'updateBy', align: 'center',title: '修改人员',hide:true}
            ,{field: 'updateTime$', align: 'center',title: '修改时间',hide:true}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:150}
        ]],
        request: {
@@ -131,17 +129,177 @@
        }
    });
    function createWaveOut(data) {
        console.log(data)
        var loadIndex = layer.load(2);
        $.ajax({
            url: baseUrl + "/wave/preview",
            headers: {'token': localStorage.getItem('token')},
            contentType: 'application/json;charset=UTF-8',
            data: JSON.stringify({
                orderNo: data.id
            }),
            method: 'POST',
            success: function (res) {
                layer.close(loadIndex);
                if (res.code === 200){
                    layer.open({
                        type: 1
                        ,title: false
                        ,closeBtn: false
                        ,offset: '100px'
                        ,area: '1000px'
                        ,shade: 0.5
                        ,shadeClose: true
                        ,btn: ['立即生成', '稍后处理']
                        ,btnAlign: 'c'
                        ,moveType: 1 //拖拽模式,0或者1
                        ,content: $('#stoukOutPreview')
                        ,success: function(layero, index){
                            table.render({
                                elem: '#stoPreTab',
                                data: res.data,
                                page: true,
                                cellMinWidth: 100,
                                height: 432,
                                cols: [[
                                    {field: 'title', title: '商品', merge: true, align: 'center'},
                                    {field: 'anfme', title: '总数量', merge: ['title'], align: 'center', style: 'font-weight: bold', width: 90},
                                    {field: 'type', title: '仓库', merge: true, 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 () {
                                    tableMerge.render(this);
                                    $('.layui-table-body.layui-table-main').css("overflow", "auto")
                                }
                            });
                        }
                        ,yes: function(index, layero){
                            //按钮【马上拣货】的回调
                            stockOut(res.data,data);
                        }
                        ,btn2: function(index, layero){
                            //按钮【稍后处理】的回调
                            //return false 开启该代码可禁止点击该按钮关闭
                        }
                    });
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                } else {
                    layer.msg(res.msg, {icon: 2})
                }
            }
        })
    }
    function stockOut(mData, data){
        console.log(mData);
        layer.confirm('确定生成该波次的拣货单?(不可逆)', {
            skin: 'layui-layer-admin',
            shade: .1
        }, function (i) {
            layer.close(i);
            var loadIndex = layer.load(2);
            $.ajax({
                url: baseUrl+"/wave/createOut",
                headers: {'token': localStorage.getItem('token')},
                data: JSON.stringify(mData),
                method: 'POST',
                contentType: 'application/json;charset=UTF-8',
                success: function (res) {
                    layer.close(loadIndex);
                    if (res.code === 200){
                        layer.msg(res.msg, {icon: 1});
                        tableReload();
                    } else if (res.code === 403){
                        top.location.href = baseUrl+"/";
                    } else {
                        layer.msg(res.msg, {icon: 2});
                    }
                }
            })
        });
    }
    // 监听行工具事件
    table.on('tool(wave)', function(obj){
        var data = obj.data;
        switch (obj.event) {
            case 'edit':
                showEditModel(data);
                break;
            case 'waveOut':
                createWaveOut(data);
                break;
            case "del":
                var ids = [data.id];
                del(ids);
                break;
            case "look":
                var $a = $(obj.tr).find('a[lay-event="look"]');
                var offset = $a.offset();
                layer.open({
                    type: 1,
                    title: false,
                    area: '700px',
                    offset: [offset.top + 'px', (offset.left - 530 + $a.outerWidth()) + 'px'],
                    shade: .01,
                    shadeClose: true,
                    fixed: false,
                    content: '<table id="lookSSXMTable" lay-filter="lookSSXMTable"></table>',
                    success: function (layero) {
                        table.render({
                            elem: '#lookSSXMTable',
                            headers: {token: localStorage.getItem('token')},
                            url: baseUrl+'/waveDetl/list/auth',
                            where: {
                                wave_id: data.id
                            },
                            limit: 5,
                            page: true,
                            cellMinWidth: 100,
                            cols: [[
                                {type: 'numbers'},
                                {field: 'seqNo', align:'center',title: '行号'},
                                {field: 'matnr', align:'center',title: '商品编号'},
                                {field: 'matnr', align:'center',title: '商品编号'},
                                {field: 'maktx', align:'center',title: '商品名称', width: 200},
                                {field: 'anfme', align:'center',title: '数量', width: 70},
                                {field: 'orderQty', align:'center',title: '合并数量', width: 70},
                                {field: 'orderNos', align:'center',title: '合并订单', width: 70},
                            ]],
                            request: {
                                pageName: 'curr',
                                pageSize: 'limit'
                            },
                            parseData: function (res) {
                                return {
                                    'code': res.code,
                                    'msg': res.msg,
                                    'count': res.data.total,
                                    'data': res.data.records
                                }
                            },
                            response: {
                                statusCode: 200
                            },
                            done: function () {
                                $(layero).find('.layui-table-view').css('margin', '0');
                            },
                            size: ''
                        });
                    }
                });
                break;
        }
    });