model()->where(function ($query) { return $query->where('consignor_id', 1)->orWhereNull('consignor_id'); }); } $grid->setResource('dealer-orders'); $grid->column('id')->sortable(); $grid->column('sn'); $grid->column('user.phone')->copyable(); $grid->column('userInfo.nickname'); $grid->column('consignor.phone')->display(function ($value) { return $value ?? '系统'; }); $grid->column('total_amount')->prepend('¥'); $statusTexts = DealerOrderStatus::texts(); $grid->column('pay_way')->using(DealerOrderModel::$payWayText)->label([ 'wallet'=>'warning', 'offline'=>'danger', 'none'=>'#b3b9bf', ]); $grid->column('order_status')->display(function ($v) { return $this->order_status; })->using($statusTexts)->dot([ DealerOrderStatus::Pending->value => 'primary', DealerOrderStatus::Paying->value => 'danger', DealerOrderStatus::Confirming->value => 'warning', DealerOrderStatus::Paid->value => 'danger', DealerOrderStatus::Shipped->value => 'warning', DealerOrderStatus::Completed->value => 'success', DealerOrderStatus::Cancelled->value => '#b3b9bf', ])->filter(Grid\Column\Filter\In::make($statusTexts)->setColumnName('status')); // $grid->column('settle_state'); // $grid->column('pay_info'); // $grid->column('pay_image'); // $grid->column('pay_time'); $grid->column('paied_time'); // $grid->column('shipping_time'); // $grid->column('shippinged_time'); $grid->column('created_at')->sortable(); $grid->model()->orderBy('created_at', 'desc'); // $grid->column('updated_at')->sortable(); $grid->actions(function (Grid\Displayers\Actions $actions) { if (Admin::user()->can('dcat.admin.dealer_orders.show')) { $actions->append(' 显示   '); // $actions->disableView(false); } if (!(empty($actions->row->consignor) || $actions->row->consignor_id == 1) && $actions->row->isPending() && Admin::user()->can('dcat.admin.dealer_orders.allocate')) { $actions->append(new DealerOrderAllocate()); } if ((empty($actions->row->consignor) || $actions->row->consignor_id == 1)) { if ($actions->row->isPay() && Admin::user()->can('dcat.admin.dealer_orders.paid')) { $actions->append(new DealerOrderPaid()); } if ($actions->row->isPay() && Admin::user()->can('dcat.admin.dealer_orders.refuse')) { $actions->append(new DealerOrderRefuse()); } if ($actions->row->isPaid() && Admin::user()->can('dcat.admin.dealer_orders.shipping')) { $actions->append(new DealerOrderShipping()); } } if ($actions->row->isPending() && Admin::user()->can('dcat.admin.dealer_orders.cancel')) { $actions->append(new DealerOrderCancel()); } }); $grid->filter(function (Grid\Filter $filter) { $filter->panel(); $filter->equal('user.phone')->width(3); $filter->equal('consignor.phone')->width(3); $filter->equal('sn')->width(3); $filter->between('paied_time')->dateTime()->width(5); $filter->between('created_at')->dateTime()->width(5); // $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 = DealerOrder::with(['user', 'userInfo', 'consignor']); $column->row(Show::make($id, $builder, function (Show $show) { $show->field('sn'); $show->field('order_status')->as(function ($v) { return $this->order_status; })->using(DealerOrderStatus::texts())->dot([ DealerOrderStatus::Pending->value => 'primary', DealerOrderStatus::Paying->value => 'danger', DealerOrderStatus::Confirming->value => 'warning', DealerOrderStatus::Paid->value => 'danger', DealerOrderStatus::Shipped->value => 'warning', DealerOrderStatus::Completed->value => 'success', DealerOrderStatus::Cancelled->value => '#b3b9bf', ]); $show->field('user.phone'); $show->field('user_info.nickname'); $show->field('consignor.phone')->as(function ($value) { return $value ?? '系统'; }); $show->field('pay_image')->image(); $show->field('remark'); $show->divider(); $show->field('consignee_name'); $show->field('consignee_telephone'); $show->field('consignee', '收货地址')->as(function () { return $this->consignee_zone . ' '. $this->consignee_address; }); //非(待确认,已取消)显示收款人信息 if (!in_array($show->model()->order_status, [ DealerOrderStatus::Pending->value, DealerOrderStatus::Cancelled->value, ])) { $show->divider('收款信息-银行'); $show->field('bank_user_name', '银行-收款人')->as(function () { $payInfo = $this->getConsignorPayInfo(); return $payInfo['bank']['user_name'] ?? ''; }); $show->field('bank_bank_name', '银行-名称')->as(function () { $payInfo = $this->getConsignorPayInfo(); return $payInfo['bank']['bank_name'] ?? ''; }); $show->field('bank_bank_number', '银行-卡号')->as(function () { $payInfo = $this->getConsignorPayInfo(); return $payInfo['bank']['bank_number'] ?? ''; }); $show->field('bank_bank_description', '银行-开户行')->as(function () { $payInfo = $this->getConsignorPayInfo(); return $payInfo['bank']['bank_description'] ?? ''; }); $show->divider('收款信息-支付宝'); $show->field('alipay_user_name', '支付宝-真实名称')->as(function () { $payInfo = $this->getConsignorPayInfo(); return $payInfo['alipay']['user_name'] ?? ''; }); $show->field('alipay_ali_name', '支付宝-账户')->as(function () { $payInfo = $this->getConsignorPayInfo(); return $payInfo['alipay']['ali_name'] ?? ''; }); $show->field('alipay_image', '支付宝-收款码')->as(function () { $payInfo = $this->getConsignorPayInfo(); return $payInfo['alipay']['image'] ?? ''; })->image(); $show->divider('收款信息-微信'); $show->field('wechat_user_name', '微信-真实名称')->as(function () { $payInfo = $this->getConsignorPayInfo(); return $payInfo['wechat']['user_name'] ?? ''; }); $show->field('wechat_wechat_name', '微信-ID')->as(function () { $payInfo = $this->getConsignorPayInfo(); return $payInfo['wechat']['wechat_name'] ?? ''; }); $show->field('wechat_image', '微信-收款码')->as(function () { $payInfo = $this->getConsignorPayInfo(); return $payInfo['wechat']['image'] ?? ''; })->image(); } $show->panel() ->tools(function (Show\Tools $tools) use ($show) { $tools->disableEdit(); $tools->disableDelete(); if (Admin::user()->can('dcat.admin.dealer_orders.remark')) { $tools->append(new DealerOrderRemark()); } }); })); }); $row->column(7, function ($column) use ($id) { $builder = DealerOrderProduct::where('order_id', $id); $productGrid = Grid::make($builder, function (Grid $grid) { $grid->column('name'); $grid->column('cover', '封面')->image(50, 50); $grid->column('price', '标价')->prepend('¥'); $grid->column('sale_price', '实际售价')->prepend('¥'); $grid->column('qty', '数量'); $grid->disableActions(); $grid->disablePagination(); $grid->disableRefreshButton(); }); $column->row(Box::make('订单商品', $productGrid)); //显示渠道补贴明细 // $channelSubsidy = ''; $builder = DealerChannelSubsidyLog::with(['user', 'earning'])->where('order_id', $id); $channelSubsidy = Grid::make($builder, function (Grid $grid) { $grid->column('user.phone', '手机号'); $grid->column('lvl', '等级')->display(function () { return $this->lvl->text(); // return $this->lvl_text; }); $grid->column('total_amount', '补贴金额'); $grid->column('remark', '备注'); $grid->column('earning.id', '操作')->display(function () { return '查看'; })->link(function ($value) { return admin_route('dealer_earnings.show', ['dealer_earning'=>$this->earning->id]); }); $grid->disableActions(); $grid->disablePagination(); $grid->disableRefreshButton(); }); $column->row(Box::make('渠道补贴', $channelSubsidy)); }); }; } /** * Make a form builder. * * @return Form */ protected function form() { return Form::make(new DealerOrder(), function (Form $form) { $form->display('id'); $form->text('sn'); $form->text('user_id'); $form->text('consignor_id'); $form->text('total_amount'); $form->text('status'); $form->text('settle_state'); $form->text('consignee_name'); $form->text('consignee_telephone'); $form->text('consignee_zone'); $form->text('consignee_address'); $form->text('pay_info'); $form->text('pay_image'); $form->text('pay_time'); $form->text('paied_time'); $form->text('shipping_time'); $form->text('shippinged_time'); $form->display('created_at'); $form->display('updated_at'); }); } }