column('id')->sortable(); $grid->column('base.name', '区域')->label(); $grid->column('crop.name', '农作物'); $grid->column('time_year')->append('年'); $grid->column('quarter')->display(function ($v) { return '第'.$v.'季度'; }); $grid->column('yield')->display(function ($v) { return $v.$this->crop?->unit ?? ''; }); $grid->column('cultivated'); $grid->column('output'); $grid->column('createdBy.name', '录入人'); $grid->column('updatedBy.name', '更新人'); $grid->column('created_at')->sortable(); $grid->model()->orderBy('time_year', 'desc')->orderBy('quarter', 'asc'); $grid->showCreateButton(! config('admin.permission.enable') || Admin::user()->can('dcat.admin.crop_yields.create')); $grid->showQuickEditButton(! config('admin.permission.enable') || Admin::user()->can('dcat.admin.crop_yields.edit')); $grid->showDeleteButton(! config('admin.permission.enable') || Admin::user()->can('dcat.admin.crop_yields.destroy')); $grid->filter(function (Grid\Filter $filter) { $filter->equal('base_id')->select(AgriculturalBase::all()->pluck('name', 'id'))->width(3); $filter->equal('crop_id')->select(Crop::where('is_end', 1)->pluck('name', 'id'))->width(3); }); }); } /** * Make a show builder. * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new CropYield(), function (Show $show) { $show->field('id'); $show->field('base_id'); $show->field('crop_id'); $show->field('time_year'); $show->field('quarter'); $show->field('yield'); $show->field('cultivated'); $show->field('output'); $show->field('created_by'); $show->field('updated_by'); $show->field('created_at'); $show->field('updated_at'); }); } /** * Make a form builder. * * @return Form */ protected function form() { $builder = CropYield::with(['base', 'crop']); return Form::make($builder, function (Form $form) { $model = $form->model(); $form->display('id'); $form->select('base_id')->options(AgriculturalBase::all()->pluck('name', 'id')); $form->select('crop_id')->options(Crop::where('is_end', 1)->pluck('name', 'id')); $form->datetime('time_year')->format('YYYY')->required(); $form->radio('quarter')->options([ 1 => '1季度', 2 => '2季度', 3 => '3季度', 4 => '4季度', ])->default(1)->required(); $form->currency('yield')->symbol($model->crop?->unit ?? '斤'); Admin::script( <<<'JS' let crop; $('body').on('select2:select', 'select.field_crop_id', function(e){ let url_path = '/admin/api/crops/' + e.params.data.id $.ajax({ type: 'get', dataType: 'json', url: url_path, success: function(result){ crop = result.data; $('input[name=yield]').parent().find('span.input-group-text').text(crop.unit); } }); }); JS ); $form->cropExtends('extends', '扩展信息')->crop($model->crop)->listen('crop_id'); $form->currency('cultivated')->symbol('亩')->default(0)->required()->saving(function ($v) { if ($v === null) { $v = 0; } return $v; }); $form->currency('output')->symbol('元')->default(0)->saving(function ($v) { if ($v === null) { $v = 0; } return $v; }); $form->hidden('category_id'); $form->saving(function($form){ $crop = Crop::findOrFail($form->crop_id); $form->category_id = $crop->category_id; }); $form->display('created_at'); $form->display('updated_at'); }); } }