Former-commit-id: 4009de1bc558298285e7a178b8c60d20845fdcd2
TangShanKaiPing
wanggang 5 years ago
parent 1b9b9d6499
commit 40cc170bf2

@ -4,7 +4,7 @@ namespace Infrastructure.Application
{ {
public class PagedListModel<T> : PagedList<T> public class PagedListModel<T> : PagedList<T>
{ {
[Display(Name = "已删除")] //[Display(Name = "已删除")]
public bool IsDeleted { get; set; } //public bool IsDeleted { get; set; }
} }
} }

@ -1,2 +1,5 @@
@model string @model string
<a class="fancybox" href="@Url.Content("~"+Model)"><img src="@Url.Content("~"+Model)" /></a> @{
var src = Model as string ?? "/images/empty.png";
}
<a class="fancybox" href="@Url.Content("~"+src)"><img src="@Url.Content("~"+src)" /></a>

@ -34,10 +34,10 @@ namespace Infrastructure.Web.Mvc
throw new ArgumentNullException(nameof(model)); throw new ArgumentNullException(nameof(model));
} }
var query = this.Repo.ReadOnlyTable(); var query = this.Repo.ReadOnlyTable();
if (model is ISoftDeleteEntity && !model.IsDeleted) //if (model is ISoftDeleteEntity && !model.IsDeleted)
{ //{
query = query.Where(o => o.IsDeleted == null); // query = query.Where(o => o.IsDeleted == null);
} //}
query = this.Include(query); query = this.Include(query);
query = this.Query(model, query); query = this.Query(model, query);
model.TotalCount = query.Count(); model.TotalCount = query.Count();

@ -35,10 +35,10 @@ namespace Infrastructure.Web.Mvc
throw new ArgumentNullException(nameof(model)); throw new ArgumentNullException(nameof(model));
} }
var query = this.Repo.ReadOnlyTable(); var query = this.Repo.ReadOnlyTable();
if (model is ISoftDeleteEntity && !model.IsDeleted) //if (model is ISoftDeleteEntity && !model.IsDeleted)
{ //{
query = query.Where(o => o.IsDeleted == null); // query = query.Where(o => o.IsDeleted == null);
} //}
query = this.Include(query); query = this.Include(query);
query = this.Query(model, query); query = this.Query(model, query);
model.TotalCount = query.Count(); model.TotalCount = query.Count();

@ -186,6 +186,20 @@ namespace IoT.Shared.Areas.Admin.Controlls
return new JsonResult(this.GetDeviceSelectList(parentId, selected)); return new JsonResult(this.GetDeviceSelectList(parentId, selected));
} }
public SelectList GetDeviceSelectList2(Guid parentId, Guid? selected = null)
{
var list = this._deviceRepo.ReadOnlyTable()
.Where(o => o.NodeId == parentId && o.Product.Apis.Count() > 0)
.Select(o => new { o.Id, Name = $"{o.DisplayName}({o.Number})" })
.ToList();
return new SelectList(list, "Id", "Name", selected);
}
public JsonResult GetDeviceJson2(Guid parentId, Guid? selected)
{
return new JsonResult(this.GetDeviceSelectList2(parentId, selected));
}
#endregion Device #endregion Device
#region Data #region Data

