You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iot/projects/Platform/Views/Home/Building.cshtml

119 lines
4.1 KiB

@model Platform.ViewModels.HomeModel
@{
HideBread = true;
var organ = Model.Organ;
var organId = User.GetOrganId();
}
<br />
<div class="row">
<div class="col-2">
<div class="card" style="min-height:100%;">
<div class="card-header">
组织机构
</div>
<div class="card-body">
<div class="jstree">
<ul>
@RenderOrgans(Model.Organs)
</ul>
</div>
</div>
</div>
</div>
<div class="col-10">
<div class="card" style="min-height:100%;">
<div class="card-header">
@Model.Organ.GetDisplayName()
@if (Model.BuildingId.HasValue)
{
<text> / @Model.Building.GetDisplayName()</text>
}
</div>
<div class="card-body">
<div>此处显示当前设备里温湿度和光照等环境传感器的最大最小值</div>
<div>此处显示当前建筑里的场景列表</div>
@if (Model.Buildings.Any())
{
<div>
<h2>此处显示下级建筑列表,带温湿度平均值、带批量开关用电器按钮</h2>
@foreach (var item in Model.Buildings)
{
<div>
<a href="@Url.Action(null,null,new { buildingId = item.Id})">机构建筑:@item.Name</a>
</div>
}
</div>
}
@if (Model.Deviceses.Any())
{
<div>
<h2>此处分页显示设备,设备带快捷操作</h2>
@foreach (var item in Model.Deviceses)
{
<div>
<a href="@Url.Action(null,null,new { buildingId = item.Id})">设备:@item.Name</a>
</div>
}
</div>
<div>
@(await Html.PartialAsync("_Paged"))
</div>
}
</div>
</div>
</div>
</div>
@functions{
object RenderOrgans(List<Organ> list)
{
foreach (var item in list)
{
<li class="jstree-open" @if (!Model.BuildingId.HasValue && Model.OrganId.HasValue && item.Id == Model.OrganId.Value) { <text> data-jstree='{"selected":true}' </text> }>
<a href="@Url.Action(null,null,new { organId=item.Id})">@item.Name</a>
@if (item.Children.Any() || item.Buildings.Any())
{
<ul>
@if (item.Children.Any())
{
@RenderOrgans(item.Children)
}
@if (item.Buildings.Any())
{
@RenderBuildings(item.Buildings)
}
</ul>
}
</li>
}
return null;
}
object RenderBuildings(List<Building> list)
{
foreach (var item in list)
{
<li class="jstree-open" @if (Model.BuildingId.HasValue && item.Id == Model.BuildingId.Value) { <text> data-jstree='{"selected":true}' </text> }>
<a href="@Url.Action(null,null,new { buildingId=item.Id})">@item.Name</a>
@if (item.Children.Any())
{
<ul>
@if(item.Children.Any())
{
@RenderBuildings(item.Children)
}
</ul>
}
</li>
}
return null;
}
}
@section scripts{
<script>
$('.jstree').on('changed.jstree', function (e, data) {
window.location.href = data.event.currentTarget.href;
}).jstree();
</script>
}