完成菜单分配JS模块化

This commit is contained in:
yubaolee
2016-04-18 23:36:40 +08:00
parent 2c521e3244
commit 0738c84535
11 changed files with 141 additions and 340 deletions

View File

@@ -12,16 +12,13 @@
// <summary>模块元素管理,无需权限控制</summary>
// ***********************************************************************
using System;
using System.Collections.Generic;
using System.Data.Entity.Validation;
using System.Linq;
using System.Web.Mvc;
using Infrastructure;
using OpenAuth.App;
using OpenAuth.App.ViewModel;
using OpenAuth.Domain;
using OpenAuth.Mvc.Models;
using System;
using System.Data.Entity.Validation;
using System.Web.Mvc;
namespace OpenAuth.Mvc.Controllers
{
@@ -76,107 +73,23 @@ namespace OpenAuth.Mvc.Controllers
return JsonHelper.Instance.Serialize(_bjuiResponse);
}
#region
public ActionResult AssignForRole(int roleId)
/// <summary>
/// 分配模块菜单(按钮)界面
/// <para>可以为用户/角色分配同过keyUserElement/RoleElement区分</para>
/// </summary>
/// <param name="firstId">The first identifier.</param>
/// <param name="key">The key.</param>
/// <returns>ActionResult.</returns>
public ActionResult AssignModuleElement(int firstId, string key)
{
ViewBag.RoleId = roleId;
ViewBag.FirstId = firstId;
ViewBag.ModuleType = key;
return View();
}
/// <summary>
/// 为角色分配菜单
/// </summary>
/// <param name="roleId">角色ID</param>
/// <param name="moduleId">模块ID</param>
/// <param name="menuIds">菜单ID列表</param>
/// <returns></returns>
[HttpPost]
public string AssignForRole(int roleId, string menuIds)
public string LoadWithAccess(int tId, int firstId, string key)
{
try
{
var ids = JsonHelper.Instance.Deserialize<int[]>(menuIds);
_app.AssignForRole(roleId, ids);
}
catch (Exception e)
{
_bjuiResponse.statusCode = "300";
_bjuiResponse.message = e.Message;
}
return JsonHelper.Instance.Serialize(_bjuiResponse);
return JsonHelper.Instance.Serialize(_app.LoadWithAccess(key, firstId, tId));
}
[HttpPost]
public string CancelForRole(int roleId, string menuIds)
{
try
{
var ids = JsonHelper.Instance.Deserialize<int[]>(menuIds);
_app.CancelForRole(roleId, ids);
}
catch (Exception e)
{
_bjuiResponse.statusCode = "300";
_bjuiResponse.message = e.Message;
}
return JsonHelper.Instance.Serialize(_bjuiResponse);
}
public string LoadForRole(int roleId, int moduleId)
{
return JsonHelper.Instance.Serialize(_app.LoadWithAccess("RoleElement", roleId, moduleId));
}
#endregion
#region
public ActionResult AssignForUser(int userId)
{
ViewBag.UserId = userId;
return View();
}
/// <summary>
/// 为用户分配菜单
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="menuIds">菜单ID列表</param>
/// <returns></returns>
[HttpPost]
public string AssignForUser(int userId, string menuIds)
{
try
{
var ids = JsonHelper.Instance.Deserialize<int[]>(menuIds);
_app.AssignForUser(userId, ids);
}
catch (Exception e)
{
_bjuiResponse.statusCode = "300";
_bjuiResponse.message = e.Message;
}
return JsonHelper.Instance.Serialize(_bjuiResponse);
}
[HttpPost]
public string CancelForUser(int userId, string menuIds)
{
try
{
var ids = JsonHelper.Instance.Deserialize<int[]>(menuIds);
_app.CancelForUser(userId, ids);
}
catch (Exception e)
{
_bjuiResponse.statusCode = "300";
_bjuiResponse.message = e.Message;
}
return JsonHelper.Instance.Serialize(_bjuiResponse);
}
public string LoadForUser(int userId, int moduleId)
{
return JsonHelper.Instance.Serialize(_app.LoadWithAccess("UserElement", userId, moduleId));
}
#endregion
}
}

View File

@@ -78,6 +78,29 @@ namespace OpenAuth.Mvc.Controllers
return JsonHelper.Instance.Serialize(orgs);
}
/// <summary>
/// 分配菜单页面的树
/// <para>todo:key要用UserElement/RoleElement会造成迷惑后期优化</para>
/// </summary>
public string LoadTree(int firstId, string key)
{
var orgs = _app.LoadTree(firstId, key);
//添加根节点
orgs.Add(new Module
{
Id = 0,
ParentId = -1,
Name = "已拥有的模块",
CascadeId = "0"
});
return JsonHelper.Instance.Serialize(orgs);
}
/// <summary>
/// 加载用户模块
/// </summary>
/// <param name="userId">The user identifier.</param>
/// <returns>System.String.</returns>
public string LoadForUser(int userId)
{
var orgs = _app.LoadForUser(userId);
@@ -92,6 +115,11 @@ namespace OpenAuth.Mvc.Controllers
return JsonHelper.Instance.Serialize(orgs);
}
/// <summary>
/// 加载角色模块
/// </summary>
/// <param name="roleId">The role identifier.</param>
/// <returns>System.String.</returns>
public string LoadForRole(int roleId)
{
var orgs = _app.LoadForRole(roleId);