column('id', 'ID')->sortable(); $grid->column('level', '等级')->sortable()->label([ 0 => 'default', 1 => 'primary', 2 => 'info', 3 => 'success', 4 => 'warning', 5 => 'danger', ]); $grid->column('name', '等级名称'); $grid->column('direct_count_required', '所需直推人数')->sortable(); $grid->column('promotion_count_required', '所需团队总人数')->sortable(); $grid->column('active_direct_required', '所需活跃直推')->sortable(); $grid->column('active_count_required', '所需活跃团队')->sortable(); $grid->column('promotion_direct_group', '直推奖励组'); $grid->column('promotion_indirect_group', '间推奖励组'); $grid->column('promotion_third_group', '三推奖励组'); $grid->column('planting_direct_rate', '直推分成比例')->display(function ($value) { return ($value * 100) . '%'; }); $grid->column('planting_indirect_rate', '间推分成比例')->display(function ($value) { return ($value * 100) . '%'; }); $grid->column('planting_third_rate', '三推分成比例')->display(function ($value) { return ($value * 100) . '%'; }); $grid->column('sort_order', '排序')->sortable(); $grid->column('status', '状态')->using([ UrsTalentConfig::STATUS_DISABLED => '禁用', UrsTalentConfig::STATUS_ENABLED => '启用', ])->label([ UrsTalentConfig::STATUS_DISABLED => 'danger', UrsTalentConfig::STATUS_ENABLED => 'success', ]); $grid->column('created_at', '创建时间')->sortable(); $grid->filter(function (Grid\Filter $filter) { UrsTalentConfigFilterHelper::make($filter); }); }); } /** * 详情页面 */ protected function detail($id): Show { return Show::make($id, new UrsTalentConfigRepository(), function (Show $show) { $show->field('id', 'ID'); $show->field('level', '等级'); $show->field('name', '等级名称'); $show->field('direct_count_required', '所需直推人数'); $show->field('promotion_count_required', '所需团队总人数'); // 活跃用户要求 $show->divider('活跃用户要求'); $show->field('active_direct_required', '所需活跃直推人数'); $show->field('active_count_required', '所需活跃团队人数'); $show->field('promotion_direct_group', '直推奖励组ID')->as(function ($value) { return $value ?: '无'; }); $show->field('promotion_indirect_group', '间推奖励组ID')->as(function ($value) { return $value ?: '无'; }); $show->field('promotion_third_group', '三推奖励组ID')->as(function ($value) { return $value ?: '无'; }); $show->field('planting_direct_rate', '直推分成比例')->as(function ($value) { return ($value * 100) . '%'; }); $show->field('planting_indirect_rate', '间推分成比例')->as(function ($value) { return ($value * 100) . '%'; }); $show->field('planting_third_rate', '三推分成比例')->as(function ($value) { return ($value * 100) . '%'; }); $show->field('icon', '等级图标'); $show->field('description', '等级描述'); $show->field('sort_order', '排序权重'); $show->field('status', '状态')->using([ UrsTalentConfig::STATUS_DISABLED => '禁用', UrsTalentConfig::STATUS_ENABLED => '启用', ]); $show->field('created_at', '创建时间'); $show->field('updated_at', '更新时间'); }); } /** * 表单页面 */ protected function form(): Form { return Form::make(new UrsTalentConfigRepository(), function (Form $form) { $form->display('id', 'ID'); $form->number('level', '等级')->required()->min(0)->max(10); $form->text('name', '等级名称')->required(); $form->number('direct_count_required', '所需直推人数')->default(0)->min(0); $form->number('promotion_count_required', '所需团队总人数')->default(0)->min(0); // 活跃用户要求配置 $form->fieldset('活跃用户要求', function (Form $form) { $form->number('active_direct_required', '所需活跃直推人数')->default(0)->min(0) ->help('要求的活跃直推人数(最近15天有活动)'); $form->number('active_count_required', '所需活跃团队人数')->default(0)->min(0) ->help('要求的活跃团队总人数(最近15天有活动)'); }); // 推广收益奖励组配置 $form->fieldset('推广收益奖励组配置', function (Form $form) { $form->number('promotion_direct_group', '直推奖励组ID')->default(0)->help('设置为0表示无奖励'); $form->number('promotion_indirect_group', '间推奖励组ID')->default(0)->help('设置为0表示无奖励'); $form->number('promotion_third_group', '三推奖励组ID')->default(0)->help('设置为0表示无奖励'); }); // 种植收益分成比例配置 $form->fieldset('种植收益分成比例', function (Form $form) { $form->decimal('planting_direct_rate', '直推分成比例')->default(0)->help('输入小数,如0.05表示5%'); $form->decimal('planting_indirect_rate', '间推分成比例')->default(0)->help('输入小数,如0.03表示3%'); $form->decimal('planting_third_rate', '三推分成比例')->default(0)->help('输入小数,如0.01表示1%'); }); $form->text('icon', '等级图标'); $form->textarea('description', '等级描述'); $form->number('sort_order', '排序权重')->default(0); $form->switch('status', '状态')->default(UrsTalentConfig::STATUS_ENABLED); $form->display('created_at', '创建时间'); $form->display('updated_at', '更新时间'); }); } }