first(); if ($user) { $grid->model()->where('path', 'like', '%-'.$user->id.'-%'); } } $grid->model()->orderBy('id', 'desc');//默认ID倒叙 $grid->column('id')->sortable(); $grid->column('user.phone', '手机号')->copyable(); $grid->column('lvl', '等级')->display(function () { return $this->lvl->text(); }); $grid->column('order.sn', '订单编号'); $grid->column('total_amount'); $grid->column('remark'); $grid->column('order_completed_at', '结算时间')->sortable(); $grid->column('created_at')->sortable(); $grid->header(function ($collection) use ($grid) { return tap(new Row(), function ($row) use ($grid) { $query = DealerPurchaseLogModel::query(); $grid->model()->getQueries()->unique()->each(function ($value) use (&$query) { if (in_array($value['method'], ['paginate', 'get', 'orderBy', 'orderByDesc'], true)) { return; } $query = call_user_func_array([$query, $value['method']], $value['arguments'] ?? []); }); $row->column(3, new InfoBox('进货业绩', (clone $query)->sum('total_amount'), 'fa fa-cny')); }); }); $grid->filter(function (Grid\Filter $filter) { $filter->panel(false); $filter->equal('user_phone', '手机号')->ignore()->width(4); $filter->between('order_completed_at', '结算时间')->dateTime()->width(4); $filter->between('created_at', '创建时间')->dateTime()->width(4); // $filter->equal('user.phone', '手机号')->width(3); }); }); } /** * Make a show builder. * * @param mixed $id * * @return Show */ protected function detail($id) { return Show::make($id, new DealerPurchaseLog(), function (Show $show) { $show->field('id'); $show->field('user_id'); $show->field('order_id'); $show->field('lvl'); $show->field('total_amount'); $show->field('remark'); $show->field('order_completed_at'); $show->field('created_at'); $show->field('updated_at'); }); } /** * Make a form builder. * * @return Form */ protected function form() { return Form::make(new DealerPurchaseLog(), function (Form $form) { $form->display('id'); $form->text('user_id'); $form->text('order_id'); $form->text('lvl'); $form->text('total_amount'); $form->text('remark'); $form->text('order_completed_at'); $form->display('created_at'); $form->display('updated_at'); }); } }