diff --git a/app/Admin/Actions/Grid/KuaidiInfo.php b/app/Admin/Actions/Grid/KuaidiInfo.php new file mode 100644 index 00000000..b6beb4f5 --- /dev/null +++ b/app/Admin/Actions/Grid/KuaidiInfo.php @@ -0,0 +1,27 @@ +key; + $package = OrderPackage::findOrFail($id); + + $kuaidiLog = KuaidiLog::where([ + 'number'=>$package->shipping_number, + 'code'=>$package->shipping_code, + ])->first(); + + $data = admin_view('admin.kuaidi-info', compact('kuaidiLog')); + + return Card::make('标题', $data); + } +} diff --git a/app/Admin/Controllers/OrderPackageController.php b/app/Admin/Controllers/OrderPackageController.php index 3dc2df04..75f48ca3 100644 --- a/app/Admin/Controllers/OrderPackageController.php +++ b/app/Admin/Controllers/OrderPackageController.php @@ -2,6 +2,7 @@ namespace App\Admin\Controllers; +use App\Admin\Actions\Grid\KuaidiInfo; use App\Admin\Actions\Grid\OrderPackageFailed; use App\Admin\Renderable\PackageProductSimpleTable; use App\Admin\Repositories\OrderPackage; @@ -65,6 +66,10 @@ class OrderPackageController extends AdminController OrderPackageModel::STATUS_DISTRIBUTE=>'primary', OrderPackageModel::STATUS_QUESTION =>'warning', ]); + $grid->column('kuaidi_info', '物流详情')->display('详情')->modal(function ($modal) { + $modal->title('物流详情'); + return KuaidiInfo::make(); + }); $grid->column('remarks'); $grid->column('created_at')->sortable(); // $grid->column('updated_at'); @@ -80,7 +85,7 @@ class OrderPackageController extends AdminController $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->disableDelete(Admin::user()->cannot('dcat.admin.order_packages.destroy')); $actions->disableQuickEdit(Admin::user()->cannot('dcat.admin.order_packages.edit')); - if (!in_array($actions->row->status, [OrderPackageModel::STATUS_CHECK, OrderPackageModel::STATUS_AUTOCHECK])) { + if (!$actions->row->is_failed && !in_array($actions->row->status, [OrderPackageModel::STATUS_CHECK, OrderPackageModel::STATUS_AUTOCHECK])) { $actions->append(new OrderPackageFailed()); } }); @@ -125,19 +130,17 @@ class OrderPackageController extends AdminController */ protected function form() { - return Form::make(new OrderPackage(), function (Form $form) { + $builder = OrderPackage::with('order'); + return Form::make($builder, function (Form $form) { $form->display('id'); - $form->select('order_id')->options(function ($id) { - $order = Order::find($id); - if ($order) { - return [$order->id => $order->sn]; - } - })->ajax(admin_route('api.orders'))->load('order_product_id', admin_route('api.order_products'))->disable(); + $form->text('order.sn')->disable(); $form->text('shipping_company'); $form->text('shipping_number'); $form->text('remarks'); + $form->hidden('order_id'); + $form->display('created_at'); $form->display('updated_at'); }); diff --git a/resources/views/admin/kuaidi-info.blade.php b/resources/views/admin/kuaidi-info.blade.php new file mode 100644 index 00000000..524f98b6 --- /dev/null +++ b/resources/views/admin/kuaidi-info.blade.php @@ -0,0 +1,29 @@ + + +@if($kuaidiLog) + @if(count($kuaidiLog->info) > 0) +
+ @foreach($kuaidiLog->info as $log) + +
+ {{$log['status']}} +
+ + +
+ +
+ {{$log['time']}} +
{{$log['context']}}
+
+
+ + @endforeach +
+ +
+
+ @endif +@endif + +