using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CY.BLL;
using CY.Model;
using CY.Infrastructure.Common;
using System.Data;
namespace CY.WebForm.Pages.membermanage
{
//吴辉
//权限管理
public partial class PermissionsMenusList : BasePage
{
Sys_Permissions_MenuBLL bll_Sys_Permissions_MenuBLL = null;
Sys_Permissions_RoleBLL bll_Sys_Permissions_RoleBLL = null;
public static string treeHtml = ""; //树形参数
public static string selHtml = ""; //下拉框内容
//实例化
public PermissionsMenusList()
{
bll_Sys_Permissions_MenuBLL = new Sys_Permissions_MenuBLL();
bll_Sys_Permissions_RoleBLL = new Sys_Permissions_RoleBLL();
}
//页面加载
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InitialData();
}
}
//提交修改 hideKeyId
protected void btn_Submit_Config(object sender, EventArgs e)
{
Sys_Permissions_Menu m_Sys_Permissions_Menu = new Sys_Permissions_Menu();
if (this.hideKeyId.Value.ToInt32() > 0)
m_Sys_Permissions_Menu = bll_Sys_Permissions_MenuBLL.SelectModelByKeyId(this.hideKeyId.Value.ToInt32());
m_Sys_Permissions_Menu.ParentId = this.selParentId.Value.ToInt32();
m_Sys_Permissions_Menu.MenuName = this.txtMenuName.Value.ToString2();
m_Sys_Permissions_Menu.MenuPath = this.txtMenuPath.Value.ToString2();
m_Sys_Permissions_Menu.OrderCode = this.txtOrderCode.Value.ToString2();
m_Sys_Permissions_Menu.IsUsed = this.selIsUsed.Value.ToBoolean2();
m_Sys_Permissions_Menu.Operator = CurrentUser.ShortName;
m_Sys_Permissions_Menu.LastUpdateTime = DateTime.Now;
m_Sys_Permissions_Menu.Remark = "";
//图片上传
CY.WebForm.cs.UploadCS.UpFileResult _UpFileResult2 = CY.WebForm.cs.UploadCS.Upload("fileMenuIcon", m_Sys_Permissions_Menu.MenuIcon);
m_Sys_Permissions_Menu.MenuIcon = m_Sys_Permissions_Menu.MenuIcon ?? "";
if (_UpFileResult2.returnerror.Count == 0)
{
if (_UpFileResult2.returnfilename.Count > 0)
m_Sys_Permissions_Menu.MenuIcon = _UpFileResult2.returnfilename[0].ToString2();
}
else
{
JavaScript.MessageBox(string.Join("
", (string[])_UpFileResult2.returnerror.ToArray(typeof(string))), this);
return;
}
if (this.hideKeyId.Value.ToInt32() > 0)
{
bll_Sys_Permissions_MenuBLL.UpdateModel(m_Sys_Permissions_Menu);
Sys_Permissions_Menu m_Sys_Permissions_Menu_old = bll_Sys_Permissions_MenuBLL.SelectModelByKeyId(m_Sys_Permissions_Menu.ParentId);
if (m_Sys_Permissions_Menu_old != null)
{
bll_Sys_Permissions_RoleBLL.UpdateMenuToMember(m_Sys_Permissions_Menu_old.ParentId, m_Sys_Permissions_Menu.ParentId, m_Sys_Permissions_Menu.Keyid);
}
}
else
{
bll_Sys_Permissions_MenuBLL.InsertModel(m_Sys_Permissions_Menu);
}
if (Request["selMoneyType"] == "0")
{
if (!string.IsNullOrEmpty(Request["MemberType"].ToString2()) && !string.IsNullOrWhiteSpace(this.txtMenuPath.Value.ToString2()))
{
List m_Sys_Permissions_RoleList = bll_Sys_Permissions_RoleBLL.HasRoleByMenuId(m_Sys_Permissions_Menu.Keyid, Request["MemberType"]) as List;
Sys_Permissions_Menu m_Sys_Permissions_Menu_new = bll_Sys_Permissions_MenuBLL.GetAllKeyidByMenuId(m_Sys_Permissions_Menu.Keyid);
List m_Sys_Permissions_RoleMenuRelationList = new List();
if (m_Sys_Permissions_RoleList != null && m_Sys_Permissions_RoleList.Count > 0 && m_Sys_Permissions_Menu_new != null)
foreach (var item in m_Sys_Permissions_RoleList)
{
Sys_Permissions_RoleMenuRelation m_Sys_Permissions_RoleMenuRelation = new Sys_Permissions_RoleMenuRelation();
m_Sys_Permissions_RoleMenuRelation.FuncId = "";
m_Sys_Permissions_RoleMenuRelation.RoleId = item.Keyid;
m_Sys_Permissions_RoleMenuRelation.MenuIdOne = m_Sys_Permissions_Menu_new.MenuOneId;
m_Sys_Permissions_RoleMenuRelation.MenuIdTwo = m_Sys_Permissions_Menu_new.MenuTwoId;
m_Sys_Permissions_RoleMenuRelation.MenuIdThree = m_Sys_Permissions_Menu_new.MenuThreeId;
m_Sys_Permissions_RoleMenuRelationList.Add(m_Sys_Permissions_RoleMenuRelation);
}
bll_Sys_Permissions_RoleBLL.AddMenuAndRole(m_Sys_Permissions_RoleMenuRelationList);
}
}
Response.Redirect("/Pages/membermanage/PermissionsMenusList.aspx");
}
//获取遍历结果
public void InitialData()
{
DataTable ds = bll_Sys_Permissions_MenuBLL.SelectList();
selParentId.Items.Clear();
selParentId.Items.Insert(0, new ListItem("顶级菜单", "0"));
treeHtml = "";
selHtml = "";
if (ds != null && ds.Rows.Count > 0)
{
GetDataByLevel(ref treeHtml, selParentId, ds, 0, 1);
}
treeHtml = treeHtml.Trim(',');
}
//遍历数据
public static void GetDataByLevel(ref string treeHtmlo, System.Web.UI.HtmlControls.HtmlSelect sel, DataTable data, int parentId, int level)
{
DataRow[] result = data.Select(string.Format("ParentId={0}", parentId));
int i = -1;
while (++i < result.Length)
{
treeHtmlo = treeHtmlo + "{ id: " + result[i]["Keyid"].ToString2() + ", parentId: " + result[i]["ParentId"].ToString2() + ", name: '" + result[i]["MenuName"].ToString2() + "[" + result[i]["OrderCode"].ToString2() + "]"+ "'" + (level < 2 ? ", open: true" : "") +" },";
if (level < 4)
{
sel.Items.Add(new ListItem(GetSplitChar(level) + result[i]["MenuName"].ToString2(), result[i]["Keyid"].ToString2()));
}
GetDataByLevel(ref treeHtmlo, sel, data, result[i]["Keyid"].ToInt32().Value, level + 1);
}
}
//获取隔位符
public static string GetSplitChar(int level)
{
string res =""; //level.ToString2();
for (int i = 0; i < level; i++)
{
res += "..";
}
return res;
}
}
}