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/IoTCenter/Areas/Admin/Views/Shared/_Menu.cshtml

181 lines
9.7 KiB

<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="nav-icon false">
<li class="nav-item"><a class="@GetLinkClass("Home")" href="@Url.Action("Index","Home")"><i class="far fa-circle nav-icon"></i><p>首页</p></a></li>
@if (HasPermission("Read-Setting"))
{
<li class="nav-item"><a class="@GetLinkClass("Setting")" href="@Url.Action("Index","Setting")"><i class="far fa-circle nav-icon"></i><p>配置管理</p></a></li>
}
@if (HasPermission("Read-User","Read-Role","Read-Permission"))
{
<li class="nav-item has-treeview @GetGroupClass("User","Role","Permission")">
<a href="javascript:;" class="@GetGroupLinkClass("User","Role","Permission")"><i class="fa fa-folder nav-icon"></i><p>用户中心<i class="right fas fa-angle-left"></i></p></a>
<ul class="nav nav-treeview">
@if (HasPermission("Read-User"))
{
<li class="nav-item"><a class="@GetLinkClass("User")" href="@Url.Action("Index","User")"><i class="far fa-circle nav-icon"></i><p>用户管理</p></a></li>
}
@if (HasPermission("Read-Role"))
{
<li class="nav-item"><a class="@GetLinkClass("Role")" href="@Url.Action("Index","Role")"><i class="far fa-circle nav-icon"></i><p>角色管理</p></a></li>
}
@if (HasPermission("Read-Permission"))
{
<li class="nav-item"><a class="@GetLinkClass("Permission")" href="@Url.Action("Index","Permission")"><i class="far fa-circle nav-icon"></i><p>权限管理</p></a></li>
}
</ul>
</li>
}
@if (HasPermission("Read-Product","Read-Api","Read-Parameter"))
{
<li class="@GetGroupClass("Product","Api","Parameter")">
<a href="javascript:;" class="@GetGroupLinkClass("Product","Api","Parameter")"><i class="fa fa-folder nav-icon"></i><p>产品管理<i class="right fas fa-angle-left"></i></p></a>
<ul class="nav nav-treeview">
@if (HasPermission("Read-Product"))
{
<li class="nav-item"><a class="@GetLinkClass("Product")" href="@Url.Action("Index","Product")"><i class="far fa-circle nav-icon"></i><span>产品管理</span></a></li>
}
@if (HasPermission("Read-Api"))
{
<li class="nav-item"><a class="@GetLinkClass("Api")" href="@Url.Action("Index","Api")"><i class="far fa-circle nav-icon"></i><span>接口管理</span></a></li>
}
@if (HasPermission("Read-Parameter"))
{
<li class="nav-item"><a class="@GetLinkClass("Parameter")" href="@Url.Action("Index","Parameter")"><i class="far fa-circle nav-icon"></i><span>参数管理</span></a></li>
}
</ul>
</li>
}
@if (HasPermission("Read-NodeCategory"))
{
<li class="nav-item"><a class="@GetLinkClass("NodeCategory")" href="@Url.Action("Index","NodeCategory")"><i class="far fa-circle nav-icon"></i><span>节点分类</span></a></li>
}
@if (HasPermission("Read-Node","Read-Device","Read-Data","Read-Command"))
{
<li class="@GetGroupClass("Node","Device","Data","Command")">
<a href="javascript:;" class="@GetGroupLinkClass("Node","Device","Data","Command")"><i class="fa fa-folder nav-icon"></i><p>节点管理<i class="right fas fa-angle-left"></i></p></a>
<ul class="nav nav-treeview">
@if (HasPermission("Read-Node"))
{
<li class="nav-item"><a class="@GetLinkClass("Node")" href="@Url.Action("Index","Node")"><i class="far fa-circle nav-icon"></i><span>节点管理</span></a></li>
}
@if (HasPermission("Read-Device"))
{
<li class="nav-item"><a class="@GetLinkClass("Device")" href="@Url.Action("Index","Device")"><i class="far fa-circle nav-icon"></i><span>设备管理</span></a></li>
}
@if (HasPermission("Read-Data"))
{
<li class="nav-item"><a class="@GetLinkClass("Data")" href="@Url.Action("Index","Data")"><i class="far fa-circle nav-icon"></i><span>数据管理</span></a></li>
}
@if (HasPermission("Read-Command"))
{
<li class="nav-item"><a class="@GetLinkClass("Command")" href="@Url.Action("Index","Command")"><i class="far fa-circle nav-icon"></i><span>设备命令管理</span></a></li>
}
</ul>
</li>
}
@if (HasPermission("Read-Scene","Read-SceneCommand","Read-SceneTimer","Read-SceneTigger"))
{
<li class="@GetGroupClass("Scene","SceneCommand","SceneTimer","SceneTigger")">
<a href="javascript:;" class="@GetGroupLinkClass("Scene","SceneCommand","SceneTimer","SceneTigger")"><i class="fa fa-folder nav-icon"></i><p>节点场景管理<i class="right fas fa-angle-left"></i></p></a>
<ul class="nav nav-treeview">
@if (HasPermission("Read-Scene"))
{
<li class="nav-item"><a class="@GetLinkClass("Scene")" href="@Url.Action("Index","Scene")"><i class="far fa-circle nav-icon"></i><span>场景管理</span></a></li>
}
@if (HasPermission("Read-SceneCommand"))
{
<li class="nav-item"><a class="@GetLinkClass("SceneCommand")" href="@Url.Action("Index","SceneCommand")"><i class="far fa-circle nav-icon"></i><span>场景命令管理</span></a></li>
}
@if (HasPermission("Read-SceneTimer"))
{
<li class="nav-item"><a class="@GetLinkClass("SceneTimer")" href="@Url.Action("Index","SceneTimer")"><i class="far fa-circle nav-icon"></i><span>定时器管理</span></a></li>
}
@if (HasPermission("Read-SceneTigger"))
{
<li class="nav-item"><a class="@GetLinkClass("SceneTigger")" href="@Url.Action("Index","SceneTigger")"><i class="far fa-circle nav-icon"></i><span>触发器管理</span></a></li>
}
</ul>
</li>
}
@if (HasPermission("Read-Organ"))
{
<li class="nav-item"><a class="@GetLinkClass("Organ")" href="@Url.Action("Index","Organ")"><i class="far fa-circle nav-icon"></i><span>机构管理</span></a></li>
}
@if (HasPermission("Read-Scene","Read-SceneCommand","Read-SceneTimer","Read-SceneTigger"))
{
<li class="@GetGroupClass("GlobalScene","GlobalSceneCommand","GlobalSceneTimer","GlobalSceneTigger")">
<a href="javascript:;" class="@GetGroupLinkClass("GlobalScene","GlobalSceneCommand","GlobalSceneTimer","GlobalSceneTigger")"><i class="fa fa-folder nav-icon"></i><p>机构场景管理<i class="right fas fa-angle-left"></i></p></a>
<ul class="nav nav-treeview">
@if (HasPermission("Read-Scene"))
{
<li class="nav-item"><a class="@GetLinkClass("GlobalScene")" href="@Url.Action("Index","GlobalScene")"><i class="far fa-circle nav-icon"></i><span>场景管理</span></a></li>
}
@if (HasPermission("Read-SceneCommand"))
{
<li class="nav-item"><a class="@GetLinkClass("GlobalSceneCommand")" href="@Url.Action("Index","GlobalSceneCommand")"><i class="far fa-circle nav-icon"></i><span>场景命令管理</span></a></li>
}
@if (HasPermission("Read-SceneTimer"))
{
<li class="nav-item"><a class="@GetLinkClass("GlobalSceneTimer")" href="@Url.Action("Index","GlobalSceneTimer")"><i class="far fa-circle nav-icon"></i><span>定时器管理</span></a></li>
}
@if (HasPermission("Read-SceneTigger"))
{
<li class="nav-item"><a class="@GetLinkClass("GlobalSceneTigger")" href="@Url.Action("Index","GlobalSceneTigger")"><i class="far fa-circle nav-icon"></i><span>触发器管理</span></a></li>
}
</ul>
</li>
}
@if (HasPermission("Read-LiveRecord"))
{
<li class="nav-item"><a class="@GetLinkClass("LiveRecord")" href="@Url.Action("Index","LiveRecord")"><i class="far fa-circle nav-icon"></i><span>回放管理</span></a></li>
}
</ul>
@functions{
public bool HasPermission(params string[] roles)
{
var result = false;
foreach (var role in roles)
{
result = result || User.IsInRole(role);
}
return result;
}
public string GetGroupClass(params string[] controllers)
{
if (controllers.Select(o => o.ToLower()).Contains(this.ViewContext.RouteData.Values["controller"].ToString().ToLower()))
{
return "nav-item has-treeview menu-open";
}
return "nav-item has-treeview";
}
public string GetGroupLinkClass(params string[] controllers)
{
if (controllers.Select(o => o.ToLower()).Contains(this.ViewContext.RouteData.Values["controller"].ToString().ToLower()))
{
return "nav-link active";
}
return "nav-link";
}
public string GetLinkClass(string controller = "Home",string action = null)
{
var currentController = ViewContext.RouteData.Values["controller"]?.ToString();
var currentAction = ViewContext.RouteData.Values["action"]?.ToString();
var cls = "nav-link";
if(controller==currentController)
{
if(action==null||action==currentAction)
{
cls+=" active";
}
}
return cls;
}
}