@ -71,7 +71,7 @@ namespace IoT.Shared.Areas.Admin.Controlls
{ {
this.ToDisplayModel(entity, model); this.ToDisplayModel(entity, model);
ViewData.SelectList(o => model.NodeId, () => this._ajax.GetNodeSelectList(model.NodeId)); ViewData.SelectList(o => model.NodeId, () => this._ajax.GetNodeSelectList(model.NodeId));
ViewData.SelectList(o => model.DeviceId, () => this._ajax.GetDeviceSelectList(model.NodeId.Value, model.DeviceId), model.NodeId.HasValue); ViewData.SelectList(o => model.DeviceId, () => this._ajax.GetDeviceSelectList2(model.NodeId.Value, model.DeviceId), model.NodeId.HasValue);
ViewData.SelectList(o => model.ApiId, () => this._ajax.GetApiSelectList(model.DeviceId.Value, model.ApiId), model.DeviceId.HasValue); ViewData.SelectList(o => model.ApiId, () => this._ajax.GetApiSelectList(model.DeviceId.Value, model.ApiId), model.DeviceId.HasValue);
if (model.ApiId.HasValue) if (model.ApiId.HasValue)
{ {

@ -3,7 +3,7 @@
$('#NodeId').change(function () { $('#NodeId').change(function () {
var id = $(this).find(':selected').val(); var id = $(this).find(':selected').val();
update('@Url.Action("GetSceneJson", "Ajax")', id, "#SceneId"); update('@Url.Action("GetSceneJson", "Ajax")', id, "#SceneId");
update('@Url.Action("GetDeviceJson", "Ajax")', id, "#DeviceId"); update('@Url.Action("GetDeviceJson2", "Ajax")', id, "#DeviceId");
update(null, null, "#ApiId"); update(null, null, "#ApiId");
$('#ajax').html(''); $('#ajax').html('');

@ -1,28 +1,93 @@
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="nav-icon false"> <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="nav-link @GetClass("Home")" href="@Url.Action("Index","Home")"><i class="nav-icon fas fa-tachometer-alt"></i><p>首页</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("Home")" href="@Url.Action("Index","Home")"><i class="nav-icon fas fa-tachometer-alt"></i><p>首页</p></a></li>
@if (User.IsInRole("Read-Setting"))
{
<li class="nav-item"><a class="nav-link @GetClass("Setting")" href="@Url.Action("Index","Setting")"><i class="nav-icon ion ion-md-hammer"></i><p>设置</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("Setting")" href="@Url.Action("Index","Setting")"><i class="nav-icon ion ion-md-hammer"></i><p>设置</p></a></li>
}
@if (User.IsInRole("Read-User"))
{
<li class="nav-item"><a class="nav-link @GetClass("User")" href="@Url.Action("Index","User")"><i class=" nav-icon far fa-user"></i><p>用户管理</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("User")" href="@Url.Action("Index","User")"><i class=" nav-icon far fa-user"></i><p>用户管理</p></a></li>
}
@if (User.IsInRole("Read-Role"))
{
<li class="nav-item"><a class="nav-link @GetClass("Role")" href="@Url.Action("Index","Role")"><i class="nav-icon ion ion-md-glasses"></i><p>角色管理</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("Role")" href="@Url.Action("Index","Role")"><i class="nav-icon ion ion-md-glasses"></i><p>角色管理</p></a></li>
}
@if (User.IsInRole("Read-Permission"))
{
<li class="nav-item"><a class="nav-link @GetClass("Permission")" href="@Url.Action("Index","Permission")"><i class="nav-icon fas fa-key"></i><p>权限管理</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("Permission")" href="@Url.Action("Index","Permission")"><i class="nav-icon fas fa-key"></i><p>权限管理</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Category")" href="@Url.Action("Index","Category")"><i class="nav-icon fa fa-cubes"></i><span>产品分类管理</span></a></li> }
@if (User.IsInRole("Read-Product"))
{
<li class="nav-item"><a class="nav-link @GetClass("Product")" href="@Url.Action("Index","Product")"><i class="nav-icon fa fa-leaf"></i><span>产品管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Product")" href="@Url.Action("Index","Product")"><i class="nav-icon fa fa-leaf"></i><span>产品管理</span></a></li>
}
@if (User.IsInRole("Read-Api"))
{
<li class="nav-item"><a class="nav-link @GetClass("Api")" href="@Url.Action("Index","Api")"><i class="nav-icon fa fa-plug"></i><span>接口管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Api")" href="@Url.Action("Index","Api")"><i class="nav-icon fa fa-plug"></i><span>接口管理</span></a></li>
}
@if (User.IsInRole("Read-Parameter"))
{
<li class="nav-item"><a class="nav-link @GetClass("Parameter")" href="@Url.Action("Index","Parameter")"><i class="nav-icon far fa-circle"></i><span>参数管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Parameter")" href="@Url.Action("Index","Parameter")"><i class="nav-icon far fa-circle"></i><span>参数管理</span></a></li>
}
@if (User.IsInRole("Read-Node"))
{
<li class="nav-item"><a class="nav-link @GetClass("Node")" href="@Url.Action("Index","Node")"><i class="nav-icon fa fa-home"></i><span>节点管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Node")" href="@Url.Action("Index","Node")"><i class="nav-icon fa fa-home"></i><span>节点管理</span></a></li>
}
@if (User.IsInRole("Read-NodeCategory"))
{
<li class="nav-item"><a class="nav-link @GetClass("NodeCategory")" href="@Url.Action("Index","NodeCategory")"><i class="nav-icon fa fa-cubes"></i><span>节点分类管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("NodeCategory")" href="@Url.Action("Index","NodeCategory")"><i class="nav-icon fa fa-cubes"></i><span>节点分类管理</span></a></li>
}
@if (User.IsInRole("Read-Organ"))
{
<li class="nav-item"><a class="nav-link @GetClass("Organ")" href="@Url.Action("Index","Organ")"><i class="nav-icon fa fa-home"></i><span>节点机构管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Organ")" href="@Url.Action("Index","Organ")"><i class="nav-icon fa fa-home"></i><span>节点机构管理</span></a></li>
}
@if (User.IsInRole("Read-Device"))
{
<li class="nav-item"><a class="nav-link @GetClass("Device")" href="@Url.Action("Index","Device")"><i class="nav-icon fa fa-tv"></i><span>设备管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Device")" href="@Url.Action("Index","Device")"><i class="nav-icon fa fa-tv"></i><span>设备管理</span></a></li>
}
@if (User.IsInRole("Read-Data"))
{
<li class="nav-item"><a class="nav-link @GetClass("Data")" href="@Url.Action("Index","Data")"><i class="nav-icon fa fa-database"></i><span>数据管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Data")" href="@Url.Action("Index","Data")"><i class="nav-icon fa fa-database"></i><span>数据管理</span></a></li>
}
@if (User.IsInRole("Read-LiveRecord"))
{
<li class="nav-item"><a class="nav-link @GetClass("LiveRecord")" href="@Url.Action("Index","LiveRecord")"><i class="nav-icon fa fa-camera"></i><span>回放管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("LiveRecord")" href="@Url.Action("Index","LiveRecord")"><i class="nav-icon fa fa-camera"></i><span>回放管理</span></a></li>
}
@if (User.IsInRole("Read-Command"))
{
<li class="nav-item"><a class="nav-link @GetClass("Command")" href="@Url.Action("Index","Command")"><i class="nav-icon far fa-circle"></i><span>设备命令管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Command")" href="@Url.Action("Index","Command")"><i class="nav-icon far fa-circle"></i><span>设备命令管理</span></a></li>
}
@if (User.IsInRole("Read-Scene"))
{
<li class="nav-item"><a class="nav-link @GetClass("Scene")" href="@Url.Action("Index","Scene")"><i class="nav-icon fa fa-list-ol"></i><span>场景管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Scene")" href="@Url.Action("Index","Scene")"><i class="nav-icon fa fa-list-ol"></i><span>场景管理</span></a></li>
}
@if (User.IsInRole("Read-SceneCommand"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneCommand")" href="@Url.Action("Index","SceneCommand")"><i class="nav-icon far fa-circle"></i><span>场景命令管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("SceneCommand")" href="@Url.Action("Index","SceneCommand")"><i class="nav-icon far fa-circle"></i><span>场景命令管理</span></a></li>
}
@if (User.IsInRole("Read-SceneTimer"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneTimer")" href="@Url.Action("Index","SceneTimer")"><i class="nav-icon far fa-clock"></i><span>场景定时器管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("SceneTimer")" href="@Url.Action("Index","SceneTimer")"><i class="nav-icon far fa-clock"></i><span>场景定时器管理</span></a></li>
}
@if (User.IsInRole("Read-SceneTigger"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneTigger")" href="@Url.Action("Index","SceneTigger")"><i class="nav-icon fa fa-fire"></i><span>场景触发器管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("SceneTigger")" href="@Url.Action("Index","SceneTigger")"><i class="nav-icon fa fa-fire"></i><span>场景触发器管理</span></a></li>
}
@if (User.IsInRole("Read-GlobalScene"))
{
<li class="nav-item"><a class="nav-link @GetClass("GlobalScene")" href="@Url.Action("Index","GlobalScene")"><i class="nav-icon fa fa-list-ol"></i><span>平台场景管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("GlobalScene")" href="@Url.Action("Index","GlobalScene")"><i class="nav-icon fa fa-list-ol"></i><span>平台场景管理</span></a></li>
}
@if (User.IsInRole("Read-GlobalSceneCommand"))
{
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneCommand")" href="@Url.Action("Index","GlobalSceneCommand")"><i class="nav-icon far fa-circle"></i><span>平台场景命令管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("GlobalSceneCommand")" href="@Url.Action("Index","GlobalSceneCommand")"><i class="nav-icon far fa-circle"></i><span>平台场景命令管理</span></a></li>
}
@if (User.IsInRole("Read-GlobalSceneTimer"))
{
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneTimer")" href="@Url.Action("Index","GlobalSceneTimer")"><i class="nav-icon far fa-clock"></i><span>平台场景定时器管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("GlobalSceneTimer")" href="@Url.Action("Index","GlobalSceneTimer")"><i class="nav-icon far fa-clock"></i><span>平台场景定时器管理</span></a></li>
}
@if (User.IsInRole("Read-GlobalSceneTigger"))
{
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneTigger")" href="@Url.Action("Index","GlobalSceneTigger")"><i class="nav-icon fa fa-fire"></i><span>平台场景触发器管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("GlobalSceneTigger")" href="@Url.Action("Index","GlobalSceneTigger")"><i class="nav-icon fa fa-fire"></i><span>平台场景触发器管理</span></a></li>
}
</ul> </ul>
@functions{ @functions{

@ -22,9 +22,7 @@ CREATE TABLE "iot_Node" (
"Number" TEXT NOT NULL, "Number" TEXT NOT NULL,
"IsOnline" INTEGER NOT NULL, "IsOnline" INTEGER NOT NULL,
"Image" TEXT NULL, "Image" TEXT NULL,
"Longitude" TEXT NOT NULL, "Version" TEXT NULL,
"Latitude" TEXT NOT NULL,
"Altitude" TEXT NOT NULL,
"DisplayOrder" INTEGER NOT NULL, "DisplayOrder" INTEGER NOT NULL,
"Disabled" INTEGER NOT NULL "Disabled" INTEGER NOT NULL
); );

@ -1,21 +1,73 @@
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="nav-icon false"> <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="nav-link @GetClass("Home")" href="@Url.Action("Index","Home")"><i class="nav-icon fas fa-tachometer-alt"></i><p>首页</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("Home")" href="@Url.Action("Index","Home")"><i class="nav-icon fas fa-tachometer-alt"></i><p>首页</p></a></li>
@if (User.IsInRole("Read-Setting"))
{
<li class="nav-item"><a class="nav-link @GetClass("Setting")" href="@Url.Action("Index","Setting")"><i class="nav-icon ion ion-md-hammer"></i><p>设置</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("Setting")" href="@Url.Action("Index","Setting")"><i class="nav-icon ion ion-md-hammer"></i><p>设置</p></a></li>
}
@if (User.IsInRole("Read-User"))
{
<li class="nav-item"><a class="nav-link @GetClass("User")" href="@Url.Action("Index","User")"><i class=" nav-icon far fa-user"></i><p>用户管理</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("User")" href="@Url.Action("Index","User")"><i class=" nav-icon far fa-user"></i><p>用户管理</p></a></li>
}
@if (User.IsInRole("Read-Role"))
{
<li class="nav-item"><a class="nav-link @GetClass("Role")" href="@Url.Action("Index","Role")"><i class="nav-icon ion ion-md-glasses"></i><p>角色管理</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("Role")" href="@Url.Action("Index","Role")"><i class="nav-icon ion ion-md-glasses"></i><p>角色管理</p></a></li>
}
@if (User.IsInRole("Read-Permission"))
{
<li class="nav-item"><a class="nav-link @GetClass("Permission")" href="@Url.Action("Index","Permission")"><i class="nav-icon fas fa-key"></i><p>权限管理</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("Permission")" href="@Url.Action("Index","Permission")"><i class="nav-icon fas fa-key"></i><p>权限管理</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Category")" href="@Url.Action("Index","Category")"><i class="nav-icon fa fa-cubes"></i><span>分类管理</span></a></li> }
@if (User.IsInRole("Read-Product"))
{
<li class="nav-item"><a class="nav-link @GetClass("Product")" href="@Url.Action("Index","Product")"><i class="nav-icon fa fa-leaf"></i><span>产品管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Product")" href="@Url.Action("Index","Product")"><i class="nav-icon fa fa-leaf"></i><span>产品管理</span></a></li>
}
@if (User.IsInRole("Read-Api"))
{
<li class="nav-item"><a class="nav-link @GetClass("Api")" href="@Url.Action("Index","Api")"><i class="nav-icon fa fa-plug"></i><span>接口管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Api")" href="@Url.Action("Index","Api")"><i class="nav-icon fa fa-plug"></i><span>接口管理</span></a></li>
}
@if (User.IsInRole("Read-Parameter"))
{
<li class="nav-item"><a class="nav-link @GetClass("Parameter")" href="@Url.Action("Index","Parameter")"><i class="nav-icon far fa-circle"></i><span>参数管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Parameter")" href="@Url.Action("Index","Parameter")"><i class="nav-icon far fa-circle"></i><span>参数管理</span></a></li>
}
@if (User.IsInRole("Read-Node"))
{
<li class="nav-item"><a class="nav-link @GetClass("Node")" href="@Url.Action("Index","Node")"><i class="nav-icon fa fa-home"></i><span>节点管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Node")" href="@Url.Action("Index","Node")"><i class="nav-icon fa fa-home"></i><span>节点管理</span></a></li>
}
@if (User.IsInRole("Read-NodeCategory"))
{
<li class="nav-item"><a class="nav-link @GetClass("NodeCategory")" href="@Url.Action("Index","NodeCategory")"><i class="nav-icon fa fa-cubes"></i><span>节点分类管理</span></a></li>
}
@if (User.IsInRole("Read-Organ"))
{
<li class="nav-item"><a class="nav-link @GetClass("Organ")" href="@Url.Action("Index","Organ")"><i class="nav-icon fa fa-home"></i><span>节点机构管理</span></a></li>
}
@if (User.IsInRole("Read-Device"))
{
<li class="nav-item"><a class="nav-link @GetClass("Device")" href="@Url.Action("Index","Device")"><i class="nav-icon fa fa-tv"></i><span>设备管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Device")" href="@Url.Action("Index","Device")"><i class="nav-icon fa fa-tv"></i><span>设备管理</span></a></li>
}
@if (User.IsInRole("Read-Data"))
{
<li class="nav-item"><a class="nav-link @GetClass("Data")" href="@Url.Action("Index","Data")"><i class="nav-icon fa fa-database"></i><span>数据管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Data")" href="@Url.Action("Index","Data")"><i class="nav-icon fa fa-database"></i><span>数据管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Command")" href="@Url.Action("Index","Command")"><i class="nav-icon far fa-circle"></i><span>命令管理</span></a></li> }
@if (User.IsInRole("Read-Command"))
{
<li class="nav-item"><a class="nav-link @GetClass("Command")" href="@Url.Action("Index","Command")"><i class="nav-icon far fa-circle"></i><span>设备命令管理</span></a></li>
}
@if (User.IsInRole("Read-Scene"))
{
<li class="nav-item"><a class="nav-link @GetClass("Scene")" href="@Url.Action("Index","Scene")"><i class="nav-icon fa fa-list-ol"></i><span>场景管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Scene")" href="@Url.Action("Index","Scene")"><i class="nav-icon fa fa-list-ol"></i><span>场景管理</span></a></li>
}
@if (User.IsInRole("Read-SceneCommand"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneCommand")" href="@Url.Action("Index","SceneCommand")"><i class="nav-icon far fa-circle"></i><span>场景命令管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("SceneCommand")" href="@Url.Action("Index","SceneCommand")"><i class="nav-icon far fa-circle"></i><span>场景命令管理</span></a></li>
}
@if (User.IsInRole("Read-SceneTimer"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneTimer")" href="@Url.Action("Index","SceneTimer")"><i class="nav-icon far fa-clock"></i><span>场景定时器管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("SceneTimer")" href="@Url.Action("Index","SceneTimer")"><i class="nav-icon far fa-clock"></i><span>场景定时器管理</span></a></li>
}
@if (User.IsInRole("Read-SceneTigger"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneTigger")" href="@Url.Action("Index","SceneTigger")"><i class="nav-icon fa fa-fire"></i><span>场景触发器管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("SceneTigger")" href="@Url.Action("Index","SceneTigger")"><i class="nav-icon fa fa-fire"></i><span>场景触发器管理</span></a></li>
}
</ul> </ul>
@functions{ @functions{
public string GetClass(params string[] controllers) public string GetClass(params string[] controllers)

@ -13,9 +13,7 @@ CREATE TABLE "iot_Node" (
"Number" TEXT NOT NULL, "Number" TEXT NOT NULL,
"IsOnline" INTEGER NOT NULL, "IsOnline" INTEGER NOT NULL,
"Image" TEXT NULL, "Image" TEXT NULL,
"Longitude" TEXT NOT NULL, "Version" TEXT NULL,
"Latitude" TEXT NOT NULL,
"Altitude" TEXT NOT NULL,
"DisplayOrder" INTEGER NOT NULL, "DisplayOrder" INTEGER NOT NULL,
"Disabled" INTEGER NOT NULL "Disabled" INTEGER NOT NULL
); );

@ -2,6 +2,7 @@ using Application.Domain.Entities;
using Infrastructure.Application; using Infrastructure.Application;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
namespace Application.Models namespace Application.Models
@ -15,6 +16,7 @@ namespace Application.Models
[Display(Name = "用户名")] [Display(Name = "用户名")]
public string UserName { get; set; } public string UserName { get; set; }
[Description("编辑时不修改密码请保持为空")]
[StringLength(100, MinimumLength = 6, ErrorMessage = "密码长度范围为{2}-{1}")] [StringLength(100, MinimumLength = 6, ErrorMessage = "密码长度范围为{2}-{1}")]
[DataType(DataType.Password)] [DataType(DataType.Password)]
[Display(Name = "登录密码")] [Display(Name = "登录密码")]
@ -23,6 +25,7 @@ namespace Application.Models
[DataType(DataType.EmailAddress)] [DataType(DataType.EmailAddress)]
[RegularExpression(@"^\w+@\w+\.\w+$", ErrorMessage = "邮箱格式错误")] [RegularExpression(@"^\w+@\w+\.\w+$", ErrorMessage = "邮箱格式错误")]
[Display(Name = "邮箱")] [Display(Name = "邮箱")]
[Required(ErrorMessage = nameof(RequiredAttribute))]
public string Email { get; set; } public string Email { get; set; }
[RegularExpression(@"^\d{11}$", ErrorMessage = "手机号格式错误")] [RegularExpression(@"^\d{11}$", ErrorMessage = "手机号格式错误")]
@ -38,10 +41,6 @@ namespace Application.Models
[DataType(DataType.ImageUrl)] [DataType(DataType.ImageUrl)]
public string Avatar { get; set; } public string Avatar { get; set; }
[Display(Name = "面部图像")]
[DataType(DataType.ImageUrl)]
public string FaceImage { get; set; }
[Display(Name = "性别")] [Display(Name = "性别")]
[UIHint("RadioButtonList")] [UIHint("RadioButtonList")]
[Required(ErrorMessage = nameof(RequiredAttribute))] [Required(ErrorMessage = nameof(RequiredAttribute))]
@ -54,13 +53,6 @@ namespace Application.Models
[Display(Name = "登录锁定")] [Display(Name = "登录锁定")]
public bool LockoutEnabled { get; set; } public bool LockoutEnabled { get; set; }
[Display(Name = "解锁时间")]
[DataType(DataType.DateTime)]
public DateTimeOffset? LockoutEnd { get; set; }
[Display(Name = "登录失败")]
public int AccessFailedCount { get; set; }
[DataType("MultiSelectList")] [DataType("MultiSelectList")]
[Display(Name = "角色")] [Display(Name = "角色")]
public List<Guid> Roles { get; set; } = new List<Guid>(); public List<Guid> Roles { get; set; } = new List<Guid>();

@ -1,10 +1,25 @@
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false"> <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false">
<li class="nav-item"><a class="nav-link @GetClass("Home")" href="@Url.Action("Index","Home")"><i class="nav-icon fas fa-tachometer-alt"></i><p>首页</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("Home")" href="@Url.Action("Index","Home")"><i class="nav-icon fas fa-tachometer-alt"></i><p>首页</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Setting")" href="@Url.Action("Index","Setting")"><i class="nav-icon ion ion-md-hammer"></i><p>网站配置</p></a></li> @if (User.IsInRole("Read-Setting"))
{
<li class="nav-item"><a class="nav-link @GetClass("Setting")" href="@Url.Action("Index","Setting")"><i class="nav-icon ion ion-md-hammer"></i><p>设置</p></a></li>
}
@if (User.IsInRole("Read-User"))
{
<li class="nav-item"><a class="nav-link @GetClass("User")" href="@Url.Action("Index","User")"><i class=" nav-icon far fa-user"></i><p>用户管理</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("User")" href="@Url.Action("Index","User")"><i class=" nav-icon far fa-user"></i><p>用户管理</p></a></li>
}
@if (User.IsInRole("Read-Role"))
{
<li class="nav-item"><a class="nav-link @GetClass("Role")" href="@Url.Action("Index","Role")"><i class="nav-icon ion ion-md-glasses"></i><p>角色管理</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("Role")" href="@Url.Action("Index","Role")"><i class="nav-icon ion ion-md-glasses"></i><p>角色管理</p></a></li>
}
@if (User.IsInRole("Read-Permission"))
{
<li class="nav-item"><a class="nav-link @GetClass("Permission")" href="@Url.Action("Index","Permission")"><i class="nav-icon fas fa-key"></i><p>权限管理</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("Permission")" href="@Url.Action("Index","Permission")"><i class="nav-icon fas fa-key"></i><p>权限管理</p></a></li>
}
@if (User.IsInRole("Read-Site"))
{
<li class="nav-item"><a class="nav-link @GetClass("Site")" href="@Url.Action("Index","Site")"><i class="nav-icon ion ion-md-browsers"></i><p>应用管理</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("Site")" href="@Url.Action("Index","Site")"><i class="nav-icon ion ion-md-browsers"></i><p>应用管理</p></a></li>
}
</ul> </ul>
@functions{ @functions{
public string GetClass(params string[] controllers) public string GetClass(params string[] controllers)

Loading…
Cancel
Save