diff --git a/app/Http/Controllers/Admin/ProjectController.php b/app/Http/Controllers/Admin/ProjectController.php index 99a3040..877f399 100755 --- a/app/Http/Controllers/Admin/ProjectController.php +++ b/app/Http/Controllers/Admin/ProjectController.php @@ -63,14 +63,28 @@ class ProjectController extends CommonController public function beds($id) { - $project = (new Project())->with(["buildings" => function ($query) { - $query->with(["areas" => function ($query) { - $query->with("rooms"); - }]); - }])->find($id); - - $data = (new Bed())->where("project_id", $id)->orderBy("id", "desc")->with(["project", "building", "area", "room"])->paginate(10); + $project = (new Project())->with(["buildings"])->find($id); + $data = (new Bed())->where("project_id", $id)->orderBy("id", "desc")->with(["project", "building", "area", "room"]); + if (request()->room_id) { + $data = $data->where("room_id", request()->room_id); + $room = (new Room())->find(request()->room_id); + $rooms = (new Room())->where("area_id", $room->area_id)->get(); + $area = (new Area())->where("id", $room->area_id)->first(); + $areas = (new Area())->where("building_id", $area->building_id)->get(); + view()->share(compact("rooms", "areas")); + } elseif (request()->area_id) { + $data = $data->where("area_id", request()->area_id); + $area = (new Area())->find(request()->area_id); + $areas = (new Area())->where("building_id", $area->building_id)->get(); + $rooms = (new Room())->where("area_id", $area->id)->get(); + view()->share(compact("areas", "rooms")); + } elseif (request()->building_id) { + $areas = (new Area())->where("building_id", request()->building_id)->get(); + $data = $data->where("building_id", request()->building_id); + view()->share(compact("areas")); + } + $data = $data->paginate(10); return view($this->bladePath . ".beds", compact("project", "data")); } @@ -125,6 +139,21 @@ class ProjectController extends CommonController return $this->success("添加成功!", '', $res); } + public function getSubs(Request $request) + { + switch ($request->type) { + case "building": + $res = (new Area())->where("building_id", $request->id)->get(); + break; + case "area": + $res = (new Room())->where("area_id", $request->id)->get(); + break; + default: + $res = []; + } + return $this->ajaxResponse($res); + } + public function editDepartment(Request $request) { $data = [ diff --git a/resources/views/admin/project/beds.blade.php b/resources/views/admin/project/beds.blade.php index 6ed8347..319852d 100755 --- a/resources/views/admin/project/beds.blade.php +++ b/resources/views/admin/project/beds.blade.php @@ -10,98 +10,70 @@ @section("content")
-
+
-
- - - - - - @foreach($project->buildings as $building) - - - - @foreach($building->areas as $area) - - - - @foreach($area->rooms as $room) - - - - @endforeach - @endforeach - @endforeach - -
- {{ $project->name }} +
+

{{ $project->name }}床位管理

+
+
+
+ +
+ +
+
- +
+ +
+ +
+
- 返回 -
- {{$building->name}} - - - +
+ +
+ +
+
-
- {{$area->name}} - - - - -
- {{$room->name}} - - - + + + 返回 + + -
-
-
-
-
-
-
@@ -203,9 +175,59 @@ }); }); - function createSub(element) { - var type = $(element).closest("tr").attr("data-type"); - var id = $(element).closest("tr").attr("data-id"); + function changeBuilding() { + $("#area_id option:gt(0)").remove(); + $("#room_id option:gt(0)").remove(); + + var building_id = $("#building_id").val(); + var url = "{{ url($urlPrefix."/get-subs") }}"; + $.get(url, {type: "building", id: building_id}, function (res) { + for (var i = 0; i < res.length; i++) { + $("#area_id").append(''); + } + }); + } + + function changeArea() { + $("#room_id option:gt(0)").remove(); + + var area_id = $("#area_id").val(); + var url = "{{ url($urlPrefix."/get-subs") }}"; + $.get(url, {type: "area", id: area_id}, function (res) { + for (var i = 0; i < res.length; i++) { + $("#room_id").append(''); + } + }); + } + + function createSub(type) { + switch (type) { + case "project": + var id = "{{ $project->id }}"; + break; + case "building": + var id = $("#building_id").val(); + if (id == "") { + alertError("请先选择楼栋"); + return false; + } + break; + case "area": + var id = $("#area_id").val(); + if (id == "") { + alertError("请先选择病区/楼层"); + return false; + } + break; + case "room": + var id = $("#room_id").val(); + if (id == "") { + alertError("请先选择病房"); + return false; + } + break; + } + var url = "{{ url($urlPrefix."/create-sub") }}"; $("#model-form form input[name=type]").val(type); @@ -219,13 +241,16 @@ $("#model-form .modal-title").html("新增楼栋"); break; case "building": - $("#model-form .modal-title").html("新增病区/楼层"); + var building_name = $("#building_id option:selected").html(); + $("#model-form .modal-title").html("新增病区/楼层-" + building_name); break; case "area": - $("#model-form .modal-title").html("新增病房"); + var area_name = $("#area_id option:selected").html(); + $("#model-form .modal-title").html("新增病房-" + area_name); break; case "room": - $("#model-form .modal-title").html("新增病床"); + var room_name = $("#room_id option:selected").html(); + $("#model-form .modal-title").html("新增病床-" + room_name); break; } @@ -305,19 +330,7 @@ $("#model-form").modal("hide"); $.post(url, data, function (res) { if (res.status) { - - if (res.data.room_id) { - $("#data-table tbody").prepend('\n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' '); - return; - } - window.location.reload(); + $("#search-form").submit(); } else { alertError(res.msg); } diff --git a/routes/web.php b/routes/web.php index 0e27595..8d7c612 100644 --- a/routes/web.php +++ b/routes/web.php @@ -41,6 +41,7 @@ Route::group(["namespace" => "Admin", "prefix" => "admin"], function () { \App\Models\CommonModel::generateCurdRouter("ProjectController", "project"); Route::get("project/beds/{id}", 'ProjectController@beds'); + Route::get("project/get-subs", 'ProjectController@getSubs'); Route::post("project/create-sub", 'ProjectController@createSub'); Route::post("project/edit-department", 'ProjectController@editDepartment'); Route::post("project/delete-department", 'ProjectController@deleteDepartment');
'+res.data.name+''+res.data.room_id+''+res.data.project_id+''+res.data.building_id+''+res.data.area_id+'