using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using WMS.Frm.Base; using WMS.Model.Base; using WMS.Model.SystemManage; using WMS.Common; using DevExpress.XtraTreeList.Nodes; using WMS.Ctrl; using DevExpress.XtraGrid.Columns; using DevExpress.XtraEditors.Repository; using System.Threading; using WMS.Business.SystemManage; using WMS.Model.Stock; using WMS.Business; using WMS.Business.Base; namespace WMS.FrmSystems { /// /// 权限管理 /// public partial class FrmRole : FormBase { #region 变量 BussSysRole bussSysRole = new BussSysRole(); /// /// 角色信息集合 /// List listRoleModel = new List(); /// /// 角色信息 /// RoleModel roleModel = new RoleModel(); /// /// 用户信息集合 /// List listUser = new List(); /// /// 菜单集合 /// List listMenu = new List(); /// /// 菜单权限Model /// MenuRoleModel roleMenu = new MenuRoleModel(); /// /// 菜单权限集合 /// List listMenuRole = new List(); /// /// 菜单权限增加集合 /// List listMenuRoleAdd = new List(); /// /// 菜单权限删除集合 /// List listMenuRoleDel = new List(); /// /// 功能集合 /// List listFuction = new List(); /// /// 功能权限Model /// FunctionRoleModel roleFuction = new FunctionRoleModel(); /// /// 功能权限集合 /// List listFuctionRole = new List(); /// /// 功能权限增加集合 /// List listFuctionRoleAdd = new List(); /// /// 功能权限删除集合 /// List listFuctionRoleDel = new List(); /// /// 商品分类集合 /// List listGoodsType = new List(); /// /// 商品权限Model /// GoodsRoleModel roleGoodsType = new GoodsRoleModel(); /// /// 商品权限集合 /// List listGoodsTypeRole = new List(); /// /// 商品权限增加集合 /// List listGoodsTypeRoleAdd = new List(); /// /// 商品权限删除集合 /// List listGoodsTypeRoleDel = new List(); /// /// 组织机构集合 /// List listCompany = new List(); /// /// 组织机构权限Model /// RoleDepartModel roleDepart = new RoleDepartModel(); /// /// 组织机构权限集合 /// List listDepartRole = new List(); /// /// 组织机构权限增加集合 /// List listDepartRoleAdd = new List(); /// /// 组织机构权限删除集合 /// List listDepartRoleDel = new List(); /// /// 供应商权限集合 /// List listProviderRole = new List(); /// /// 供应商权限增加集合 /// List listProviderRoleAdd = new List(); /// /// 供应商权限删除集合 /// List listProviderRoleDel = new List(); /// /// 供应商集合 /// List listProvider = new List(); /// /// 供应商权限Model /// ProviderRoleModel roleProvider = new ProviderRoleModel(); /// /// 消息类型权限集合 /// List listRoleMessage = new List(); /// /// 消息类型Model /// RoleMessageModel roleMessage = new RoleMessageModel(); ///// ///// 仓库权限集合 ///// //List listRoleStorage = new List(); ///// ///// 仓库权限增加集合 ///// //List listRoleStorageAdd = new List(); ///// ///// 仓库权限删除集合 ///// //List listRoleStorageDel = new List(); ///// ///// 仓库集合 ///// //List listStorage = new List(); ///// ///// 仓库权限Model ///// //RoleStorageModel roleStorage = new RoleStorageModel(); /// /// 错误信息 /// string errText = string.Empty; /// /// 点击按钮标记 /// int flag = -1; /// /// 全选判断 /// bool m_status = false; //bool load = true; #endregion #region 构造函数 public FrmRole() { InitializeComponent(); } #endregion #region 窗体加载 /// /// 窗体加载 /// /// /// private void FrmRole_Load(object sender, EventArgs e) { Refresh(); } #endregion #region 数据加载 /// /// 加载权限信息 /// private void DataLoadRole() { try { listRoleModel = bussSysRole.GetRole(""); bgsRole.DataSource = listRoleModel; if (listRoleModel.Count > 0) { roleModel = listRoleModel[0]; bgsSelect.DataSource = roleModel; DataLoadRoleMenu(roleModel.ROLE_ID); DataLoadRoleMenuFuc(roleModel.ROLE_ID); } } catch (Exception ex) { string errMsg = ex.Message; SystemCommon.ShowErrorMessageBox("加载失败,请重试!"); } } /// /// 获取角色对应的用户信息 /// /// 角色编号 /// private void DataLoadRoleUser(string strRoleId) { try { listUser = IBussFactory.Instance().GetRoleUser(strRoleId); bgsUser.DataSource = listUser; GvUser.RefreshData(); } catch { SystemCommon.ShowErrorMessageBox("加载失败,请重试!"); } } /// /// 获取角色对象的菜单功能操作 /// /// 角色编号 /// 菜单编号 /// private void DataLoadRoleMenuFuc(string strRoleId, string strMenuId) { List Fuc = listFuction.FindAll(r => r.MENU_ID == strMenuId); if (listFuctionRole != null) { List FucRole = listFuctionRole.FindAll(r => r.MENU_ID == strMenuId); List list = new List(); Fuc.FindAll(delegate (MenuFuctionModel target) { foreach (FunctionRoleModel mod in FucRole) { if (target.FUN_ID == mod.FUN_ID) { list.Add(target); } } return true; }); foreach (MenuFuctionModel model in list) { model.IsCheckRec = true; } } GCFuc.DataSource = Fuc; GVFuc.RefreshData(); GVFuc.ExpandGroupLevel(0, true); } /// /// 获取角色对象的菜单功能操作 /// /// 角色编号 /// private void DataLoadRoleMenuFuc(string strRoleId) { try { roleFuction.ROLE_ID = strRoleId; listFuctionRole = IBussFactory.Instance().GetList(roleFuction); MenuFuctionModel model = new MenuFuctionModel(); listFuction = IBussFactory.Instance().GetMenuDataFuc(model); } catch { SystemCommon.ShowErrorMessageBox("加载失败,请重试!"); } } /// /// 获取角色对象的菜单操作 /// /// 角色编号 /// private void DataLoadRoleMenu(string strRoleId) { try { roleMenu.ROLE_ID = strRoleId; listMenu = IBussFactory.Instance().GetMenuData(strRoleId); if (listMenu != null) { #region 获得当前有权限的功能 listMenuRole = new List(); foreach (var item in listMenu) { if (item.IsCheckRec) { listMenuRole.Add(new MenuRoleModel() { ROLE_ID = strRoleId, MENU_ID = item.MENU_ID }); } } #endregion BSMenu.DataSource = listMenu; GCMenu.ExpandAll(); if (GCMenu.Nodes.Count > 0) { GCMenu.SetFocusedNode(GCMenu.Nodes[0]); } } } catch (Exception ex) { SystemCommon.ShowErrorMessageBox("菜单加载失败:" + ex.Message); } } /// /// 加载组织机构 /// private void DataLoadDepart(string strRoleId) { //load = true; try { roleDepart.ROLE_ID = strRoleId; listDepartRole = IBussFactory.Instance().GetList(roleDepart); listCompany = IBussFactory.Instance().getCompanytDataSet("", ""); List list = new List(); listCompany.FindAll(delegate (CompanyModel target) { foreach (RoleDepartModel mod in listDepartRole) { if (target.COM_ID == mod.DEP_ID) { list.Add(target); } } return true; }); foreach (CompanyModel model in list) { model.IsCheckRec = true; } TreeDepart.DataSource = listCompany; TreeDepart.Refresh(); TreeDepart.ExpandAll(); } catch { SystemCommon.ShowErrorMessageBox("加载失败,请重试!"); } } /// /// 加载商品分类 /// private void DataLoadRoleGoodsType(string strRoleId) { try { roleGoodsType.ROLE_ID = strRoleId; GoodsTypeModel goodsTypeModel = new GoodsTypeModel(); listGoodsTypeRole = IBussFactory.Instance().GetList(roleGoodsType); ; listGoodsType = IBussFactory.Instance().GetGoodsTypeList(goodsTypeModel); List list = new List(); listGoodsType.FindAll(delegate (GoodsTypeModel target) { foreach (GoodsRoleModel mod in listGoodsTypeRole) { if (target.GOODS_TYPE_ID == mod.GOODS_TYPE_ID) { list.Add(target); } } return true; }); foreach (GoodsTypeModel model in list) { model.IsCheckRec = true; } treeGoodsType.DataSource = listGoodsType; treeGoodsType.RefreshDataSource(); treeGoodsType.ExpandAll(); } catch { SystemCommon.ShowErrorMessageBox("加载失败,请重试!"); } } /// /// 加载消息类型权限数据 /// /// private void DataLoadMessageType(string strRoleID) { try { roleMessage.ROLE_ID = strRoleID; listRoleMessage = IBussFactory.Instance().GetRoleMessageData(roleMessage); if (listRoleMessage.Count > 0) { bgsMessage.DataSource = listRoleMessage; this.GVMessage.RefreshData(); } } catch (Exception ex) { } } /// /// 加载供应商 /// /// private void DataLoadRoleProvider(string strRoleId) { try { roleProvider.ROLE_ID = strRoleId; ProviderModel providerModel = new ProviderModel(); listProvider = IBussFactory.Instance().GetProviderList(providerModel); listProviderRole = IBussFactory.Instance().GetList(roleProvider); List list = new List(); listProvider.FindAll(delegate (ProviderModel target) { foreach (ProviderRoleModel mod in listProviderRole) { if (target.PROVIDER_ID == mod.PROVIDER_ID) { list.Add(target); } } return true; }); foreach (ProviderModel model in list) { model.IsCheckRec = true; } GCProvider.DataSource = listProvider; GVProvider.RefreshData(); GVProvider.ExpandGroupLevel(0, true); } catch { SystemCommon.ShowErrorMessageBox("加载失败,请重试!"); } } ///// ///// 加载仓库 ///// ///// //private void DataLoadRoleStorage(string strRoleId) //{ // try // { // string strroleStoragemodel = Newtonsoft.Json.JsonConvert.SerializeObject(new StorageInfoModel()); // string strListStorage = WebLockConfig.Instance.StorageInfo.GetStorageInfoDS(strroleStoragemodel, ref errText); // roleStorage.ROLE_ID = strRoleId; // string strroleStorage = Newtonsoft.Json.JsonConvert.SerializeObject(roleStorage); // string strListRoleStorage = WebLockConfig.Instance.WebRoleStorage.execRoleStorageGetList(strroleStorage); // if (errText.Trim().Length > 0) // { // SystemCommon.ShowErrorMessageBox(errText); // } // else // { // listStorage = Newtonsoft.Json.JsonConvert.DeserializeObject>(strListStorage); // listRoleStorage = Newtonsoft.Json.JsonConvert.DeserializeObject>(strListRoleStorage); // //bgsStorage.DataSource = listStorage; // } // List list = new List(); // listStorage.FindAll(delegate(StorageInfoModel target) // { // foreach (RoleStorageModel mod in listRoleStorage) // { // if (target.STORAGE_ID == mod.STORAGE_ID) // { // list.Add(target); // } // } // return true; // }); // foreach (StorageInfoModel model in list) // { // model.IsCheckRec = true; // } // //GCStorage.DataSource = listStorage; // //GVStorage.RefreshData(); // //GVStorage.ExpandGroupLevel(0, true); // } // catch // { // SystemCommon.ShowErrorMessageBox("加载失败,请重试!"); // } //} #endregion #region 角色点击行事件 /// /// 角色点击行事件 /// /// /// private void GvRole_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e) { if (flag == 0 || flag == 1 || flag == 2) { return; } int rowIndex = e.RowHandle; if (rowIndex < 0) return; roleModel = GvRole.GetRow(e.RowHandle) as RoleModel; if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = true; } if (frmButtonItem.ContainsKey("EditRole")) { frmButtonItem["EditRole"].Enabled = true; } if (frmButtonItem.ContainsKey("Del")) { frmButtonItem["Del"].Enabled = true; } bgsSelect.DataSource = roleModel; string strRoleId = roleModel.ROLE_ID; if (!string.IsNullOrEmpty(strRoleId)) { LoadForm load = new LoadForm(); DevExpress.XtraSplashScreen.SplashScreenManager.ShowForm(load, load.GetType(), false, true, false, 50); DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormCaption("");//设置标题 DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormDescription("正在加载数据,请稍等...."); switch (xtraTabControl1.SelectedTabPage.Name) { case "PageMenu": DataLoadRoleMenu(roleModel.ROLE_ID); DataLoadRoleMenuFuc(roleModel.ROLE_ID); GCFuc.DataSource = new List(); GVFuc.RefreshData(); break; case "PageGoods": DataLoadRoleGoodsType(roleModel.ROLE_ID); break; case "PageProvider": DataLoadRoleProvider(roleModel.ROLE_ID); break; //case "PageStorage": // DataLoadRoleStorage(roleModel.ROLE_ID); // break; case "PageUser": DataLoadRoleUser(roleModel.ROLE_ID); break; case "PageDepart": DataLoadDepart(roleModel.ROLE_ID); break; } DevExpress.XtraSplashScreen.SplashScreenManager.CloseForm(); } } #endregion #region 节点处理 string strIsCheck = string.Empty; TreeListNode node; /// /// 功能操作单元格值发生变化 /// /// /// private void CellValueChanging(object sender, DevExpress.XtraTreeList.CellValueChangedEventArgs e) { strIsCheck = e.Node.GetValue("IsCheckRec").ToString(); node = e.Node; CheckState check; if (strIsCheck == "True") { check = CheckState.Unchecked; } else { check = CheckState.Checked; } SetCheckedChildNodes(node, check);//改变子节点的选中状态 SetCheckedParentNodes(node, check);//改变父节点的选中状态 } ///// ///// checkbox选中事件 ///// ///// ///// //private void ckMenuFun_CheckStateChanged(object sender, EventArgs e) //{ // CheckState check; // if (((DevExpress.XtraEditors.CheckEdit)(sender)).EditValue.ToString() == "True") // { // check = CheckState.Checked; // } // else // { // check = CheckState.Unchecked; // } // SetCheckedChildNodes(node, check); // SetCheckedParentNodes(node, check); //} /// /// 设置子节点的状态 /// /// /// private void SetCheckedChildNodes(TreeListNode node, CheckState check) { bool selected; if (check == CheckState.Checked) selected = true; else selected = false; node["IsCheckRec"] = selected; if (xtraTabControl1.SelectedTabPage.Text == "组织机构") { ChangeDepart(node); } if (xtraTabControl1.SelectedTabPage.Text == "功能操作") { ChangeMenu(node); } //if (xtraTabControl1.SelectedTabPage.Text == "商品分类") //{ // ChangeGoodsType(node); //} for (int i = 0; i < node.Nodes.Count; i++) { //node.Nodes[i]["IsCheckRec"] = selected; //ChangeDepart(node.Nodes[i]); SetCheckedChildNodes(node.Nodes[i], check); } } /// /// 设置父节点的状态 /// /// /// private void SetCheckedParentNodes(TreeListNode node, CheckState check) { if (node.ParentNode != null) { bool selected; if (check == CheckState.Checked) selected = true; else selected = false; bool b = false; CheckState state; for (int i = 0; i < node.ParentNode.Nodes.Count; i++) { state = (CheckState)node.ParentNode.Nodes[i].CheckState; if (!check.Equals(state)) { b = !b; break; } } node.ParentNode.CheckState = b ? CheckState.Indeterminate : check; //node.ParentNode["IsCheckRec"] = selected; if (node.ParentNode.CheckState == CheckState.Indeterminate) { node.ParentNode["IsCheckRec"] = selected; //node.ParentNode.Checked = true; } else { bool bflag = false; for (int j = 0; j < node.ParentNode.Nodes.Count; j++) { if (node.ParentNode.Nodes[j]["IsCheckRec"].ToString() == "True") bflag = true; } if (!bflag) { node.ParentNode["IsCheckRec"] = false; } } if (xtraTabControl1.SelectedTabPage.Text == "组织机构") { ChangeDepart(node); } if (xtraTabControl1.SelectedTabPage.Text == "功能操作") { ChangeMenu(node); } //if (xtraTabControl1.SelectedTabPage.Text == "商品分类") //{ // ChangeGoodsType(node); //} SetCheckedParentNodes(node.ParentNode, check); } } #endregion #region 按钮事件 // 新增按钮 public override void Add() { //xtraTabControl1.Enabled = false; flag = 0; txtID.Focus(); //this.splitContainerControl1.Panel2.Enabled = true; bgsSelect.DataSource = new RoleDictionaryModel(); if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = false; } if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = false; } if (frmButtonItem.ContainsKey("EditRole")) { frmButtonItem["EditRole"].Enabled = false; } if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = true; } if (frmButtonItem.ContainsKey("Del")) { frmButtonItem["Del"].Enabled = false; } txtDIsc.Properties.ReadOnly = false; txtID.Properties.ReadOnly = false; txtName.Properties.ReadOnly = false; if (listMenu != null) { listMenu.Find(r => r.IsCheckRec = false); } GCMenu.RefreshDataSource(); } // 删除按钮 public override void Del() { List dellist = new List(); int[] selectRows = GvRole.GetSelectedRows(); this.labelControl1.Focus(); foreach (int j in selectRows) { RoleModel roleModel = new RoleModel(); roleModel = this.GvRole.GetRow(j) as RoleModel; RoleDictionaryModel model = new RoleDictionaryModel(); model.ROLE_DESC = roleModel.ROLE_DESC; model.ROLE_ID = roleModel.ROLE_ID; model.ROLE_NAME = roleModel.ROLE_NAME; dellist.Add(model); } if (dellist.Count == 0) { return; } if (DialogResult.OK == SystemCommon.ShowMessageBoxResult("确定删除")) { try { // string strdel = Newtonsoft.Json.JsonConvert.SerializeObject(dellist); string errText = IBussFactory.Instance().DeleteRoleDictionaryList(dellist); if (errText == "") { SystemCommon.ShowInfoMessageBox("删除成功!"); } else { SystemCommon.ShowInfoMessageBox("删除失败!"); } } catch (Exception ex) { SystemCommon.ShowErrorMessageBox("删除出错了:" + ex.Message); } this.splitContainerControl1.Panel2.Enabled = true; Refresh(); } } /// /// 编辑权限 /// public override void Edit() { if (!frmButtonItem.ContainsKey("Edit")) { return; } else if (frmButtonItem["Edit"].Enabled == false) { return; } //panelControl1.Enabled = false; //this.splitContainerControl1.Panel2.Enabled = true; if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = false; } if (frmButtonItem.ContainsKey("Del")) { frmButtonItem["Del"].Enabled = false; } if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = false; } if (frmButtonItem.ContainsKey("EditRole")) { frmButtonItem["EditRole"].Enabled = false; } if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = true; } //colISCHECK.OptionsColumn.AllowEdit = true; GvUser.OptionsBehavior.Editable = true; GVFuc.OptionsBehavior.Editable = true; GVProvider.OptionsBehavior.Editable = true; //GvRole.OptionsBehavior.Editable = true; //GVStorage.OptionsBehavior.Editable = true; GCMenu.OptionsBehavior.Editable = true; TreeDepart.OptionsBehavior.Editable = true; treeGoodsType.OptionsBehavior.Editable = true; GVMessage.OptionsBehavior.Editable = true; flag = 2; } /// /// 编辑角色 /// public void EditRole() { //xtraTabControl1.Enabled = false; flag = 1; //this.splitContainerControl1.Panel2.Enabled = true; this.txtID.Enabled = false; if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = false; } if (frmButtonItem.ContainsKey("Del")) { frmButtonItem["Del"].Enabled = false; } if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = false; } if (frmButtonItem.ContainsKey("EditRole")) { frmButtonItem["EditRole"].Enabled = false; } if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = true; } //colISCHECK.OptionsColumn.AllowEdit = true; txtDIsc.Properties.ReadOnly = false; txtID.Properties.ReadOnly = false; txtName.Properties.ReadOnly = false; } private bool dataCheck() { if (string.IsNullOrEmpty(txtID.Text.Trim())) { SystemCommon.ShowInfoMessageBox("角色编号不能为空!"); txtID.Focus(); return false; } if (string.IsNullOrEmpty(txtName.Text.Trim())) { SystemCommon.ShowInfoMessageBox("角色名称不能为空!"); txtName.Focus(); return false; } if (txtDIsc.Text.Length > 300) { SystemCommon.ShowInfoMessageBox("角色描述信息过长,请重新输入"); txtDIsc.Text = string.Empty; return false; } return true; } /// /// 保存 /// public override void Save() { gridControlCustom1.Focus(); errText = string.Empty; if (flag == 0 || flag == 1) { if (dataCheck()) { bgsSelect.EndEdit(); //string strRoleDictionary = Newtonsoft.Json.JsonConvert.SerializeObject(bgsSelect.DataSource); //string strRoleMessage = Newtonsoft.Json.JsonConvert.SerializeObject(bgsMessage.DataSource); try { //新增 if (flag == 0) { errText = IBussFactory.Instance().AddRoleDictionary(bgsSelect.DataSource as RoleDictionaryModel); } //修改 else if (flag == 1) { RoleModel roleModel = bgsSelect.DataSource as RoleModel; errText = IBussFactory.Instance().UpdateRoleDictionary(new RoleDictionaryModel { ROLE_ID = roleModel.ROLE_ID, ROLE_NAME = roleModel.ROLE_NAME, ROLE_DESC = roleModel.ROLE_DESC }); } } catch (Exception ex) { SystemCommon.ShowErrorMessageBox("保存出错了:" + ex.Message); return; } if (string.IsNullOrEmpty(errText)) { SystemCommon.ShowInfoMessageBox("保存成功!"); m_status = false; } else { SystemCommon.ShowInfoMessageBox("保存失败!"); } if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = true; } if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = false; } if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = true; } if (frmButtonItem.ContainsKey("Del")) { frmButtonItem["Del"].Enabled = true; } this.txtID.Enabled = true; //this.splitContainerControl1.Panel2.Enabled = false; Refresh(); } return; } errText = string.Empty; //GVStorage.CloseEditor(); //GVStorage.UpdateCurrentRow(); GVProvider.CloseEditor(); GVProvider.UpdateCurrentRow(); treeGoodsType.CloseEditor(); treeGoodsType.Update(); // GVFuc.CloseEditor(); GVFuc.UpdateCurrentRow(); TreeDepart.CloseEditor(); TreeDepart.Update(); if (listMenuRoleAdd.Count > 0 || listMenuRoleDel.Count > 0) { errText += IBussFactory.Instance().Save(listMenuRoleAdd, listMenuRoleDel); } if (listFuctionRoleAdd.Count > 0 || listFuctionRoleDel.Count > 0) { errText += IBussFactory.Instance().Save(listFuctionRoleAdd, listFuctionRoleDel); } bool departChanged = false; if (listDepartRoleAdd.Count > 0 || listDepartRoleDel.Count > 0) { departChanged = true; errText += IBussFactory.Instance().Save(listDepartRoleAdd, listDepartRoleDel); } //if (listGoodsTypeRoleAdd.Count > 0 || listGoodsTypeRoleDel.Count > 0) //{ // errText += IBussFactory.Instance().Save(listGoodsTypeRoleAdd, listGoodsTypeRoleDel); //} //if (listProviderRoleAdd.Count > 0 || listProviderRoleDel.Count > 0) //{ // errText += IBussFactory.Instance().Save(listProviderRoleAdd, listProviderRoleDel); //} if (string.IsNullOrEmpty(errText)) { SystemCommon.ShowInfoMessageBox("保存成功!"); Init(); DataLoadRole(); DataLoadRoleUser(roleModel.ROLE_ID); if (departChanged) { if (listUser.Count > 0) { if (DialogResult.OK == SystemCommon.ShowMessageBoxResult("您修改了当前角色的组织机构权限,该角色下存在用户,是否跳转到用户信息界面修改用户的组织机构权限")) { FormBase formBase = OpenFrmTable("WMS.FrmSystems", "FrmUser");//创建窗体 OpenTabAddFrm("0103", "WMS.FrmSystems", "用户信息"); } } } } else { SystemCommon.ShowInfoMessageBox("保存失败" + errText); } } #endregion public override void Refresh() { if (frmButtonItem.ContainsKey("Save") && frmButtonItem["Save"].Enabled == true && flag != -1 && DialogResult.OK != SystemCommon.ShowMessageBoxResult("确定放弃正在编辑的数据?")) { return; } Init(); DataLoadRole(); DataLoadRoleUser(roleModel.ROLE_ID); } private void Init() { if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = true; } if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = true; } if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = false; } if (frmButtonItem.ContainsKey("Del")) { frmButtonItem["Del"].Enabled = true; } if (frmButtonItem.ContainsKey("EditRole")) { frmButtonItem["EditRole"].Enabled = true; } //listRoleStorageAdd.Clear(); //listRoleStorageDel.Clear(); listMenuRoleAdd.Clear(); listMenuRoleDel.Clear(); listProviderRoleAdd.Clear(); listProviderRoleDel.Clear(); listGoodsTypeRoleAdd.Clear(); listGoodsTypeRoleDel.Clear(); listFuctionRoleAdd.Clear(); listFuctionRoleDel.Clear(); //默认只读 txtDIsc.Properties.ReadOnly = true; txtID.Properties.ReadOnly = true; txtName.Properties.ReadOnly = true; GvUser.OptionsBehavior.Editable = false; GVFuc.OptionsBehavior.Editable = false; GVProvider.OptionsBehavior.Editable = false; //GvRole.OptionsBehavior.Editable = false; //GVStorage.OptionsBehavior.Editable = false; GCMenu.OptionsBehavior.Editable = false; TreeDepart.OptionsBehavior.Editable = false; treeGoodsType.OptionsBehavior.Editable = false; GVMessage.OptionsBehavior.Editable = false; this.txtID.Enabled = true; flag = -1; } /// /// 菜单双击 编辑功能权限 /// /// /// private void GCMenu_DoubleClick(object sender, EventArgs e) { LoadForm load = new LoadForm(); DevExpress.XtraSplashScreen.SplashScreenManager.ShowForm(load, load.GetType(), false, true, false, 50); DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormDescription("正在加载数据,请稍等...."); if (GCMenu.FocusedNode.HasChildren) { GCFuc.DataSource = new List(); } else { string menu_Id = GCMenu.FocusedNode["MENU_ID"].ToString(); DataLoadRoleMenuFuc(roleModel.ROLE_ID, menu_Id); } DevExpress.XtraSplashScreen.SplashScreenManager.CloseForm(); } ///// ///// 仓库权限修改记录 ///// ///// ///// //private void GVStorage_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) //{ // if (e.RowHandle < 0) // { // return; // } // StorageInfoModel model = GVStorage.GetRow(e.RowHandle) as StorageInfoModel; // if (e.Column.FieldName == "IsCheckRec") // { // if (Convert.ToBoolean(e.Value)) // { // if (listRoleStorageAdd.Find(r => r.STORAGE_ID == model.STORAGE_ID) == null && listRoleStorage.Find(r => r.STORAGE_ID == model.STORAGE_ID) == null) // { // listRoleStorageAdd.Add(new RoleStorageModel() { STORAGE_ID = model.STORAGE_ID, ROLE_ID = roleModel.ROLE_ID }); // } // if (listRoleStorageDel.Find(r => r.STORAGE_ID == model.STORAGE_ID) != null) // { // listRoleStorageDel.Remove(listRoleStorageDel.Find(r => r.STORAGE_ID == model.STORAGE_ID)); // } // } // else // { // if (listRoleStorageDel.Find(r => r.STORAGE_ID == model.STORAGE_ID) == null && listRoleStorage.Find(r => r.STORAGE_ID == model.STORAGE_ID) != null) // { // listRoleStorageDel.Add(listRoleStorage.Find(r => r.STORAGE_ID == model.STORAGE_ID)); // } // if (listRoleStorageAdd.Find(r => r.STORAGE_ID == model.STORAGE_ID) != null) // { // listRoleStorageAdd.Remove(listRoleStorageAdd.Find(r => r.STORAGE_ID == model.STORAGE_ID)); // } // } // } //} /// /// 供应商权限修改记录 /// /// /// private void GVProvider_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { if (e.RowHandle < 0) { return; } ProviderModel model = GVProvider.GetRow(e.RowHandle) as ProviderModel; if (e.Column.FieldName == "IsCheckRec") { if (Convert.ToBoolean(e.Value)) { if (listProviderRoleAdd.Find(r => r.PROVIDER_ID == model.PROVIDER_ID) == null && listProviderRole.Find(r => r.PROVIDER_ID == model.PROVIDER_ID) == null) { listProviderRoleAdd.Add(new ProviderRoleModel() { PROVIDER_ID = model.PROVIDER_ID, ROLE_ID = roleModel.ROLE_ID }); } if (listProviderRoleDel.Find(r => r.PROVIDER_ID == model.PROVIDER_ID) != null) { listProviderRoleDel.Remove(listProviderRoleDel.Find(r => r.PROVIDER_ID == model.PROVIDER_ID)); } } else { if (listProviderRoleDel.Find(r => r.PROVIDER_ID == model.PROVIDER_ID) == null && listProviderRole.Find(r => r.PROVIDER_ID == model.PROVIDER_ID) != null) { listProviderRoleDel.Add(listProviderRole.Find(r => r.PROVIDER_ID == model.PROVIDER_ID)); } if (listProviderRoleAdd.Find(r => r.PROVIDER_ID == model.PROVIDER_ID) != null) { listProviderRoleAdd.Remove(listProviderRoleAdd.Find(r => r.PROVIDER_ID == model.PROVIDER_ID)); } } } } /// /// 菜单功能权限修改记录 /// /// /// private void GVFuc_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { if (e.RowHandle < 0) { return; } MenuFuctionModel model = GVFuc.GetRow(e.RowHandle) as MenuFuctionModel; if (e.Column.FieldName == "IsCheckRec") { if (Convert.ToBoolean(e.Value)) { if (listFuctionRoleAdd.Count(r => r.MENU_ID == model.MENU_ID && r.FUN_ID == model.FUN_ID) == 0 && listFuctionRole.Count(r => r.MENU_ID == model.MENU_ID && r.FUN_ID == model.FUN_ID) == 0) { listFuctionRoleAdd.Add(new FunctionRoleModel() { MENU_ID = model.MENU_ID, FUN_ID = model.FUN_ID, ROLE_ID = roleModel.ROLE_ID, USER_ID = userData.USER_ID }); } if (listFuctionRoleDel.Count(r => r.MENU_ID == model.MENU_ID && r.FUN_ID == model.FUN_ID) > 0) { listFuctionRoleDel.Remove(listFuctionRoleDel.Find(r => r.MENU_ID == model.MENU_ID && r.FUN_ID == model.FUN_ID)); } } else { if (listFuctionRoleDel.Count(r => r.MENU_ID == model.MENU_ID && r.FUN_ID == model.FUN_ID) == 0 && listFuctionRole.Count(r => r.MENU_ID == model.MENU_ID && r.FUN_ID == model.FUN_ID) > 0) { listFuctionRoleDel.Add(listFuctionRole.Find(r => r.MENU_ID == model.MENU_ID && r.FUN_ID == model.FUN_ID)); } if (listFuctionRoleAdd.Count(r => r.MENU_ID == model.MENU_ID && r.FUN_ID == model.FUN_ID) > 0) { listFuctionRoleAdd.Remove(listFuctionRoleAdd.Find(r => r.MENU_ID == model.MENU_ID && r.FUN_ID == model.FUN_ID)); } } } } private void GVFuc_CustomDrawColumnHeader(object sender, DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgs e) { if (e.Column != null && e.Column.FieldName == "IsCheckRec") { e.Info.InnerElements.Clear(); e.Painter.DrawObject(e.Info); DevControlHelper.DrawCheckBox(e, m_status); e.Handled = true; } } private void GVFuc_Click(object sender, EventArgs e) { if (DevControlHelper.ClickGridCheckBox(this.GVFuc, "IsCheckRec", m_status)) { m_status = !m_status; } } private void GVFuc_DataSourceChanged(object sender, EventArgs e) { GridColumn column = this.GVFuc.Columns.ColumnByFieldName("IsCheckRec"); if (column != null) { column.Width = 20; if (column.OptionsColumn.ShowCaption != m_status) { column.OptionsColumn.ShowCaption = m_status; } column.ColumnEdit = new RepositoryItemCheckEdit(); } } private void xtraTabControl1_SelectedPageChanged(object sender, DevExpress.XtraTab.TabPageChangedEventArgs e) { if (string.IsNullOrEmpty(roleModel.ROLE_ID)) { return; } LoadForm load = new LoadForm(); DevExpress.XtraSplashScreen.SplashScreenManager.ShowForm(load, load.GetType(), false, true, false, 50); DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormDescription("正在加载数据,请稍等...."); switch (e.Page.Name) { case "PageMenu": DataLoadRoleMenu(roleModel.ROLE_ID); DataLoadRoleMenuFuc(roleModel.ROLE_ID); break; case "PageGoods": DataLoadRoleGoodsType(roleModel.ROLE_ID); break; case "PageProvider": DataLoadRoleProvider(roleModel.ROLE_ID); break; //case "PageStorage": // DataLoadRoleStorage(roleModel.ROLE_ID); // break; case "PageUser": DataLoadRoleUser(roleModel.ROLE_ID); break; case "PageDepart": DataLoadDepart(roleModel.ROLE_ID); break; case "PageMessage": DataLoadMessageType(roleModel.ROLE_ID); break; } DevExpress.XtraSplashScreen.SplashScreenManager.CloseForm(); } private void ChangeChildNode(TreeListNode node) { if (node != null) { if (node.Nodes.Count > 0) { foreach (TreeListNode n in node.Nodes) { n.Checked = node.Checked; ChangeChildNode(n); } } } } private void repositoryItemHyperLinkEdit1_Click(object sender, EventArgs e) { // FormBase formBase = OpenFrmTable();//创建窗体 FormBase formBase = OpenFrmTable("WMS.FrmSystems", "FrmUser");//创建窗体 OpenTabAddFrm("0103", "WMS.FrmSystems", "用户信息"); } /// /// 商品分类权限修改记录 /// /// /// private void treeGoodsType_CellValueChanging(object sender, DevExpress.XtraTreeList.CellValueChangedEventArgs e) { if (e.Node == null) { return; } CellValueChanging(sender, e); } /// /// 商品分类权限修改记录 /// /// /// private void ChangeGoodsType(TreeListNode node) { GoodsTypeModel model = new GoodsTypeModel() { GOODS_TYPE_ID = node["GOODS_TYPE_ID"].ToString() }; //if (e.Column.FieldName == "IsCheckRec") //{ if (node["IsCheckRec"].ToString() == "True") { if (listGoodsTypeRoleAdd.Find(r => r.GOODS_TYPE_ID == model.GOODS_TYPE_ID) == null && listGoodsTypeRole.Find(r => r.GOODS_TYPE_ID == model.GOODS_TYPE_ID) == null) { listGoodsTypeRoleAdd.Add(new GoodsRoleModel() { GOODS_TYPE_ID = model.GOODS_TYPE_ID, ROLE_ID = roleModel.ROLE_ID }); } if (listGoodsTypeRoleDel.Find(r => r.GOODS_TYPE_ID == model.GOODS_TYPE_ID) != null) { listGoodsTypeRoleDel.Remove(listGoodsTypeRoleDel.Find(r => r.GOODS_TYPE_ID == model.GOODS_TYPE_ID)); } } else { if (listGoodsTypeRoleDel.Find(r => r.GOODS_TYPE_ID == model.GOODS_TYPE_ID) == null && listGoodsTypeRole.Find(r => r.GOODS_TYPE_ID == model.GOODS_TYPE_ID) != null) { listGoodsTypeRoleDel.Add(listGoodsTypeRole.Find(r => r.GOODS_TYPE_ID == model.GOODS_TYPE_ID)); } if (listGoodsTypeRoleAdd.Find(r => r.GOODS_TYPE_ID == model.GOODS_TYPE_ID) != null) { listGoodsTypeRoleAdd.Remove(listGoodsTypeRoleAdd.Find(r => r.GOODS_TYPE_ID == model.GOODS_TYPE_ID)); } } //} } /// /// 菜单权限修改记录 /// /// /// private void GCMenu_CellValueChanging(object sender, DevExpress.XtraTreeList.CellValueChangedEventArgs e) { if (e.Node == null) { return; } CellValueChanging(sender, e); } private void ChangeMenu(TreeListNode node) { BaseMenuModel model = new BaseMenuModel() { MENU_ID = node["MENU_ID"].ToString() }; if (node["IsCheckRec"].ToString() == "True") { //【新增添加菜单集合】 &&【已有菜单权限集合中没有】 if (listMenuRoleAdd.Find(r => r.MENU_ID == model.MENU_ID) == null && listMenuRole.Find(r => r.MENU_ID == model.MENU_ID) == null) { listMenuRoleAdd.Add(new MenuRoleModel() { MENU_ID = model.MENU_ID, ROLE_ID = roleModel.ROLE_ID }); } //【从新增删除集合中去掉当前节点】 if (listMenuRoleDel.Find(r => r.MENU_ID == model.MENU_ID) != null) { listMenuRoleDel.Remove(listMenuRoleDel.Find(r => r.MENU_ID == model.MENU_ID)); } } else { //【新增删除菜单集合】 &&【已有菜单权限集合中含有】 if (listMenuRoleDel.Find(r => r.MENU_ID == model.MENU_ID) == null && listMenuRole.Find(r => r.MENU_ID == model.MENU_ID) != null) { listMenuRoleDel.Add(listMenuRole.Find(r => r.MENU_ID == model.MENU_ID)); } //【新增添加菜单集合 去掉被排除的】 if (listMenuRoleAdd.Find(r => r.MENU_ID == model.MENU_ID) != null) { listMenuRoleAdd.Remove(listMenuRoleAdd.Find(r => r.MENU_ID == model.MENU_ID)); } } } /// /// 组织机构权限修改记录 /// /// /// private void TreeDepart_CellValueChanging(object sender, DevExpress.XtraTreeList.CellValueChangedEventArgs e) { if (e.Node == null) { return; } CellValueChanging(sender, e); } private void ChangeDepart(TreeListNode node) { CompanyModel model = new CompanyModel() { COM_ID = node["COM_ID"].ToString() }; if (node["IsCheckRec"].ToString() == "True") { if (listDepartRoleAdd.Find(r => r.DEP_ID == model.COM_ID) == null && listDepartRole.Find(r => r.DEP_ID == model.COM_ID) == null) { listDepartRoleAdd.Add(new RoleDepartModel() { DEP_ID = model.COM_ID, ROLE_ID = roleModel.ROLE_ID }); } if (listDepartRoleDel.Find(r => r.DEP_ID == model.COM_ID) != null) { listDepartRoleDel.Remove(listDepartRoleDel.Find(r => r.DEP_ID == model.COM_ID)); } } else { if (listDepartRoleDel.Find(r => r.DEP_ID == model.COM_ID) == null && listDepartRole.Find(r => r.DEP_ID == model.COM_ID) != null) { listDepartRoleDel.Add(listDepartRole.Find(r => r.DEP_ID == model.COM_ID)); } if (listDepartRoleAdd.Find(r => r.DEP_ID == model.COM_ID) != null) { listDepartRoleAdd.Remove(listDepartRoleAdd.Find(r => r.DEP_ID == model.COM_ID)); } } } } }