From 289140c6c2650a10baaa988d381c7d6668788b43 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期三, 31 三月 2021 16:04:55 +0800 Subject: [PATCH] # --- src/main/webapp/static/js/custOrder/custOrder.js | 12 +++-- src/main/webapp/static/layui/lay/modules/tableMerge.js | 75 +++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+), 5 deletions(-) diff --git a/src/main/webapp/static/js/custOrder/custOrder.js b/src/main/webapp/static/js/custOrder/custOrder.js index f79ac41..131ae19 100644 --- a/src/main/webapp/static/js/custOrder/custOrder.js +++ b/src/main/webapp/static/js/custOrder/custOrder.js @@ -16,13 +16,14 @@ } layui.config({ base: baseUrl + "/static/layui/lay/modules/" // 閰嶇疆妯″潡鎵�鍦ㄧ殑鐩綍 -}).use(['table', 'laydate', 'form', 'tableX'], function(){ +}).use(['table', 'laydate', 'form', 'tableX', 'tableMerge'], function(){ var table = layui.table; var $ = layui.jquery; var layer = layui.layer; var layDate = layui.laydate; var form = layui.form; var tableX = layui.tableX; + var tableMerge = layui.tableMerge; // 鏁版嵁娓叉煋 tableIns = table.render({ @@ -223,9 +224,9 @@ // ,width: admin.screen() > 1 ? 892 : '' height: 432, cols: [[ - {field: 'title', title: '鍟嗗搧', align: 'center'}, - {field: 'anfme', title: '鎬绘暟閲�', align: 'center', style: 'font-weight: bold', width: 90}, - {field: 'type', title: '浠撳簱', align: 'center', templet: '#typeTpl', width: 90}, + {field: 'title', title: '鍟嗗搧', merge: true, align: 'center'}, + {field: 'anfme', title: '鎬绘暟閲�', merge: ['title'], align: 'center', style: 'font-weight: bold', width: 90}, + {field: 'type', title: '浠撳簱', merge: true, align: 'center', templet: '#typeTpl', width: 90}, {field: 'locNo', title: '璐т綅', align: 'center'}, {field: 'prior$', title: '鎺ㄨ崘璐т綅', align: 'center', width: 100}, {field: 'reduce', title: '鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'}, @@ -233,7 +234,8 @@ {field: 'total', title: '鎬婚噺', align: 'center', width: 90}, ]], done: function () { - tableX.merges('stoPreTab', [0,1,2]); + tableMerge.render(this); + // tableX.merges('stoPreTab', [0,1,2]); $('.layui-table-body.layui-table-main').css("overflow", "auto") } }); diff --git a/src/main/webapp/static/layui/lay/modules/tableMerge.js b/src/main/webapp/static/layui/lay/modules/tableMerge.js new file mode 100644 index 0000000..4d26b3c --- /dev/null +++ b/src/main/webapp/static/layui/lay/modules/tableMerge.js @@ -0,0 +1,75 @@ +/** + * Created by YujieYang. + * @name: 瀛愯〃鏍兼墿灞� + * @author: 鏉ㄧ帀鏉� + * @version 1.0 + */ +layui.define(['table'], function (exports) { + + var $ = layui.jquery; + + // 灏佽鏂规硶 + var mod = { + /** + * 娓叉煋鍏ュ彛 + * @param myTable + */ + render: function (myTable) { + var tableBox = $(myTable.elem).next().children('.layui-table-box'), + $main = $(tableBox.children('.layui-table-body').children('table').children('tbody').children('tr').toArray().reverse()), + $fixLeft = $(tableBox.children('.layui-table-fixed-l').children('.layui-table-body').children('table').children('tbody').children('tr').toArray().reverse()), + $fixRight = $(tableBox.children('.layui-table-fixed-r').children('.layui-table-body').children('table').children('tbody').children('tr').toArray().reverse()), + cols = myTable.cols[0], mergeRecord = {}; + + for (let i = 0; i < cols.length; i++) { + var item3 = cols[i], field=item3.field; + if (item3.merge) { + var mergeField = [field]; + if (item3.merge !== true) { + if (typeof item3.merge == 'string') { + mergeField = [item3.merge] + } else { + mergeField = item3.merge + } + } + mergeRecord[i] = {mergeField: mergeField, rowspan:1} + } + } + + $main.each(function (i) { + + for (var item in mergeRecord) { + if (i==$main.length-1 || isMaster(i, item)) { + $(this).children('[data-key$="-'+item+'"]').attr('rowspan', mergeRecord[item].rowspan).css('position','static'); + $fixLeft.eq(i).children('[data-key$="-'+item+'"]').attr('rowspan', mergeRecord[item].rowspan).css('position','static'); + $fixRight.eq(i).children('[data-key$="-'+item+'"]').attr('rowspan', mergeRecord[item].rowspan).css('position','static'); + mergeRecord[item].rowspan = 1; + } else { + $(this).children('[data-key$="-'+item+'"]').remove(); + $fixLeft.eq(i).children('[data-key$="-'+item+'"]').remove(); + $fixRight.eq(i).children('[data-key$="-'+item+'"]').remove(); + mergeRecord[item].rowspan +=1; + } + } + }) + + function isMaster (index, item) { + var mergeField = mergeRecord[item].mergeField; + var dataLength = layui.table.cache[myTable.id].length; + for (var i=0; i<mergeField.length; i++) { + + if (layui.table.cache[myTable.id][dataLength-2-index][mergeField[i]] + !== layui.table.cache[myTable.id][dataLength-1-index][mergeField[i]]) { + return true; + } + } + return false; + } + + } + }; + + // 杈撳嚭 + exports('tableMerge', mod); +}); + -- Gitblit v1.9.1