From c7ecd3e8727f4b3029c17db1162785884fe30bce Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期一, 23 三月 2026 14:03:47 +0800
Subject: [PATCH] 优化平库明细导出逻辑

---
 src/main/webapp/static/js/manLocDetl/PLocDetl.js |  105 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 59 insertions(+), 46 deletions(-)

diff --git a/src/main/webapp/static/js/manLocDetl/PLocDetl.js b/src/main/webapp/static/js/manLocDetl/PLocDetl.js
index 8682c53..86685d4 100644
--- a/src/main/webapp/static/js/manLocDetl/PLocDetl.js
+++ b/src/main/webapp/static/js/manLocDetl/PLocDetl.js
@@ -80,10 +80,7 @@
 
     // 鐩戝惉鎺掑簭浜嬩欢
     table.on('sort(locDetl)', function (obj) {
-        var searchData = {};
-        $.each($('#search-box [name]').serializeArray(), function() {
-            searchData[this.name] = this.value;
-        });
+        var searchData = getSearchData();
         searchData['orderByField'] = obj.field;
         searchData['orderByType'] = obj.type;
         tableIns.reload({
@@ -155,43 +152,9 @@
                 }
                 break;
             case 'exportData':
-                layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
-                    var titles=[];
-                    var fields=[];
-                    obj.config.cols[0].map(function (col) {
-                        if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
-                            titles.push(col.title);
-                            fields.push(col.field);
-                        }
-                    });
-                    var exportData = {};
-                    $.each($('#search-box [name]').serializeArray(), function() {
-                        exportData[this.name] = this.value;
-                    });
-                    var param = {
-                        'locDetl': exportData,
-                        'fields': fields
-                    };
-                    var loadIndex = layer.msg('姝e湪瀵煎嚭...', {icon: 16, shade: 0.01, time: false});
-                    $.ajax({
-                        url: baseUrl+"/locDetl/export/auth",
-                        headers: {'token': localStorage.getItem('token')},
-                        data: JSON.stringify(param),
-                        dataType:'json',
-                        contentType:'application/json;charset=UTF-8',
-                        method: 'POST',
-                        success: function (res) {
-                            layer.close(loadIndex);
-                            layer.closeAll();
-                            if (res.code === 200) {
-                                table.exportFile(titles,res.data,'xls');
-                            } else if (res.code === 403) {
-                                top.location.href = baseUrl+"/";
-                            } else {
-                                layer.msg(res.msg)
-                            }
-                        }
-                    });
+                layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(confirmIndex){
+                    layer.close(confirmIndex);
+                    exportTableData(obj.config.cols[0], baseUrl+"/manLocDetl/export/auth", table, layer);
                 });
                 break;
         }
@@ -456,11 +419,7 @@
 });
 
 function tableReload(child) {
-    var searchData = {
-    };
-    $.each($('#search-box [name]').serializeArray(), function() {
-        searchData[this.name] = this.value;
-    });
+    var searchData = getSearchData();
     (child ? parent.tableIns : tableIns).reload({
         where: searchData,
         page: {
@@ -538,3 +497,57 @@
         $("#search").click();
     }
 });
+
+function getSearchData() {
+    var searchData = {};
+    $.each($('#search-box [name]').serializeArray(), function() {
+        searchData[this.name] = this.value;
+    });
+    return searchData;
+}
+
+function getExportColumns(cols) {
+    var titles = [];
+    var fields = [];
+    cols.map(function (col) {
+        if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+            titles.push(col.title);
+            fields.push(col.field);
+        }
+    });
+    return {
+        titles: titles,
+        fields: fields
+    };
+}
+
+function exportTableData(cols, exportUrl, table, layer) {
+    var exportColumns = getExportColumns(cols);
+    var loadIndex = layer.msg('姝e湪瀵煎嚭...', {icon: 16, shade: 0.01, time: false});
+    $.ajax({
+        url: exportUrl,
+        headers: {'token': localStorage.getItem('token')},
+        data: JSON.stringify({
+            'locDetl': getSearchData(),
+            'fields': exportColumns.fields
+        }),
+        dataType:'json',
+        contentType:'application/json;charset=UTF-8',
+        method: 'POST',
+        success: function (res) {
+            if (res.code === 200) {
+                table.exportFile(exportColumns.titles, res.data, 'xls');
+            } else if (res.code === 403) {
+                top.location.href = baseUrl+"/";
+            } else {
+                layer.msg(res.msg);
+            }
+        },
+        error: function () {
+            layer.msg('瀵煎嚭澶辫触锛岃绋嶅悗閲嶈瘯');
+        },
+        complete: function () {
+            layer.close(loadIndex);
+        }
+    });
+}

--
Gitblit v1.9.1