diff --git a/app/Exports/CommonExport.php b/app/Exports/CommonExport.php new file mode 100644 index 0000000..5d904ea --- /dev/null +++ b/app/Exports/CommonExport.php @@ -0,0 +1,38 @@ +data = $data; + } + + public function collection() + { + return $this->data; + } + + public function registerEvents(): array + { + return [ + // Handle by a closure. + BeforeExport::class => [self::class, "beforeExport"] + ]; + } + + public static function beforeExport(BeforeExport $event) { + // + } +} diff --git a/app/Http/Controllers/Admin/ProjectController.php b/app/Http/Controllers/Admin/ProjectController.php index 34de8bc..15dddc3 100755 --- a/app/Http/Controllers/Admin/ProjectController.php +++ b/app/Http/Controllers/Admin/ProjectController.php @@ -9,6 +9,7 @@ namespace App\Http\Controllers\Admin; use App\Events\ProjectSaved; +use App\Exports\CommonExport; use App\Forms\ProjectForm; use App\Models\Area; use App\Models\Bed; @@ -18,6 +19,7 @@ use App\Models\Project; use App\Models\Room; use Illuminate\Http\Request; use Kris\LaravelFormBuilder\FormBuilder; +use Maatwebsite\Excel\Facades\Excel; class ProjectController extends CommonController { @@ -175,4 +177,25 @@ class ProjectController extends CommonController return $this->success("删除失败"); } } + + function exportBeds(Request $request) { + $beds = Bed::with(["area","building","room"]) + ->where("project_id", $request->project_id) + ->orderBy("building_id") + ->orderBy("area_id") + ->orderBy("room_id") + ->get(); + $data = []; + foreach ($beds as $bed) { + $data[] = [ + "楼栋" => $bed->building->name, + "病区" => $bed->area->name, + "病房" => $bed->room->name, + "床号" => $bed->name, + ]; + } + $data = collect($data); + + return Excel::download(new CommonExport($data),"beds.xlsx"); + } } diff --git a/routes/web.php b/routes/web.php index fece33b..218f704 100644 --- a/routes/web.php +++ b/routes/web.php @@ -44,6 +44,7 @@ Route::group(["namespace" => "Admin", "prefix" => "admin"], function () { Route::post("project/create-sub", 'ProjectController@createSub'); Route::post("project/edit-department", 'ProjectController@editDepartment'); Route::post("project/delete-department", 'ProjectController@deleteDepartment'); + Route::get("project/export-beds", 'ProjectController@exportBeds'); \App\Models\CommonModel::generateCurdRouter("FactorController", "factor"); \App\Models\CommonModel::generateCurdRouter("TrainingTypeController", "training-type");