OrgPostPermission.aspx.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. using BizCom;
  2. using SQLData;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Web;
  9. using System.Web.UI;
  10. using System.Web.UI.WebControls;
  11. using SiteCore;
  12. public partial class Ehr_OrgPostPermission : TreeBasePage, ITreePage
  13. {
  14. protected override void OnPreInit(EventArgs e)
  15. {
  16. PmTag = "orgpostpermission";
  17. TreeTitle = "选择部门/职位";
  18. ContentTitle = "配置权限";
  19. TreeSelValue = "0";
  20. _searchDateEnum = SearchDateEnum.Empty;
  21. }
  22. protected void Page_Load(object sender, EventArgs e)
  23. {
  24. if (!IsPostBack)
  25. {
  26. //modulesDataBind();
  27. }
  28. }
  29. private void modulesDataBind()
  30. {
  31. StringBuilder sql = new StringBuilder();
  32. sql.AppendFormat("select * from CE_ErpModular where isdel=0 and isoperate=0 order by path asc, sort asc ;");
  33. //sql.AppendFormat("select * from ce_erpindex order by sort;");
  34. DataSet ds = DbHelper.DbConn.ExecuteDataset(sql.ToString());
  35. DataTable dt = ds.Tables[0];
  36. System.Data.DataView dv = new System.Data.DataView(dt);
  37. //selModules.Items.Add(new System.Web.UI.WebControls.ListItem("--请选择--", "0"));
  38. getModulesTree(dv, 0);
  39. DataTable dt1 = ds.Tables[1];
  40. foreach (DataRow dr in dt1.Rows)
  41. {
  42. //selIndex.Items.Add(new ListItem(dr["name"].ToString(), dr["ID"].ToString()));
  43. //selView.Items.Add(new ListItem(dr["name"].ToString(), dr["ID"].ToString()));
  44. }
  45. }
  46. private void getModulesTree(System.Data.DataView dv, object id)
  47. {
  48. dv.RowFilter = "parentid=" + id;
  49. foreach (DataRowView dr in dv)
  50. {
  51. //selModules.Items.Add(new System.Web.UI.WebControls.ListItem(getNodeName(dr["Name"], dr["Path"]), dr["ID"].ToString()));
  52. getModulesTree(dv, dr["ID"]);
  53. }
  54. }
  55. private string getNodeName(object name, object path)
  56. {
  57. if (path.ToString() == "") return name.ToString();
  58. int len = path.ToString().Split('|').Length - 2;
  59. return "".PadLeft(len, ' ') + name;
  60. }
  61. #region 左边数据
  62. System.Data.DataView dv = null;
  63. System.Data.DataView pdv = null;
  64. int si = 0;
  65. public object GetTreeData()
  66. {
  67. StringBuilder str = new StringBuilder();
  68. StringBuilder pstr = new StringBuilder();
  69. str.Append("[");
  70. StringBuilder sql = new StringBuilder();
  71. //if (CurrentUser.IsAdmin)
  72. // sql.AppendFormat("select id,name from ce_erporganization where parentid=0 order by sort asc ;");
  73. //else
  74. int limit_orgid = 0;
  75. if (CurrentUser.UserPost.Post.Code == "SysAdmin")
  76. {
  77. sql.AppendFormat("select * from ce_erporganization order by parentid,sort asc ;");
  78. }
  79. else
  80. {
  81. limit_orgid = CurrentUser.UserPost.OrgID;
  82. sql.AppendFormat("select * from ce_erporganization where id={0} or path like '%|{0}|%' order by parentid,sort asc ;",limit_orgid);
  83. }
  84. sql.AppendFormat("select * from view_erppost order by Path asc, sort asc ;");
  85. DataSet ds = DbHelper.DbConn.ExecuteDataset(sql.ToString());
  86. if (ds != null && ds.Tables[0].Rows.Count < 1) return null;
  87. DataTable dt = ds.Tables[0];
  88. dv = new DataView(ds.Tables[0]);
  89. pdv = new DataView(ds.Tables[1]);
  90. GetOtherTree(0, limit_orgid, ref str,ref pstr);
  91. if (str.ToString() == "[")
  92. {
  93. }
  94. str.Append("]");
  95. return str.ToString();
  96. }
  97. private void GetOtherTree(object id,int limit_orgid, ref StringBuilder str,ref StringBuilder pstr)
  98. {
  99. if(limit_orgid>0) dv.RowFilter = "ID="+limit_orgid;//ParentID=" + id+" and
  100. else dv.RowFilter = "ParentID=" + id;
  101. dv.Sort = "Sort asc";
  102. bool hasP = false;
  103. //if (Convert.ToInt32(id) > 0)
  104. //{
  105. // GetPostTree(id, ref str, out hasP);
  106. // if (!hasP) return;
  107. //}
  108. //return;
  109. foreach (DataRowView drv in dv)
  110. {
  111. pstr = new StringBuilder();
  112. hasP = false;
  113. GetPostTree(drv["ID"], ref pstr, out hasP);
  114. if (!hasP) continue;
  115. if (si == 0) str.Append("{");
  116. else str.Append(",{");
  117. str.AppendFormat("\"id\":\"o_{0}\",\"name\":\"{1}\",\"pid\":\"o_{2}\",\"expanded\": true", drv["ID"], drv["Name"], id);
  118. str.Append("}");
  119. si++;
  120. str.Append(pstr);
  121. GetOtherTree(drv["ID"],0, ref str,ref pstr);
  122. }
  123. }
  124. private void GetPostTree(object id, ref StringBuilder str,out bool hasP)
  125. {
  126. pdv.RowFilter = "OrgID=" + id;
  127. if (pdv.Count < 1)
  128. {
  129. hasP = false;
  130. return;
  131. }
  132. foreach (DataRowView drv in pdv)
  133. {
  134. str.Append(",{");
  135. str.AppendFormat("\"id\":\"p_{0}\",\"name\":\"{1}\",\"pid\":\"o_{2}\",\"orgId\":\"{3}\",\"expanded\": true", drv["ID"], drv["Name"], id, drv["OrgID"]);
  136. str.Append("}");
  137. }
  138. hasP = true;
  139. }
  140. #endregion
  141. }