diff --git a/src/main/resources/static/js/basis/child/auditData.js b/src/main/resources/static/js/basis/child/auditData.js index a651805..03a31df 100644 --- a/src/main/resources/static/js/basis/child/auditData.js +++ b/src/main/resources/static/js/basis/child/auditData.js @@ -1,7 +1,9 @@ let form, layer, table, tableIns, laydate; -let pageNum = 1, limitSize = 10; // 默认第一页,分页数量为10 +let pageNum = 1, limitSize = 1; // 默认第一页,分页数量为10 let deviceTypeList = []; let idParam = null, statusParam = null; +let temp_table_list = []; // 临时保存每页的所有数据 +let temp_all_list = []; // 临时保存所有选中的数据 function setParams(params) { idParam = JSON.parse(params).id; @@ -19,7 +21,7 @@ function setParams(params) { range: ['#startTime', '#endTime'], rangeLinked: true }); - pages(1, 10, 1); + pages(1, 1, 1); }) } @@ -34,7 +36,6 @@ function pages(pageNum, pageSize, typeNum) { type: 'POST', async: false, success: function (result) { - console.log(result); if (result.code === 200) { if (result.data) { initTable(result.data, result.limit, result.curr) @@ -57,7 +58,7 @@ function laypages(total, page, limit) { count: total, curr: page, limit: limit, - limits: [10, 20, 50, 100, 200, 500], + limits: [1, 20, 50, 100, 200, 500], layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'], groups: 5, jump: function (obj, first) { @@ -70,22 +71,27 @@ function laypages(total, page, limit) { }) } +let flag = true; + /*初始化表格*/ function initTable(dataList, limit, page) { let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,}); tableIns = table.render({ elem: "#table_data", - id:'testData', + id: 'testData', height: "full-140", data: dataList, limit: limit, cols: [ [ //表头 - {type: 'checkbox', fixed: 'left'}, + { + type: 'checkbox', fixed: 'left' + }, { title: "序号", width: 80, unresize: true, align: "center", templet: function (d) { + console.log(d.experId) return (page - 1) * limit + d.LAY_NUM; } }, @@ -95,12 +101,14 @@ function initTable(dataList, limit, page) { {field: "experimenter", title: "试验人员", unresize: true, align: "center"}, {field: "testTime", title: "试验时间", unresize: true, align: "center"}, {field: "status", title: "状态", unresize: true, align: "center"}, - { title: "原始记录", unresize: true, align: "center", + { + title: "原始记录", unresize: true, align: "center", templet: function (d) { let html = ''; - html += "查看"; + html += "查看"; return html; - }}, + } + }, { title: "操作", unresize: true, width: 180, align: "center", templet: function (d) { @@ -115,13 +123,87 @@ function initTable(dataList, limit, page) { ], done: function (res, curr, count) { layer.close(loadingMsg); - table.resize("table_data"); + table.resize("testData"); count || this.elem.next(".layui-table-view").find(".layui-table-header").css("display", "inline-block"); count || this.elem.next(".layui-table-view").find(".layui-table-box").css("overflow", "auto"); - }, + temp_table_list = res.data; + temp_table_list.forEach(function (o, i) { + if(!isCheck(o.status)){ + let index = o['LAY_INDEX']; + $('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').attr('disabled','disabled'); + $('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').next().removeClass("layui-form-checked"); + $('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').next().addClass("layui-disabled"); + } + }) + temp_table_list.forEach(function (o, i) { + for (let j = 0; j < temp_all_list.length; j++) { + if (temp_all_list[j].experId === o.experId) { + // 这里才是真正的有效勾选 + o["LAY_CHECKED"] = 'true'; + // 找到对应数据改变勾选样式,呈现出选中效果 + let index = o['LAY_INDEX']; + $('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').prop('checked', true); + $('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').next().addClass('layui-form-checked'); + } + } + }) + // 设置全选checkbox的选中状态,只有改变LAY_CHECKED的值, table.checkStatus才能抓取到选中的状态 + let checkStatus = table.checkStatus('testData'); + if (checkStatus.isAll) {// 是否全选 + // layTableAllChoose + $('.layui-table th[data-field="0"] input[type="checkbox"]').prop('checked', true);//data-field值默认为0,如果在分页部分自定义了属性名,则需要改成对应的属性名 + $('.layui-table th[data-field="0"] input[type="checkbox"]').next().addClass('layui-form-checked');//data-field值默认为0,如果在分页部分自定义了属性名,则需要改成对应的属性名 + } + } + }); + // 选中行监听(临时存储复选数据,用于列表复选框回显上一页) + table.on('checkbox(testData)', function (obj) { + if (obj.checked == true) { + if (obj.type == 'one') { + let index = checkAllList(temp_all_list, obj.data); + if (index == -1) { + temp_all_list.push(obj.data); + } + } else { + temp_table_list.forEach(function (o, i) { + let index = checkAllList(temp_all_list, o); + if (index == -1 && isCheck(o.status)) { + temp_all_list.push(o); + } + }) + } + } else { + let all_list = []; // 使用临时数组,防止删除临时选中所有的数组错乱 + if (obj.type == 'one') { + temp_all_list.forEach(function (o, i) { + if (o.experId != obj.data.experId) { + all_list.push(o); + } + }) + } else { + temp_all_list.forEach(function (o, i) { + let index = checkAllList(temp_table_list, o); + if (index == -1) { + all_list.push(o); + } + }) + } + temp_all_list = all_list; + } }); } +/** + * 判断数组重复 + */ +function checkAllList(list, obj) { + for (let j = 0; j < list.length; j++) { + if (list[j].experId == obj.experId) { + return j; + } + } + return -1; +} // 获取参数 function getReqParams(page, limit, type) { @@ -139,7 +221,7 @@ function getReqParams(page, limit, type) { } else { obj = { page: '1', - limit: '10', + limit: '1', keyWord: '', accessType: '', startTime: '', @@ -173,7 +255,7 @@ function reloadData() { } // 原始数据查看 -function viewData(experId,devTypeCode) { +function viewData(experId, devTypeCode) { let title = '原始记录'; let param = { 'experId': experId, @@ -183,8 +265,8 @@ function viewData(experId,devTypeCode) { } /**/ -function passData(experId,sampleId,type){ - let title = type === 1 ? '通过确认':'驳回确认'; +function passData(experId, sampleId, type) { + let title = type === 1 ? '通过确认' : '驳回确认'; let param = { 'experId': experId, 'sampleId': sampleId, @@ -194,24 +276,34 @@ function passData(experId,sampleId,type){ } /*1.批量通过 2.批量不通过*/ -function batchAudit(type){ - const tableStatus = table.checkStatus('testData'); - const size = tableStatus.data.length - if(size === 0){ - return layer.msg('未选择数据',{icon:7}); +function batchAudit(type) { + // const tableStatus = table.checkStatus('testData'); + const size = temp_all_list.length + if (size === 0) { + return layer.msg('未选择数据', {icon: 7}); } - let experIdArr = [],sampleId = null; - $.each(tableStatus.data,function (index,item){ - if(index === 0){ + let experIdArr = [], sampleId = null; + $.each(temp_all_list, function (index, item) { + if (index === 0) { sampleId = item.sampleId; } experIdArr.push(item.experId) }) - let index = layer.confirm('批量'+(type === 1 ? '通过':'不通过')+'确认前,请仔细检查数据?',{title:'操作提示',icon:7,move:false},function (){ + let index = layer.confirm('批量' + (type === 1 ? '通过' : '不通过') + '确认前,请仔细检查数据?', { + title: '操作提示', + icon: 7, + move: false + }, function () { layer.close(index); - passData(experIdArr,sampleId,type); + passData(experIdArr, sampleId, type); }) - console.log(tableStatus.data) // 选中行的数据 - console.log(tableStatus.data.length) // 选中行数量,可作为是否有选中行的条件 - console.log(tableStatus.isAll) // 表格是否全选 +} + +let checkNameArr = ['待审核','待审批']; //'待审阅', + +function isCheck(value){ + if (checkNameArr.indexOf(value) > -1) { + return true + } + return false; } \ No newline at end of file diff --git a/src/main/resources/static/js/openIframe.js b/src/main/resources/static/js/openIframe.js index 72edf2b..f930c62 100644 --- a/src/main/resources/static/js/openIframe.js +++ b/src/main/resources/static/js/openIframe.js @@ -58,7 +58,7 @@ function openIframe3(id, title, content, width, height, params) { iframeWin.setParams(JSON.stringify(params)); }, end:function (){ - if(id === 'auditData' || id === 'passData'){ + if(id === 'auditData'){ window.reloadData(); } } diff --git a/src/main/resources/static/pages/basis/child/auditData.html b/src/main/resources/static/pages/basis/child/auditData.html index 1a38290..56adfe3 100644 --- a/src/main/resources/static/pages/basis/child/auditData.html +++ b/src/main/resources/static/pages/basis/child/auditData.html @@ -56,7 +56,7 @@
-
+