2025-03-27 15:05:14 +08:00

208 lines
8.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI.WebControls;
using SuperMap.RealEstate.Web.UI;
using Business = SuperMap.RealEstate.FrameWork.Business;
using HZQR.Common;
namespace Personnel.WebSite.Modules.Roles
{
public partial class RoleTree : BasePage
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
_RoleModule = new Business.RoleModule(Transaction);
}
Business.RoleModule _RoleModule = null;
Business.RoleModulePopedom _RoleModulePopedom = new Business.RoleModulePopedom();
protected void Page_Load(object sender, EventArgs e)
{
this.Master_SizeBox.SideBar.Width = "45%";
if (IsPostBack)
return;
this.FixTreeViewDoubleClick(MyTreeView, false);
this.FixTreeViewDoubleClick(TreeViewRoleModule, false);
this.FixTreeViewNodeChecked(MyTreeView);
this.FixTreeViewNodeChecked(TreeViewRoleModule);
SetControlClientAction(ButtonRemove, false, true, true);
SetControlClientAction(ButtonSave, false, true, true);
//SetControlClientAction(ButtonSearch);
TreeViewBinding_BusinessSystem();
this.SetControlClosePopDialog(buttonClose);
}
#region Role_ID
private int Role_ID
{
get
{
return Request["ID"].ToDecryptInt32();
}
}
#endregion
//绑定数据源
private void TreeViewBinding_BusinessSystem()
{
MyTreeView.Nodes.Clear();
BindingTreeViewUnModular(Transaction, MyTreeView.Nodes, Role_ID, -1, null, null);
TreeViewBinding_RoleModule();
}
private void TreeViewBinding_RoleModule()
{
TreeViewRoleModule.Nodes.Clear();
BindingTreeViewModular(Transaction, TreeViewRoleModule.Nodes, Role_ID, -1, null, null);
}
protected void MyTreeView_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{
TreeView treeView = sender as TreeView;
switch (treeView.ID)
{
case "TreeViewRoleModule":
BindingTreeViewModular(Transaction, TreeViewRoleModule.Nodes, Role_ID, -1, null, null);
break;
case "MyTreeView":
BindingTreeViewUnModular(Transaction, MyTreeView.Nodes, Role_ID, -1, null, null);
break;
default:
break;
}
//if (e.Node.Value.StartsWith("Module|"))
// _RoleModule.BindingTreeView_ModulePopedom(e.Node.Value, e.Node.ChildNodes, e.Node.Checked);
//else
// _RoleModule.BindingTreeView_BusinessSystem(e.Node.Value, e.Node.ChildNodes, e.Node.Checked);
}
protected void ButtonSave_Click(object sender, EventArgs e)
{
_RoleModulePopedom = new Business.RoleModulePopedom(Transaction);
foreach (TreeNode _TreeNode in MyTreeView.CheckedNodes)
{
if (_TreeNode.ImageToolTip == "Module")
{
_RoleModule.ResetProperty();
_RoleModule.Module_ID = _TreeNode.Value.TryParseToInt();
_RoleModule.Role_ID = Role_ID;
_RoleModule.Insert();
}
}
//SaveRoleModule(MyTreeView.Nodes);
TreeViewBinding_BusinessSystem();
}
private void SaveRoleModule(TreeNodeCollection treeNodeCollection)
{
foreach (TreeNode _Node in treeNodeCollection)
{
if (!_Node.Checked)
{
_Node.Checked = false;
continue;
}
if (_Node.ImageToolTip == "BusinessSystem")
{
if (_Node.PopulateOnDemand)
{
_Node.PopulateOnDemand = false;
_RoleModule.BindingTreeView_BusinessSystem(_Node.Value, _Node.ChildNodes,_Node.Checked);
}
SaveRoleModule(_Node.ChildNodes);
_Node.Checked = false;
continue;
}
_Node.Checked = false;
_RoleModule.ResetProperty();
_RoleModule.AddSearchParameter("Role_ID", Role_ID);
_RoleModule.AddSearchParameter("Module_ID", int.Parse(_Node.Value.Replace("Module|", "")));
//是否存在
if (!_RoleModule.Search())
{
_RoleModule.ResetProperty();
_RoleModule.Role_ID = Role_ID;
_RoleModule.Module_ID = int.Parse(_Node.Value.Replace("Module|", ""));
//_RoleModule.
_RoleModule.Insert();
}
if (_Node.PopulateOnDemand)
{
_Node.PopulateOnDemand = false;
_RoleModule.BindingTreeView_ModulePopedom(_Node.Value, _Node.ChildNodes, true);
}
//判斷是否有模塊權限
foreach (TreeNode _PopedomNode in _Node.ChildNodes)
{
if (!_PopedomNode.Checked)
{
_PopedomNode.Checked = false;
continue;
}
_PopedomNode.Checked = false;
_RoleModulePopedom.ResetProperty();
_RoleModulePopedom.AddSearchParameter("ModulePopedom_ID", _PopedomNode.Value);
_RoleModulePopedom.AddSearchParameter("RoleModule_ID", _RoleModule.RoleModule_ID);
//是否存在
if (_RoleModulePopedom.Search())
continue;
_RoleModulePopedom.ResetProperty();
_RoleModulePopedom.ModulePopedom_ID = int.Parse(_PopedomNode.Value);
_RoleModulePopedom.RoleModule_ID = _RoleModule.RoleModule_ID;
_RoleModulePopedom.Insert();
}
}
}
protected void ButtonRemove_Click(object sender, EventArgs e)
{
_RoleModule = new Business.RoleModule(Transaction);
//_RoleModulePopedom = new Business.RoleModulePopedom(Transaction);
foreach (TreeNode _TreeNode in TreeViewRoleModule.CheckedNodes)
{
if (_TreeNode.ImageToolTip == "Module")
{
_RoleModule.ResetProperty();
_RoleModule.AddSearchParameter("MODULE_ID", _TreeNode.Value.TryParseToInt());
_RoleModule.AddSearchParameter("Role_ID", Role_ID);
if (_RoleModule.Search())
{
_RoleModule.Delete();
}
}
}
//DeleteRoleModule(TreeViewRoleModule.Nodes);
TreeViewBinding_BusinessSystem();
}
private void DeleteRoleModule(TreeNodeCollection treeNodeCollection)
{
foreach (TreeNode _Node in treeNodeCollection)
{
if (_Node.ImageToolTip == "BusinessSystem")
{
DeleteRoleModule(_Node.ChildNodes);
continue;
}
if (_Node.ImageToolTip == "RoleModule")
{
//判斷是否有模塊權限
foreach (TreeNode _PopedomNode in _Node.ChildNodes)
{
if (!_PopedomNode.Checked)
{
_PopedomNode.Checked = false;
_RoleModulePopedom.ResetProperty();
_RoleModulePopedom.Delete(int.Parse(_PopedomNode.Value));
}
}
if (!_Node.Checked)
{
_RoleModule.ResetProperty();
_RoleModule.Delete(int.Parse(_Node.Value));
}
}
}
}
}
}