var pageCurr; 
 | 
var insTb2; 
 | 
layui.config({ 
 | 
    base: baseUrl + "/static/layui/lay/modules/" 
 | 
}).extend({ 
 | 
    notice: 'notice/notice', 
 | 
}).use(['table','laydate', 'form', 'util', 'admin', 'notice', 'treeTable', 'xmSelect', 'tableMerge', 'tableX'], 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 util = layui.util; 
 | 
    var notice = layui.notice; 
 | 
    var treeTable = layui.treeTable; 
 | 
    var xmSelect = layui.xmSelect; 
 | 
    var tableMerge = layui.tableMerge; 
 | 
    var tableX = layui.tableX; 
 | 
  
 | 
    insTb2 = table.render({ 
 | 
        elem: '#orderDetlTable', 
 | 
        headers: {token: localStorage.getItem('token')}, 
 | 
        url: baseUrl+'/orderDetl/pakout/list/auth', 
 | 
        page: true, 
 | 
        limit: 15, 
 | 
        limits: [15, 30, 50, 100, 200, 500], 
 | 
        toolbar: '#orderDetToolbar', 
 | 
        height: 'full-120', 
 | 
        where: {order_id: 9999999999}, 
 | 
        cols: [[ 
 | 
            {type: 'checkbox'} 
 | 
            ,{type: 'numbers', title: '#'} 
 | 
            ,{field: 'orderNo', align: 'center',title: '单据编号', templet: '#orderNoTpl', width: 160} 
 | 
            ,{field: 'matnr', align: 'center',title: '商品编码', width: 160} 
 | 
            ,{field: 'maktx', align: 'center',title: '商品名称', width: 200} 
 | 
            ,{field: 'batch', align: 'center',title: '序列码'} 
 | 
            ,{field: 'specs', align: 'center',title: '规格'} 
 | 
            ,{field: 'sku', align: 'center',title: '工序', hide: false} 
 | 
            // ,{field: 'anfme', align: 'center',title: '数量'} 
 | 
            // ,{field: 'qty', align: 'center',title: '作业数量', style: 'font-weight: bold'} 
 | 
            ,{field: 'enableQty', align: 'center',title: '待出数量', style: 'font-weight: bold'} 
 | 
            // ,{field: 'name', align: 'center',title: '名称'} 
 | 
            // ,{field: 'model', align: 'center',title: '型号'} 
 | 
            ,{field: 'unit', align: 'center',title: '单位', hide: true} 
 | 
            ,{field: 'barcode', align: 'center',title: '商品条码', hide: true} 
 | 
            // ,{field: 'supplier', align: 'center',title: '供应商'} 
 | 
            // ,{field: 'unitPrice', align: 'center',title: '单价'} 
 | 
            // ,{field: 'itemNum', align: 'center',title: '品项数'} 
 | 
            // ,{field: 'count', align: 'center',title: '数量'} 
 | 
            // ,{field: 'weight', align: 'center',title: '重量'} 
 | 
            // ,{field: 'status$', align: 'center',title: '状态'} 
 | 
            // ,{field: 'createBy$', align: 'center',title: '添加人员'} 
 | 
            // ,{field: 'createTime$', align: 'center',title: '添加时间'} 
 | 
            // ,{field: 'updateBy$', align: 'center',title: '修改人员'} 
 | 
            // ,{field: 'updateTime$', align: 'center',title: '修改时间'} 
 | 
            ,{field: 'memo', align: 'center',title: '备注', hide: false} 
 | 
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width: 160} 
 | 
        ]], 
 | 
        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(); 
 | 
        } 
 | 
    }); 
 | 
  
 | 
    /* 表格2搜索 */ 
 | 
    form.on('submit(sensorTbSearch)', function (data) { 
 | 
        insTb2.reload({where: data.field, page: {curr: 1}}); 
 | 
        return false; 
 | 
    }); 
 | 
  
 | 
    /* 表格2头工具栏点击事件 */ 
 | 
    table.on('toolbar(orderDetlTable)', function (obj) { 
 | 
  
 | 
        var checkStatus = table.checkStatus(obj.config.id).data; 
 | 
        if (obj.event === 'pakoutPreview') { // 添加 
 | 
            if (checkStatus.length === 0) { 
 | 
                layer.msg('请选择至少一条出库明细', {icon: 2}); 
 | 
                return; 
 | 
            } 
 | 
            pakoutPreview(checkStatus.map(function (d) { 
 | 
                return d.id; 
 | 
            })); 
 | 
        } else if (obj.event === 'del') { // 删除 
 | 
            var checkRows = table.checkStatus('sensorTable'); 
 | 
            if (checkRows.data.length === 0) { 
 | 
                layer.msg('请选择要删除的数据', {icon: 2}); 
 | 
                return; 
 | 
            } 
 | 
            var ids = checkRows.data.map(function (d) { 
 | 
                return d.id; 
 | 
            }); 
 | 
            doDelSensor({ids: ids}); 
 | 
        } 
 | 
    }); 
 | 
  
 | 
    /* 表格2工具条点击事件 */ 
 | 
    table.on('tool(orderDetlTable)', function (obj) { 
 | 
        console.log(obj); 
 | 
        var data = obj.data; 
 | 
        switch (obj.event) { 
 | 
            // 出库 
 | 
            case 'pakoutPreview': 
 | 
                pakoutPreview([data.id]) 
 | 
                break; 
 | 
        } 
 | 
    }); 
 | 
  
 | 
    function pakoutPreview(ids) { 
 | 
        let loadIndex = layer.load(2); 
 | 
        $.ajax({ 
 | 
            url: baseUrl + "/out/pakout/preview/auth", 
 | 
            headers: {'token': localStorage.getItem('token')}, 
 | 
            contentType: 'application/json;charset=UTF-8', 
 | 
            data: JSON.stringify(ids), 
 | 
            method: 'POST', 
 | 
            success: function (res) { 
 | 
                layer.close(loadIndex); 
 | 
                var tableCache; 
 | 
                if (res.code === 200){ 
 | 
                    layer.open({ 
 | 
                        type: 1 
 | 
                        ,title: false 
 | 
                        ,closeBtn: false 
 | 
                        ,offset: '50px' 
 | 
                        ,area: ['1200px', '700px'] 
 | 
                        ,shade: 0.5 
 | 
                        ,shadeClose: false 
 | 
                        ,btn: ['立即出库', '稍后处理'] 
 | 
                        ,btnAlign: 'c' 
 | 
                        ,moveType: 1 //拖拽模式,0或者1 
 | 
                        ,content: $('#pakoutPreviewBox').html() 
 | 
                        ,success: function(layero, index){ 
 | 
                            stoPreTabIdx = table.render({ 
 | 
                                elem: '#stoPreTab', 
 | 
                                data: res.data, 
 | 
                                height: 520, 
 | 
                                page: false, 
 | 
                                limit: Number.MAX_VALUE, 
 | 
                                cellMinWidth: 100, 
 | 
                                cols: [[ 
 | 
                                    // {type: 'checkbox', merge: ['orderNo']}, 
 | 
                                    {field: 'orderNo', title: '单据编号', merge: true, align: 'center'}, 
 | 
                                    {field: 'title', title: '商品', merge: true, align: 'center', width: 350}, 
 | 
                                    {field: 'batch', title: '序列码', align: 'center'}, 
 | 
                                    {field: 'anfme', title: '数量', align: 'center', width: 90, style: 'font-weight: bold'}, 
 | 
                                    {field: 'locNo', title: '货位', align: 'center', width: 100, templet: '#locNoTpl'}, 
 | 
                                    {field: 'staNos', align: 'center', title: '出库站', merge: ['locNo'], templet: '#tbBasicTbStaNos'}, 
 | 
                                    {type: 'checkbox', merge: ['locNo']}, 
 | 
                                ]], 
 | 
                                done: function (res) { 
 | 
                                    tableMerge.render(this); 
 | 
                                    $('.layui-table-body.layui-table-main').css("overflow", "auto"); 
 | 
                                    tableCache = tableData = table.cache.stoPreTab; 
 | 
                                } 
 | 
                            }); 
 | 
                            // 修改出库站 
 | 
                            form.on('select(tbBasicTbStaNos)', function (obj) { 
 | 
                                let index  = obj.othis.parents('tr').attr("data-index"); 
 | 
                                let data = tableCache[index]; 
 | 
                                for (let i = 0; i<tableCache.length; i++) { 
 | 
                                    if (tableCache[i].locNo === data.locNo) { 
 | 
                                        tableCache[i]['staNo'] = Number(obj.elem.value); 
 | 
                                    } 
 | 
                                } 
 | 
                                obj.othis.children().find("input").css("color", "blue"); 
 | 
                                return false; 
 | 
                            }); 
 | 
                            // 批量修改出库站 
 | 
                            form.on('submit(batchModifySta)', function () { 
 | 
                                let stoPreTabData = layui.table.checkStatus('stoPreTab').data; 
 | 
                                if (stoPreTabData.length < 1) { 
 | 
                                    layer.msg("请至少选择一条以上合并数据", {icon: 7}); 
 | 
                                    return false; 
 | 
                                } 
 | 
                                modifySta(stoPreTabData); 
 | 
                            }); 
 | 
                            // 批量修改出库站 - 站点选择 
 | 
                            function modifySta(stoPreTabData) { 
 | 
                                // 出库站取交集 
 | 
                                let staBatchSelectVal = []; 
 | 
                                for(let i = 0; i<stoPreTabData.length; i++) { 
 | 
                                    let staNos = stoPreTabData[i].staNos; 
 | 
                                    if (staNos !== null) { 
 | 
                                        if (staBatchSelectVal.length === 0) { 
 | 
                                            staBatchSelectVal = staNos; 
 | 
                                        } else { 
 | 
                                            staBatchSelectVal = staBatchSelectVal.filter(val => 
 | 
                                                { 
 | 
                                                    return new Set(staNos).has(val) 
 | 
                                                } 
 | 
                                            ) 
 | 
                                        } 
 | 
                                    } 
 | 
                                } 
 | 
                                if (staBatchSelectVal.length === 0) { 
 | 
                                    layer.msg("出库站没有交集,无法批量修改", {icon: 2}); 
 | 
                                    return; 
 | 
                                } 
 | 
                                admin.open({ 
 | 
                                    type: 1, 
 | 
                                    area: '300px', 
 | 
                                    offset: 'auto', 
 | 
                                    title: '请选择站点', 
 | 
                                    content: $('#staBatchSelectDialog').html(), 
 | 
                                    success: function (layero, ddIndex) { 
 | 
                                        // 渲染下拉框 
 | 
                                        let template = Handlebars.compile($('#batchStaSelectTpl').html()); 
 | 
                                        $('#batchSelectStaBox').html(template({list: staBatchSelectVal})); 
 | 
                                        // 确认 
 | 
                                        form.on('submit(staBatchSelectConfirm)', function (obj) { 
 | 
                                            let loadIdx = layer.load(2); 
 | 
                                            let batchSta = Number(obj.field.batchSta); 
 | 
                                            let arr = []; 
 | 
                                            for (let j = 0; j<stoPreTabData.length; j++) { 
 | 
                                                for (let i = 0; i<tableCache.length; i++) { 
 | 
                                                    if (tableCache[i].orderNo === stoPreTabData[j].orderNo 
 | 
                                                        && tableCache[i].matnr === stoPreTabData[j].matnr 
 | 
                                                        && tableCache[i].locNo === stoPreTabData[j].locNo) { 
 | 
                                                        tableCache[i]['staNo'] = batchSta; 
 | 
                                                        arr.push(i); 
 | 
                                                    } 
 | 
                                                } 
 | 
                                            } 
 | 
                                            stoPreTabIdx.reload({data: tableCache}); 
 | 
                                            arr.forEach(item => { 
 | 
                                                $('div[lay-id=stoPreTab] tr[data-index="' + item + '"] .order-sta-select').val(batchSta); 
 | 
                                            }); 
 | 
                                            layui.form.render('select'); 
 | 
                                            arr.forEach(item => { 
 | 
                                                $('div[lay-id=stoPreTab] tr[data-index="' + item + '"] .layui-select-title').find("input").css("color", "blue"); 
 | 
                                            }); 
 | 
                                            layer.close(loadIdx); layer.close(ddIndex); 
 | 
                                            return false; 
 | 
                                        }); 
 | 
                                        // 弹窗不出现滚动条 
 | 
                                        $(layero).children('.layui-layer-content').css('overflow', 'visible'); 
 | 
                                        layui.form.render('select'); 
 | 
                                    }, 
 | 
                                }) 
 | 
                            } 
 | 
  
 | 
                        } 
 | 
                        ,yes: function(index, layero){ 
 | 
                            //按钮【立即出库】的回调 
 | 
                            pakout(tableCache, index); 
 | 
                        } 
 | 
                        ,btn2: function(index, layero){ 
 | 
                            //按钮【稍后处理】的回调 
 | 
                            layer.close(index) 
 | 
                            //return false 开启该代码可禁止点击该按钮关闭 
 | 
                        } 
 | 
                    }); 
 | 
                } else if (res.code === 403){ 
 | 
                    top.location.href = baseUrl+"/"; 
 | 
                } else { 
 | 
                    layer.msg(res.msg, {icon: 2}) 
 | 
                } 
 | 
            } 
 | 
        }) 
 | 
    } 
 | 
  
 | 
    function pakout(tableCache, layerIndex) { 
 | 
        // let loadIndex = layer.load(2); 
 | 
        notice.msg('正在生成出库任务......', {icon: 4}); 
 | 
        $.ajax({ 
 | 
            url: baseUrl + "/out/pakout/auth", 
 | 
            headers: {'token': localStorage.getItem('token')}, 
 | 
            contentType: 'application/json;charset=UTF-8', 
 | 
            data: JSON.stringify(tableCache), 
 | 
            method: 'POST', 
 | 
            success: function (res) { 
 | 
                notice.destroy(); 
 | 
                if (res.code === 200) { 
 | 
                    layer.close(layerIndex); 
 | 
                    layer.msg(res.msg, {icon: 1}); 
 | 
                    insTb.reload({where: null}); 
 | 
                    insTb2.reload({where: null, page: {curr: 1}}); 
 | 
                } else if (res.code === 403) { 
 | 
                    top.location.href = baseUrl + "/"; 
 | 
                } else { 
 | 
                    layer.msg(res.msg, {icon: 2}) 
 | 
                } 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
    /* 删除订单 */ 
 | 
    function doDelSensor(obj) { 
 | 
        layer.confirm('确定要删除选中数据吗?', { 
 | 
            skin: 'layui-layer-admin', 
 | 
            shade: .1 
 | 
        }, function (i) { 
 | 
            layer.close(i); 
 | 
            var loadIndex = layer.load(2); 
 | 
            $.ajax({ 
 | 
                url: baseUrl+"/sensor/delete/auth", 
 | 
                headers: {'token': localStorage.getItem('token')}, 
 | 
                data: {ids: obj.ids}, 
 | 
                method: 'POST', 
 | 
                success: function (res) { 
 | 
                    layer.close(loadIndex); 
 | 
                    if (res.code === 200){ 
 | 
                        layer.msg(res.msg, {icon: 1}); 
 | 
                        $(".layui-laypage-btn")[0].click(); 
 | 
                    } else if (res.code === 403){ 
 | 
                        top.location.href = baseUrl+"/"; 
 | 
                    }else { 
 | 
                        layer.msg(res.msg, {icon: 2}); 
 | 
                    } 
 | 
                } 
 | 
            }) 
 | 
  
 | 
        }); 
 | 
    } 
 | 
  
 | 
    // 修改状态 
 | 
    form.on('switch(statusSwitch)', function (obj) { 
 | 
        var index  = obj.othis.parents('tr').attr("data-index"); 
 | 
        var data = tableData[index]; 
 | 
        data[this.name] = obj.elem.checked?1:0; 
 | 
        http.post(baseUrl+"/sensor/edit/auth", {id: data.id, status: data[this.name]}, function (res) { 
 | 
            layer.msg(res.msg, {icon: 1}); 
 | 
        }) 
 | 
    }) 
 | 
  
 | 
    window.pakoutPreview = pakoutPreview; 
 | 
  
 | 
}); 
 | 
  
 | 
function tableReload(child) { 
 | 
    var searchData = {}; 
 | 
    $.each($('#search-box [name]').serializeArray(), function() { 
 | 
        searchData[this.name] = this.value; 
 | 
    }); 
 | 
    (child ? parent.tableIns : tableIns).reload({ 
 | 
        where: searchData, 
 | 
        page: { 
 | 
            curr: pageCurr 
 | 
        } 
 | 
    }); 
 | 
} 
 | 
  
 | 
/** 
 | 
 * 一键出库 
 | 
 */ 
 | 
function autoOut(orderId) { 
 | 
    let loadIndex = layer.msg('请求中...', {icon: 16, shade: 0.01, time: false}); 
 | 
    $.ajax({ 
 | 
        url: baseUrl + "/out/pakout/orderDetlIds/auth", 
 | 
        headers: {'token': localStorage.getItem('token')}, 
 | 
        data: { orderId : orderId }, 
 | 
        method: 'POST', 
 | 
        success: function (res) { 
 | 
            layer.close(loadIndex); 
 | 
            if (res.code === 200){ 
 | 
                pakoutPreview(res.data); 
 | 
            } else if (res.code === 403){ 
 | 
                top.location.href = baseUrl+"/"; 
 | 
            } else { 
 | 
                layer.msg(res.msg, {icon: 2}); 
 | 
            } 
 | 
        } 
 | 
    }) 
 | 
} 
 |