From 02f2ac76f556b7abf0d2c2ace16d87f0d356ec9f Mon Sep 17 00:00:00 2001 From: weizong song Date: Sun, 16 Jul 2023 22:19:06 +0800 Subject: [PATCH] up --- app/Exports/OrdersExport.php | 39 +++++++++++++++++++ .../Controllers/Admin/OrdersController.php | 12 +++++- resources/views/admin/orders/index.blade.php | 10 +++++ 3 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 app/Exports/OrdersExport.php diff --git a/app/Exports/OrdersExport.php b/app/Exports/OrdersExport.php new file mode 100644 index 0000000..ead439a --- /dev/null +++ b/app/Exports/OrdersExport.php @@ -0,0 +1,39 @@ +data = $data; + } + + /** + * @return \Illuminate\Support\Collection + */ + public function collection() + { + $res = []; + foreach ($this->data as $row) { + $res[] = [ + "订单编号" => " ".$row->serial, + "所属项目/医院" => $row->project->name, + "客户姓名" => $row->customer->name ?: $row->patient->name, + "联系电话" => " ".$row->customer->mobile, + "被护理人" => $row->patient->name, + "开始服务日期" => $row->from_date, + "结束服务日期" => $row->to_date, + "总计" => $row->total, + "状态" => $row->getStatusLabelAttribute(), + ]; + } + if (count($res)) { + array_unshift($res, array_keys($res[0])); + } + return collect($res); + } +} diff --git a/app/Http/Controllers/Admin/OrdersController.php b/app/Http/Controllers/Admin/OrdersController.php index 3dfd89c..42d4cbb 100755 --- a/app/Http/Controllers/Admin/OrdersController.php +++ b/app/Http/Controllers/Admin/OrdersController.php @@ -8,11 +8,13 @@ namespace App\Http\Controllers\Admin; +use App\Exports\OrdersExport; use App\Models\OrderItems; use App\Models\Orders; use App\Models\Project; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; +use Maatwebsite\Excel\Facades\Excel; class OrdersController extends CommonController { @@ -66,8 +68,14 @@ class OrdersController extends CommonController $query->with(["room", "building"]); } ]) - ->orderBy("id", "desc") - ->paginate(10); + ->orderBy("id", "desc"); + + if (request()->is_export) { + $data = $data->get(); + return Excel::download(new OrdersExport($data), "订单导出.xlsx"); + } + + $data = $data->paginate(10); foreach ($data as $order) { $order = $order->refreshTotal(); } diff --git a/resources/views/admin/orders/index.blade.php b/resources/views/admin/orders/index.blade.php index 2ea0035..6045946 100755 --- a/resources/views/admin/orders/index.blade.php +++ b/resources/views/admin/orders/index.blade.php @@ -28,6 +28,8 @@ + + @@ -250,5 +252,13 @@ var item_id = $("#modal-box form input[name=item_id]").val(); $("#data-table tbody tr[data-item-id='" + item_id + "']").find("td[data-field=total]").html(total); } + + function doExport(ele) { + var url = "{{ url("admin/orders") }}"; + url += "?is_export=1"; + var params = $(ele).closest("form").serialize(); + url += "&" + params; + window.open(url); + } @endpush