var pageCurr; 
 | 
var printMatCodeNos = []; 
 | 
var admin; 
 | 
function getCol() { 
 | 
    var cols = [ 
 | 
        {type: 'checkbox'} 
 | 
        ,{field: 'tagId$', align: 'center',title: '归类', templet: '#tagTpl'} 
 | 
    ]; 
 | 
    cols.push.apply(cols, matCols); 
 | 
    cols.push( 
 | 
        {fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:150} 
 | 
    ) 
 | 
    return cols; 
 | 
} 
 | 
  
 | 
layui.config({ 
 | 
    base: baseUrl + "/static/layui/lay/modules/" 
 | 
}).extend({ 
 | 
    dropdown: 'dropdown/dropdown', 
 | 
}).use(['table','laydate', 'form', 'treeTable', 'admin', 'xmSelect', 'dropdown', 'element'], function(){ 
 | 
    var table = layui.table; 
 | 
    var $ = layui.jquery; 
 | 
    var layer = layui.layer; 
 | 
    var layDate = layui.laydate; 
 | 
    var form = layui.form; 
 | 
    admin = layui.admin; 
 | 
    var treeTable = layui.treeTable; 
 | 
    var xmSelect = layui.xmSelect; 
 | 
  
 | 
    // 商品分类数据 
 | 
    var insTb = treeTable.render({ 
 | 
        elem: '#tag', 
 | 
        url: baseUrl+'/tag/list/auth', 
 | 
        headers: {token: localStorage.getItem('token')}, 
 | 
        tree: { 
 | 
            iconIndex: 2,           // 折叠图标显示在第几列 
 | 
            isPidData: true,        // 是否是id、pid形式数据 
 | 
            idName: 'id',           // id字段名称 
 | 
            pidName: 'parentId'     // pid字段名称 
 | 
        }, 
 | 
        cols: [], 
 | 
        done: function (data) { 
 | 
            $('.ew-tree-table-box').css('height', '100%'); 
 | 
            insTb.expandAll(); 
 | 
        } 
 | 
    }); 
 | 
  
 | 
    // 数据渲染 
 | 
    tableIns = table.render({ 
 | 
        elem: '#mat', 
 | 
        headers: {token: localStorage.getItem('token')}, 
 | 
        url: baseUrl+'/mat/list/auth', 
 | 
        page: true, 
 | 
        limit: 16, 
 | 
        limits: [16, 30, 50, 100, 200, 500], 
 | 
        toolbar: '#toolbar', 
 | 
        cellMinWidth: 50, 
 | 
        height: 'full-105', 
 | 
        cols: [getCol()], 
 | 
        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(); 
 | 
            form.on('checkbox(tableCheckbox)', function (data) { 
 | 
                var _index = $(data.elem).attr('table-index')||0; 
 | 
                if(data.elem.checked){ 
 | 
                    res.data[_index][data.value] = 'Y'; 
 | 
                }else{ 
 | 
                    res.data[_index][data.value] = 'N'; 
 | 
                } 
 | 
            }); 
 | 
        } 
 | 
    }); 
 | 
  
 | 
    // 监听排序事件 
 | 
    table.on('sort(locMast)', 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 
 | 
            }, 
 | 
            done: function (res, curr, count) { 
 | 
                if (res.code === 403) { 
 | 
                    top.location.href = baseUrl+"/"; 
 | 
                } 
 | 
                pageCurr=curr; 
 | 
                limit(); 
 | 
            } 
 | 
        }); 
 | 
    }); 
 | 
  
 | 
    // 监听头工具栏事件 
 | 
    table.on('toolbar(mat)', function (obj) { 
 | 
        var checkStatus = table.checkStatus(obj.config.id); 
 | 
        switch(obj.event) { 
 | 
            case 'addData': 
 | 
                showEditModel() 
 | 
                break; 
 | 
            case 'deleteData': 
 | 
                var data = checkStatus.data; 
 | 
                if (data.length === 0){ 
 | 
                    layer.msg('请选择数据'); 
 | 
                } else { 
 | 
                    layer.confirm('确定删除'+(data.length===1?'此':data.length)+'条数据吗', function(){ 
 | 
                        $.ajax({ 
 | 
                            url: baseUrl+"/mat/delete/auth", 
 | 
                            headers: {'token': localStorage.getItem('token')}, 
 | 
                            data: {param: JSON.stringify(data)}, 
 | 
                            method: 'POST', 
 | 
                            traditional:true, 
 | 
                            success: function (res) { 
 | 
                                if (res.code === 200){ 
 | 
                                    layer.closeAll(); 
 | 
                                    tableReload(false); 
 | 
                                } else if (res.code === 403){ 
 | 
                                    top.location.href = baseUrl+"/"; 
 | 
                                } else { 
 | 
                                    layer.msg(res.msg) 
 | 
                                } 
 | 
                            } 
 | 
                        }) 
 | 
                    }); 
 | 
                } 
 | 
                break; 
 | 
            case 'exportData': 
 | 
                layer.confirm('确定导出Excel吗', {shadeClose: true}, function(){ 
 | 
                    var titles=[]; 
 | 
                    var fields=[]; 
 | 
                    obj.config.cols[0].map(function (col) { 
 | 
                        if (col.type === 'normal' && col.hide === false && col.toolbar == null) { 
 | 
                            titles.push(col.title); 
 | 
                            fields.push(col.field); 
 | 
                        } 
 | 
                    }); 
 | 
                    var exportData = {}; 
 | 
                    $.each($('#search-box [name]').serializeArray(), function() { 
 | 
                        exportData[this.name] = this.value; 
 | 
                    }); 
 | 
                    var param = { 
 | 
                        'mat': exportData, 
 | 
                        'fields': fields 
 | 
                    }; 
 | 
                    $.ajax({ 
 | 
                        url: baseUrl+"/mat/export/auth", 
 | 
                        headers: {'token': localStorage.getItem('token')}, 
 | 
                        data: JSON.stringify(param), 
 | 
                        dataType:'json', 
 | 
                        contentType:'application/json;charset=UTF-8', 
 | 
                        method: 'POST', 
 | 
                        success: function (res) { 
 | 
                            layer.closeAll(); 
 | 
                            if (res.code === 200) { 
 | 
                                table.exportFile(titles,res.data,'xls'); 
 | 
                            } else if (res.code === 403) { 
 | 
                                top.location.href = baseUrl+"/"; 
 | 
                            } else { 
 | 
                                layer.msg(res.msg) 
 | 
                            } 
 | 
                        } 
 | 
                    }); 
 | 
                }); 
 | 
                break; 
 | 
            // 批量打印 
 | 
            case "btnPrintBatch": 
 | 
                printMatCodeNos = []; 
 | 
                var data = checkStatus.data; 
 | 
                if (data.length === 0){ 
 | 
                    layer.msg('请选择打印数据'); 
 | 
                } else { 
 | 
                    layer.open({ 
 | 
                        type: 1, 
 | 
                        title: '批量打印 [数量'+ data.length +']', 
 | 
                        area: ['500px'], 
 | 
                        shadeClose: true, 
 | 
                        content: $('#printDataDiv'), 
 | 
                        success: function(layero, index){ 
 | 
                            for (var i = 0; i<data.length;i++) { 
 | 
                                printMatCodeNos.push(data[i].matnr); 
 | 
                            } 
 | 
                        }, 
 | 
                        end: function () { 
 | 
                        } 
 | 
                    }); 
 | 
                } 
 | 
                break; 
 | 
        } 
 | 
    }); 
 | 
  
 | 
    // 监听行工具事件 
 | 
    table.on('tool(mat)', function(obj){ 
 | 
        var data = obj.data; 
 | 
        switch (obj.event) { 
 | 
            // 打印 
 | 
            case "btnPrint": 
 | 
                printMatCodeNos = []; 
 | 
                layer.open({ 
 | 
                    type: 1, 
 | 
                    title: data.matnr + ' [数量:1]', 
 | 
                    area: ['500px'], 
 | 
                    shadeClose: true, 
 | 
                    content: $('#printDataDiv'), 
 | 
                    success: function(layero, index){ 
 | 
                        layer.iframeAuto(index); 
 | 
                        printMatCodeNos.push(data.matnr); 
 | 
                    }, 
 | 
                    end: function () { 
 | 
                    } 
 | 
                }); 
 | 
                break; 
 | 
            // 编辑 
 | 
            case 'edit': 
 | 
                showEditModel(data) 
 | 
                break; 
 | 
        } 
 | 
    }); 
 | 
  
 | 
    /* 显示表单弹窗 */ 
 | 
    function showEditModel(mData) { 
 | 
        admin.open({ 
 | 
            type: 1, 
 | 
            area: '600px', 
 | 
            title: (mData ? '修改' : '添加') + '商品', 
 | 
            content: $('#editDialog').html(), 
 | 
            success: function (layero, dIndex) { 
 | 
                // 回显表单数据 
 | 
                form.val('detail', mData); 
 | 
                // 新增自动生成商品编号 
 | 
                if (!mData) { 
 | 
                    http.get(baseUrl + "/mat/auto/matnr/auth", null, function (res) { 
 | 
                        $('#matnr').val(res.data); 
 | 
                    }) 
 | 
                } 
 | 
                // 表单提交事件 
 | 
                form.on('submit(editSubmit)', function (data) { 
 | 
                    console.log(data) 
 | 
                    data.field.tagId = insXmSel.getValue('valueStr'); 
 | 
                    if (isEmpty(data.field.tagId)) { 
 | 
                        layer.msg('分类不能为空', {icon: 2}); 
 | 
                        return false; 
 | 
                    } 
 | 
                    var loadIndex = layer.load(2); 
 | 
                    $.ajax({ 
 | 
                        url: baseUrl+"/mat/"+(mData?'update':'add')+"/auth", 
 | 
                        headers: {'token': localStorage.getItem('token')}, 
 | 
                        data: data.field, 
 | 
                        method: 'POST', 
 | 
                        success: function (res) { 
 | 
                            layer.close(loadIndex); 
 | 
                            if (res.code === 200){ 
 | 
                                layer.close(dIndex); 
 | 
                                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}); 
 | 
                            } 
 | 
                        } 
 | 
                    }) 
 | 
                    return false; 
 | 
                }); 
 | 
                // 渲染下拉树 
 | 
                var insXmSel = xmSelect.render({ 
 | 
                    el: '#tagSel', 
 | 
                    height: '250px', 
 | 
                    data: insTb.options.data, 
 | 
                    initValue: mData ? [mData.tagId] : [], 
 | 
                    model: {label: {type: 'text'}}, 
 | 
                    prop: { 
 | 
                        name: 'name', 
 | 
                        value: 'id' 
 | 
                    }, 
 | 
                    radio: true, 
 | 
                    clickClose: true, 
 | 
                    tree: { 
 | 
                        show: true, 
 | 
                        indent: 15, 
 | 
                        strict: false, 
 | 
                        expandedKeys: true 
 | 
                    } 
 | 
                }); 
 | 
                // 弹窗不出现滚动条 
 | 
                $(layero).children('.layui-layer-content').css('overflow', 'visible'); 
 | 
                layui.form.render('select'); 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
    // 模板选择 
 | 
    form.on('radio(selectTemplateRadio)', function (data) { 
 | 
        $('.template-preview').hide(); 
 | 
        $('#template-preview-'+data.value).show(); 
 | 
    }); 
 | 
  
 | 
    // 开始打印 
 | 
    form.on('submit(doPrint)', function (data) { 
 | 
        var templateNo = data.field.selectTemplate; 
 | 
        $.ajax({ 
 | 
            url: baseUrl+"/mat/print/auth", 
 | 
            headers: {'token': localStorage.getItem('token')}, 
 | 
            data: {param: printMatCodeNos}, 
 | 
            method: 'POST', 
 | 
            async: false, 
 | 
            success: function (res) { 
 | 
                if (res.code === 200){ 
 | 
                    layer.closeAll(); 
 | 
                    for (let i=0;i<res.data.length;i++){ 
 | 
                        var templateDom = $("#templatePreview"+templateNo); 
 | 
                        var className = templateDom.attr("class"); 
 | 
                        if (className === 'template-barcode') { 
 | 
                            res.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=1¶m="+res.data[i].matnr; 
 | 
                        } else { 
 | 
                            res.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=2¶m="+res.data[i].matnr; 
 | 
                        } 
 | 
                    } 
 | 
                    var tpl = templateDom.html(); 
 | 
                    var template = Handlebars.compile(tpl); 
 | 
                    var html = template(res); 
 | 
                    var box = $("#box"); 
 | 
                    box.html(html);box.show(); 
 | 
                    box.print({mediaPrint:true}); 
 | 
                    box.hide(); 
 | 
                } else if (res.code === 403){ 
 | 
                    top.location.href = baseUrl+"/"; 
 | 
                }else { 
 | 
                    layer.msg(res.msg) 
 | 
                } 
 | 
            } 
 | 
        }) 
 | 
    }); 
 | 
  
 | 
    // 搜索栏搜索事件 
 | 
    form.on('submit(search)', function (data) { 
 | 
        pageCurr = 1; 
 | 
        tableReload(false); 
 | 
    }); 
 | 
  
 | 
    // 搜索栏重置事件 
 | 
    form.on('submit(reset)', function (data) { 
 | 
        pageCurr = 1; 
 | 
        clearFormVal($('#search-box')); 
 | 
        tableReload(false); 
 | 
    }); 
 | 
  
 | 
    // 时间选择器 
 | 
    layDate.render({ 
 | 
        elem: '#createTime\\$', 
 | 
        type: 'datetime' 
 | 
    }); 
 | 
    layDate.render({ 
 | 
        elem: '#updateTime\\$', 
 | 
        type: 'datetime' 
 | 
    }); 
 | 
  
 | 
  
 | 
}); 
 | 
  
 | 
