From 39ddd87db8c3dc398557120b096b350b7d32efe4 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期五, 21 十一月 2025 16:34:12 +0800
Subject: [PATCH] 1.自动勾选

---
 src/main/webapp/views/order/outLocDetlQuery.html |   93 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 93 insertions(+), 0 deletions(-)

diff --git a/src/main/webapp/views/order/outLocDetlQuery.html b/src/main/webapp/views/order/outLocDetlQuery.html
index e41fba1..75bbbfc 100644
--- a/src/main/webapp/views/order/outLocDetlQuery.html
+++ b/src/main/webapp/views/order/outLocDetlQuery.html
@@ -75,6 +75,11 @@
         .over-limit #selectedTotal {
             color: #FF5722 !important; /* 绾㈣壊璀﹀憡 */
         }
+
+        /* 璁㈠崟瀹屾垚鐘舵�� */
+        .order-completed {
+            background: #5FB878 !important;
+        }
     </style>
 </head>
 <body>
@@ -149,6 +154,7 @@
 
 <script type="text/html" id="toolbar">
     <div class="layui-btn-container">
+        <button class="layui-btn" id="btn-auto-select" lay-event="autoSelect">鑷姩鍕鹃��</button>
         <button class="layui-btn" id="btn-confirm" lay-event="confirm" style="">鎻愬彇</button>
     </div>
 </script>
@@ -196,6 +202,7 @@
 
 <script>
     var conditionXmSelect;
+    var
     function getCol() {
         var cols = [
             {type: 'checkbox'}
@@ -335,6 +342,10 @@
                 var checkStatus = table.checkStatus(obj.config.id);
                 var data = checkStatus.data;
                 switch (obj.event) {
+                    case 'autoSelect':
+                        // 鑷姩鍕鹃�夊姛鑳�
+                        autoSelectItems();
+                        break;
                     case 'confirm':
                         if (data.length === 0) {
                             layer.msg("璇烽�夋嫨鏁版嵁");
@@ -356,6 +367,88 @@
                 }
             });
 
+            // 鑷姩鍕鹃�夊嚱鏁� - 淇鐗堟湰锛氬嬀閫夊簱瀛樻槑缁嗭紝鏁伴噺绱姞涓嶈秴杩囪鍗曟暟閲�
+            function autoSelectItems() {
+                // 鑾峰彇褰撳墠椤垫墍鏈夋暟鎹�
+                var allData = table.cache.stockOut;
+                if (!allData || allData.length === 0) {
+                    layer.msg("娌℃湁鍙嬀閫夌殑鏁版嵁", {icon: 2});
+                    return;
+                }
+
+                // 濡傛灉璁㈠崟鏁伴噺涓�0锛屼笉闇�瑕佸嬀閫�
+                if (orderTotal <= 0) {
+                    layer.msg("璁㈠崟鏁伴噺涓�0锛屾棤闇�鍕鹃��", {icon: 2});
+                    return;
+                }
+
+                // 鍏堝彇娑堟墍鏈夊凡閫変腑鐨勯」
+                for (var i = 0; i < allData.length; i++) {
+                    allData[i].LAY_CHECKED = false;
+                }
+
+                // 閲嶇疆閫変腑鏁伴噺
+                selectedTotal = 0;
+
+                // 鎸夐『搴忓嬀閫夊簱瀛樻槑缁嗭紝鐩村埌绱鏁伴噺杈惧埌璁㈠崟鏁伴噺
+                var remaining = orderTotal;
+                var selectedCount = 0;
+
+                for (var i = 0; i < allData.length; i++) {
+                    var itemQuantity = parseFloat(allData[i].anfme || 0);
+
+                    // 璺宠繃鏁伴噺涓�0鎴栨棤鏁堢殑椤�
+                    if (itemQuantity <= 0) continue;
+
+                    // 濡傛灉鍓╀綑闇�姹備负0锛屽仠姝㈠嬀閫�
+                    if (remaining <= 0) break;
+
+                    // 鍕鹃�夎椤�
+                    allData[i].LAY_CHECKED = true;
+                    selectedTotal += itemQuantity;
+                    selectedCount++;
+
+                    // 鏇存柊鍓╀綑闇�姹�
+                    remaining = orderTotal - selectedTotal;
+
+                    // 濡傛灉鍕鹃�夊悗瓒呰繃璁㈠崟鏁伴噺锛岀粰鍑烘彁绀哄苟鍋滄鍕鹃��
+                    if (selectedTotal > orderTotal) {
+                        layer.msg('璀﹀憡锛氳嚜鍔ㄥ嬀閫夊悗鏁伴噺瓒呰繃璁㈠崟鏁伴噺锛屽凡鍋滄鍕鹃��', {icon: 2, time: 3000});
+                        break;
+                    }
+                }
+
+                // 鏇存柊琛ㄦ牸鏄剧ず - 鍙皟鐢ㄤ竴娆�
+                table.reload('stockOut', {
+                    data: allData,
+                    done: function() {
+                        // 鍦ㄨ〃鏍奸噸杞藉畬鎴愬悗锛屾墜鍔ㄦ洿鏂板閫夋鐨凞OM鐘舵��
+                        setTimeout(function() {
+                            for (var i = 0; i < allData.length; i++) {
+                                if (allData[i].LAY_CHECKED) {
+                                    var trElem = $('tr[data-index="' + i + '"]');
+                                    if (trElem.length > 0) {
+                                        // 鎿嶄綔澶嶉�夋
+                                        trElem.find('input[type="checkbox"]').prop('checked', true);
+                                        trElem.find('.layui-form-checkbox').addClass('layui-form-checked');
+                                    }
+                                }
+                            }
+                            // 閲嶆柊娓叉煋琛ㄥ崟
+                            form.render('checkbox');
+
+                            // 鏇存柊鏄剧ず
+                            updateSelectedTotal();
+
+                            if (selectedCount > 0) {
+                                layer.msg('宸茶嚜鍔ㄥ嬀閫� ' + selectedCount + ' 涓簱瀛樻槑缁嗭紝鏁伴噺: ' + selectedTotal, {icon: 1, time: 2000});
+                            } else {
+                                layer.msg('娌℃湁鍙嬀閫夌殑搴撳瓨鏄庣粏', {icon: 2});
+                            }
+                        }, 100);
+                    }
+                });
+            }
             conditionXmSelect = xmSelect.render({
                 el: '#condition',
                 style: {

--
Gitblit v1.9.1