column('id')->sortable(); $grid->column('sn'); $grid->column('user.phone'); // $grid->column('user_coupon_id'); // $grid->column('coupon_discount_amount'); // $grid->column('products_total_amount')->display(function ($value) { // return bcdiv($value, 100, 2); // })->prepend('¥'); // $grid->column('vip_discount_amount')->display(function ($value) { // return bcdiv($value, 100, 2); // })->prepend('¥'); // $grid->column('coupon_discount_amount')->display(function ($value) { // return bcdiv($value, 100, 2); // })->prepend('¥'); // $grid->column('reduced_amount')->display(function ($value) { // return bcdiv($value, 100, 2); // })->prepend('¥'); // $grid->column('weight'); // $grid->column('shipping_fee')->display(function ($value) { // return bcdiv($value, 100, 2); // })->prepend('¥'); $grid->column('total_amount')->display(function ($value) { return bcdiv($value, 100, 2); })->prepend('¥'); // $grid->column('note'); // $grid->column('remark'); // $grid->column('pay_sn'); $grid->column('pay_way'); $grid->column('pay_at'); // $grid->column('consignee_name'); // $grid->column('consignee_telephone'); // $grid->column('consignee_zone'); // $grid->column('consignee_address'); $grid->column('status')->using([ 0=>'待支付', 1=>'待收货', 9=>'已完成', 10=>'已取消', ])->dot([ 0=>'primary', 1=>'danger', 9=>'success', 10=>'#b3b9bf', ]); $grid->column('shipping_state')->display(function ($v) { if ($this->status <1) { return -1; } return $v; })->using([ -1=> '-', 0 => '待发货', 1 => '发货中', 2 => '已完成', ])->dot([ 0 => 'primary', 1 => 'danger', 2 => 'success', ]); // $grid->column('completed_at'); $grid->column('created_at')->sortable(); $grid->model()->orderBy('created_at', 'desc'); $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->disableView(false); // $actions->append(new CreateOrderPackage()); }); $grid->filter(function (Grid\Filter $filter) { $filter->equal('id'); }); }); } /** * Make a show builder. * * @param mixed $id * * @return Show */ protected function detail($id) { return function (Row $row) use ($id) { $row->column(5, function ($column) use ($id) { $builder = Order::with(['user', 'userCoupon']); $column->row(Show::make($id, $builder, function (Show $show) { $show->field('id'); $show->field('sn'); $show->field('total_amount')->as(function ($v) { return bcdiv($v, 100, 2); })->prepend('¥'); $show->field('created_at'); $show->field('pay_way'); $show->field('pay_at'); $show->field('user.phone'); $show->field('products_total_amount')->as(function ($v) { return bcdiv($v, 100, 2); })->prepend('¥'); $show->field('vip_discount_amount')->as(function ($v) { return bcdiv($v, 100, 2); })->prepend('¥'); $show->field('userCoupon.coupon_name')->label(); $show->field('coupon_discount_amount')->as(function ($v) { return bcdiv($v, 100, 2); })->prepend('¥'); $show->field('reduced_amount')->as(function ($v) { return bcdiv($v, 100, 2); })->prepend('¥'); $show->field('shipping_fee')->as(function ($v) { return bcdiv($v, 100, 2); })->prepend('¥'); $show->panel() ->tools(function (Show\Tools $tools) use ($show) { $tools->disableEdit(); $tools->disableDelete(); }); })); }); $row->column(7, function ($column) use ($id) { $builder = OrderProduct::where('order_id', $id); $productGrid = Grid::make($builder, function (Grid $grid) { $grid->column('name'); $grid->column('cover')->image(50, 50); $grid->column('sell_price')->display(function ($value) { return bcdiv($value, 100, 2); })->prepend('¥'); $grid->column('quantity'); $grid->column('product_total_amount')->display(function () { return bcdiv($this->sell_price * $this->quantity, 100, 2); })->prepend('¥'); $grid->column('after_sale_state')->using([ 0=>'正常', 1=>'售后中', 2=>'售后完成', ])->dot([ 0=>'success', 1=>'danger', 2=>'primary', ]); $grid->disableActions(); $grid->disablePagination(); $grid->disableRefreshButton(); }); $packageBuilder = OrderPackage::with('packageProducts')->where('order_id', $id); $packageGrid = Grid::make($packageBuilder, function (Grid $grid) { $grid->column('shipping_company', '物流公司'); $grid->column('shipping_number', '物流单号'); $grid->column('packageProducts', '包裹商品')->setHeaderAttributes(['style' => 'color:#5b69bc']); $grid->column('created_at', '发货时间'); $grid->disableActions(); $grid->disablePagination(); $grid->disableRefreshButton(); }); $logBuilder = OrderLog::with('administrator')->where('order_id', $id); $orderLogoGrid = Grid::make($logBuilder, function (Grid $grid) { $grid->column('administrator', '操作人'); $grid->column('content', '操作明细'); $grid->column('craeted_at', '操作时间'); $grid->disableActions(); $grid->disablePagination(); $grid->disableRefreshButton(); }); $column->row(Box::make('订单商品', $productGrid)); $packagesBox = Box::make('发货包裹', $packageGrid); $packagesBox->tool(''); $column->row($packagesBox->collapsable()); $logsBox = Box::make('操作记录', $orderLogoGrid); $logsBox->tool(''); $logsBox->tool(''); $logsBox->tool(''); $column->row($logsBox->collapsable()); }); }; } /** * Make a form builder. * * @return Form */ protected function form() { return Form::make(new Order(), function (Form $form) { $form->display('id'); $form->text('user_id'); $form->text('sn'); $form->text('user_coupon_id'); $form->text('coupon_discount_amount'); $form->text('vip_discount_amount'); $form->text('reduced_amount'); $form->text('shipping_fee'); $form->text('products_total_amount'); $form->text('total_amount'); $form->text('weight'); $form->text('note'); $form->text('remark'); $form->text('pay_sn'); $form->text('pay_way'); $form->text('pay_at'); $form->text('consignee_name'); $form->text('consignee_telephone'); $form->text('consignee_zone'); $form->text('consignee_address'); $form->text('status'); $form->text('completed_at'); $form->display('created_at'); $form->display('updated_at'); }); } public function orders(Request $request) { $sn = $request->input('q'); $query = OrderModel::select('id', 'sn as text'); if ($sn) { $query->where('sn', 'like', "%$sn%"); return $query->paginate(null); } return response()->json($query->get()); } public function orderProducts(Request $request) { $orderId = $request->input('q'); $query = OrderProduct::select('id', 'name as text'); if ($orderId) { $query->where('order_id', $orderId); } return response()->json($query->get()); } }