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