mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2025-09-20 10:37:55 +08:00
RoutineUpdate
This commit is contained in:
@@ -11,10 +11,13 @@ namespace OpenAuth.App
|
||||
public class ModuleManagerApp
|
||||
{
|
||||
private IModuleRepository _repository;
|
||||
private IUserModuleRepository _userModuleRepository;
|
||||
|
||||
public ModuleManagerApp(IModuleRepository repository)
|
||||
public ModuleManagerApp(IModuleRepository repository,
|
||||
IUserModuleRepository userModuleRepository)
|
||||
{
|
||||
_repository = repository;
|
||||
_userModuleRepository = userModuleRepository;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -46,10 +49,19 @@ namespace OpenAuth.App
|
||||
/// <summary>
|
||||
/// 为树型结构提供数据
|
||||
/// </summary>
|
||||
public List<Module> LoadForTree(bool bAll)
|
||||
public List<Module> LoadForTree()
|
||||
{
|
||||
if (bAll)
|
||||
return _repository.Find(null).ToList();
|
||||
}
|
||||
public List<Module> LoadForUser(int userId)
|
||||
{
|
||||
var moduleIds = _userModuleRepository.Find(u => u.UserId == userId).Select(u => u.ModuleId).ToList();
|
||||
if(!moduleIds.Any()) return null;
|
||||
return _repository.Find(u => moduleIds.Contains(u.Id)).ToList();
|
||||
}
|
||||
|
||||
public List<Module> LoadForNav()
|
||||
{
|
||||
return _repository.Find(u => u.ParentId == 0).ToList();
|
||||
}
|
||||
|
||||
@@ -148,5 +160,7 @@ namespace OpenAuth.App
|
||||
}
|
||||
|
||||
#endregion 私有方法
|
||||
|
||||
|
||||
}
|
||||
}
|
@@ -23,8 +23,9 @@ namespace OpenAuth.Mvc.Controllers
|
||||
}
|
||||
|
||||
//用于选择模块时使用
|
||||
public ActionResult LookUpMulti()
|
||||
public ActionResult LookUpMulti(int userId)
|
||||
{
|
||||
ViewBag.UserId = userId;
|
||||
return View();
|
||||
}
|
||||
|
||||
@@ -37,11 +38,11 @@ namespace OpenAuth.Mvc.Controllers
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加载tree结构
|
||||
/// 直接加载所有的模块
|
||||
/// </summary>
|
||||
public string LoadForTree(bool bAll = false)
|
||||
public string LoadForTree()
|
||||
{
|
||||
var orgs = _app.LoadForTree(bAll);
|
||||
var orgs = _app.LoadForTree();
|
||||
//添加根节点
|
||||
orgs.Add(new Module
|
||||
{
|
||||
@@ -53,6 +54,39 @@ namespace OpenAuth.Mvc.Controllers
|
||||
return JsonHelper.Instance.Serialize(orgs);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加载首页导航模块
|
||||
/// </summary>
|
||||
/// <returns>System.String.</returns>
|
||||
public string LoadForNav()
|
||||
{
|
||||
var orgs = _app.LoadForNav();
|
||||
//添加根节点
|
||||
orgs.Add(new Module
|
||||
{
|
||||
Id = 0,
|
||||
ParentId = -1,
|
||||
Name = "根节点",
|
||||
CascadeId = "0"
|
||||
});
|
||||
return JsonHelper.Instance.Serialize(orgs);
|
||||
}
|
||||
|
||||
public string LoadForUser(int userId)
|
||||
{
|
||||
var orgs = _app.LoadForUser(userId);
|
||||
//添加根节点
|
||||
orgs.Add(new Module
|
||||
{
|
||||
Id = 0,
|
||||
ParentId = -1,
|
||||
Name = "已为用户分配的模块",
|
||||
CascadeId = "0"
|
||||
});
|
||||
return JsonHelper.Instance.Serialize(orgs);
|
||||
}
|
||||
|
||||
#region 命令操作
|
||||
public ActionResult Add(int id = 0)
|
||||
{
|
||||
return View(_app.Find(id));
|
||||
@@ -91,5 +125,6 @@ namespace OpenAuth.Mvc.Controllers
|
||||
|
||||
return JsonHelper.Instance.Serialize(BjuiResponse);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
@@ -128,7 +128,7 @@
|
||||
onCheck: zTreeCheck
|
||||
}
|
||||
};
|
||||
$.getJSON('ModuleManager/LoadForTree?bAll=true', function (json) {
|
||||
$.getJSON('ModuleManager/LoadForTree', function (json) {
|
||||
var zTreeObj = $.fn.zTree.init($('#j_select_tree1'), setting, json);
|
||||
zTreeObj.expandAll(true);
|
||||
});
|
||||
|
@@ -133,7 +133,7 @@
|
||||
},
|
||||
callback: {onClick: zTreeOnClick}
|
||||
};
|
||||
$.getJSON('ModuleManager/LoadForTree', function (json) {
|
||||
$.getJSON('ModuleManager/LoadForNav', function (json) {
|
||||
var zTreeObj = $.fn.zTree.init($('#@_treeId'), setting, json);
|
||||
zTreeObj.expandAll(true);
|
||||
});
|
||||
|
@@ -7,28 +7,24 @@
|
||||
Layout = null;
|
||||
}
|
||||
<div class="bjui-pageContent">
|
||||
<input style="display: none" id="userId" value="@ViewBag.UserId"/>
|
||||
<div style="float: left; width: 220px; height: 240px; overflow: auto;" class="table table-bordered">
|
||||
<ul id="lookupTree" class="ztree"></ul>
|
||||
</div>
|
||||
<!--已经选中的列表-->
|
||||
<div style="margin-left: 225px">
|
||||
<ul id="selected" class="ztree"></ul>
|
||||
<ul id="selected" class="ztree"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bjui-pageFooter">
|
||||
<ul>
|
||||
<li><button type="button" class="btn-close" data-icon="close">关闭</button></li>
|
||||
|
||||
<li>
|
||||
<a href="javascript:;" id="btnSelected" data-toggle="lookupback"
|
||||
data-args=""
|
||||
class="btn btn-blue" title="选择本项" data-icon="check">选择</a>
|
||||
</li>
|
||||
<li><button type="button" onclick="save()" class="btn btn-blue" data-icon="check">保存</button></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var moduleIds;
|
||||
$(document).ready(function () {
|
||||
Init();
|
||||
InitSelected();
|
||||
@@ -59,7 +55,7 @@
|
||||
onCheck: zTreeCheck
|
||||
}
|
||||
};
|
||||
$.getJSON('ModuleManager/LoadForTree?bAll=true', function (json) {
|
||||
$.getJSON('ModuleManager/LoadForTree', function (json) {
|
||||
var zTreeObj = $.fn.zTree.init($('#lookupTree'), setting, json);
|
||||
zTreeObj.expandAll(true);
|
||||
});
|
||||
@@ -85,12 +81,25 @@
|
||||
onCheck: zTreeCheck
|
||||
}
|
||||
};
|
||||
$.getJSON('ModuleManager/LoadForTree?bAll=true', function (json) {
|
||||
var zTreeObj = $.fn.zTree.init($('#selected'), setting, json);
|
||||
zTreeObj.expandAll(true);
|
||||
$.post('ModuleManager/LoadForUser', { userId: $('#userId').val() },
|
||||
function (json) {
|
||||
var zTreeObj = $.fn.zTree.init($('#selected'), setting, json);
|
||||
zTreeObj.expandAll(true);
|
||||
});
|
||||
}
|
||||
|
||||
function save() {
|
||||
$.post('UserManager/AccessModule', { userId: $('#userId').val(), moduleIds: moduleIds },
|
||||
function (json) {
|
||||
var rel = $.parseJSON(json);
|
||||
if (rel.statusCode == "200") {
|
||||
$(this).alertmsg('ok', rel.message);
|
||||
} else {
|
||||
$(this).alertmsg('error', rel.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function zTreeCheck(e, treeId, treeNode) {
|
||||
var zTree = $.fn.zTree.getZTreeObj(treeId),
|
||||
nodes = zTree.getCheckedNodes(true);
|
||||
@@ -102,7 +111,7 @@
|
||||
ids = ids.substr(1);
|
||||
}
|
||||
|
||||
$("#btnSelected").attr("data-args", "{ ids: '" + ids + "' }");
|
||||
moduleIds = ids;
|
||||
}
|
||||
function zTreeOnClick(event, treeId, treeNode) {
|
||||
var zTree = $.fn.zTree.getZTreeObj(treeId);
|
||||
|
@@ -15,7 +15,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
var gridid = '#@_gridId';
|
||||
var selectedId = 0;
|
||||
@@ -38,7 +37,7 @@
|
||||
} else {
|
||||
$(this).alertmsg('error', rel.message);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
//加载数据到datagrid
|
||||
@@ -56,7 +55,8 @@
|
||||
'data-toggle="dialog" data-id="dialog-mask" data-mask="true" data-on-close="refreshGrid">添加</a>' +
|
||||
'<button class=" btn-green" onclick="editOrg()" data-icon="pencil" type="button">编辑</button>' +
|
||||
'<button id="btnAccess" class=" btn-green" data-toggle="lookupbtn" ' +
|
||||
'name="ids" data-url="/ModuleManager/LookupMulti">用户菜单授权</button>',
|
||||
'name="ids" data-id="" data-selectType="user" data-url="/ModuleManager/LookupMulti">用户菜单授权</button>' +
|
||||
'<button type="button" class="btn btn-green" onclick="openModuleAccess(this)">用户模块授权</button>',
|
||||
columns: [
|
||||
{
|
||||
name: 'Id',
|
||||
@@ -132,7 +132,7 @@
|
||||
|
||||
function initZtree() {
|
||||
var setting = {
|
||||
view: {selectedMulti: false},
|
||||
view: { selectedMulti: false },
|
||||
data: {
|
||||
key: {
|
||||
name: 'Name',
|
||||
@@ -145,7 +145,7 @@
|
||||
rootPId: 'null'
|
||||
}
|
||||
},
|
||||
callback: {onClick: zTreeOnClick}
|
||||
callback: { onClick: zTreeOnClick }
|
||||
};
|
||||
$.getJSON('OrgManager/LoadOrg', function (json) {
|
||||
var zTreeObj = $.fn.zTree.init($('#@_treeId'), setting, json);
|
||||
@@ -174,8 +174,6 @@
|
||||
return records[0];
|
||||
}
|
||||
|
||||
|
||||
|
||||
//自定义的编辑按钮
|
||||
function editOrg() {
|
||||
var selected = getSelected(2);
|
||||
@@ -185,7 +183,7 @@
|
||||
id: 'editDialog',
|
||||
url: '/UserManager/Add?id=' + selected,
|
||||
title: '编辑',
|
||||
onClose:function() {
|
||||
onClose: function () {
|
||||
refreshGrid();
|
||||
}
|
||||
});
|
||||
@@ -194,7 +192,23 @@
|
||||
|
||||
function refreshGrid() {
|
||||
$('#@_gridId').datagrid('refresh');
|
||||
// loadDataGrid();
|
||||
// loadDataGrid();
|
||||
}
|
||||
|
||||
//用户模块授权按钮
|
||||
function openModuleAccess(obj) {
|
||||
|
||||
var selected = getSelected(2);
|
||||
if (selected == null) return;
|
||||
|
||||
$(obj).dialog({
|
||||
id: 'accessUserModule',
|
||||
url: '/ModuleManager/LookupMulti',
|
||||
title: '为用户分配模块',
|
||||
data: {
|
||||
userId: selected
|
||||
}
|
||||
});
|
||||
}
|
||||
//@@ sourceURL=userManagerIndex.js
|
||||
</script>
|
@@ -17,7 +17,7 @@ namespace OpenAuth.UnitTest
|
||||
|
||||
|
||||
private TestContext testContextInstance;
|
||||
private ModuleManagerApp _app = new ModuleManagerApp(new ModuleRepository());
|
||||
private ModuleManagerApp _app = new ModuleManagerApp(new ModuleRepository(), new UserModuleRepository());
|
||||
private string _time = DateTime.Now.ToString("HH_mm_ss_ms");
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user