diff --git a/OpenAuth.Mvc/BllScripts/moduleElementMan.js b/OpenAuth.Mvc/BllScripts/moduleElementMan.js new file mode 100644 index 00000000..ad0f0cd7 --- /dev/null +++ b/OpenAuth.Mvc/BllScripts/moduleElementMan.js @@ -0,0 +1,147 @@ +// *********************************************************************** +// Assembly : OpenAuth.Mvc +// Author : yubaolee +// Created : 04-07-2016 +// +// Last Modified By : yubaolee +// Last Modified On : 04-07-2016 +// *********************************************************************** +// +// 模块按钮管理 +// +// +// *********************************************************************** + +var moduleId = $.CurrentDialog.find("#selectedModuleId").val(); //外部传递的moduleId + +$(document).ready(function () { + $.CurrentDialog.find('#btnAddElement').on('click', function () { + editDlg.add(); + }); + + $.CurrentDialog.find('#btnEditElement').on('click', function () { + var selected = thisDlg.getSelectedObj(); + if (selected == null) { + return; + } + editDlg.update(selected); + }); + + $.CurrentDialog.find('#btnDelElement').on('click', function () { + var selected = thisDlg.getSelectedMany(); //可以一次删除多个 + if (selected == null) { + return; + } + + $.post("/ModuleElementManager/Del", + { + moduleElements: JSON.stringify(selected) + }, + function (data) { + data = $.parseJSON(data); + if (data.statusCode == "200") { + thisDlg.reload(); + } + }); + }); +}); + +//本对话框 +var thisDlg = function () { + var maingrid = $.CurrentDialog.find('#maingrid').datagrid({ + showToolbar: false, + filterThead: false, + target: $(this), + columns: [ + { + name: 'Id', + label: '功能模块流水号', + hide: true + }, + { + name: 'DomId', + label: 'DOM标识', + }, + { + name: 'Name', + label: '功能模块名称', + }, + { + name: 'Icon', + label: '图标', + }, + { + name: 'SortNo', + label: '排序号' + } + ], + dataUrl: '/ModuleElementManager/Get?moduleId=' + moduleId, + fullGrid: true, + showLinenumber: true, + showCheckboxcol: true, + paging: false, + filterMult: false, + showTfoot: false, + height: 'auto' + }); + + var getSelectDatas = function () { + var selectedDatas = maingrid.data('selectedDatas'); + if (selectedDatas == undefined || selectedDatas.length == 0) { + $(this).alertmsg('warn', '至少选择一个对象'); + return null; + } + return selectedDatas; + } + + return { + reload: function (id) { + if (id != undefined) moduleId = id; + maingrid.datagrid('reload', { dataUrl: '/ModuleElementManager/Get?moduleId=' + moduleId }); + }, + getSelectedObj: function () { //选择单行 + var results = getSelectDatas(); + if (results != null) return results[0]; + return null; + }, + getSelectedMany: function () { //选择多行 + return getSelectDatas(); + }, + }; +}(); + +var editDlg = function () { + var update = false; + //在B-JUI中,不能在这里获取DOM,否则下面赋值会不成功 + //只能直接 $("#Id").val(ret.Id); + // Id = $("#Id"); + var show = function () { + BJUI.dialog({ id: 'editDlg', title: '菜单编辑', target: '#editDlg' }); + } + return { + add: function () { + show(); + $("#editElementForm")[0].reset(); //reset方法只能通过dom调用 + $("#Id").val(0); + $("#Sort").val('0'); + $("#ModuleId").val(moduleId); + }, + update: function (ret) { + update = true; + show(); + $("#Id").val(ret.Id); + $("#DomId").val(ret.DomId); + $("#Name").val(ret.Name); + $("#Type").val(ret.Type); + $("#ModuleId").val(ret.ModuleId); + $("#Attr").val(ret.Attr); + $("#Script").val(ret.Script); + $("#Icon").val(ret.Icon); + $("#Class").val(ret.Class); + $("#Remark").val(ret.Remark); + $("#Sort").val(ret.Sort); + } + }; +}(); + +//@ sourceURL= moduleElementMan.js \ No newline at end of file diff --git a/OpenAuth.Mvc/BllScripts/modulemanager.js b/OpenAuth.Mvc/BllScripts/modulemanager.js new file mode 100644 index 00000000..26955c98 --- /dev/null +++ b/OpenAuth.Mvc/BllScripts/modulemanager.js @@ -0,0 +1,184 @@ +// *********************************************************************** +// Assembly : OpenAuth.Mvc +// Author : yubaolee +// Created : 04-06-2016 +// +// Last Modified By : yubaolee +// Last Modified On : 04-06-2016 +// *********************************************************************** +// +// 版权所有(C) 2015 +// +// 模块管理脚本 +// *********************************************************************** + +$(document).ready(function () { +}); + +//ztree模块 +var ztree = function () { + var zTreeObj = undefined; + var setting = { + view: { selectedMulti: false }, + data: { + key: { + name: 'Name', + title: 'Name' + }, + simpleData: { + enable: true, + idKey: 'Id', + pIdKey: 'ParentId', + rootPId: 'null' + } + }, + callback: { onClick: zTreeOnClick } + }; + $.getJSON('/ModuleManager/LoadModuleWithRoot', function (json) { + zTreeObj = $.fn.zTree.init($('#maintree'), setting, json); + zTreeObj.expandAll(true); + }); +}(); + +//grid列表模块 +var grid = function () { + var selectedId = 0; //选中的ID + var maingrid = $('#maingrid', '#detail').datagrid({ + showToolbar: false, + filterThead: false, + target: $(this), + columns: [ + { + name: 'Id', + label: '功能模块流水号', + hide: true + }, + { + name: 'CascadeId', + label: '节点语义ID', + width: 80 + }, + { + name: 'Name', + label: '功能模块名称', + width: 80 + }, + { + name: 'Url', + label: '主页面URL', + width: 80 + }, + { + name: 'ParentId', + label: '父节点流水号', + hide: true + }, + { + name: 'IconName', + width: 80, + label: '节点图标文件名称' + }, + { + name: 'Status', + width: 80, + label: '当前状态' + }, + { + name: 'ParentName', + width: 80, + label: '父节点名称' + }, + { + name: 'Vector', + width: 80, + label: '矢量图标' + }, + { + name: 'SortNo', + width: 80, + label: '排序号' + }, + ], + dataUrl: '/ModuleManager/Load?orgId=' + selectedId, + fullGrid: true, + showLinenumber: true, + showCheckboxcol: true, + paging: true, + filterMult: false, + showTfoot: false, + height: 'auto' + }); + + return { + reload: function (id) { + if (id != undefined) selectedId = id; + maingrid.datagrid('reload', { dataUrl: '/ModuleManager/Load?orgId=' + selectedId }); + }, + getSelectedObj: function () { //选择单行 + var selectedDatas = maingrid.data('selectedDatas'); + if (selectedDatas == undefined || selectedDatas.length == 0) { + $(this).alertmsg('warn', '至少选择一个对象', { + displayMode: 'slide', + title: '重要提示' + }); + return null; + } + return selectedDatas[0]; + }, + getSelectedMany: function () { //选择多行 + return maingrid.data('selectedDatas'); + }, + }; +}(); + +function zTreeOnClick(event, treeId, treeNode) { + grid.reload(treeNode.Id); +} + +//删除 +function delModule() { + var selected = grid.getSelectedObj(); + if (selected == null) return; + + $.getJSON('/ModuleManager/Delete?Id=' + selected.Id, function (data) { + if (data.statusCode == "200") + grid.reload(); + else { + $(this).alertmsg('warn', data.message); + } + }); +} + +//自定义的编辑按钮 +function editModule() { + var selected = grid.getSelectedObj(); + if (selected == null) return; + + $(this).dialog({ + id: 'editDialog', + url: '/ModuleManager/Add?id=' + selected.Id, + title: '编辑', + onClose: function () { + grid.reload(); + } + }); +} + +//为模块分配按钮 +function assignButton() { + var selected = grid.getSelectedObj(); + if (selected == null) return; + + //BJUI.dialog({ id: 'assignDialog', title: '菜单编辑', target: '#moduleElementManager' }); + + BJUI.dialog({ + id: 'assignDialog', + mask: true, + url: '/ModuleElementManager/Index?id=' + selected.Id, + title: '为模块分配按钮' + }); +} + +function refreshModuleGrid() { + grid.reload(); +} \ No newline at end of file diff --git a/OpenAuth.Mvc/Controllers/LoginController.cs b/OpenAuth.Mvc/Controllers/LoginController.cs index 8fb5ec68..a2a0cbd0 100644 --- a/OpenAuth.Mvc/Controllers/LoginController.cs +++ b/OpenAuth.Mvc/Controllers/LoginController.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; +using System.Web.Security; using Infrastructure.Helper; using OpenAuth.App; using OpenAuth.Mvc.Models; diff --git a/OpenAuth.Mvc/Controllers/ModuleElementManagerController.cs b/OpenAuth.Mvc/Controllers/ModuleElementManagerController.cs index 76a9fd40..f44ce44b 100644 --- a/OpenAuth.Mvc/Controllers/ModuleElementManagerController.cs +++ b/OpenAuth.Mvc/Controllers/ModuleElementManagerController.cs @@ -35,10 +35,15 @@ namespace OpenAuth.Mvc.Controllers _app = AutofacExt.GetFromFac(); } - public ActionResult Index(int id = 0) + public ActionResult Index(int id) { ViewBag.ModuleId = id; - return View(_app.LoadByModuleId(id)); + return View(); + } + + public ActionResult Get(int moduleId = 0) + { + return Json(_app.LoadByModuleId(moduleId)); } [HttpPost] @@ -56,11 +61,12 @@ namespace OpenAuth.Mvc.Controllers return JsonHelper.Instance.Serialize(_bjuiResponse); } - public string DelButton(int id) + public string Del(string moduleElements) { try { - _app.Delete(id); + var delObjs = JsonHelper.Instance.Deserialize(moduleElements); + _app.Delete(delObjs); } catch (Exception e) { diff --git a/OpenAuth.Mvc/OpenAuth.Mvc.csproj b/OpenAuth.Mvc/OpenAuth.Mvc.csproj index bd179843..9968fcf5 100644 --- a/OpenAuth.Mvc/OpenAuth.Mvc.csproj +++ b/OpenAuth.Mvc/OpenAuth.Mvc.csproj @@ -150,6 +150,7 @@ + diff --git a/OpenAuth.Mvc/Views/Home/MenuHeader.cshtml b/OpenAuth.Mvc/Views/Home/MenuHeader.cshtml index 13ef095d..6f3807ac 100644 --- a/OpenAuth.Mvc/Views/Home/MenuHeader.cshtml +++ b/OpenAuth.Mvc/Views/Home/MenuHeader.cshtml @@ -1,7 +1,7 @@ @using System.Text
diff --git a/OpenAuth.Mvc/Views/ModuleElementManager/Index.cshtml b/OpenAuth.Mvc/Views/ModuleElementManager/Index.cshtml index 67722d06..15498b7c 100644 --- a/OpenAuth.Mvc/Views/ModuleElementManager/Index.cshtml +++ b/OpenAuth.Mvc/Views/ModuleElementManager/Index.cshtml @@ -1,77 +1,117 @@ @{ Layout = null; } -@model IEnumerable - -
- +
+
+ + + +
+
+ +
+
+
-
-
- - - - - - - - - - - - - - - - @foreach (var element in Model) - { - - - - - - - - - - - - } - - -
- - - - - 增加 - 取消 -
@element.Type@element.DomId@element.Name@element.Class@element.Icon@element.Script@element.Attr@ViewBag.ModuleId - - - -
-
+ + + - \ No newline at end of file + + \ No newline at end of file diff --git a/OpenAuth.Mvc/Views/ModuleManager/Index.cshtml b/OpenAuth.Mvc/Views/ModuleManager/Index.cshtml index 2c3794d5..ee7eab2d 100644 --- a/OpenAuth.Mvc/Views/ModuleManager/Index.cshtml +++ b/OpenAuth.Mvc/Views/ModuleManager/Index.cshtml @@ -10,7 +10,7 @@
-
+
diff --git a/OpenAuth.Mvc/Web.config b/OpenAuth.Mvc/Web.config index 6fa7d0a3..6364ed01 100644 --- a/OpenAuth.Mvc/Web.config +++ b/OpenAuth.Mvc/Web.config @@ -61,6 +61,7 @@ +