From 978a64cef6ac485bff42b2faa4caf0e5bf1276e0 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期一, 28 三月 2022 10:15:43 +0800
Subject: [PATCH] #

---
 src/main/webapp/static/js/order/out.js                  |   18 +++++---
 src/main/webapp/static/layui/lay/modules/tableMerge.js  |   75 +++++++++++++++++++++++++++++++++++++
 src/main/webapp/views/order/out.html                    |   10 +++-
 src/main/java/com/zy/common/model/LocDto.java           |    2 +
 src/main/java/com/zy/asrs/controller/OutController.java |    4 +
 5 files changed, 98 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 9f494e4..eba9ffc 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -92,7 +92,9 @@
                 }
             }
             if (issued > 0) {
-                locDtos.add(new LocDto("缂鸿揣", orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued));
+                LocDto locDto = new LocDto("缂鸿揣", orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+                locDto.setLack(Boolean.TRUE);
+                locDtos.add(locDto);
             }
         }
         return R.ok().add(locDtos);
diff --git a/src/main/java/com/zy/common/model/LocDto.java b/src/main/java/com/zy/common/model/LocDto.java
index f03977d..c3d1805 100644
--- a/src/main/java/com/zy/common/model/LocDto.java
+++ b/src/main/java/com/zy/common/model/LocDto.java
@@ -20,6 +20,8 @@
 
     private Double anfme;
 
+    private boolean lack = false;
+
     public LocDto() {
     }
 
diff --git a/src/main/webapp/static/js/order/out.js b/src/main/webapp/static/js/order/out.js
index d2aaeca..0337c36 100644
--- a/src/main/webapp/static/js/order/out.js
+++ b/src/main/webapp/static/js/order/out.js
@@ -4,7 +4,7 @@
     base: baseUrl + "/static/layui/lay/modules/"
 }).extend({
     notice: 'notice/notice',
-}).use(['table','laydate', 'form', 'util', 'admin', 'notice', 'treeTable', 'xmSelect'], function(){
+}).use(['table','laydate', 'form', 'util', 'admin', 'notice', 'treeTable', 'xmSelect', 'tableMerge'], function(){
     var table = layui.table;
     var $ = layui.jquery;
     var layer = layui.layer;
@@ -15,6 +15,7 @@
     var notice = layui.notice;
     var treeTable = layui.treeTable;
     var xmSelect = layui.xmSelect;
+    var tableMerge = layui.tableMerge;
 
     insTb2 = table.render({
         elem: '#orderDetlTable',
@@ -138,32 +139,35 @@
                         ,closeBtn: false
                         ,offset: '100px'
                         // ,area: ['1000px', '700px']
-                        ,area: '1000px'
+                        ,area: '1200px'
                         ,shade: 0.5
                         ,shadeClose: true
                         ,btn: ['绔嬪嵆鐢熸垚', '绋嶅悗澶勭悊']
                         ,btnAlign: 'c'
                         ,moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1
-                        ,content: $('#pakoutPreviewBox')
+                        ,content: $('#pakoutPreviewBox').html()
                         ,success: function(layero, index){
                             console.log(res.data)
                             table.render({
                                 elem: '#stoPreTab',
                                 data: res.data,
-                                page: false,
-                                cellMinWidth: 100,
                                 height: 432,
+                                page: false,
+                                limit: Number.MAX_VALUE,
+                                cellMinWidth: 100,
                                 cols: [[
+                                    {type: 'checkbox', merge: ['orderNo']},
                                     {field: 'orderNo', title: '鍗曟嵁缂栧彿', merge: true, align: 'center'},
-                                    {field: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 300},
+                                    {field: 'title', title: '鍟嗗搧', align: 'center', width: 350},
+                                    {field: 'batch', title: '鎵瑰彿', merge: ['title'], align: 'center'},
                                     // {field: 'anfme', title: '鎬绘暟閲�', merge: ['title'], align: 'center', style: 'font-weight: bold', width: 90},
                                     {field: 'locNo', title: '璐т綅', align: 'center', width: 90},
-                                    {field: 'batch', title: '鎵瑰彿', align: 'center'},
                                     {field: 'anfme', title: '鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'},
                                     // {field: 'remQty', title: '浣欓噺', align: 'center', width: 80},
                                     // {field: 'total', title: '鎬婚噺', align: 'center', width: 90},
                                 ]],
                                 done: function () {
+                                    tableMerge.render(this);
                                     $('.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);
+});
+
diff --git a/src/main/webapp/views/order/out.html b/src/main/webapp/views/order/out.html
index 083c7e1..a00a8e6 100644
--- a/src/main/webapp/views/order/out.html
+++ b/src/main/webapp/views/order/out.html
@@ -126,12 +126,16 @@
 </script>
 
 <!-- 鍑哄簱棰勮 -->
-<div id="pakoutPreviewBox" style="display: none">
+<script type="text/html" id="pakoutPreviewBox" style="display: none">
     <div  style="padding: 25px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">
         <span style="font-size: large; font-weight: bold">鍑哄簱棰勮</span>
     </div>
-    <table id="stoPreTab" lay-filter="stoPreTab"></table>
-</div>
+    <div class="layui-card">
+        <div class="layui-card-body" style="padding: 10px">
+            <table id="stoPreTab" lay-filter="stoPreTab"></table>
+        </div>
+    </div>
+</script>
 
 <!-- 琛屾牱寮� -->
 <script type="text/html" id="orderNoTpl">

--
Gitblit v1.9.1