header('订单列表') ->body($this->grid()); } /** * Show interface. * @param mixed $id * @param Content $content * @return Content */ public function show(Order $order, Content $content) { return Admin::content(function (Content $content) use ($order) { $content->header('订单详情'); $content->body(view("admin.order.detail", compact('order'))); }); } /** * Make a grid builder. * @return Grid */ protected function grid() { $grid = new Grid(new Order); $grid->disableCreateButton(); $grid->model()->orderBy('id', 'desc')->with(['details.item', 'user.info', 'payment']); $grid->paginate(10); $grid->actions(function ($actions) { $actions->disableDelete(); $actions->disableEdit(); $actions->disableView(); $actions->append('

订单详情

'); if ($actions->row->canDeliver() && $actions->row->state == Order::ORDER_DELIVER) { $actions->append(new OrderDeliver($actions->row)); } }); $grid->filter(function ($filter) { $filter->disableIdFilter(); $filter->column(1 / 3, function ($filter) { $filter->like('orderid', '订单编号'); $filter->equal('state', '订单状态')->select([ Order::ORDER_UNPAY => '待支付', Order::ORDER_PAID => '已支付', Order::ORDER_CANCEL => '已取消', ]); }); $filter->column(1 / 3, function ($filter) { $filter->where(function ($query) { $query->whereHas('user', function ($query) { $query->whereHas('info', function ($query) { $query->where('nickname', 'like', "%{$this->input}%"); }); }); }, '下单用户'); }); $filter->column(1 / 3, function ($filter) { $filter->between('created_at', '下单时间')->datetime(); $filter->between('paid_at', '付款时间')->datetime(); }); // $filter->expand(); }); $grid->orderid('订单编号')->display(function ($model) { $ret = "{$this->orderid}"; $ret .= '
商品数量:' . $this->details()->sum('number') . ''; return $ret; }); $grid->column('商品信息')->display(function () { $ret = ''; foreach ($this->details as $detail) { $ret .= '

' . $detail['item']['name'] . ' ' . number_format($detail['price'], 2) . ' * ' . $detail['number'] . '

'; } return $ret; }); $grid->column('下单用户')->display(function () { $ret = ''; $ret .= '
' . $this->user->info->nickname; $ret .= '
' . $this->user->info->mobile . '
'; return $ret; }); $grid->column('价格')->display(function () { $ret = '商品小计:' . number_format($this->amount, 2); $ret .= '
应收总额:' . number_format($this->total, 2); return $ret; }); $grid->column('状态')->display(function () { $ret = $this->state_text . '
'; // $ret .= $this->status . '
'; if ($this->payment) { $ret .= $this->payment->type_text . '
'; $ret .= $this->payment->out_trade_no . '
'; $ret .= $this->payment->transaction_id; } return $ret; }); $grid->column('下单时间/付款时间')->display(function ($gd) { $ret = $this->created_at . '
'; $ret .= $this->paid_at; return $ret; }); $grid->disableExport(false); $grid->exporter(new OrderExporter()); return $grid->render(); } }