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