RoutineUpdate

This commit is contained in:
yubaolee
2015-11-27 18:10:11 +08:00
parent 52f864a394
commit 9b45ef7ac1
7 changed files with 105 additions and 33 deletions

View File

@@ -11,10 +11,13 @@ namespace OpenAuth.App
public class ModuleManagerApp public class ModuleManagerApp
{ {
private IModuleRepository _repository; private IModuleRepository _repository;
private IUserModuleRepository _userModuleRepository;
public ModuleManagerApp(IModuleRepository repository) public ModuleManagerApp(IModuleRepository repository,
IUserModuleRepository userModuleRepository)
{ {
_repository = repository; _repository = repository;
_userModuleRepository = userModuleRepository;
} }
/// <summary> /// <summary>
@@ -46,10 +49,19 @@ namespace OpenAuth.App
/// <summary> /// <summary>
/// 为树型结构提供数据 /// 为树型结构提供数据
/// </summary> /// </summary>
public List<Module> LoadForTree(bool bAll) public List<Module> LoadForTree()
{ {
if (bAll)
return _repository.Find(null).ToList(); 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(); return _repository.Find(u => u.ParentId == 0).ToList();
} }
@@ -148,5 +160,7 @@ namespace OpenAuth.App
} }
#endregion #endregion
} }
} }

View File

@@ -23,8 +23,9 @@ namespace OpenAuth.Mvc.Controllers
} }
//用于选择模块时使用 //用于选择模块时使用
public ActionResult LookUpMulti() public ActionResult LookUpMulti(int userId)
{ {
ViewBag.UserId = userId;
return View(); return View();
} }
@@ -37,11 +38,11 @@ namespace OpenAuth.Mvc.Controllers
} }
/// <summary> /// <summary>
/// 加载tree结构 /// 直接加载所有的模块
/// </summary> /// </summary>
public string LoadForTree(bool bAll = false) public string LoadForTree()
{ {
var orgs = _app.LoadForTree(bAll); var orgs = _app.LoadForTree();
//添加根节点 //添加根节点
orgs.Add(new Module orgs.Add(new Module
{ {
@@ -53,6 +54,39 @@ namespace OpenAuth.Mvc.Controllers
return JsonHelper.Instance.Serialize(orgs); 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) public ActionResult Add(int id = 0)
{ {
return View(_app.Find(id)); return View(_app.Find(id));
@@ -91,5 +125,6 @@ namespace OpenAuth.Mvc.Controllers
return JsonHelper.Instance.Serialize(BjuiResponse); return JsonHelper.Instance.Serialize(BjuiResponse);
} }
#endregion
} }
} }

View File

@@ -128,7 +128,7 @@
onCheck: zTreeCheck onCheck: zTreeCheck
} }
}; };
$.getJSON('ModuleManager/LoadForTree?bAll=true', function (json) { $.getJSON('ModuleManager/LoadForTree', function (json) {
var zTreeObj = $.fn.zTree.init($('#j_select_tree1'), setting, json); var zTreeObj = $.fn.zTree.init($('#j_select_tree1'), setting, json);
zTreeObj.expandAll(true); zTreeObj.expandAll(true);
}); });

View File

@@ -133,7 +133,7 @@
}, },
callback: {onClick: zTreeOnClick} callback: {onClick: zTreeOnClick}
}; };
$.getJSON('ModuleManager/LoadForTree', function (json) { $.getJSON('ModuleManager/LoadForNav', function (json) {
var zTreeObj = $.fn.zTree.init($('#@_treeId'), setting, json); var zTreeObj = $.fn.zTree.init($('#@_treeId'), setting, json);
zTreeObj.expandAll(true); zTreeObj.expandAll(true);
}); });

View File

