weizong song 3 years ago
parent d438edbede
commit 27b5193fec

@ -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 = [

@ -10,98 +10,70 @@
@section("content")
<div class="row">
<div class="col-4 pr-0">
<div class="col-12">
<div class="card">
<div class="card-body p-0 ">
<table class="table border-bottom border-light mb-0 treetable" id="tree-table">
<tbody>
<tr role="row" data-id="{{$project->id}}" data-type="project" data-name="{{$project->name}}"
data-myindex="{{$project->myindex}}" data-tt-id="project{{$project->id}}">
<td>
<a href="javascript:;" class="btn btn-sm btn-link"> <i
class="mdi mdi-hospital"></i> {{ $project->name }}</a>
<div class="card-body">
<h4>{{ $project->name }}床位管理</h4>
<div class="mb-2">
<form class="form-inline" id="search-form">
<div class="input-group mr-1">
<select class="form-control" name="building_id" id="building_id"
onchange="changeBuilding()">
<option value="">请选择楼栋</option>
@foreach($project->buildings as $building)
<option
value="{{ $building->id }}" @if($building->id == request()->building_id){{ "selected" }}@endif>{{ $building->name }}</option>
@endforeach
</select>
<div class="input-group-append">
<button class="btn btn-primary" type="button" onclick="createSub('project')"><i
class="mdi mdi-plus"></i></button>
</div>
</div>
<button class="btn btn-sm btn-info d-none"
href="javascript:;" onclick="createSub(this)"><i
class="mdi mdi-plus-box"></i> 楼栋
</button>
<div class="input-group mr-1">
<select class="form-control" name="area_id" id="area_id" onchange="changeArea()">
<option value="">
请选择病区
</option>
@if (isset($areas))
@foreach($areas as $area)
<option
value="{{ $area->id }}" @if($area->id == request()->area_id){{ "selected" }}@endif>{{ $area->name }}</option>
@endforeach
@endif
</select>
<div class="input-group-append">
<button class="btn btn-primary" type="button" onclick="createSub('building')"><i
class="mdi mdi-plus"></i></button>
</div>
</div>
<a class="btn btn-sm btn-link float-right" href="javascript:;"
onclick="backAndReload()">返回</a>
</td>
</tr>
@foreach($project->buildings as $building)
<tr role="row" data-type="building" data-id="{{$building->id}}"
data-name="{{$building->name}}"
data-myindex="{{$building->myindex}}"
data-tt-id="building{{$building->id}}" data-tt-parent-id="project{{$project->id}}">
<td>
<a href="javascript:;" class="btn btn-sm btn-link"> <i
class="mdi mdi-hospital-building"></i> {{$building->name}} </a>
<button class="btn btn-sm btn-info d-none"
href="javascript:;" onclick="createSub(this)"><i
class="mdi mdi-plus-box"></i> 病区/楼层
</button>
<button class="btn btn-sm btn-primary d-none"
href="javascript:;" onclick="edit(this)"><i
class="mdi mdi-pencil"></i></button>
<button class="btn btn-sm btn-danger d-none"
href="javascript:;" onclick="del(this)"><i
class="mdi mdi-delete-forever"></i></button>
<div class="input-group mr-1">
<select class="form-control" name="room_id" id="room_id">
<option value="">
请选择病房
</option>
@if (isset($rooms))
@foreach($rooms as $room)
<option
value="{{ $room->id }}" @if($room->id == request()->room_id){{ "selected" }}@endif>{{ $room->name }}</option>
@endforeach
@endif
</select>
<div class="input-group-append">
<button class="btn btn-primary" type="button" onclick="createSub('area')"><i
class="mdi mdi-plus"></i></button>
</div>
</div>
</td>
</tr>
@foreach($building->areas as $area)
<tr role="row" data-type="area" data-id="{{$area->id}}" data-name="{{$area->name}}"
data-myindex="{{$area->myindex}}"
data-tt-id="area{{$area->id}}" data-tt-parent-id="building{{$building->id}}">
<td>
<a href="javascript:;" class="btn btn-sm btn-link"> <i
class="mdi mdi-floor-plan"></i> {{$area->name}} </a>
<button class="btn btn-sm btn-info d-none"
href="javascript:;" onclick="createSub(this)"><i
class="mdi mdi-plus-box"></i> 病房
</button>
<button class="btn btn-sm btn-primary d-none"
href="javascript:;" onclick="edit(this)"><i
class="mdi mdi-pencil"></i></button>
<button class="btn btn-sm btn-danger d-none"
href="javascript:;" onclick="del(this)"><i
class="mdi mdi-delete-forever"></i></button>
</td>
</tr>
@foreach($area->rooms as $room)
<tr role="row" data-type="room" data-id="{{$room->id}}" data-name="{{$room->name}}"
data-myindex="{{$room->myindex}}"
data-tt-id="room{{$room->id}}" data-tt-parent-id="area{{$area->id}}">
<td>
<a href="javascript:;" class="btn btn-sm btn-link"> <i
class="mdi mdi-home-heart"></i> {{$room->name}} </a>
<button class="btn btn-sm btn-info d-none"
href="javascript:;" onclick="createSub(this)"><i
class="mdi mdi-plus-box"></i> 病床
</button>
<button class="btn btn-sm btn-primary d-none"
href="javascript:;" onclick="edit(this)"><i
class="mdi mdi-pencil"></i></button>
<button class="btn btn-sm btn-danger d-none"
href="javascript:;" onclick="del(this)"><i
class="mdi mdi-delete-forever"></i></button>
<button class="btn btn-primary mr-1" type="button" onclick="createSub('room')">新增病床 <i
class="mdi mdi-plus"></i></button>
<button class="btn btn-primary" type="submit">搜索</button>
<a class="btn btn-primary ml-3" href="{{ url("admin/project") }}">返回</a>
</form>
</div>
</td>
</tr>
@endforeach
@endforeach
@endforeach
</tbody>
</table>
</div>
</div>
</div>
<div class="col-8">
<div class="card">
<div class="card-body">
<table class="table table-bordered" id="data-table">
<thead>
<tr>
@ -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('<option value="' + res[i].id + '">' + res[i].name + '</option>');
}
});
}
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('<option value="' + res[i].id + '">' + res[i].name + '</option>');
}
});
}
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('<tr data-type="bed">\n' +
' <td>'+res.data.name+'</td>\n' +
' <td>'+res.data.room_id+'</td>\n' +
' <td>'+res.data.project_id+'</td>\n' +
' <td>'+res.data.building_id+'</td>\n' +
' <td>'+res.data.area_id+'</td>\n' +
' <td>&nbsp;</td>\n' +
' </tr>');
return;
}
window.location.reload();
$("#search-form").submit();
} else {
alertError(res.msg);
}

@ -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');

Loading…
Cancel
Save