自动化立体仓库 - WMS系统
luxiaotao1123
2021-09-14 c6bc9682699d3e10dc06a3d6641a70179e64f9a1
src/main/webapp/static/js/waitMatchk/waitMatchk.js
@@ -1,13 +1,10 @@
var pageCurr;
layui.config({
    base: baseUrl + "/static/layui/lay/modules/"
}).use(['table','laydate', 'form', 'tableMerge'], function(){
layui.use(['table','laydate', 'form'], function(){
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer;
    var layDate = layui.laydate;
    var form = layui.form;
    var tableMerge = layui.tableMerge;
    // 数据渲染
    tableIns = table.render({
@@ -21,13 +18,12 @@
        toolbar: '#toolbar',
        cellMinWidth: 50,
        cols: [[
            {type: 'checkbox', merge: ['locNo$']}
            {type: 'checkbox'}
            ,{field: 'locNo$', align: 'center',title: '库位号', merge:true}//,event: 'locNo', style: 'cursor:pointer'
//            ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
            ,{field: 'locNo$', merge: true, align: 'center',title: '库位号'}
            ,{field: 'billNo', align: 'center',title: '单据编号'}
            ,{field: 'seqNo', align: 'center',title: '序号'}
            ,{field: 'billType$', align: 'center',title: '单据类型', hide: true}
            ,{field: 'zpallet', align: 'center',title: '托盘号'}
            ,{field: 'matNo', align: 'center',title: '物料编码'}
            ,{field: 'matName', align: 'center',title: '物料名称'}
@@ -37,10 +33,10 @@
            ,{field: 'ioStatus$', align: 'center',title: '完成状态'}
            ,{field: 'ioTime$', align: 'center',title: '完成时间'}
            ,{field: 'verifyStatus$', align: 'center',title: '审核状态'}
            ,{field: 'verifyUser$', align: 'center',title: '审核人员', hide: true}
            ,{field: 'modiUser$', align: 'center',title: '修改人员', hide: true}
            ,{field: 'verifyUser$', align: 'center',title: '审核人员',event: 'verifyUser', style: 'cursor:pointer', hide: true}
            ,{field: 'modiUser$', align: 'center',title: '修改人员',event: 'modiUser', style: 'cursor:pointer', hide: true}
            ,{field: 'modiTime$', align: 'center',title: '修改时间', hide: true}
            ,{field: 'appeUser$', align: 'center',title: '建档人员', hide: true}
            ,{field: 'appeUser$', align: 'center',title: '建档人员',event: 'appeUser', style: 'cursor:pointer', hide: true}
            ,{field: 'appeTime$', align: 'center',title: '建档时间', hide: true}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:150}
        ]],
@@ -60,20 +56,22 @@
            statusCode: 200
        },
        done: function(res, curr, count) {
            tableMerge.render(this);
            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';
                }
            });
            // 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';
            //     }
            // });
            // $('.layui-form-checkbox').css("pointer-events", "none");
            // $('td[data-field="0').css("cursor", "pointer")
            merge(res);//调用
        }
    });
@@ -105,18 +103,50 @@
        var checkStatus = table.checkStatus(obj.config.id);
        switch(obj.event) {
            case 'addData':
                layer.open({
                    type: 2,
                    title: '新增',
                    maxmin: true,
                    area: [top.detailWidth, top.detailHeight],
                    content: 'waitMatchk_detail.html',
                    success: function(layero, index){
                        layer.getChildFrame('#data-detail-submit-edit', index).hide();
                       clearFormVal(layer.getChildFrame('#detail', index));
                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
                var data = checkStatus.data;
                for(var i=0;i<data.length;i++){
                    if (data[i].verifyStatus === 1) {
                        layer.msg('数据状态已审');
                        return;
                    }
                });
                }
                if (data.length === 0){
                    layer.msg('请选择数据');
                } else {
                    layer.confirm('确定审核'+(data.length===1?'此':data.length)+'条数据吗', function(){
                        $.ajax({
                            url: baseUrl+"/waitMatchk/verify/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)
                                }
                            }
                        })
                    });
                }
                // layer.open({
                //     type: 2,
                //     title: '新增',
                //     maxmin: true,
                //     area: [top.detailWidth, top.detailHeight],
                //     content: 'waitMatchk_detail.html',
                //     success: function(layero, index){
                //         layer.getChildFrame('#data-detail-submit-edit', index).hide();
                //        clearFormVal(layer.getChildFrame('#detail', index));
                //         layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
                //     }
                // });
                break;
            case 'deleteData':
                var data = checkStatus.data;
@@ -184,6 +214,37 @@
                break;
        }
    });
    function merge(res) {
        var data = res.data;
        var mergeIndex = 0;//定位需要添加合并属性的行数
        var mark = 1; //这里涉及到简单的运算,mark是计算每次需要合并的格子数
        var columsName = ['', 'locNo\\$'];//需要合并的列名称
        var columsIndex = [0, 1];//需要合并的列索引值
        for (var k = 0; k < columsName.length; k++) { //这里循环所有要合并的列
            var trArr = $(".layui-table-body>.layui-table").find("tr");//所有行
            for (var i = 1; i < res.data.length; i++) { //这里循环表格当前的数据
                var tdCurArr = trArr.eq(i).find("td").eq(columsIndex[k]);//获取当前行的当前列
                var tdPreArr = trArr.eq(mergeIndex).find("td").eq(columsIndex[k]);//获取相同列的第一列
                if (data[i][columsName[k]] === data[i - 1][columsName[k]]) { //后一行的值与前一行的值做比较,相同就需要合并
                    mark += 1;
                    tdPreArr.each(function () {//相同列的第一列增加rowspan属性
                        $(this).attr("rowspan", mark);
                    });
                    tdCurArr.each(function () {//当前行隐藏
                        $(this).css("display", "none");
                    });
                } else {
                    mergeIndex = i;
                    mark = 1;//一旦前后两行的值不一样了,那么需要合并的格子数mark就需要重新计算
                }
            }
            mergeIndex = 0;
            mark = 1;
        }
    }
    /* 弹窗 - 新增、修改 */
    function showEditModel(mData) {
@@ -398,6 +459,20 @@
});
// var b = true;
// $(function(){
//     $(document.body).on('click','td[data-field="0"]',function(){
//         var locNo = $(this).next().children("div").html();
//         if (b) {
//             b = false;
//             $("tr td[data-field=locNo\\$] div:contains("+ locNo +")").parent().prev().children().children("div").click();
//             setTimeout(function () {
//                 b = true;
//             }, 200)
//         }
//     });
// })
// 关闭动作
$(document).on('click','#data-detail-close', function () {
    parent.layer.closeAll();
@@ -428,6 +503,8 @@
                pageCurr -= 1;
            }
            limit(child);
            // $('.layui-form-checkbox').css("pointer-events", "none");
            // $('td[data-field="0').css("cursor", "pointer")
        }
    });
}