From 831dbe10d1c0975b0de4251b67b939347b079006 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 20 二月 2025 10:35:01 +0800
Subject: [PATCH] 单据管理多选,全选excel导出

---
 src/main/webapp/static/js/order/order.js |   90 ++++++++++++++++++++++++++++++++++++---------
 1 files changed, 72 insertions(+), 18 deletions(-)

diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index 3e27de8..3b085f1 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -1,5 +1,8 @@
 var insTbCount = 0;
 var printMatCodeNos = [];
+var selectedData = [];
+var selectType = 'one';
+var queryWhere = {};
 layui.config({
     base: baseUrl + "/static/layui/lay/modules/"
 }).use(['layer', 'form', 'table', 'util', 'admin', 'xmSelect', 'laydate'], function () {
@@ -41,7 +44,8 @@
         page: true,
         cellMinWidth: 100,
         cols: [[
-            {type: 'numbers'},
+            {type: 'checkbox'},
+            {type: 'numbers', title: '搴忓彿'},
             {field: 'orderNo', title: '鍗曟嵁缂栧彿'},
             {field: 'docType$', align: 'center', title: '绫诲瀷',  minWidth: 160, width: 160},
             {align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160},
@@ -73,37 +77,87 @@
             if (res.code === 403) {
                 top.location.href = baseUrl+"/";
             }
+
+            var selectedOrderNos = selectedData.map(item => item.orderNo);
+            var indexArr = []
+
+            res.data.forEach(function (item,index) {
+                  if (selectedOrderNos.includes(item.orderNo)) {
+                      indexArr.push(index)
+                  }
+            })
+            // 閲嶆柊娓叉煋
+            table.setRowChecked('order',{
+                index: indexArr
+            });
             insTbCount = count;
+        }
+    });
+
+    table.on('checkbox(order)', function (obj) {
+        if (obj.type === 'all' && obj.checked) {
+            selectType = 'all'
+        } else if (obj.type === 'one' && obj.checked) {
+            selectType = 'one'
+            selectedData.push(obj.data); // 閫変腑鏃朵繚瀛樻暟鎹�
+        } else if (obj.type === 'one' && !obj.checked && obj.index !== undefined) {
+            selectType = 'one'
+            selectedData = selectedData.filter(item => item.orderNo !== obj.data.orderNo); // 鍙栨秷鏃剁Щ闄ゆ暟鎹�
+        } else if (obj.type === 'all' && !obj.checked && obj.index === undefined) {
+            selectType = 'one'
+            selectedData = [];
         }
     });
 
     // 鎼滅储
     form.on('submit(tbSearch)', function (data) {
         insTb.reload({where: data.field, page: {curr: 1}});
+        queryWhere = data.field
     });
 
-    // 瀵煎嚭鎵�鏈�
+    // 瀵煎嚭
     form.on('submit(exportAll)', function (data) {
-        layer.closeAll();
-        layer.load(1, {shade: [0.1,'#fff']});
-        $.ajax({
-            url: baseUrl+"/order/exportAll/auth",
-            headers: {'token': localStorage.getItem('token')},
-            data: {},
-            dataType:'json',
-            contentType:'application/json;charset=UTF-8',
-            method: 'POST',
-            success: function (res) {
-                if (res.code === 200) {
-                    table.exportFile(['鍗曟嵁缂栧彿','鏁伴噺','浣滀笟鏁伴噺','瀹屾垚鏁伴噺','鍟嗗搧缂栫爜','鍟嗗搧鍚嶇О','瑙勬牸','閲嶉噺','璐т富id','璐х墿褰㈡�乮d'],res.data,'xls');
-                } else if (res.code === 403) {
-                    top.location.href = baseUrl+"/";
+        layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function () {
+            layer.closeAll();
+            layer.load(1, {shade: [0.1, '#fff']});
+            var reqData = {};
+            reqData.type = selectType;
+            if (reqData.type === 'one') {
+                reqData.orderNoList = selectedData.map(item => item.orderNo);
+            } else {
+                if (Object.keys(queryWhere).length === 0) {
+                    reqData.queryWhere = {
+                        create_time: "",
+                        cstmr_name: "",
+                        doc_type: "",
+                        oper_memb: "",
+                        order_no: "",
+                        settle: ""
+                    }
                 } else {
-                    layer.msg(res.msg)
+                    reqData.queryWhere = queryWhere
                 }
             }
+            $.ajax({
+                url: baseUrl + "/order/definedExcelExport/auth",
+                headers: {'token': localStorage.getItem('token')},
+                data: JSON.stringify(reqData),
+                contentType: 'application/json;charset=UTF-8',
+                method: 'POST',
+                xhrFields: {
+                    responseType: 'blob'  // 澶勭悊杩斿洖鐨勬枃浠舵祦
+                },
+                success: function (res) {
+                    var link = document.createElement('a');
+                    link.href = URL.createObjectURL(res);  // 浣跨敤 Blob 瀵硅薄鐢熸垚涓存椂 URL
+                    link.download = new Date().getTime() + '.xlsx';  // 璁剧疆涓嬭浇鐨勬枃浠跺悕
+                    document.body.appendChild(link);
+                    link.click();  // 瑙﹀彂涓嬭浇
+                    document.body.removeChild(link);
+                }
+            });
+            layer.closeAll('loading');
         });
-        layer.closeAll('loading');
     });
 
     // 娣诲姞

--
Gitblit v1.9.1