From 9c37623d7fc17b265de22a012cff475ed030e28f Mon Sep 17 00:00:00 2001 From: yubao Date: Tue, 31 Oct 2017 00:44:23 +0800 Subject: [PATCH] ru --- OpenAuth.App/ModuleManagerApp.cs | 18 +- OpenAuth.Domain/Service/ModuleManService.cs | 33 +-- OpenAuth.Mvc/BllScripts/grid.js | 78 ------- OpenAuth.Mvc/BllScripts/modulemanager.js | 208 ------------------ OpenAuth.Mvc/BllScripts/orgManager.js | 189 ---------------- OpenAuth.Mvc/BllScripts/parentTree.js | 94 -------- .../Controllers/ModuleManagerController.cs | 10 +- .../Controllers/UserSessionController.cs | 17 ++ OpenAuth.Mvc/OpenAuth.Mvc.csproj | 5 +- OpenAuth.Mvc/Views/ModuleManager/Index.cshtml | 160 ++++++-------- OpenAuth.Mvc/js/modules.js | 163 ++++++++++++++ 11 files changed, 257 insertions(+), 718 deletions(-) delete mode 100644 OpenAuth.Mvc/BllScripts/grid.js delete mode 100644 OpenAuth.Mvc/BllScripts/modulemanager.js delete mode 100644 OpenAuth.Mvc/BllScripts/orgManager.js delete mode 100644 OpenAuth.Mvc/BllScripts/parentTree.js create mode 100644 OpenAuth.Mvc/js/modules.js diff --git a/OpenAuth.App/ModuleManagerApp.cs b/OpenAuth.App/ModuleManagerApp.cs index bda6790e..96866a0a 100644 --- a/OpenAuth.App/ModuleManagerApp.cs +++ b/OpenAuth.App/ModuleManagerApp.cs @@ -1,9 +1,5 @@ -using System; -using Infrastructure; -using OpenAuth.Domain; +using OpenAuth.Domain; using System.Collections.Generic; -using System.Web; -using OpenAuth.App.SSO; using OpenAuth.Domain.Service; namespace OpenAuth.App @@ -17,14 +13,6 @@ namespace OpenAuth.App _moduleManService = moduleManService; } - /// - /// 加载一个节点下面的所有 - /// - public dynamic Load(string parentId, int pageindex, int pagesize) - { - return _moduleManService.Load(AuthUtil.GetUserName(), parentId, pageindex, pagesize); - } - public void Delete(string id) { _moduleManService.Delete(id); @@ -32,9 +20,7 @@ namespace OpenAuth.App public void AddOrUpdate(Module vm) { - Module model = new Module(); - vm.CopyTo(model); //copy一次,防止成员为null的情况 - _moduleManService.AddOrUpdate(model); + _moduleManService.AddOrUpdate(vm); } #region 用户/角色分配模块 diff --git a/OpenAuth.Domain/Service/ModuleManService.cs b/OpenAuth.Domain/Service/ModuleManService.cs index ea625a09..31c644ef 100644 --- a/OpenAuth.Domain/Service/ModuleManService.cs +++ b/OpenAuth.Domain/Service/ModuleManService.cs @@ -34,37 +34,6 @@ namespace OpenAuth.Domain.Service _factory = authoriseService; } - /// - /// 加载一个节点下面的所有 - /// - public dynamic Load(string loginuser, string parentId, int pageindex, int pagesize) - { - - var service= _factory.Create(loginuser); - if (!service.GetModulesQuery().Any()) //用户不能访问任何模块 - { - return new - { - total = 0, - records = 0, - page = pageindex - }; - } - var ids = GetSubIds(parentId); - var query = service.GetModulesQuery().Where(u => parentId == string.Empty || (u.ParentId != null&&ids.Contains(u.ParentId))); - - int total = query.Count(); - var modules = query.OrderBy(u=>u.CascadeId).Skip((pageindex - 1)*pagesize).Take(pagesize); - - return new - { - records = total, - total = Math.Ceiling((double)total/pagesize), - rows = modules, - page = pageindex - }; - } - public void Delete(string id) { var del = _repository.FindSingle(u => u.Id == id); @@ -76,7 +45,7 @@ namespace OpenAuth.Domain.Service public void AddOrUpdate(Module model) { ChangeModuleCascade(model); - if (model.Id == string.Empty) + if (string.IsNullOrEmpty(model.Id)) { _repository.Add(model); } diff --git a/OpenAuth.Mvc/BllScripts/grid.js b/OpenAuth.Mvc/BllScripts/grid.js deleted file mode 100644 index a7fdf864..00000000 --- a/OpenAuth.Mvc/BllScripts/grid.js +++ /dev/null @@ -1,78 +0,0 @@ -// *********************************************************************** -// Assembly : OpenAuth.Mvc -// Author : yubaolee -// Created : 04-12-2016 -// -// Last Modified By : yubaolee -// Last Modified On : 04-12-2016 -// *********************************************************************** -// -// 版权所有(C) 2015 -// -// maingrid基类 -// *********************************************************************** - -function Grid() {} - -Grid.prototype.selectObjs = function() { - var ids = this.maingrid.jqGrid("getGridParam", "selarrrow"); - if (ids.length == 0) { - return null; - } - var ret = new Array(); - var maingrid = this.maingrid; - $(ids) - .each(function() { - var obj = maingrid.jqGrid("getRowData", this); - ret.push(obj); - }); - return ret; -}; - -//选择多行对象 -Grid.prototype.getSelectedMany = function() { - return this.selectObjs(); -}; - -//选择单行对象 -Grid.prototype.getSelectedObj = function() { - var row = this.maingrid.jqGrid("getGridParam", "selrow"); - if (row) { - var ret = this.maingrid.jqGrid("getRowData", row); - return ret; - } else { - return null; - } -}; - -//返回选择多行的属性JSON,默认选择id属性,如果选择其他属性,可重写 -Grid.prototype.getSelectedProperties = function(propName) { - var selected = this.selectObjs(); - var result = new Array(); - if (selected != null) { - result = selected.map(function(elem) { return elem[propName]; }); - } - return result; -}; - -//删除操作,服务端的接收必须是post且参数为string[] ids -Grid.prototype.del = function(idname, url, callback) { - var selected = this.getSelectedProperties(idname); - if (selected == null) return; - - var lid = layer.confirm("确定要删除所选?", - null, - function() { - layer.close(lid); - $.post(url, - { ids: selected }, - function(data) { - if (data.Status) { - callback(); - } else { - layer.msg(data.Message); - } - }, - "json"); - }); -}; \ No newline at end of file diff --git a/OpenAuth.Mvc/BllScripts/modulemanager.js b/OpenAuth.Mvc/BllScripts/modulemanager.js deleted file mode 100644 index b6568628..00000000 --- a/OpenAuth.Mvc/BllScripts/modulemanager.js +++ /dev/null @@ -1,208 +0,0 @@ -$(function () { - $("#ParentName").on("click", function () { - parent.reload(); - }); -}); - -//左边导航 -var ztree = function () { - var url = '/ModuleManager/LoadModule'; - var setting = { - view: { selectedMulti: false }, - data: { - key: { - name: 'Name', - title: 'Name' - }, - simpleData: { - enable: true, - idKey: 'Id', - pIdKey: 'ParentId', - rootPId: 'null' - } - }, - callback: { - onClick: function (event, treeId, treeNode) { - list.reload(treeNode.Id); - } - } - }; - var load = function () { - $.getJSON(url, function (json) { - var zTreeObj = $.fn.zTree.init($("#orgtree"), setting, json); - list.reload(); - zTreeObj.expandAll(true); - }); - }; - load(); - - return { - reload: load - } -}(); - -//grid列表模块 -function MainGrid() { - var url = '/ModuleManager/Load?orgId='; - var selectedId = '00000000-0000-0000-0000-000000000000'; //ztree选中的模块 - this.maingrid = $('#maingrid') - .jqGrid({ - colModel: [ - { - name: 'Id', - index: 'Id', - hidden: true - }, - - { - index: 'Name', - name: 'Name', - label: '模块名称' - }, - { - index: 'Url', - name: 'Url', - label: '模块地址' - }, - { - index: 'IconName', - name: 'IconName', - label: '图标' - }, - { - index: 'ParentName', - name: 'ParentName', - label: '所属模块' - }, - { - index: 'ParentId', - name: 'ParentId', - hidden: true - }, - - { - index: 'SortNo', - name: 'SortNo', - label: '排序号' - - } - ], - url: url + selectedId, - datatype: "json", - - viewrecords: true, - rowNum: 18, - pager: "#grid-pager", - altRows: true, - height: 'auto', - multiselect: true, - multiboxonly: true, - - loadComplete: function () { - var table = this; - setTimeout(function () { - updatePagerIcons(table); - }, - 0); - } - }).jqGrid('navGrid', "#grid-pager", { - edit: false, add: false, del: false, refresh: false, search: false - }); - - this.reload = function (id) { - if (id != undefined) selectedId = id; - this.maingrid.jqGrid("setGridParam", { url: url + selectedId }) - .trigger("reloadGrid", [{ page: 1 }]); //重载JQGrid - - }; -}; -MainGrid.prototype = new Grid(); -var list = new MainGrid(); -var vm = new Vue({ - el: '#editDlg' -}); - -//上级机构选择框 -var parent = new ParentTree("/moduleManager/LoadModule", "ParentName", "ParentId"); - -//添加(编辑)对话框 -var editDlg = function () { - var update = false; - var show = function () { - layer.open({ - type: 1, - skin: 'layui-layer-rim', //加上边框 - title: "模块管理", //不显示标题 - area: ['450px', '400px'], //宽高 - content: $('#editDlg'), //捕获的元素 - btn: ['保存', '关闭'], - yes: function (index, layero) { - $.post("/moduleManager/Add", vm.$data, function (data) { - layer.msg(data.Message); - if (data.Status) { - list.reload(); - ztree.reload(); - } - }, "json"); - }, - cancel: function (index) { - layer.close(index); - } - }); - } - return { - add: function () { //弹出添加 - update = false; - show(); - vm.$set('$data', { - Id: '00000000-0000-0000-0000-000000000000', - SortNo: 0 - }); - }, - update: function (ret) { //弹出编辑框 - update = true; - show(); - vm.$set('$data', ret); - } - }; -}(); - -//删除 -function del() { - list.del("Id", "/moduleManager/Delete", function () { - list.reload(); - ztree.reload(); - }); - -} - -//自定义的编辑按钮 -function edit() { - var selected = list.getSelectedObj(); - if (selected == null) { - return; - } - editDlg.update(selected); -} - -function add() { - editDlg.add(); -} - -function refresh() { - list.reload(); -} - - -//为模块分配按钮 -function assignButton() { - var selected = list.getSelectedObj(); - if (selected == null) return; - - layer.open({ - type: 2, - skin: 'layui-layer-rim', //加上边框 - area: ['600px', '500px'], //宽高 - content: '/ModuleElementManager/Index?id=' + selected.Id - }); -} diff --git a/OpenAuth.Mvc/BllScripts/orgManager.js b/OpenAuth.Mvc/BllScripts/orgManager.js deleted file mode 100644 index 43bb224d..00000000 --- a/OpenAuth.Mvc/BllScripts/orgManager.js +++ /dev/null @@ -1,189 +0,0 @@ -$(function () { - $("#ParentName").on("click", function () { - parent.reload(); - }); -}); - -//左边导航 -var ztree = function () { - var url = '/UserSession/GetOrgs'; - var setting = { - view: { selectedMulti: false }, - data: { - key: { - name: 'Name', - title: 'Name' - }, - simpleData: { - enable: true, - idKey: 'Id', - pIdKey: 'ParentId', - rootPId: 'null' - } - }, - callback: { - onClick: function (event, treeId, treeNode) { - list.reload(treeNode.Id); - } - } - }; - var load = function () { - $.getJSON(url, function (json) { - var zTreeObj = $.fn.zTree.init($("#orgtree"), setting, json); - list.reload(); - zTreeObj.expandAll(true); - }); - }; - load(); - - return { - reload: load - } -}(); - -//grid列表模块 -function MainGrid() { - var url = '/OrgManager/LoadChildren?Id='; - var selectedId = '00000000-0000-0000-0000-000000000000'; //ztree选中的模块 - this.maingrid = $('#maingrid') - .jqGrid({ - colModel: [ - { - name: 'Id', - index: 'Id', - label: '流水号', - hidden: true - }, - { - index: 'CascadeId', - name: 'CascadeId', - label: '节点语义ID' - }, - { - index: 'Name', - name: 'Name', - label: '组织名称' - }, - { - index: 'ParentName', - name: 'ParentName', - label: '父节点名称' - }, - { - index: 'ParentId', - name: 'ParentId', - hidden: true - }, - - { - index: 'SortNo', - name: 'SortNo', - label: '排序号' - - } - ], - url: url + selectedId, - datatype: "json", - - viewrecords: true, - rowNum: 18, - pager: "#grid-pager", - altRows: true, - height: 'auto', - multiselect: true, - multiboxonly: true, - - loadComplete: function () { - var table = this; - setTimeout(function () { - updatePagerIcons(table); - }, - 0); - } - }).jqGrid('navGrid', "#grid-pager", { - edit: false, add: false, del: false, refresh: false, search: false - }); - - this.reload = function (id) { - if (id != undefined) selectedId = id; - this.maingrid.jqGrid("setGridParam", { url: url + selectedId }) - .trigger("reloadGrid", [{ page: 1 }]); //重载JQGrid - - }; -}; -MainGrid.prototype = new Grid(); -var list = new MainGrid(); -var vm = new Vue({ - el: '#editDlg' -}); - -//上级机构选择框 -var parent = new ParentTree("/UserSession/GetOrgs","ParentName", "ParentId"); - -//添加(编辑)对话框 -var editDlg = function () { - var update = false; - var show = function () { - layer.open({ - type: 1, - skin: 'layui-layer-rim', //加上边框 - title: "部门管理", //不显示标题 - area: ['400px', '300px'], //宽高 - content: $('#editDlg'), //捕获的元素 - btn: ['保存', '关闭'], - yes: function (index, layero) { - $.post("/OrgManager/AddOrg", vm.$data, function (data) { - layer.msg(data.Message); - if (data.Status) { - list.reload(); - ztree.reload(); - } - }, "json"); - }, - cancel: function (index) { - layer.close(index); - } - }); - } - return { - add: function () { //弹出添加 - update = false; - show(); - vm.$set('$data', - { - Id: '00000000-0000-0000-0000-000000000000', - SortNo: 0 - }); - }, - update: function (ret) { //弹出编辑框 - update = true; - show(); - vm.$set('$data', ret); - } - }; -}(); - -//删除 -function del() { - list.del("Id", "/OrgManager/DelOrg", function () { - list.reload(); - ztree.reload(); - }); -} - -//自定义的编辑按钮 -function edit() { - var selected = list.getSelectedObj(); - if (selected == null) { - return; - } - editDlg.update(selected); -} - -function add() { - editDlg.add(); -} - -function refresh() { - list.reload(); -} \ No newline at end of file diff --git a/OpenAuth.Mvc/BllScripts/parentTree.js b/OpenAuth.Mvc/BllScripts/parentTree.js deleted file mode 100644 index d98c7644..00000000 --- a/OpenAuth.Mvc/BllScripts/parentTree.js +++ /dev/null @@ -1,94 +0,0 @@ -// *********************************************************************** -// Assembly : OpenAuth.Mvc -// Author : yubaolee -// Created : 10-16-2016 -// -// Last Modified By : yubaolee -// Last Modified On : 10-16-2016 -// *********************************************************************** -// -// 版权所有(C) 2015 -// -// 单击文本框弹出的选择列表 -// *********************************************************************** - -function ParentTree(url, name, id) { - var zTreeObj; - var options = { - text: 'Name', - key: 'Id', - parentKey: 'ParentId', - nameDOM: name, //显示的文本框ID,如:"#catetoryName" - idDOM: id //隐藏的文本框,如:"#categoryId" - } - var setting = { - view: { selectedMulti: false }, - data: { - key: { - name: options.text, - title: options.text - }, - simpleData: { - enable: true, - idKey: options.key, - pIdKey: options.parentKey, - rootPId: 'null' - } - }, - callback: { - onClick: onClick - } - }; - var showMenu = function () { - $("#menuContent").css({ left: "10px", top: $("#" + options.nameDOM).outerHeight() + "px" }).slideDown("fast"); - $("body").bind("mousedown", onBodyDown); - }; - - var setCheck = function() { //设置初始选中的值 - var value = vm.$get(options.idDOM); - var node = zTreeObj.getNodeByParam("Id", value, null); - if (node != null) { - zTreeObj.selectNode(node, false, false); - } - } - function onClick(e, treeId, treeNode) { - var nodes = zTreeObj.getSelectedNodes(); - - for (var i = 0, l = nodes.length; i < l; i++) { - vm.$set(options.nameDOM, nodes[i].Name); - vm.$set(options.idDOM, nodes[i].Id); - break; - } - hideMenu(); - } - function onBodyDown(event) { - if (!(event.target.id == "menuContent" || $(event.target).parents("#menuContent").length > 0)) { - hideMenu(); - } - } - function hideMenu() { - $("#menuContent").fadeOut("fast"); - $("body").unbind("mousedown", onBodyDown); - } - return { - reload: function () { - var index = layer.load(); - $.getJSON(url, - { - page: 1, rows: 10000 - }, - function (json) { - layer.close(index); - if (json.length == 0) { - vm.$set(options.nameDOM, ''); - vm.$set(options.idDOM, ''); - return; - } - zTreeObj = $.fn.zTree.init($("#org"), setting, json); - setCheck(); - zTreeObj.expandAll(true); - showMenu(); - }); - } - } -} \ No newline at end of file diff --git a/OpenAuth.Mvc/Controllers/ModuleManagerController.cs b/OpenAuth.Mvc/Controllers/ModuleManagerController.cs index bc4c37fe..29221d9a 100644 --- a/OpenAuth.Mvc/Controllers/ModuleManagerController.cs +++ b/OpenAuth.Mvc/Controllers/ModuleManagerController.cs @@ -97,14 +97,6 @@ namespace OpenAuth.Mvc.Controllers sb.Append(">\r\n"); } - /// - /// 加载模块下面的所有模块 - /// - public string Load(string orgId, int page = 1, int rows = 30) - { - return JsonHelper.Instance.Serialize(App.Load(orgId, page, rows)); - } - /// /// 加载用户模块 /// @@ -137,7 +129,7 @@ namespace OpenAuth.Mvc.Controllers //添加或修改模块 [HttpPost] - public string Add(Module model) + public string AddOrUpdate(Module model) { try { diff --git a/OpenAuth.Mvc/Controllers/UserSessionController.cs b/OpenAuth.Mvc/Controllers/UserSessionController.cs index a537b96d..d38ee5e9 100644 --- a/OpenAuth.Mvc/Controllers/UserSessionController.cs +++ b/OpenAuth.Mvc/Controllers/UserSessionController.cs @@ -21,6 +21,23 @@ namespace OpenAuth.Mvc.Controllers return JsonHelper.Instance.Serialize(moduleTree); } + public string GetModules(string pId) + { + var query = user.Modules; + if (!string.IsNullOrEmpty(pId)) + { + query = query.Where(u => u.ParentId == pId).ToList(); + } + var data = new GridData + { + page = 1, + data = query, + count = query.Count(), + total = 1 + }; + return JsonHelper.Instance.Serialize(data); + } + /// /// 获取登录用户可访问的所有部门 /// diff --git a/OpenAuth.Mvc/OpenAuth.Mvc.csproj b/OpenAuth.Mvc/OpenAuth.Mvc.csproj index f8fdf3fb..d0b73579 100644 --- a/OpenAuth.Mvc/OpenAuth.Mvc.csproj +++ b/OpenAuth.Mvc/OpenAuth.Mvc.csproj @@ -177,12 +177,8 @@ - - - - @@ -215,6 +211,7 @@ + diff --git a/OpenAuth.Mvc/Views/ModuleManager/Index.cshtml b/OpenAuth.Mvc/Views/ModuleManager/Index.cshtml index 4587749e..0d19b172 100644 --- a/OpenAuth.Mvc/Views/ModuleManager/Index.cshtml +++ b/OpenAuth.Mvc/Views/ModuleManager/Index.cshtml @@ -1,99 +1,83 @@ -@{ - Layout = "~/Views/Shared/_Layout.cshtml"; +@section header +{ + } - -