column('id')->sortable(); $grid->column('title'); $grid->column('cover')->image(100); $grid->column('content'); $grid->column('is_use') ->if(function () { return Admin::user()->can('dcat.admin.activities.edit'); }) ->then(function (Column $column) { $column->switch(); }) ->else(function (Column $column) { $column->bool(); }); $grid->column('started_at'); $grid->column('ended_at'); $grid->column('created_at'); $grid->column('updated_at')->sortable(); //新增 if (Admin::user()->can('dcat.admin.activities.create')) { $grid->disableCreateButton(false); // $grid->enableDialogCreate(); } //删除以及自定义操作 $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->disableDelete(Admin::user()->cannot('dcat.admin.activities.destroy')); //修改 $actions->disableEdit(Admin::user()->cannot('dcat.admin.activities.edit')); }); $grid->filter(function (Grid\Filter $filter) { $filter->panel(); $filter->like('title')->width(3); }); }); } /** * Make a show builder. * * @param mixed $id * * @return Show */ protected function detail($id) { return Show::make($id, new Activity(), function (Show $show) { $show->field('id'); $show->field('title'); $show->field('cover'); $show->field('content'); $show->field('is_use'); $show->field('started_at'); $show->field('ended_at'); $show->field('coupons_rule'); $show->field('gifts_rule'); $show->field('created_at'); $show->field('updated_at'); }); } /** * Make a form builder. * * @return Form */ protected function form() { $builder = Activity::with(['parts', 'couponSet', 'giftSet']); return Form::make($builder, function (Form $form) { $form->display('id'); $form->display('created_at'); $form->display('updated_at'); $form->block(6, function (Form\BlockForm $form) { $form->text('title')->required(); $form->image('cover') ->move('activities/'.Carbon::now()->toDateString()) ->saveFullUrl() ->removable(false) ->autoUpload()->retainable(); $form->switch('is_use'); $form->dateRange('started_at', 'ended_at', '活动时间'); $form->multipleSelect('parts', '商品分区关联')->options(ProductPart::all()->pluck('name', 'id'))->customFormat(function ($v) { if (! $v) { return []; } // 从数据库中查出的二维数组中转化成ID return array_column($v, 'id'); }); $form->hasMany('couponSet', '优惠券关联', function ($form) { $form->select('coupon_id', '优惠券')->options(function ($id) { $coupon = Coupon::find($id); if ($coupon) { return [$coupon->id => $coupon->name]; } })->ajax(admin_route('api.coupons')); $form->number('qty', '数量'); })->useTable(); $form->hasMany('giftSet', '赠品关联', function ($form) { $form->select('sku_id', '赠品')->options(function ($id) { $sku = ProductSku::find($id); if ($sku) { return [$sku->id => $sku->name]; } })->ajax(admin_route('api.product_skus')); $form->number('qty', '数量'); })->useTable(); $form->showFooter(); }); $form->block(6, function (Form\BlockForm $form) { $form->title('活动内容'); //优惠券规则 $form->embeds('coupons_rule', function ($form) { $form->radio('type')->options([ 0=>'按订单赠送', 1=>'其他活动来源', ])->default(0); $form->number('value', '门槛')->help('每N元赠送一份'); $form->radio('times', '可领次数')->options([ '0'=>'仅首单', '1'=>'不限', ])->default(0); }); //赠品规则 $form->embeds('gifts_rule', function ($form) { $form->radio('type')->options([ 0=>'按订单赠送', 1=>'其他活动来源', ])->default(0); $form->number('value', '门槛')->help('每N元赠送一份'); $form->radio('times', '可领次数')->options([ '0'=>'仅首单', '1'=>'不限', ])->default(0); }); $form->editor('content')->height('600'); }); }); } }