toArray(); $grid = parent::make($builder, function (Grid $grid) use ($zones) { $grid->setResource('shipping-rules'); $grid->column('id')->sortable(); $grid->column('type')->using([ 1=>'包邮规则', 2=>'计重规则', ])->label(); $grid->column('remarks', __('shipping-rule.fields.remarks')); $grid->column('info', __('shipping-rule.fields.info'))->display(function ($value) { $value = json_decode($value, true); if ($this->type == 1) { return '满'.$value['threshold'].'元包邮'; } elseif ($this->type == 2) { return '首重:'.$value['first_weight'].'KG内'.$value['first_w_amount'].'元,续重:每'.$value['continue_weight'].'KG'.$value['continue_w_amount'].'元'; } })->label(); $grid->column('zones', __('shipping-rule.fields.zones')) // ->display(function ($value) { // return $value->pluck('id')->toArray(); // }) ->showTreeInDialog(function (Grid\Displayers\DialogTree $tree) use ($zones) { $tree->title('城市'); $tree->nodes($zones); $tree->setTitleColumn('name'); }); $grid->column('created_at'); $grid->column('updated_at')->sortable(); /** 操作 **/ //新增 if (Admin::user()->can('dcat.admin.shipping_rules.create')) { $grid->disableCreateButton(false); $grid->enableDialogCreate(); $grid->setDialogFormDimensions('40%', '70%'); } //修改 $grid->showQuickEditButton(Admin::user()->can('dcat.admin.shipping_rules.edit')); //删除以及自定义操作 $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->disableView(); $actions->disableEdit(); $actions->disableDelete(Admin::user()->cannot('dcat.admin.shipping_rules.destroy')); }); }); if ($templateId) { $grid->model()->where('template_id', $templateId); $grid->model()->setConstraints([ 'template_id' => $templateId, ]); } return $grid; } }