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.
181 lines
9.7 KiB
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;
|
|
}
|
|
} |