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();
});
}
}