column('id')->sortable(); $grid->tools(function (Grid\Tools $tools) { if (Admin::user()->can('dcat.admin.quota_v1_send_jobs.recharge')) { $tools->append(new Recharge()); } if (Admin::user()->can('dcat.admin.quota_v1_send_jobs.deduction')) { $tools->append(new Deduction()); } if (Admin::user()->can('dcat.admin.quota_v1_send_jobs.logs_index')) { $tools->append(' 变动记录'); } }); $grid->column('amount')->display(function ($value) { return bcdiv($value, 100, 2); })->prepend('¥'); $grid->column('administrator.name'); $grid->column('status')->using(QuotaV1SendJobModel::$statusText)->dot([ 0=>'primary', 1=> 'warning', 2=>'success', ]); $grid->column('remarks'); $grid->column('created_at')->sortable(); $grid->model()->orderBy('created_at', 'desc'); /** 操作 **/ //新增 if (Admin::user()->can('dcat.admin.quota_v1_send_jobs.create')) { $grid->disableCreateButton(false); $grid->enableDialogCreate(); } //修改 $grid->showQuickEditButton(Admin::user()->can('dcat.admin.quota_v1_send_jobs.edit')); //删除以及自定义操作 $grid->actions(function (Grid\Displayers\Actions $actions) { if ($actions->row->status === 0) { $actions->disableDelete(Admin::user()->cannot('dcat.admin.quota_v1_send_jobs.destroy')); if (Admin::user()->can('dcat.admin.quota_v1_send_jobs.start')) { $actions->append(new QuotaV1SendJobStart()); } } else { if (Admin::user()->can('dcat.admin.quota_v1_send_jobs.log_list')) { $actions->append(' 发放记录'); } } }); /** 查询 **/ $grid->filter(function (Grid\Filter $filter) { $filter->panel(); }); }); } /** * Make a show builder. * * @param mixed $id * * @return Show */ protected function detail($id) { return Show::make($id, new QuotaV1SendJob(), function (Show $show) { $show->field('id'); $show->field('administrator_id'); $show->field('amount'); $show->field('status'); $show->field('remarks'); $show->field('created_at'); $show->field('updated_at'); }); } /** * Make a form builder. * * @return Form */ protected function form() { return Form::make(new QuotaV1SendJob(), function (Form $form) { $form->display('id'); if ($form->isCreating()) { $form->currency('amount')->symbol('¥')->customFormat(function ($amount) { return bcdiv($amount, 100, 2); })->saving(function ($amount) { return bcmul($amount, 100); })->required(); } else { $form->currency('amount')->symbol('¥')->customFormat(function ($amount) { return bcdiv($amount, 100, 2); })->saving(function ($amount) { return bcmul($amount, 100); })->disable(); } $form->text('remarks'); $form->display('created_at'); $form->display('updated_at'); }); } public function logList(Content $content, QuotaV1SendJobModel $job) { return $content->header(__('quota-v1-send-job.labels.quota-v1-send-jobs')) ->description($job->id) ->body(QuotaV1SendLogTable::grid($job->id)); } }