column('id', 'ID')->sortable(); $grid->column('active_skill_id', '激活技能ID')->display(function ($value) { return "{$value}"; }); $grid->column('pet_id', '宠物ID')->display(function ($value) { return "{$value}"; }); $grid->column('user_id', '用户ID')->display(function ($value) { return "{$value}"; }); $grid->column('skill_name', '技能名称')->label([ '自动收菜' => 'success', '自动播种' => 'primary', '自动浇水' => 'info', '自动除草' => 'warning', '自动杀虫' => 'danger', '自动施肥' => 'success', ]); $grid->column('process_status', '处理状态')->using([ 'success' => '成功', 'failed' => '失败', 'skipped' => '跳过', 'expired' => '过期' ])->label([ 'success' => 'success', 'failed' => 'danger', 'skipped' => 'warning', 'expired' => 'secondary' ]); $grid->column('process_reason', '处理原因')->limit(50); $grid->column('execution_time', '执行耗时(秒)')->display(function ($value) { if ($value > 1) { return "{$value}"; } elseif ($value > 0.5) { return "{$value}"; } else { return "{$value}"; } }); $grid->column('processed_at', '处理时间')->sortable(); // 筛选器 $grid->filter(function (Grid\Filter $filter) { $filter->equal('user_id', '用户ID'); $filter->equal('pet_id', '宠物ID'); $filter->equal('skill_name', '技能名称')->select([ '自动收菜' => '自动收菜', '自动播种' => '自动播种', '自动浇水' => '自动浇水', '自动除草' => '自动除草', '自动杀虫' => '自动杀虫', '自动施肥' => '自动施肥', ]); $filter->equal('process_status', '处理状态')->select([ 'success' => '成功', 'failed' => '失败', 'skipped' => '跳过', 'expired' => '过期' ]); $filter->between('processed_at', '处理时间')->datetime(); $filter->between('execution_time', '执行耗时(秒)'); }); // 默认排序 $grid->model()->orderBy('processed_at', 'desc'); // 禁用操作 $grid->disableCreateButton(); $grid->disableEditButton(); $grid->disableDeleteButton(); $grid->disableBatchDelete(); // 行操作 $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->disableEdit(); $actions->disableDelete(); }); // 工具栏 $grid->tools(function (Grid\Tools $tools) { $tools->append('刷新'); }); }); } /** * 详情页面 * * @param mixed $id * @return Show */ protected function detail($id): Show { return Show::make($id, PetSkillProcessLog::with(['activeSkill', 'pet']), function (Show $show) { $show->field('id', 'ID'); $show->field('active_skill_id', '激活技能ID'); $show->field('pet_id', '宠物ID'); $show->field('user_id', '用户ID'); $show->field('skill_name', '技能名称'); $show->field('process_status', '处理状态')->using([ 'success' => '成功', 'failed' => '失败', 'skipped' => '跳过', 'expired' => '过期' ]); $show->field('process_reason', '处理原因'); $show->field('process_data', '处理数据')->json(); $show->field('execution_time', '执行耗时(秒)'); $show->field('processed_at', '处理时间'); $show->field('created_at', '创建时间'); $show->field('updated_at', '更新时间'); // 关联信息 $show->divider(); if ($show->model()->activeSkill) { $show->field('activeSkill.skill_name', '关联技能名称'); $show->field('activeSkill.start_time', '技能开始时间'); $show->field('activeSkill.end_time', '技能结束时间'); $show->field('activeSkill.status', '技能状态'); } if ($show->model()->pet) { $show->field('pet.name', '宠物名称'); $show->field('pet.level', '宠物等级'); } }); } /** * 表单页面(禁用) * * @return Form */ protected function form(): Form { return Form::make(new PetSkillProcessLog(), function (Form $form) { $form->display('id', 'ID'); $form->display('active_skill_id', '激活技能ID'); $form->display('pet_id', '宠物ID'); $form->display('user_id', '用户ID'); $form->display('skill_name', '技能名称'); $form->display('process_status', '处理状态'); $form->display('process_reason', '处理原因'); $form->display('process_data', '处理数据'); $form->display('execution_time', '执行耗时(秒)'); $form->display('processed_at', '处理时间'); $form->display('created_at', '创建时间'); $form->display('updated_at', '更新时间'); $form->disableCreatingCheck(); $form->disableEditingCheck(); $form->disableViewCheck(); }); } }