json([
'status' => $result['success'] ? 'success' : 'error',
'message' => $result['success'] ? 'JSON生成成功' : 'JSON生成失败: ' . ($result['error'] ?? '')
]);
}
/**
* 标题
*
* @var string
*/
protected $title = '宠物配置管理';
/**
* 列表页
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new PetConfigRepository(), function (Grid $grid) {
$helper = new GridHelper($grid, $this);
$grid->column('id', 'ID')->sortable();
$grid->column('pet_type', '宠物类型');
$grid->column('grade_probability', '品阶概率配置')->display(function ($value) {
if (is_array($value) || is_object($value)) {
return json_encode($value, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
}
return $value;
});
$grid->column('stamina_recovery', '体力恢复值/分钟')->sortable();
$grid->column('created_at', '创建时间');
$grid->column('updated_at', '更新时间');
// 添加生成JSON配置按钮
$grid->tools(function ($tools) {
$tools->append('生成宠物配置JSON');
// 添加JavaScript代码
admin_script(<<filter(function ($filter) {
$helper = new FilterHelper($filter, $this);
$helper->equal('id', 'ID');
$filter->like('pet_type', '宠物类型');
$filter->equal('max_level', '最大等级');
});
return $grid;
});
}
/**
* 详情页
*
* @param mixed $id
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new PetConfigRepository(), function (Show $show) {
$helper = new ShowHelper($show, $this);
$helper->field('id', 'ID');
$show->field('pet_type', '宠物类型');
$show->field('grade_probability', '品阶概率配置')->json();
$show->field('display_attributes', '显示属性配置')->json();
$show->field('numeric_attributes', '数值属性配置')->json();
$show->field('created_at', '创建时间');
$show->field('updated_at', '更新时间');
return $show;
});
}
/**
* 表单
*
* @return Form
*/
protected function form()
{
return Form::make(new PetConfigRepository(), function (Form $form) {
$helper = new FormHelper($form, $this);
$form->display('id', 'ID');
$form->text('pet_type', '宠物类型')
->required()
->help('宠物类型标识,如:松狮、哈士奇等');
$helper->embedsCats('grade_probability', '品阶概率配置')
->help('各品阶的概率配置,如:{"FIRST":0.6,"SECOND":0.25,"THIRD":0.1,"FOURTH":0.05}');
$helper->embedsCats('display_attributes', '显示属性配置')
->help('宠物的显示属性配置');
$helper->embedsCats('numeric_attributes', '数值属性配置')
->help('宠物的数值属性配置');
$form->display('created_at', '创建时间');
$form->display('updated_at', '更新时间');
return $form;
});
}
}