From 99458a90a21032ed17dd7ecf48ddb42051577438 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 12 十一月 2025 08:26:33 +0800
Subject: [PATCH] API接口日志导出excel列错乱修复

---
 src/main/webapp/views/apiLog/apiLog.html   |    9 +++++++--
 src/main/webapp/static/js/apiLog/apiLog.js |   35 +++++++++++++++++++++++++++++++++--
 2 files changed, 40 insertions(+), 4 deletions(-)

diff --git a/src/main/webapp/static/js/apiLog/apiLog.js b/src/main/webapp/static/js/apiLog/apiLog.js
index a954872..dbdd365 100644
--- a/src/main/webapp/static/js/apiLog/apiLog.js
+++ b/src/main/webapp/static/js/apiLog/apiLog.js
@@ -30,7 +30,7 @@
             // ,{field: 'timestamp', align: 'center',title: '鏃堕棿鎴�'}
             // ,{field: 'clientIp', align: 'center',title: 'URL',hide: true}
             ,{field: 'request', align: 'center',title: '璇锋眰鍐呭'}
-            ,{field: 'response', align: 'center',title: '鎿嶄綔鍐呭'}
+            ,{field: 'response', align: 'center',title: '鍝嶅簲鍐呭'}
             // ,{field: 'err', align: 'center',title: '寮傚父鍐呭'}
             ,{field: 'result$', align: 'center',title: '缁撴灉', templet: '#resTpl', width: 80}
             // ,{field: 'status$', align: 'center',title: '鐘舵��'}
@@ -122,7 +122,38 @@
                         success: function (res) {
                             layer.closeAll();
                             if (res.code === 200) {
-                                table.exportFile(titles,res.data,'xls');
+                                var rows = res.data.map(function(arr) {
+                                    return {
+                                        namespace: arr[0],
+                                        url: arr[1],
+                                        request: arr[2],
+                                        response: arr[3],
+                                        result$: arr[4],
+                                        createTime$: arr[5]
+                                    };
+                                });
+                                // 鏍煎紡鍖� JSON 瀛楁锛堝彧澶勭悊 request 鍜� response锛�
+                                var fixedData = rows.map(function(item){
+                                    var newItem = {};
+                                    fields.forEach(function(f){
+                                        var val = item[f];
+                                        if (f === 'request' || f === 'response') {
+                                            if (val) {
+                                                // 灏濊瘯鏍煎紡鍖� JSON 骞惰浆涔夌壒娈婄鍙�
+                                                try {
+                                                    val = JSON.stringify(JSON.parse(val));
+                                                } catch (e) {
+                                                    // 闈炴爣鍑咼SON灏变笉鏍煎紡鍖�
+                                                }
+                                                val = val.replace(/"/g, '鈥�');   // 鏇挎崲鍙屽紩鍙蜂负鍏ㄨ寮曞彿锛岄槻姝� Excel 娣蜂贡
+                                                val = val.replace(/\n/g, '');    // 鍘绘帀鎹㈣
+                                            }
+                                        }
+                                        newItem[f] = val == null ? '' : String(val);
+                                    });
+                                    return newItem;
+                                });
+                                table.exportFile(titles,fixedData,'xls');
                             } else if (res.code === 403) {
                                 top.location.href = baseUrl+"/";
                             } else {
diff --git a/src/main/webapp/views/apiLog/apiLog.html b/src/main/webapp/views/apiLog/apiLog.html
index 9ec3e57..0720655 100644
--- a/src/main/webapp/views/apiLog/apiLog.html
+++ b/src/main/webapp/views/apiLog/apiLog.html
@@ -10,6 +10,11 @@
     <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
     <link rel="stylesheet" href="../../static/css/cool.css" media="all">
 </head>
+<style>
+    div .layui-table-tool .layui-table-tool-self .layui-inline[title='瀵煎嚭']{
+        display: none;
+    }
+</style>
 <body>
 
 <div class="layui-fluid">
@@ -45,10 +50,10 @@
 </div>
 
 <script type="text/html" id="toolbar">
-    <div class="layui-btn-container">
+    <div class="layui-btn-container" style="display: flex; justify-content: flex-start; align-items: center; height: 100%;">
 <!--        <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>-->
 <!--        <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>-->
-<!--        <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button>-->
+        <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button>
     </div>
 </script>
 

--
Gitblit v1.9.1