header(trans('admin.operation_log'))
->description(trans('admin.list'))
->body($this->grid());
}
/**
* @return Grid
*/
protected function grid()
{
$grid = new Grid(new OperationLog());
$grid->model()->orderBy('id', 'DESC');
$grid->id('ID')->sortable();
$grid->user()->name('管理员');
// $grid->method()->display(function ($method) {
// $color = array_get(OperationLog::$methodColors, $method, 'grey');
//
// return "$method";
// });
$grid->message("操作信息")->width(300);
$grid->path("访问地址")->label('info');
$grid->ip("访问IP")->label('primary');
// $grid->input()->display(function ($input) {
// $input = json_decode($input, true);
// $input = array_except($input, ['_pjax', '_token', '_method', '_previous_']);
// if (empty($input)) {
// return '{}
';
// }
//
// return '
'.json_encode($input, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE).''; // }); $grid->created_at(trans('admin.created_at')); $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->disableView(false); if (Permission::isAdministrator()) { $actions->disableDelete(false); } }); $grid->disableCreation(); $grid->tools(function (Grid\Tools $tools) { $tools->batch(function (Grid\Tools\BatchActions $batch) { if (Permission::isAdministrator()) { $batch->disableDelete(false); } }); }); $grid->filter(function ($filter) { $userModel = config('admin.database.users_model'); $filter->equal('user_id', '管理员')->select($userModel::all()->pluck('name', 'id')); $types=include app_path('Admin/logs/type.php'); $filter->equal('route', '操作类型')->select($types); $filter->like('path', '访问路径'); $filter->equal('IP'); }); return $grid; } /** * Show interface. * * @param mixed $id * @param Content $content * * @return Content */ public function show($id, Content $content) { return $content ->header("日志") ->description('详情') ->body($this->detail($id)); } /** * Make a show builder. * * @param mixed $id * * @return Show */ protected function detail($id) { $show = new Show(OperationLog::findOrFail($id)); $show->id('ID'); $show->ip("IP")->label('primary'); $show->user("管理员")->as(function ($user) { return $user->name; }); $types=include app_path('Admin/logs/type.php'); $show->route('操作类型')->unescape()->as(function ($route) use ($types) { if (isset($types[$route])) { return "$types[$route] $route"; } return "$route"; }); $show->message("操作信息"); $show->path("访问路径")->label('info'); $show->input('提交数据')->unescape()->as(function ($input) { $input = json_decode($input, true); $input = array_except($input, ['_pjax', '_token', '_method', '_previous_']); if (empty($input)) { return '
{}
';
}
return ''.json_encode($input, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE).''; }); $show->created_at('创建时间'); return $show; } /** * @param mixed $id * * @return \Illuminate\Http\JsonResponse */ public function destroy($id) { $ids = explode(',', $id); if (OperationLog::destroy(array_filter($ids))) { $data = [ 'status' => true, 'message' => trans('admin.delete_succeeded'), ]; } else { $data = [ 'status' => false, 'message' => trans('admin.delete_failed'), ]; } return response()->json($data); } }