column('id', 'ID')->sortable(); $grid->column('activity_id', '活动')->display(function ($activityId) { $activity = ActivityConfig::find($activityId); return $activity ? $activity->name : "未知活动({$activityId})"; }); $grid->column('condition_type', '条件类型')->display(function ($type) { return CONDITION_TYPE::getName($type); }); $grid->column('is_participation_condition', '参与条件')->switch(); $grid->column('is_completion_condition', '完成条件')->switch(); $grid->column('display_order', '显示顺序'); $grid->column('created_at', '创建时间'); $grid->column('updated_at', '更新时间'); $grid->filter(function (Grid\Filter $filter) { $filter->equal('id', 'ID'); $filter->equal('activity_id', '活动')->select( ActivityConfig::pluck('name', 'id') ); $filter->equal('condition_type', '条件类型')->select(CONDITION_TYPE::getAll()); $filter->equal('is_participation_condition', '参与条件')->select([0 => '否', 1 => '是']); $filter->equal('is_completion_condition', '完成条件')->select([0 => '否', 1 => '是']); }); }); } /** * 创建详情页 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new ActivityConditionRepository(), function (Show $show) { $show->field('id', 'ID'); $show->field('activity_id', '活动')->as(function ($activityId) { $activity = ActivityConfig::find($activityId); return $activity ? $activity->name : "未知活动({$activityId})"; }); $show->field('condition_type', '条件类型')->as(function ($type) { return CONDITION_TYPE::getName($type); }); $show->field('condition_params', '条件参数')->json(); $show->field('is_participation_condition', '参与条件')->as(function ($value) { return $value ? '是' : '否'; }); $show->field('is_completion_condition', '完成条件')->as(function ($value) { return $value ? '是' : '否'; }); $show->field('display_order', '显示顺序'); $show->field('created_at', '创建时间'); $show->field('updated_at', '更新时间'); }); } /** * 创建表单 * * @return Form */ protected function form() { return Form::make(new ActivityConditionRepository(), function (Form $form) { $form->display('id', 'ID'); $form->select('activity_id', '活动') ->options(ActivityConfig::pluck('name', 'id')) ->required(); $form->select('condition_type', '条件类型') ->options(CONDITION_TYPE::getAll()) ->required(); $form->textarea('condition_params', '条件参数') ->help('JSON格式,根据条件类型填写不同的参数'); $form->switch('is_participation_condition', '参与条件') ->default(false); $form->switch('is_completion_condition', '完成条件') ->default(false); $form->number('display_order', '显示顺序') ->default(0); $form->display('created_at', '创建时间'); $form->display('updated_at', '更新时间'); }); } }