column('id', 'ID')->sortable(); $grid->column('buff_type', '神像类型')->display(function ($value) { return BUFF_TYPE::getName($value); })->sortable(); $grid->column('name', '神像名称'); $grid->column('description', '神像描述'); $grid->column('duration_hours', '默认持续时间(小时)')->sortable(); $grid->column('item_id', '对应物品ID'); $helper->columnModelCatsJson('display_attributes', '显示属性'); $helper->columnModelCatsJson('numeric_attributes', '数值属性'); $grid->column('created_at', '创建时间')->sortable(); $grid->column('updated_at', '更新时间')->sortable(); // 添加刷新按钮 $grid->tools([ RefreshFarmShrineJsonTool::make() ]); // 设置过滤器 $grid->filter(function (Grid\Filter $filter) { $filter->equal('id', 'ID'); $filter->equal('buff_type', '神像类型')->select(BUFF_TYPE::getAll()); $filter->like('name', '神像名称'); $filter->equal('item_id', '对应物品ID'); $filter->between('created_at', '创建时间')->datetime(); }); }); } /** * 构建详情页 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new FarmShrineConfigRepository(), function (Show $show) { $helper = new ShowHelper($show, $this); $show->field('id', 'ID'); $show->field('buff_type', '神像类型')->as(function ($value) { return BUFF_TYPE::getName($value); }); $show->field('name', '神像名称'); $show->field('description', '神像描述'); $show->field('duration_hours', '默认持续时间(小时)'); $show->field('item_id', '对应物品ID'); $helper->fieldModelCatsJson('display_attributes', '显示属性'); $helper->fieldModelCatsJson('numeric_attributes', '数值属性'); $show->field('created_at', '创建时间'); $show->field('updated_at', '更新时间'); }); } /** * 构建表单 * * @return Form */ protected function form() { return Form::make(new FarmShrineConfigRepository(), function (Form $form) { $helper = new FormHelper($form, $this); $form->display('id', 'ID'); $form->select('buff_type', '神像类型') ->options(BUFF_TYPE::getAll()) ->required(); $form->text('name', '神像名称')->required(); $form->text('description', '神像描述')->required(); $form->number('duration_hours', '默认持续时间(小时)') ->default(24) ->min(1) ->required(); $form->number('item_id', '对应物品ID') ->min(1) ->required(); $helper->embedsCats('display_attributes', '显示属性'); $helper->embedsCats('numeric_attributes', '数值属性'); $form->display('created_at', '创建时间'); $form->display('updated_at', '更新时间'); }); } }