column('id', 'ID')->sortable(); $grid->column('season.name', '所属赛季'); $grid->column('name', '队伍名称'); $grid->column('leader_id', '队长ID')->sortable(); $grid->column('total_power', '队伍总战力')->sortable(); $grid->column('member_count', '成员数量')->sortable(); $grid->column('created_at', '创建时间'); $grid->column('updated_at', '更新时间'); // 添加行操作 $grid->actions(function (Grid\Displayers\Actions $actions) { // 添加查看成员按钮 $actions->append('查看成员'); }); // 筛选 $grid->filter(function ($filter) { $helper = new FilterHelper($filter, $this); $helper->equal('id', 'ID'); $filter->equal('season_id', '所属赛季')->select(function () { return \App\Module\Pet\Models\PetBattleSeason::pluck('name', 'id'); }); $filter->like('name', '队伍名称'); $filter->equal('leader_id', '队长ID'); $filter->between('total_power', '队伍总战力'); $filter->between('member_count', '成员数量'); }); // 默认按队伍总战力倒序排序 $grid->model()->orderBy('total_power', 'desc'); return $grid; }); } /** * 详情页 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new PetBattleTeamRepository(['season', 'members']), function (Show $show) { $helper = new ShowHelper($show, $this); $helper->field('id', 'ID'); $show->field('season.name', '所属赛季'); $show->field('name', '队伍名称'); $show->field('leader_id', '队长ID'); $show->field('total_power', '队伍总战力'); $show->field('member_count', '成员数量'); $show->field('created_at', '创建时间'); $show->field('updated_at', '更新时间'); // 显示队伍成员 $show->members('队伍成员', function ($members) { $members->resource('/admin/pet-battle-team-members'); $members->id('ID'); $members->user_id('用户ID'); $members->pet()->name('宠物名称'); $members->power('战力贡献'); $members->join_time('加入时间'); }); return $show; }); } /** * 表单 * * @return Form */ protected function form() { return Form::make(new PetBattleTeamRepository(), function (Form $form) { $helper = new FormHelper($form, $this); $form->display('id', 'ID'); $form->select('season_id', '所属赛季') ->options(function () { return \App\Module\Pet\Models\PetBattleSeason::pluck('name', 'id'); }) ->required(); $form->text('name', '队伍名称') ->required() ->help('队伍的名称,如"无敌战队"、"松狮勇士"等'); $form->number('leader_id', '队长ID') ->required() ->help('队长的用户ID'); $form->number('total_power', '队伍总战力') ->default(0) ->min(0) ->help('队伍的总战力,通常由成员战力自动计算'); $form->number('member_count', '成员数量') ->default(1) ->min(1) ->max(10) ->help('队伍的成员数量,通常由成员数自动计算'); $form->display('created_at', '创建时间'); $form->display('updated_at', '更新时间'); return $form; }); } }