<?php namespace App\Admin\Controllers; use App\Admin\Renderable\OrderGoodsList; use App\Models\OrderGoods; use App\Models\OrderInfo; use App\Models\City; use App\Models\Store; use App\Models\SystemCity; use App\Models\UserAddress; use Dcat\Admin\Form; use Dcat\Admin\Grid; use Dcat\Admin\Show; use Dcat\Admin\Http\Controllers\AdminController; use App\Admin\Forms\VerifierCodeForm; class OrderInfoController extends AdminController { /** * Make a grid builder. * * @return Grid */ protected function grid() { return Grid::make(OrderInfo::with(['user', 'merchant']), function (Grid $grid) { $grid->model()->orderBy('created_at', 'DESC'); $grid->column('id')->sortable(); $grid->column('order_sn', '订单号'); $grid->column('mobile', '手机号'); $grid->column('goods', '商品信息')->expand(function (Grid\Displayers\Expand $expand) { $expand->button('查看'); return OrderGoodsList::make(['order_id' => $this->id]); })->width(100); $grid->column('goods_amount', '订单总金额'); $grid->column('merchant.name', '所属商家'); $grid->column('merchant.province_id', '所在省市')->display(function ($val) { $proObj = City::where("city_id", $val)->first(); $cityObj = City::where("city_id", $this->merchant->city_id)->first(); $proname = $proObj->name ?? ''; $cityname = $cityObj->name ?? ''; return $proname . " " . $cityname; }); $grid->column('store_id', '快递代收点')->display(function ($val) { $res = null; if ($val) { $obj = Store::where('id', $val)->first(); $res = $obj->address; } return $res; }); $grid->column('address_id', '送货上门')->display(function ($val) { $res = ''; if ($val) { $obj = UserAddress::where('id', $val)->first(); $res = $obj->area; } return $res; }); $grid->column('created_at', '下单时间'); $grid->column('order_status', '订单状态')->display(function ($val) { $options = OrderInfo::STATUS_OPTIONS; return $options[$val]; })->if(function ($column) { return $column->getValue() == 1; })->display('点击生成核销码')->modal(function (Grid\Displayers\Modal $modal) { // 标题 $modal->title('生成核销码'); // 自定义图标 $modal->icon('feather icon-edit'); // 传递当前行字段值 return VerifierCodeForm::make()->payload(['id' => $this->id]); }); $grid->column('verification_code', '核销码')->limit(10); $grid->column('verifier', '核销员'); $grid->column('verification_at', '核销时间'); //$grid->column('updated_at')->sortable(); //$grid->disableActions(); $grid->disableCreateButton(); $grid->disableViewButton(); $grid->filter(function (Grid\Filter $filter) { // 更改为 panel 布局 $filter->panel(); $filter->equal('order_sn', '订单号')->width(4); $filter->like('phone', '手机号')->width(4); $filter->between('created_at', '创建时间')->datetime()->width(4); }); }); } /** * Make a show builder. * * @param mixed $id * * @return Show */ protected function detail($id) { return Show::make($id, new OrderInfo(), function (Show $show) { $show->field('id'); $show->field('order_sn', '订单号'); $show->field('verification_code', '核销码'); // $show->field('order_status')->display(function ($val) { // $options = OrderInfo::STATUS_OPTIONS; // return $options[$val]; // }); $show->field('created_at', '下单时间'); //$show->field('updated_at'); }); } /** * Make a form builder. * * @return Form */ protected function form() { return Form::make(new OrderInfo(), function (Form $form) { //$form->display('id'); $form->display('order_sn'); $form->text('remark', '备注(后台用)'); //订单状态 -1:全部 0:待付款 1:待到货 2:待领取 3: 待评价 4:已完成 7:已取消 8:已退款 $options = [ 1 => '待到货', 2 => '待领取', 3 => '待评价', 4 => '已完成', 7 => '已取消', ]; $form->select('order_status', '订单状态')->options($options); // $form->switch('pay_status')->default(0); // $form->switch('shipping_status', '发货状态')->default(0); // $form->datetime('shipping_time', '发货时间'); // $form->text('shipping_name', '物流公司'); // $form->text('shipping_code', '物流单号'); // $form->text('order_amount', '订单应付款'); // $form->display('created_at'); // $form->display('updated_at'); $form->disableEditingCheck(); $form->disableViewCheck(); $form->disableDeleteButton(); $form->disableViewButton(); }); } }