weizong song 3 years ago
parent 862fb3ac9a
commit 02f2ac76f5

@ -0,0 +1,39 @@
<?php
namespace App\Exports;
use App\Models\Paramedic;
use Maatwebsite\Excel\Concerns\FromCollection;
class OrdersExport implements FromCollection
{
public function __construct($data)
{
$this->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);
}
}

@ -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();
}

@ -28,6 +28,8 @@
</select>
<input class="form-control" type="text" name="keyword" value="{{ request()->keyword }}"
placeholder="订单编号/联系人/联系电话">
<button class="btn btn-primary ml-1" type="button" onclick="doExport(this)">导出</button>
</form>
</div>
<table class="table table-bordered" id="data-table">
@ -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);
}
</script>
@endpush

Loading…
Cancel
Save