| 
var locDetlData = []; 
 | 
function getCol() { 
 | 
    var cols = [ 
 | 
        {field: 'count', align: 'center',title: '出库数量', edit:'text', width: 130,  style:'color: blue;font-weight: bold'} 
 | 
        ,{field: 'anfme', align: 'center',title: '原数量'} 
 | 
        ,{field: 'locNo', align: 'center',title: '库位号'} 
 | 
    ]; 
 | 
    arrRemove(detlCols,  'field', 'anfme'); 
 | 
    cols.push.apply(cols, detlCols); 
 | 
    cols.push({fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:80}) 
 | 
    return cols; 
 | 
} 
 | 
  
 | 
layui.use(['table','laydate', 'form'], function() { 
 | 
    var table = layui.table; 
 | 
    var $ = layui.jquery; 
 | 
    var layer = layui.layer; 
 | 
    var form = layui.form; 
 | 
  
 | 
    tableIns = table.render({ 
 | 
        elem: '#chooseData', 
 | 
        headers: {token: localStorage.getItem('token')}, 
 | 
        data: [], 
 | 
        even: true, 
 | 
        toolbar: '#toolbar', 
 | 
        cellMinWidth: 50, 
 | 
        cols: [getCol()], 
 | 
        done: function(res, curr, count) { 
 | 
            limit(); 
 | 
            // getOutBound(); 
 | 
        } 
 | 
    }); 
 | 
  
 | 
    // 页面修改 
 | 
    table.on('edit(chooseData)', function (obj) { 
 | 
        updateLocDetlData(obj.data.locNo, obj.data.matnr, Number(obj.value)); 
 | 
    }); 
 | 
  
 | 
    // 监听头工具栏事件 
 | 
    table.on('toolbar(chooseData)', function (obj) { 
 | 
        var data = locDetlData; 
 | 
        switch (obj.event) { 
 | 
            case 'outbound': 
 | 
                if (data.length === 0){ 
 | 
                    layer.msg('请先添加库位物料'); 
 | 
                } else { 
 | 
                    var locDetls = []; 
 | 
                    data.forEach(function(elem) { 
 | 
                        locDetls.push({nodeId: elem.nodeId, matnr: elem.matnr, count: elem.count}); 
 | 
                    }); 
 | 
                    $.ajax({ 
 | 
                        url: baseUrl+"/work/stock/pakout", 
 | 
                        headers: {'token': localStorage.getItem('token')}, 
 | 
                        data: JSON.stringify(locDetls), 
 | 
                        contentType:'application/json;charset=UTF-8', 
 | 
                        method: 'POST', 
 | 
                        success: function (res) { 
 | 
                            if (res.code === 200){ 
 | 
                                locDetlData = []; 
 | 
                                tableIns.reload({data: locDetlData,done:function (res) { 
 | 
                                    limit(); 
 | 
                                    // getOutBound(); 
 | 
                                }}); 
 | 
                                layer.msg(res.msg, {icon: 1}); 
 | 
                            } else if (res.code === 403){ 
 | 
                                top.location.href = baseUrl+"/"; 
 | 
                            } else { 
 | 
                                layer.msg(res.msg) 
 | 
                            } 
 | 
                        } 
 | 
                    }); 
 | 
                } 
 | 
                break; 
 | 
        } 
 | 
    }); 
 | 
  
 | 
    // 监听行工具事件 
 | 
    table.on('tool(chooseData)', function(obj){ 
 | 
        var data = obj.data; 
 | 
        switch (obj.event) { 
 | 
            case 'remove': 
 | 
                for (var i = locDetlData.length - 1; i >= 0; i--) { 
 | 
                    if (locDetlData[i].locNo === data.locNo && locDetlData[i].matnr === data.matnr) { 
 | 
                        locDetlData.splice(i, 1); 
 | 
                    } 
 | 
                } 
 | 
                tableIns.reload({data: locDetlData,done:function (res) { 
 | 
                    limit(); 
 | 
                    // getOutBound(); 
 | 
                }}); 
 | 
                break; 
 | 
        } 
 | 
    }); 
 | 
  
 | 
    function updateLocDetlData(locNo, matnr, count) { 
 | 
        if (isNaN(count)) { 
 | 
            layer.msg("请输入数字"); 
 | 
        } else { 
 | 
            if (count > 0) { 
 | 
                for (var i=0;i<locDetlData.length;i++){ 
 | 
                    if (locDetlData[i]["locNo"] === locNo && locDetlData[i]["matnr"] === matnr){ 
 | 
                        if (count > locDetlData[i]["anfme"]) { 
 | 
                            layer.msg("不能超过原数量"); 
 | 
                        } else { 
 | 
                            locDetlData[i]["count"] = count; 
 | 
                        } 
 | 
                        break; 
 | 
                    } 
 | 
                } 
 | 
            } else { 
 | 
                layer.msg("数量必须大于零"); 
 | 
            } 
 | 
        } 
 | 
        tableIns.reload({data: locDetlData,done:function (res) { 
 | 
            limit(); 
 | 
            // getOutBound(); 
 | 
        }}); 
 | 
    } 
 | 
  
 | 
    // 获取出库口 
 | 
    function getOutBound(){ 
 | 
        $.ajax({ 
 | 
            url: baseUrl+"/available/take/site", 
 | 
            headers: {'token': localStorage.getItem('token')}, 
 | 
            method: 'POST', 
 | 
            async: false, 
 | 
            success: function (res) { 
 | 
                if (res.code === 200){ 
 | 
                    var tpl = $("#takeSiteSelectTemplate").html(); 
 | 
                    var template = Handlebars.compile(tpl); 
 | 
                    var html = template(res); 
 | 
                    $('#staNoSelect').append(html); 
 | 
                    form.render('select'); 
 | 
                } else if (res.code === 403){ 
 | 
                    top.location.href = baseUrl+"/"; 
 | 
                }else { 
 | 
                    layer.msg(res.msg) 
 | 
                } 
 | 
            } 
 | 
        }) 
 | 
    } 
 | 
}) 
 | 
  
 | 
// 提取物料 
 | 
var locDetlLayerIdx; 
 | 
function getLocDetl() { 
 | 
    locDetlLayerIdx = layer.open({ 
 | 
        type: 2, 
 | 
        title: '提取出货内容', 
 | 
        maxmin: true, 
 | 
        area: [top.detailWidth, top.detailHeight], 
 | 
        shadeClose: true, 
 | 
        content: 'locDetlQuery.html', 
 | 
        success: function(layero, index){ 
 | 
        } 
 | 
    }); 
 | 
} 
 | 
  
 | 
// 添加表格数据 
 | 
function addTableData(data) { 
 | 
    for (var i=0;i<data.length;i++){ 
 | 
        let pass = false; 
 | 
        for (var j=0;j<locDetlData.length;j++){ 
 | 
            if (data[i].matnr === locDetlData[j].matnr && data[i].locNo === locDetlData[j].locNo) { 
 | 
                pass = true; 
 | 
                break; 
 | 
            } 
 | 
        } 
 | 
        if (pass) { 
 | 
            data.splice(i--, 1); 
 | 
        } else { 
 | 
            data[i]["count"] = data[i]["anfme"]; 
 | 
        } 
 | 
  
 | 
    } 
 | 
    locDetlData.push.apply(locDetlData, data); 
 | 
    tableIns.reload({data: locDetlData}); 
 | 
    layer.close(locDetlLayerIdx); 
 | 
} 
 |