diff --git a/extend/base/admin/controller/debug/LogClass.php b/extend/base/admin/controller/debug/LogClass.php deleted file mode 100644 index 71ad073..0000000 --- a/extend/base/admin/controller/debug/LogClass.php +++ /dev/null @@ -1,27 +0,0 @@ - 'desc', - 'id' => 'asc', - ]; - - use \app\admin\traits\Curd; - - public function __construct(App $app) - { - parent::__construct($app); - - $this->model = new \app\admin\model\DebugLog(); - } -} diff --git a/extend/base/admin/view/debug/log/index.html b/extend/base/admin/view/debug/log/index.html index 6a1594f..b3f2501 100644 --- a/extend/base/admin/view/debug/log/index.html +++ b/extend/base/admin/view/debug/log/index.html @@ -1,25 +1,34 @@
- -
+
\ No newline at end of file diff --git a/extend/base/admin/view/debug/log/index.js b/extend/base/admin/view/debug/log/index.js index e0961b3..9acad89 100644 --- a/extend/base/admin/view/debug/log/index.js +++ b/extend/base/admin/view/debug/log/index.js @@ -1,51 +1,79 @@ $(function () { var init = { - tableElem: '#currentTable', - tableRenderId: 'currentTableRenderId', indexUrl: 'debug.log/index', - addUrl: 'debug.log/add', - editUrl: 'debug.log/edit', - deleteUrl: 'debug.log/delete', - exportUrl: 'debug.log/export', - modifyUrl: 'debug.log/modify', }; - var uidList = []; - ua.table.render({ - init: init, - size: 'sm', - limit: 50, - cols: [[ - { type: 'checkbox' }, - { field: 'id', title: 'id', search: 'number_limit' }, - { field: 'id', title: 'id模糊匹配', trueHide: true, fieldAlias: '[id]like' }, - { field: 'id', title: '最大id', trueHide: true, fieldAlias: '[id]max', searchOp: 'max' }, - { - field: 'uid', title: 'uid', minWidth: 120, - }, - { field: 'level', title: 'level', minWidth: 70 }, - { - field: 'content', title: '日志内容', minWidth: 450, align: 'left', templet: function (data) { + var page = 1, + limit = 50, + noMoreData = false; + var $logContainer = $('#log-container'); - if (uidList.indexOf(data.uid) < 0) { - uidList.push(data.uid); - } - var currentUidIndex = uidList.indexOf(data.uid); + function loadLogs() { + if (noMoreData) { + return; + } - var className = 'log-group log-group-' + (currentUidIndex % 2); - return '
' + data.content + '
'; + ua.request.get({ + url: ua.url(init.indexUrl), + data: { + page: page, + limit: limit, + sort:{ + id:'desc' } - }, - { field: 'create_time', title: '记录时间', minWidth: 160, search: 'time_limit', defaultSearchValue: ua.getQueryVariable('create_time') }, - { field: 'app_name', title: 'app_name' }, - { field: 'controller_name', title: 'controller_name', }, - { field: 'action_name', title: 'action_name' }, - ]], - toolbar: [ - 'refresh', - 'export' - ] + } + }, 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.create_time + '] '; + html += '[' + item.level.toUpperCase() + '] '; + html += item.content; + html += ''; + }); + + var oldScrollHeight = $logContainer[0].scrollHeight; + $logContainer.prepend(html); + var newScrollHeight = $logContainer[0].scrollHeight; + + if (isFirstPage) { + // 首次加载,滚动到底部 + $logContainer.scrollTop(newScrollHeight); + } else { + // 加载更多,保持滚动位置 + $logContainer.scrollTop(newScrollHeight - oldScrollHeight); + } + + page++; + } else { + noMoreData = true; + $logContainer.prepend('
- The Beginning -
'); + } + }, function () { + // complete + }); + } + + // 初始加载 + loadLogs(); + + // 监听滚动事件 + $logContainer.on('scroll', function () { + var $this = $(this); + // 滚动条到顶部时加载更多 + if ($this.scrollTop() === 0) { + loadLogs(); + } }); - ua.listen(); + // 监听刷新按钮 + ua.listen.refresh(function () { + page = 1; + noMoreData = false; + $logContainer.empty(); + loadLogs(); + }); }); \ No newline at end of file