mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-01 15:32:48 +08:00
feat: 增加按应用、控制器、方法查询日志
This commit is contained in:
@@ -24,4 +24,44 @@ class LogBase extends AdminController
|
||||
|
||||
$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>
|
||||
</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">
|
||||
<button type="button" class="layui-btn layui-btn-primary" id="refresh-btn"><i class="layui-icon layui-icon-refresh"></i> 刷新</button>
|
||||
</div>
|
||||
|
||||
@@ -22,16 +22,44 @@ $(function () {
|
||||
var sort = {};
|
||||
sort[sortField] = order;
|
||||
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({
|
||||
url: ua.url(init.indexUrl),
|
||||
data: {
|
||||
page: page,
|
||||
limit: limit,
|
||||
sort: sort
|
||||
}
|
||||
data: requestData
|
||||
}, function (res) {
|
||||
if (res.data && res.data.length > 0) {
|
||||
var html = '';
|
||||
@@ -131,8 +159,13 @@ $(function () {
|
||||
reloadLogs();
|
||||
});
|
||||
|
||||
// 监听筛选条件选择
|
||||
layui.form.on('select(filter-select)', function (data) {
|
||||
reloadLogs();
|
||||
});
|
||||
|
||||
// 监听刷新按钮点击
|
||||
$('#refresh-btn').on('click', function() {
|
||||
$('#refresh-btn').on('click', function () {
|
||||
reloadLogs();
|
||||
});
|
||||
});
|
||||
@@ -193,9 +193,6 @@
|
||||
data: option.data,
|
||||
timeout: 60000,
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
console.log(option.statusName);
|
||||
|
||||
loading.hide();
|
||||
if (eval('res.' + option.statusName) == option.statusCode) {
|
||||
return ok(res);
|
||||
|
||||
Reference in New Issue
Block a user