1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
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("<br/>", (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<Sys_Permissions_Role> m_Sys_Permissions_RoleList = bll_Sys_Permissions_RoleBLL.HasRoleByMenuId(m_Sys_Permissions_Menu.Keyid, Request["MemberType"]) as List<Sys_Permissions_Role>;
                    Sys_Permissions_Menu m_Sys_Permissions_Menu_new = bll_Sys_Permissions_MenuBLL.GetAllKeyidByMenuId(m_Sys_Permissions_Menu.Keyid);
                    List<Sys_Permissions_RoleMenuRelation> m_Sys_Permissions_RoleMenuRelationList = new List<Sys_Permissions_RoleMenuRelation>();
                    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;
        }
 
    }
}