Kaynağa Gözat

入库开单导出

zengjun 3 yıl önce
ebeveyn
işleme
b11cf4d0ec

+ 27 - 0
app/Http/Controllers/ReceivingTaskController.php

@@ -16,6 +16,7 @@ use Illuminate\Support\Facades\Date;
 use Illuminate\Support\Facades\Gate;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Http;
+use Oursdreams\Export\Export;
 use Ramsey\Uuid\Uuid;
 
 class ReceivingTaskController extends Controller
@@ -148,4 +149,30 @@ class ReceivingTaskController extends Controller
         $ans_numbers = array_filter(preg_split('/[,, ]+/is', $ans_number_string));
         return ['success' => true, 'data' => $ans_numbers];
     }
+
+    public function exportExcel(Request $request, ReceivingTaskFilters $filter){
+        ini_set ('memory_limit', '1024M');
+        $items = ReceivingTask::query()->with(['items', 'owner', 'wareHouse', 'file', 'deliveryAppointmentCar'])->filter($filter)->orderByDesc('created_at')->paginate(50);
+        $json = [];
+        $row = ['收货任务号','状态','货主','ASN单号','投单时间','仓库','预约号','驾驶证号','收货类型'];
+        foreach ($items as $item){
+            $asnNos = [];
+            $item->items->each(function($receivingTaskItem)use(&$asnNos){
+                $asnNos[] = $receivingTaskItem->asn_no;
+            });
+            $asnNos = implode(",\r\n",$asnNos);
+            $json[] = [
+                $item->number,
+                $item->status,
+                isset($item->owner) ? $item->owner->name : '',
+                $asnNos,
+                isset($item->created_at) ? str_split($item->created_at, 10)[0] : '',
+                isset($item->wareHouse) ? $item->wareHouse->name : '',
+                isset($item->deliveryAppointmentCar) ? $item->deliveryAppointmentCar->appointment_number : '',
+                $item->plate_number,
+                $item->receiving_type
+            ];
+        }
+        return Export::make($row, $json, "开单入库");
+    }
 }

+ 22 - 0
resources/views/store/receivingTasks/index.blade.php

@@ -16,6 +16,17 @@
                             @click="printReceivingTask">打印任务清单
                     </button>
                 @endcan
+                    <span class="dropdown">
+                        <button type="button"
+                                class="btn btn-outline-dark btn-sm form-control-sm dropdown-toggle tooltipTarget"
+                                data-toggle="dropdown" title="导出所有页将会以搜索条件得到的筛选结果,将其全部记录(每一页)导出"
+                                :class="[checkData.length>0?'btn-dark text-light':'']">导出Excel
+                        </button>
+                        <div class="dropdown-menu">
+                            <a class="dropdown-item" href="javascript:" @click="excelExport(false)">导出勾选内容</a>
+                            <a class="dropdown-item" href="javascript:" @click="excelExport(true)">导出所有页</a>
+                        </div>
+                    </span>
             </div>
             <div>
                 <table class="table table-sm table-striped table-hover table-bordered" id="table">
@@ -56,6 +67,7 @@
     <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>{{--新版2--}}
     <script type="text/javascript" src="{{asset('js/element-ui.js') }}"></script>
     <script type="text/javascript" src="{{mix('js/lodop/LodopFuncs.js')}}"></script>
+    <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
 
     <script type="text/javascript" src='http://localhost:18000/CLodopfuncs.js?name=CLODOPA'></script>
 
@@ -63,6 +75,7 @@
         let vue = new Vue({
             el: "#list",
             data: {
+                checkData:[],
                 receiving_tasks: [],
                 total: 0,
                 selectTr: 0,
@@ -279,6 +292,15 @@
                         });
                     }
                 },
+                excelExport(sign){
+                    let url = '{{url('store/receivingTask/exportExcel')}}';
+                    let token = '{{ csrf_token() }}';
+                    if (sign) {
+                        excelExport(true, checkData, url, this.total, token);
+                    } else {
+                        excelExport(false, checkData, url, null, token);
+                    }
+                },
                 clodopPrint() {
                     let {
                         number,               // 收货任务号

+ 1 - 0
routes/web.php

@@ -37,6 +37,7 @@ Route::prefix('store')->group(function(){
     Route::prefix('receivingTask')->group(function(){
         Route::get("/index","ReceivingTaskController@index");
         Route::get("/create","ReceivingTaskController@create");
+        Route::post("/exportExcel","ReceivingTaskController@exportExcel");
     });
 });