From 94f63133c340e62b35b225a4562af0bb49b976cb Mon Sep 17 00:00:00 2001 From: augushong Date: Fri, 10 Oct 2025 21:33:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extend/base/admin/view/debug/log/index.html | 24 +++++++- extend/base/admin/view/debug/log/index.js | 66 ++++++++++++++++----- 2 files changed, 75 insertions(+), 15 deletions(-) diff --git a/extend/base/admin/view/debug/log/index.html b/extend/base/admin/view/debug/log/index.html index b3f2501..90c8c21 100644 --- a/extend/base/admin/view/debug/log/index.html +++ b/extend/base/admin/view/debug/log/index.html @@ -1,5 +1,27 @@
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
@@ -12,7 +34,7 @@ padding: 15px; white-space: pre-wrap; word-wrap: break-word; - height: calc(100vh - 120px); + height: calc(100vh - 170px); overflow-y: auto; } diff --git a/extend/base/admin/view/debug/log/index.js b/extend/base/admin/view/debug/log/index.js index 9acad89..d128901 100644 --- a/extend/base/admin/view/debug/log/index.js +++ b/extend/base/admin/view/debug/log/index.js @@ -7,28 +7,35 @@ $(function () { limit = 50, noMoreData = false; var $logContainer = $('#log-container'); + var order = 'desc', sortField = 'uid'; function loadLogs() { if (noMoreData) { return; } + var sort = {}; + sort[sortField] = order; + if(sortField = 'uid'){ + sort['id'] = 'asc' + } + ua.request.get({ url: ua.url(init.indexUrl), data: { page: page, limit: limit, - sort:{ - id:'desc' - } + sort: sort } }, function (res) { if (res.data && res.data.length > 0) { var html = ''; var isFirstPage = (page === 1); + layui.each(res.data, function (index, item) { html += ''; html += '[' + item.uid + '] '; + html += '[' + item.id + '] '; html += '[' + item.create_time + '] '; html += '[' + item.level.toUpperCase() + '] '; html += item.content; @@ -36,44 +43,75 @@ $(function () { }); var oldScrollHeight = $logContainer[0].scrollHeight; - $logContainer.prepend(html); + + if (order === 'desc') { + $logContainer.prepend(html); + } else { + $logContainer.append(html); + } + var newScrollHeight = $logContainer[0].scrollHeight; if (isFirstPage) { - // 首次加载,滚动到底部 - $logContainer.scrollTop(newScrollHeight); + // 首次加载,倒序滚动到底部,正序滚动到顶部 + $logContainer.scrollTop(order === 'desc' ? newScrollHeight : 0); } else { // 加载更多,保持滚动位置 - $logContainer.scrollTop(newScrollHeight - oldScrollHeight); + if (order === 'desc') { + $logContainer.scrollTop(newScrollHeight - oldScrollHeight); + } } page++; } else { noMoreData = true; - $logContainer.prepend('
- The Beginning -
'); + var endText = order === 'desc' ? '- The Beginning -' : '- The End -'; + var endHtml = '
' + endText + '
'; + if (order === 'desc') { + $logContainer.prepend(endHtml); + } else { + $logContainer.append(endHtml); + } } }, function () { // complete }); } + function reloadLogs() { + page = 1; + noMoreData = false; + $logContainer.empty(); + loadLogs(); + } + // 初始加载 loadLogs(); // 监听滚动事件 $logContainer.on('scroll', function () { var $this = $(this); - // 滚动条到顶部时加载更多 - if ($this.scrollTop() === 0) { + // 滚动条到顶部时(倒序)或到底部时(正序)加载更多 + if ((order === 'desc' && $this.scrollTop() === 0) || + (order === 'asc' && $this.scrollTop() + $this.innerHeight() >= $this[0].scrollHeight - 1)) { loadLogs(); } }); + // 监听排序方式选择 + layui.form.on('select(order-select)', function (data) { + order = data.value; + reloadLogs(); + }); + + // 监听排序字段选择 + layui.form.on('select(sort-select)', function (data) { + sortField = data.value; + reloadLogs(); + }); + // 监听刷新按钮 ua.listen.refresh(function () { - page = 1; - noMoreData = false; - $logContainer.empty(); - loadLogs(); + reloadLogs(); }); }); \ No newline at end of file