// excel导入模板下载 
 | 
function excelMouldDownload(){ 
 | 
    layer.load(1, {shade: [0.1,'#fff']}); 
 | 
    location.href = baseUrl + "/mat/excel/import/mould"; 
 | 
    layer.closeAll('loading'); 
 | 
} 
 | 
  
 | 
// excel导入 
 | 
function importExcel() { 
 | 
    $("#importExcel").trigger("click"); 
 | 
} 
 | 
function upload(obj){ 
 | 
    if(!obj.files) { 
 | 
        return; 
 | 
    } 
 | 
    var file = obj.files[0]; 
 | 
    admin.confirm('确认同步 [' + file.name +'] 文件吗?', function (index) { 
 | 
        layer.load(1, {shade: [0.1,'#fff']}); 
 | 
        var url = baseUrl + "/mat/excel/import/auth"; 
 | 
        var form = new FormData(); 
 | 
        form.append("file", file); 
 | 
        xhr = new XMLHttpRequest(); 
 | 
        xhr.open("post", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。 
 | 
        xhr.setRequestHeader('token', localStorage.getItem('token')); 
 | 
        xhr.onload = uploadComplete; //请求完成 
 | 
        xhr.onerror =  uploadFailed; //请求失败 
 | 
        xhr.onloadend = function () { // // 上传完成重置文件流 
 | 
            layer.closeAll('loading'); 
 | 
            $("#importExcel").val(""); 
 | 
        }; 
 | 
        // xhr.upload.onprogress = progressFunction;//【上传进度调用方法实现】 
 | 
        xhr.upload.onloadstart = function(){//上传开始执行方法 
 | 
            ot = new Date().getTime();   //设置上传开始时间 
 | 
            oloaded = 0;//设置上传开始时,以上传的文件大小为0 
 | 
        }; 
 | 
        xhr.send(form); 
 | 
    }, function(index){ 
 | 
        $("#importExcel").val(""); 
 | 
    }); 
 | 
} 
 | 
function uploadComplete(evt) { 
 | 
    var res = JSON.parse(evt.target.responseText); 
 | 
    if(res.code === 200) { 
 | 
        layer.msg(res.msg, {icon: 1}); 
 | 
        loadTree(""); 
 | 
    } else { 
 | 
        layer.msg(res.msg, {icon: 2}); 
 | 
    } 
 | 
} 
 | 
function uploadFailed(evt) { 
 | 
    var res = JSON.parse(evt.target.responseText); 
 | 
    layer.msg(res.msg, {icon: 2}); 
 | 
} 
 | 
  
 | 
// excel导出 
 | 
function exportExcel() { 
 | 
  
 | 
} 
 | 
  
 | 
  
 | 
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 
 | 
        }, 
 | 
        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); 
 | 
        } 
 | 
    }); 
 | 
} 
 | 
  
 | 
function clearFormVal(el) { 
 | 
    $(':input', el) 
 | 
        .val('') 
 | 
        .removeAttr('checked') 
 | 
        .removeAttr('selected'); 
 | 
} 
 | 
  
 | 
$('body').keydown(function () { 
 | 
    if (event.keyCode === 13) { 
 | 
        $("#search").click(); 
 | 
    } 
 | 
}); 
 |