@@ -7,28 +7,24 @@
Layout = null; Layout = null;
} }
<div class="bjui-pageContent"> <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"> <div style="float: left; width: 220px; height: 240px; overflow: auto;" class="table table-bordered">
<ul id="lookupTree" class="ztree"></ul> <ul id="lookupTree" class="ztree"></ul>
</div> </div>
<!--已经选中的列表--> <!--已经选中的列表-->
<div style="margin-left: 225px"> <div style="margin-left: 225px">
<ul id="selected" class="ztree"></ul> <ul id="selected" class="ztree"></ul>
</div> </div>
</div> </div>
<div class="bjui-pageFooter"> <div class="bjui-pageFooter">
<ul> <ul>
<li><button type="button" class="btn-close" data-icon="close">关闭</button></li> <li><button type="button" class="btn-close" data-icon="close">关闭</button></li>
<li><button type="button" onclick="save()" class="btn btn-blue" data-icon="check">保存</button></li>
<li>
<a href="javascript:;" id="btnSelected" data-toggle="lookupback"
data-args=""
class="btn btn-blue" title="选择本项" data-icon="check">选择</a>
</li>
</ul> </ul>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
var moduleIds;
$(document).ready(function () { $(document).ready(function () {
Init(); Init();
InitSelected(); InitSelected();
@@ -59,7 +55,7 @@
onCheck: zTreeCheck onCheck: zTreeCheck
} }
}; };
$.getJSON('ModuleManager/LoadForTree?bAll=true', function (json) { $.getJSON('ModuleManager/LoadForTree', function (json) {
var zTreeObj = $.fn.zTree.init($('#lookupTree'), setting, json); var zTreeObj = $.fn.zTree.init($('#lookupTree'), setting, json);
zTreeObj.expandAll(true); zTreeObj.expandAll(true);
}); });
@@ -85,12 +81,25 @@
onCheck: zTreeCheck onCheck: zTreeCheck
} }
}; };
$.getJSON('ModuleManager/LoadForTree?bAll=true', function (json) { $.post('ModuleManager/LoadForUser', { userId: $('#userId').val() },
var zTreeObj = $.fn.zTree.init($('#selected'), setting, json); function (json) {
zTreeObj.expandAll(true); 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) { function zTreeCheck(e, treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj(treeId), var zTree = $.fn.zTree.getZTreeObj(treeId),
nodes = zTree.getCheckedNodes(true); nodes = zTree.getCheckedNodes(true);
@@ -102,7 +111,7 @@
ids = ids.substr(1); ids = ids.substr(1);
} }
$("#btnSelected").attr("data-args", "{ ids: '" + ids + "' }"); moduleIds = ids;
} }
function zTreeOnClick(event, treeId, treeNode) { function zTreeOnClick(event, treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj(treeId); var zTree = $.fn.zTree.getZTreeObj(treeId);

View File

@@ -15,7 +15,6 @@
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
var gridid = '#@_gridId'; var gridid = '#@_gridId';
var selectedId = 0; var selectedId = 0;
@@ -38,7 +37,7 @@
} else { } else {
$(this).alertmsg('error', rel.message); $(this).alertmsg('error', rel.message);
} }
}); });
}); });
}); });
//加载数据到datagrid //加载数据到datagrid
@@ -56,7 +55,8 @@
'data-toggle="dialog" data-id="dialog-mask" data-mask="true" data-on-close="refreshGrid">添加</a>' + '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 class=" btn-green" onclick="editOrg()" data-icon="pencil" type="button">编辑</button>' +
'<button id="btnAccess" class=" btn-green" data-toggle="lookupbtn" ' + '<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: [ columns: [
{ {
name: 'Id', name: 'Id',
@@ -132,7 +132,7 @@
function initZtree() { function initZtree() {
var setting = { var setting = {
view: {selectedMulti: false}, view: { selectedMulti: false },
data: { data: {
key: { key: {
name: 'Name', name: 'Name',
@@ -145,7 +145,7 @@
rootPId: 'null' rootPId: 'null'
} }
}, },
callback: {onClick: zTreeOnClick} callback: { onClick: zTreeOnClick }
}; };
$.getJSON('OrgManager/LoadOrg', function (json) { $.getJSON('OrgManager/LoadOrg', function (json) {
var zTreeObj = $.fn.zTree.init($('#@_treeId'), setting, json); var zTreeObj = $.fn.zTree.init($('#@_treeId'), setting, json);
@@ -174,8 +174,6 @@
return records[0]; return records[0];
} }
//自定义的编辑按钮 //自定义的编辑按钮
function editOrg() { function editOrg() {
var selected = getSelected(2); var selected = getSelected(2);
@@ -185,7 +183,7 @@
id: 'editDialog', id: 'editDialog',
url: '/UserManager/Add?id=' + selected, url: '/UserManager/Add?id=' + selected,
title: '编辑', title: '编辑',
onClose:function() { onClose: function () {
refreshGrid(); refreshGrid();
} }
}); });
@@ -194,7 +192,23 @@
function refreshGrid() { function refreshGrid() {
$('#@_gridId').datagrid('refresh'); $('#@_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 //@@ sourceURL=userManagerIndex.js
</script> </script>

View File

@@ -17,7 +17,7 @@ namespace OpenAuth.UnitTest
private TestContext testContextInstance; 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"); private string _time = DateTime.Now.ToString("HH_mm_ss_ms");