mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-08 02:52:49 +08:00
feat: 增加按应用、控制器、方法查询日志
This commit is contained in:
@@ -24,4 +24,44 @@ class LogBase extends AdminController
|
|||||||
|
|
||||||
$this->model = new \app\admin\model\DebugLog();
|
$this->model = new \app\admin\model\DebugLog();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @\app\admin\service\annotation\NodeAnotation(title="列表")
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
if ($this->request->isAjax()) {
|
||||||
|
if (input('selectFields')) {
|
||||||
|
return $this->selectList();
|
||||||
|
}
|
||||||
|
list($page, $limit, $where, $excludes, $request_options, $group) = $this->buildTableParames();
|
||||||
|
$count = $this->model
|
||||||
|
->where($where)
|
||||||
|
->group($group)
|
||||||
|
->count();
|
||||||
|
$list = $this->model
|
||||||
|
->where($where)
|
||||||
|
->page($page, $limit)
|
||||||
|
->order($this->sort)
|
||||||
|
->group($group)
|
||||||
|
->select();
|
||||||
|
$data = [
|
||||||
|
'code' => 0,
|
||||||
|
'msg' => '',
|
||||||
|
'count' => $count,
|
||||||
|
'data' => $list,
|
||||||
|
];
|
||||||
|
|
||||||
|
return json($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
$distinctData = $this->model->field('app_name, controller_name, action_name')->distinct(true)->select();
|
||||||
|
$this->assign([
|
||||||
|
'apps' => array_unique($distinctData->column('app_name')),
|
||||||
|
'controllers' => array_unique($distinctData->column('controller_name')),
|
||||||
|
'actions' => array_unique($distinctData->column('action_name')),
|
||||||
|
]);
|
||||||
|
|
||||||
|
return $this->fetch();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,39 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="layui-inline">
|
||||||
|
<label class="layui-form-label" style="width: auto; padding: 9px 10px;">模块</label>
|
||||||
|
<div class="layui-input-inline" style="width: 120px;">
|
||||||
|
<select id="app-select" lay-filter="filter-select">
|
||||||
|
<option value="">所有模块</option>
|
||||||
|
{foreach $apps as $app}
|
||||||
|
<option value="{$app}">{$app}</option>
|
||||||
|
{/foreach}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-inline">
|
||||||
|
<label class="layui-form-label" style="width: auto; padding: 9px 10px;">控制器</label>
|
||||||
|
<div class="layui-input-inline" style="width: 180px;">
|
||||||
|
<select id="controller-select" lay-filter="filter-select" lay-search>
|
||||||
|
<option value="">所有控制器</option>
|
||||||
|
{foreach $controllers as $controller}
|
||||||
|
<option value="{$controller}">{$controller}</option>
|
||||||
|
{/foreach}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-inline">
|
||||||
|
<label class="layui-form-label" style="width: auto; padding: 9px 10px;">方法</label>
|
||||||
|
<div class="layui-input-inline" style="width: 120px;">
|
||||||
|
<select id="action-select" lay-filter="filter-select" lay-search>
|
||||||
|
<option value="">所有方法</option>
|
||||||
|
{foreach $actions as $action}
|
||||||
|
<option value="{$action}">{$action}</option>
|
||||||
|
{/foreach}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="layui-inline">
|
<div class="layui-inline">
|
||||||
<button type="button" class="layui-btn layui-btn-primary" id="refresh-btn"><i class="layui-icon layui-icon-refresh"></i> 刷新</button>
|
<button type="button" class="layui-btn layui-btn-primary" id="refresh-btn"><i class="layui-icon layui-icon-refresh"></i> 刷新</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -22,16 +22,44 @@ $(function () {
|
|||||||
var sort = {};
|
var sort = {};
|
||||||
sort[sortField] = order;
|
sort[sortField] = order;
|
||||||
if (sortField === 'uid') {
|
if (sortField === 'uid') {
|
||||||
sort['id'] = 'asc'
|
sort['id'] = 'asc';
|
||||||
|
}
|
||||||
|
|
||||||
|
var requestData = {
|
||||||
|
page: page,
|
||||||
|
limit: limit,
|
||||||
|
sort: sort,
|
||||||
|
};
|
||||||
|
|
||||||
|
var filter = {};
|
||||||
|
var op = {};
|
||||||
|
|
||||||
|
var appName = $('#app-select').val();
|
||||||
|
if (appName) {
|
||||||
|
filter.app_name = appName;
|
||||||
|
op.app_name = '=';
|
||||||
|
}
|
||||||
|
|
||||||
|
var controllerName = $('#controller-select').val();
|
||||||
|
if (controllerName) {
|
||||||
|
filter.controller_name = controllerName;
|
||||||
|
op.controller_name = '=';
|
||||||
|
}
|
||||||
|
|
||||||
|
var actionName = $('#action-select').val();
|
||||||
|
if (actionName) {
|
||||||
|
filter.action_name = actionName;
|
||||||
|
op.action_name = '=';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Object.keys(filter).length > 0) {
|
||||||
|
requestData.filter = JSON.stringify(filter);
|
||||||
|
requestData.op = JSON.stringify(op);
|
||||||
}
|
}
|
||||||
|
|
||||||
ua.request.get({
|
ua.request.get({
|
||||||
url: ua.url(init.indexUrl),
|
url: ua.url(init.indexUrl),
|
||||||
data: {
|
data: requestData
|
||||||
page: page,
|
|
||||||
limit: limit,
|
|
||||||
sort: sort
|
|
||||||
}
|
|
||||||
}, function (res) {
|
}, function (res) {
|
||||||
if (res.data && res.data.length > 0) {
|
if (res.data && res.data.length > 0) {
|
||||||
var html = '';
|
var html = '';
|
||||||
@@ -131,8 +159,13 @@ $(function () {
|
|||||||
reloadLogs();
|
reloadLogs();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 监听筛选条件选择
|
||||||
|
layui.form.on('select(filter-select)', function (data) {
|
||||||
|
reloadLogs();
|
||||||
|
});
|
||||||
|
|
||||||
// 监听刷新按钮点击
|
// 监听刷新按钮点击
|
||||||
$('#refresh-btn').on('click', function() {
|
$('#refresh-btn').on('click', function () {
|
||||||
reloadLogs();
|
reloadLogs();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -193,9 +193,6 @@
|
|||||||
data: option.data,
|
data: option.data,
|
||||||
timeout: 60000,
|
timeout: 60000,
|
||||||
success: function (res) {
|
success: function (res) {
|
||||||
console.log(res);
|
|
||||||
console.log(option.statusName);
|
|
||||||
|
|
||||||
loading.hide();
|
loading.hide();
|
||||||
if (eval('res.' + option.statusName) == option.statusCode) {
|
if (eval('res.' + option.statusName) == option.statusCode) {
|
||||||
return ok(res);
|
return ok(res);
|
||||||
|
|||||||
Reference in New Issue
Block a user