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
{
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
}
}

View File

@@ -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
}
}

View File

@@ -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);
});

View File

@@ -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);
});

View File

@@ -7,6 +7,7 @@
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>
@@ -18,17 +19,12 @@
<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) {
$.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);

View File

@@ -15,7 +15,6 @@
</div>
</div>
<script type="text/javascript">
var gridid = '#@_gridId';
var selectedId = 0;
@@ -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();
}
});
@@ -196,5 +194,21 @@
$('#@_gridId').datagrid('refresh');
// 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>

View File

@@ -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");