| | |
| | | } |
| | | 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({ |
| | |
| | | // ,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'}, |
| | |
| | | {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") |
| | | } |
| | | }); |
New file |
| | |
| | | /** |
| | | * 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); |
| | | }); |
| | | |