var pageCurr; 
 | 
layui.config({ 
 | 
    base: baseUrl + "/static/layui/lay/modules/" 
 | 
}).use(['layer','table','laydate', 'form', 'admin', 'xmSelect'], 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 xmSelect = layui.xmSelect; 
 | 
  
 | 
    // 数据渲染 
 | 
    tableIns = table.render({ 
 | 
        elem: '#saasLog', 
 | 
        headers: {token: localStorage.getItem('token')}, 
 | 
        url: baseUrl+'/order/picking/head/page/auth', 
 | 
        page: true, 
 | 
        limit: 15, 
 | 
        limits: [15, 30, 50, 100, 200, 500], 
 | 
        // toolbar: '#toolbar', 
 | 
        cellMinWidth: 50, 
 | 
        height: 'full-120', 
 | 
        cols: [[ 
 | 
            {type: 'numbers'}, 
 | 
            {field: 'orderNo', title: '单据编号'}, 
 | 
            {field: 'docType$', align: 'center', title: '类型',  minWidth: 160, width: 160}, 
 | 
            {align: 'center', title: '明细', toolbar: '#tbLook', minWidth: 160, width: 160}, 
 | 
            {field: 'createTime$', title: '创建时间', minWidth: 200, width: 200}, 
 | 
            {field: 'settle$', align: 'center', title: '状态', templet: '#settleTpl',  minWidth: 160, width: 160}, 
 | 
            {field: 'memo', align: 'center',title: '备注', hide: true}, 
 | 
            {align: 'center', title: '操作', toolbar: '#operate', width: 380} 
 | 
        ]], 
 | 
        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(res, curr, count) { 
 | 
            if (res.code === 403) { 
 | 
                top.location.href = baseUrl+"/"; 
 | 
            } 
 | 
            pageCurr=curr; 
 | 
            limit(); 
 | 
        } 
 | 
    }); 
 | 
  
 | 
    // 监听排序事件 
 | 
    table.on('sort(saasLog)', function (obj) { 
 | 
        var searchData = {}; 
 | 
        $.each($('#search-box [name]').serializeArray(), function() { 
 | 
            searchData[this.name] = this.value; 
 | 
        }); 
 | 
        searchData['orderByField'] = obj.field; 
 | 
        searchData['orderByType'] = obj.type; 
 | 
        tableIns.reload({ 
 | 
            where: searchData, 
 | 
            page: {curr: 1} 
 | 
        }); 
 | 
    }); 
 | 
    // 监听行工具事件 
 | 
    table.on('tool(saasLog)', function(obj){ 
 | 
        var data = obj.data; 
 | 
        switch (obj.event) { 
 | 
            case "edit": 
 | 
                console.log("修改"); 
 | 
                showEditModel(data); 
 | 
                break; 
 | 
            case "del": 
 | 
                console.log("删除"); 
 | 
                doDel(data.id); 
 | 
                break; 
 | 
            case "complete": 
 | 
                console.log("完结"); 
 | 
                break; 
 | 
            case "btnPrint": 
 | 
                console.log("打印"); 
 | 
                break; 
 | 
            case "manPrint": 
 | 
                addPakOut(data.orderNo); 
 | 
                break; 
 | 
            case "look": 
 | 
                var $a = $(obj.tr).find('a[lay-event="look"]'); 
 | 
                var offset = $a.offset(); 
 | 
                var top = offset.top; 
 | 
                var left = offset.left; 
 | 
                layer.open({ 
 | 
                    type: 1, 
 | 
                    title: false, 
 | 
                    area: '820px', 
 | 
                    offset: [top + 'px', (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+'/orderDetl/list/auth', 
 | 
                            where: { 
 | 
                                order_id: data.id 
 | 
                            }, 
 | 
                            page: true, 
 | 
                            cellMinWidth: 100, 
 | 
                            cols: [[ 
 | 
                                {type: 'numbers'}, 
 | 
                                {field: 'matnr', title: '商品编码', width: 160}, 
 | 
                                {field: 'maktx', title: '商品名称', width: 160}, 
 | 
                                {field: 'batch', title: '批号'}, 
 | 
                                {field: 'anfme', title: '数量'}, 
 | 
                                // {field: 'workQty', title: '作业数量'}, 
 | 
                                {field: 'qty', title: '完成数量', style: 'font-weight: bold'}, 
 | 
                                {field: 'specs', title: '规格'} 
 | 
                            ]], 
 | 
                            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; 
 | 
        } 
 | 
    }); 
 | 
  
 | 
    // 搜索 
 | 
    form.on('submit(search)', function (data) { 
 | 
        pageCurr = 1; 
 | 
        tableReload(false); 
 | 
    }); 
 | 
  
 | 
    // 重置 
 | 
    form.on('submit(reset)', function (data) { 
 | 
        pageCurr = 1; 
 | 
        clearFormVal($('#search-box')); 
 | 
        tableReload(false); 
 | 
    }); 
 | 
  
 | 
    // 添加 
 | 
    $("#orderAddBtn").click(function () { 
 | 
        showEditModel(); 
 | 
    }); 
 | 
  
 | 
    // 时间选择器 
 | 
    function layDateRender(data) { 
 | 
        setTimeout(function () { 
 | 
            layDate.render({ 
 | 
                elem: '#ioTime\\$', 
 | 
                type: 'datetime', 
 | 
                value: data!==undefined?data['ioTime\\$']:null 
 | 
            }); 
 | 
  
 | 
        }, 300); 
 | 
    } 
 | 
    layDateRender(); 
 | 
  
 | 
    // 生成拣货单 
 | 
    function addPakOut(expTpe) { 
 | 
        $.ajax({ 
 | 
            url: baseUrl+"/ManPakOut/add/auth", 
 | 
            headers: {'token': localStorage.getItem('token')}, 
 | 
            data: JSON.stringify({ 
 | 
                docType: Number(20), 
 | 
                orderNo: expTpe, 
 | 
            }), 
 | 
            contentType:'application/json;charset=UTF-8', 
 | 
            method: 'POST', 
 | 
            success: function (res) { 
 | 
                if (res.code === 200){ 
 | 
                    layer.msg("生成拣货单:ok"); 
 | 
                } else if (res.code === 403){ 
 | 
                    layer.msg("生成拣货单:403"); 
 | 
                }else { 
 | 
                    layer.msg("生成拣货单:???"); 
 | 
                } 
 | 
  
 | 
            } 
 | 
        }) 
 | 
    } 
 | 
    // 删除单据 
 | 
    function doDel(orderId) { 
 | 
        console.log(orderId) 
 | 
        layer.confirm('确定要删除吗?', { 
 | 
            shade: .1, 
 | 
            skin: 'layui-layer-admin' 
 | 
        }, function (i) { 
 | 
            layer.close(i); 
 | 
            layer.load(2); 
 | 
            $.ajax({ 
 | 
                url: baseUrl+"/order/delete/auth", 
 | 
                headers: {'token': localStorage.getItem('token')}, 
 | 
                data: { 
 | 
                    orderId: orderId 
 | 
                }, 
 | 
                method: 'POST', 
 | 
                success: function (res) { 
 | 
                    layer.closeAll('loading'); 
 | 
                    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 showEditModel(expTpe) { 
 | 
        admin.open({ 
 | 
            type: 1, 
 | 
            title: (expTpe ? '修改' : '添加') + '单据', 
 | 
            content: $('#editDialog').html(), 
 | 
            area: '1300px', 
 | 
            success: function (layero, dIndex) { 
 | 
                $(layero).children('.layui-layer-content').css('overflow', 'visible'); 
 | 
                var isExpAdd = !expTpe; 
 | 
                // 回显数据 
 | 
                form.val('editForm', expTpe); 
 | 
                if (expTpe) { 
 | 
                    $('#orderNo').attr("disabled", "disabled"); 
 | 
                } 
 | 
                // 表单提交事件 
 | 
                form.on('submit(orderEditSubmit)', function (data) { 
 | 
                    // 组装数据 
 | 
                    if (xxDataList.length <= 0) { 
 | 
                        layer.tips('请添加单据明细', '#matAddBtnComment', {tips: [1, '#ff4c4c']}); 
 | 
                        return false; 
 | 
                    } 
 | 
                    let nList = admin.util.deepClone(xxDataList); 
 | 
                    for (let xi = 0; xi < nList.length; xi++) { 
 | 
                        if (nList[xi].anfme <= 0){ 
 | 
                            layer.msg('明细修改数量不合法', {icon: 2}); 
 | 
                            return false; 
 | 
                        } 
 | 
                        if (nList[xi].anfme < nList[xi].workQty){ 
 | 
                            layer.msg('数量不能小于已作业数量', {icon: 2}); 
 | 
                            return false; 
 | 
                        } 
 | 
                    } 
 | 
                    layer.load(2); 
 | 
                    $.ajax({ 
 | 
                        url: baseUrl+"/order/form/" + (isExpAdd?"add":"modify") + "/auth", 
 | 
                        headers: {'token': localStorage.getItem('token')}, 
 | 
                        data: JSON.stringify({ 
 | 
                            orderId: Number(data.field.id), 
 | 
                            docType: Number(20), 
 | 
                            orderNo: data.field.orderNo, 
 | 
                            orderDetlList: nList 
 | 
                        }), 
 | 
                        contentType:'application/json;charset=UTF-8', 
 | 
                        method: 'POST', 
 | 
                        success: function (res) { 
 | 
                            layer.closeAll('loading'); 
 | 
                            if (res.code === 200){ 
 | 
                                layer.close(dIndex); 
 | 
                                $(".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}); 
 | 
                            } 
 | 
                        } 
 | 
                    }) 
 | 
                    return false; 
 | 
                }); 
 | 
                // 明细表格 
 | 
                var xxDataList = []; 
 | 
                var tbOptions = { 
 | 
                    elem: '#formSSXMTable', 
 | 
                    headers: {token: localStorage.getItem('token')}, 
 | 
                    data: xxDataList, 
 | 
                    page: true, 
 | 
                    height: '350px;', 
 | 
                    cellMinWidth: 100, 
 | 
                    cols: [[ 
 | 
                        {type: 'numbers', title: '#'}, 
 | 
                        {field: 'matnr', title: '商品编码', width: 160}, 
 | 
                        {field: 'maktx', title: '商品名称', width: 200}, 
 | 
                        {field: 'batch', title: '批号', edit: true}, 
 | 
                        {field: 'specs', title: '规格'}, 
 | 
                        {field: 'anfme', title: '数量(修改)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110}, 
 | 
                        {field: 'workQty', title: '作业数量',  minWidth: 100, width: 100}, 
 | 
                        {field: 'owner$', title: '货主',  minWidth: 100, width: 100}, 
 | 
                        {field: 'payment$', title: '货物形态',  minWidth: 100, width: 100}, 
 | 
                        // {field: 'unit', title: '单位', width: 80}, 
 | 
                        {field: 'memo', title: '备注' , edit: true}, 
 | 
                        {align: 'center', title: '操作', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80, fixed: 'right'} 
 | 
                    ]], 
 | 
                    done: function (res) { 
 | 
                        $(layero).find('.layui-table-view').css('margin', '0'); 
 | 
                    }, 
 | 
                    size: '' 
 | 
                }; 
 | 
                if (!isExpAdd) { 
 | 
                    $.ajax({ 
 | 
                        url: baseUrl+"/order/detl/all/auth?orderId=" + expTpe.id, 
 | 
                        headers: {'token': localStorage.getItem('token')}, 
 | 
                        method: 'GET', 
 | 
                        async: false, 
 | 
                        success: function (res) { 
 | 
                            if (res.code === 200){ 
 | 
                                xxDataList = res.data; 
 | 
                                tbOptions.data = xxDataList; 
 | 
                            } else if (res.code === 403){ 
 | 
                                top.location.href = baseUrl+"/"; 
 | 
                            }else { 
 | 
                                layer.msg(res.msg, {icon: 2}) 
 | 
                            } 
 | 
                        } 
 | 
                    }) 
 | 
                } 
 | 
                var insTbSSXM = table.render(tbOptions); 
 | 
                // 工具条点击事件 
 | 
                table.on('tool(formSSXMTable)', function (obj) { 
 | 
                    var data = obj.data; 
 | 
                    var layEvent = obj.event; 
 | 
                    if (layEvent === 'edit') { 
 | 
                        showEditModel2(data); 
 | 
                    } else if (layEvent === 'del') { 
 | 
                        if(data.workQty > 0){ 
 | 
                            layer.msg("已存在作业数量,不能删除", {icon: 2}); 
 | 
                            return; 
 | 
                        } 
 | 
                        layer.confirm('确定要删除吗?', { 
 | 
                            shade: .1, 
 | 
                            skin: 'layui-layer-admin' 
 | 
                        }, function (i) { 
 | 
                            layer.close(i); 
 | 
                            for (var j = 0; j < xxDataList.length; j++) { 
 | 
                                if (xxDataList[j].matnr === data.matnr && xxDataList[j].batch === data.batch) { 
 | 
                                    xxDataList.splice(j, 1); 
 | 
                                    break; 
 | 
                                } 
 | 
                            } 
 | 
                            insTbSSXM.reload({data: xxDataList, page: {curr: 1}}); 
 | 
                        }); 
 | 
                    } 
 | 
                }); 
 | 
                // 明细数据修改 
 | 
                table.on('edit(formSSXMTable)', function (obj) { 
 | 
                    let index = obj.tr.attr("data-index"); 
 | 
                    let data = xxDataList[index]; 
 | 
                    if (obj.field === 'anfme'){ 
 | 
                        let vle = Number(obj.value); 
 | 
                        if (isNaN(vle)) { 
 | 
                            layer.msg("请输入数字", {icon: 2}); 
 | 
                            return false; 
 | 
                        } else { 
 | 
                            if (vle <= 0) { 
 | 
                                layer.msg("数量必须大于零", {icon: 2}); 
 | 
                                // data[obj.field] = 0; 
 | 
                                // insTbSSXM.reload({data: xxDataList}); 
 | 
                                return false; 
 | 
                            } 
 | 
                            if(obj.value < data.workQty){ 
 | 
                                layer.msg("输入数量不能小于作业中数量", {icon: 2}); 
 | 
                                // data[obj.field] = 0; 
 | 
                                // insTbSSXM.reload({data: xxDataList}); 
 | 
                                return false; 
 | 
                            } 
 | 
                        } 
 | 
                    } 
 | 
                    data[obj.field] = obj.value; 
 | 
                    insTbSSXM.reload({data: xxDataList}); 
 | 
                }); 
 | 
  
 | 
                $('#matAddBtnComment').click(function () { 
 | 
                    showEditModel2(); 
 | 
                }); 
 | 
  
 | 
                // 显示添加明细表单弹窗 
 | 
                function showEditModel2(exp) { 
 | 
                    admin.open({ 
 | 
                        type: 1, 
 | 
                        offset: '150px', 
 | 
                        area: '680px', 
 | 
                        title: (exp ? '修改' : '添加') + '明细', 
 | 
                        content: $('#matEditDialog').html(), 
 | 
                        success: function (layero, dIndex) { 
 | 
                            // 回显数据 
 | 
                            form.val('matEditForm', exp); 
 | 
                            // 表单提交事件 
 | 
                            form.on('submit(matEditSubmit)', function (data) { 
 | 
                                let selectList = matXmSelect.getValue(); 
 | 
                                for (let i = 0; i<selectList.length; i++) { 
 | 
                                    let item = selectList[i]; 
 | 
                                    // 查询物料详情 
 | 
                                    $.ajax({ 
 | 
                                        url: baseUrl+"/mat/covert/"+item.value+"/auth", 
 | 
                                        headers: {'token': localStorage.getItem('token')}, 
 | 
                                        method: 'GET', 
 | 
                                        async: false, 
 | 
                                        success: function (res) { 
 | 
                                            if (res.code === 200){ 
 | 
                                                xxDataList.push(res.data); 
 | 
                                                insTbSSXM.reload({data: xxDataList, page: {curr: 1}}); 
 | 
                                            } else if (res.code === 403){ 
 | 
                                                top.location.href = baseUrl+"/"; 
 | 
                                            }else { 
 | 
                                                layer.msg(res.msg, {icon: 2}) 
 | 
                                            } 
 | 
                                        } 
 | 
                                    }) 
 | 
                                } 
 | 
                                layer.close(dIndex); 
 | 
                                return false; 
 | 
                            }); 
 | 
                            // 渲染物料选择 
 | 
                            var matXmSelect = xmSelect.render({ 
 | 
                                el: '#mat', 
 | 
                                style: { 
 | 
                                    width: '340px', 
 | 
                                }, 
 | 
                                autoRow: true, 
 | 
                                toolbar: { show: true }, 
 | 
                                filterable: true, 
 | 
                                remoteSearch: true, 
 | 
                                remoteMethod: function(val, cb, show){ 
 | 
                                    $.ajax({ 
 | 
                                        url: baseUrl+"/mat/all/get/kv", 
 | 
                                        headers: {'token': localStorage.getItem('token')}, 
 | 
                                        data: { 
 | 
                                            condition: val 
 | 
                                        }, 
 | 
                                        method: 'POST', 
 | 
                                        success: function (res) { 
 | 
                                            if (res.code === 200){ 
 | 
                                                cb(res.data) 
 | 
                                            } else { 
 | 
                                                cb([]); 
 | 
                                                layer.msg(res.msg, {icon: 2}); 
 | 
                                            } 
 | 
                                        } 
 | 
                                    }); 
 | 
                                } 
 | 
                            }) 
 | 
                            // 弹窗不出现滚动条 
 | 
                            $(layero).children('.layui-layer-content').css('overflow', 'visible'); 
 | 
                            layui.form.render('select'); 
 | 
                        } 
 | 
                    }); 
 | 
                } 
 | 
  
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
}); 
 | 
  
 | 
// 关闭动作 
 | 
$(document).on('click','#data-detail-close', function () { 
 | 
    parent.layer.closeAll(); 
 | 
}); 
 | 
  
 | 
function tableReload(child) { 
 | 
    var searchData = {}; 
 | 
    $.each($('#search-box [name]').serializeArray(), function() { 
 | 
        searchData[this.name] = this.value; 
 | 
    }); 
 | 
    tableIns.reload({ 
 | 
        where: searchData, 
 | 
        page: {curr: pageCurr} 
 | 
    }); 
 | 
} 
 |