From 3a6e552259847fee78104ebda0a18dbf889df1d5 Mon Sep 17 00:00:00 2001 From: lu <99954486@qq.com> Date: 星期四, 20 三月 2025 16:46:28 +0800 Subject: [PATCH] 角色 --- DevApp/Gs.DevApp/UserControl/UcToolBarMenu.cs | 374 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 331 insertions(+), 43 deletions(-) diff --git a/DevApp/Gs.DevApp/UserControl/UcToolBarMenu.cs b/DevApp/Gs.DevApp/UserControl/UcToolBarMenu.cs index a80ba14..8c0bb8f 100644 --- a/DevApp/Gs.DevApp/UserControl/UcToolBarMenu.cs +++ b/DevApp/Gs.DevApp/UserControl/UcToolBarMenu.cs @@ -2,16 +2,22 @@ using System.Collections.Generic; using System.Configuration; using System.Data; +using System.IO; using System.Linq; using System.Net; +using System.Text; using System.Windows.Forms; using DevExpress.XtraBars; using DevExpress.XtraEditors; +using DevExpress.XtraGrid; +using DevExpress.XtraGrid.Views.Grid; +using DevExpress.XtraLayout; using Gs.DevApp.DevFrm.Rpt; using Gs.DevApp.DevFrm.Sys; using Gs.DevApp.Entity; using Gs.DevApp.ToolBox; using Newtonsoft.Json; +using Newtonsoft.Json.Linq; namespace Gs.DevApp.UserControl { @@ -26,7 +32,6 @@ btnLoad.ItemClick += BtnLoad_ItemClick; btnSave.ItemClick += BtnSave_ItemClick; btnEsc.ItemClick += BtnEsc_ItemClick; - btnRole.ItemClick += BtnRole_ItemClick; btnQuery.ItemClick += BtnQuery_ItemClick; btnReport.ItemClick += BtnReport_ItemClick; btnDesign.ItemClick += BtnDesign_ItemClick; @@ -47,16 +52,14 @@ btnFjieAn.ItemClick += BtnFjieAn_ItemClick; btnTzbl.ItemClick += BtnTzbl_ItemClick; btnKg.ItemClick += BtnKg_ItemClick; - btnDkg.ItemClick += BtnDkg_ItemClick; - btnZanTing.ItemClick += BtnZanTing_ItemClick; - btnBdll.ItemClick += BtnBdll_ItemClick; + btnZhongTai.ItemClick += BtnbZhongTai_ItemClick; btnWg.ItemClick += BtnWg_ItemClick; - btnFtzbl.ItemClick += BtnFtzbl_ItemClick; btnHelp.ItemClick += BtnHelp_ItemClick; + btnLayout.ItemClick += BtnLayout_ItemClick; var lst = new List<string>(); foreach (BarItem item in barManager1.Items) if (item is BarLargeButtonItem largeButtonItem) - if (!string.IsNullOrEmpty(item.Caption) && item.Caption != "淇濆瓨" && item.Caption != "鍒锋柊") + if (!string.IsNullOrEmpty(item.Caption) && item.Caption != "淇濆瓨" && item.Caption != "鍒锋柊" && item.Caption != "甯姪" && item.Caption != "淇濆瓨鐗堥潰" && item.Caption != "鍙栨秷") lst.Add(item.Caption); actions = lst; } @@ -69,6 +72,42 @@ { base.OnCreateControl(); if (Parent != null) getNamespace(); + } + + private bool _isCk(int _type) + { + Form parentForm = this.FindForm(); + if (parentForm != null) + { + PictureBox specificControl = (PictureBox)parentForm.Controls.Find("picCheckBox", true).FirstOrDefault(); + if (specificControl == null) + return false; + if (specificControl.Tag == null) + return false; + if (_type == 1) + { + if (specificControl != null) + { + if (specificControl.Tag.ToString() == "宸插鏍�") + { + Gs.DevApp.ToolBox.MsgHelper.ShowInformation("璇ュ崟鎹凡琚鏍革紝鏃犳硶杩涜鎿嶄綔锛�"); + return true; + } + } + } + if (_type == 0) + { + if (specificControl != null) + { + if (specificControl.Tag.ToString() == "鏈鏍�") + { + Gs.DevApp.ToolBox.MsgHelper.ShowInformation("璇ュ崟鎹湭琚鏍革紝鏃犳硶杩涜鎿嶄綔锛�"); + return true; + } + } + } + } + return false; } private void BtnBoHui_ItemClick(object sender, ItemClickEventArgs e) @@ -177,6 +216,8 @@ private void BtnFchk_ItemClick(object sender, ItemClickEventArgs e) { + bool bl = _isCk(0); + if (bl) return; if (btnFChkClick != null) { btnFChkClick(this, e); @@ -186,6 +227,8 @@ private void BtnChk_ItemClick(object sender, ItemClickEventArgs e) { + bool bl = _isCk(1); + if (bl) return; if (btnChkClick != null) { btnChkClick(this, e); @@ -230,6 +273,8 @@ private void BtnFjianYan_ItemClick(object sender, ItemClickEventArgs e) { + bool bl = _isCk(0); + if (bl) return; if (btnFjianYanClick != null) btnFjianYanClick(this, e); else @@ -253,6 +298,8 @@ private void BtnJianYan_ItemClick(object sender, ItemClickEventArgs e) { + bool bl = _isCk(1); + if (bl) return; if (btnJianYanClick != null) btnJianYanClick(this, e); else @@ -280,7 +327,7 @@ //_ckService(1.ToString()); } - private async void BtnIn_ItemClick(object sender, ItemClickEventArgs e) + private async void BtnIn_ItemClick(object sender, ItemClickEventArgs e) { if (string.IsNullOrEmpty(xlsInService)) { @@ -420,10 +467,6 @@ { if (btnQueryClick != null) btnQueryClick(this, e); } - private void BtnFtzbl_ItemClick(object sender, ItemClickEventArgs e) - { - if (btnFtzblClick != null) btnFtzblClick(this, e); - } private void BtnEsc_ItemClick(object sender, ItemClickEventArgs e) { @@ -434,7 +477,6 @@ lst.Add(btnEdit.Name); lst.Add(btnLoad.Name); lst.Add(btnDel.Name); - lst.Add(btnRole.Name); lst.Add(btnQuery.Name); lst.Add(btnReport.Name); lst.Add(btnDesign.Name); @@ -447,7 +489,14 @@ lst.Add(btnLog.Name); lst.Add(btnPiZhun.Name); lst.Add(btnHelp.Name); + lst.Add(btnLayout.Name); + lst.Add(btnBoHui.Name); + lst.Add(btnTzbl.Name); + lst.Add(btnKg.Name); + lst.Add(btnWg.Name); + lst.Add(btnZhongTai.Name); _enabledBtn(lst); + this.currentAction = "esc"; if (btnEscClick != null) btnEscClick(this, e); } } @@ -465,6 +514,26 @@ lst.Add(btnAdd.Name); lst.Add(btnEdit.Name); lst.Add(btnEsc.Name); + lst.Add(btnChk.Name); + lst.Add(btnFchk.Name); + lst.Add(btnDel.Name); + lst.Add(btnJianYan.Name); + lst.Add(btnFjianYan.Name); + lst.Add(btnQuery.Name); + lst.Add(btnLog.Name); + lst.Add(btnZhiLiangChk.Name); + lst.Add(btnZhiLiangFchk.Name); + lst.Add(btnPiZhun.Name); + lst.Add(btnBoHui.Name); + lst.Add(btnDesign.Name); + lst.Add(btnReport.Name); + lst.Add(btnKg.Name); + lst.Add(btnWg.Name); + lst.Add(btnZhongTai.Name); + lst.Add(btnHelp.Name); + lst.Add(btnLayout.Name); + lst.Add(btnLoad.Name); + lst.Add(btnTzbl.Name); _enabledBtn(lst); } } @@ -481,17 +550,26 @@ private void BtnEdit_ItemClick(object sender, ItemClickEventArgs e) { + bool bl = _isCk(1); + if (bl) return; var lst = new List<string>(); lst.Add(btnSave.Name); lst.Add(btnEsc.Name); lst.Add(btnHelp.Name); + lst.Add(btnLayout.Name); _enabledBtn(lst); + this.currentAction = "edit"; if (btnEdtClick != null) btnEdtClick(this, e); } private void BtnDel_ItemClick(object sender, ItemClickEventArgs e) { + bool bl = _isCk(1); + if (bl) return; if (btnDelClick != null) btnDelClick(this, e); + + // btnEsc.Enabled = false; + this.currentAction = ""; } /// <summary> @@ -504,8 +582,20 @@ lst.Add(btnSave.Name); lst.Add(btnEsc.Name); lst.Add(btnHelp.Name); + lst.Add(btnLayout.Name); _enabledBtn(lst); + this.currentAction = "add"; if (btnAddClick != null) btnAddClick(this, e); + Form parentForm = this.FindForm(); + if (parentForm != null) + { + PictureBox specificControl = (PictureBox)parentForm.Controls.Find("picCheckBox", true).FirstOrDefault(); + if (specificControl != null) + { + specificControl.Image = global::Gs.DevApp.Properties.Resources.ico_noCheck; + specificControl.Tag = "鏈鏍�"; + } + } } private void BtnRole_ItemClick(object sender, ItemClickEventArgs e) @@ -522,19 +612,11 @@ if (btnWgClick != null) btnWgClick(this, e); } - private void BtnBdll_ItemClick(object sender, ItemClickEventArgs e) - { - if (btnBdllClick != null) btnBdllClick(this, e); - } - private void BtnZanTing_ItemClick(object sender, ItemClickEventArgs e) - { - if (btnZanTingClick != null) btnZanTingClick(this, e); - } - private void BtnDkg_ItemClick(object sender, ItemClickEventArgs e) + private void BtnbZhongTai_ItemClick(object sender, ItemClickEventArgs e) { - if (btnBtnDkgClick != null) btnBtnDkgClick(this, e); + if (btnZhongTaiClick != null) btnZhongTaiClick(this, e); } private void BtnKg_ItemClick(object sender, ItemClickEventArgs e) @@ -573,10 +655,22 @@ return; } Gs.DevApp.ToolBox.MsgHelper.ShowInformation(_rtnJson.rtnMsg); - } - + private void BtnLayout_ItemClick(object sender, ItemClickEventArgs ee) + { + Form parentForm = this.Parent as Form; + string _formNamespace = parentForm.GetType().FullName; + if (parentForm != null) + { + List<DevExpress.XtraGrid.Views.Grid.GridView> gvList = getGvList(); + List<DevExpress.XtraLayout.LayoutControl> layList = getLayList(); + List<DevExpress.XtraEditors.SplitContainerControl> spcList = getSpcList(); + Gs.DevApp.UserControl.showLayOut DevFrm = new showLayOut(_formNamespace, gvList, layList, spcList); + DevFrm.ShowDialog(); + } + //if (btnLayoutClick != null) btnLayoutClick(this, ee); + } private void _enabledBtn(List<string> lstBtn) { foreach (BarItem item in barManager1.Items) @@ -610,7 +704,6 @@ var _obj = new { userGuid = LoginInfoModel.CurrentUser.LoginUserGuid, - orgGuid = LoginInfoModel.CurrentUser.LoginOrgGuid, formNamespace = _formNamespace }; var strReturn = ""; @@ -621,6 +714,19 @@ JsonConvert.SerializeObject(_obj)); var dd = UtilityHelper.ReturnToList(strReturn); var dt = dd.rtnData; + + if (!string.IsNullOrEmpty(defaultActions) && defaultActions.Contains("鏌ヨ")) { + if (dt == null || dt.Rows.Count <= 0) + { + dt.Columns.Add("guid", typeof(string)); + dt.Columns.Add("name", typeof(string)); + } + DataRow newRow = dt.NewRow(); + newRow["guid"] = Guid.NewGuid().ToString(); + newRow["name"] = "鏌ヨ"; + dt.Rows.Add(newRow); + } + var _enabledList = new List<string>(); foreach (BarItem item in barManager1.Items) { @@ -703,6 +809,7 @@ //榛樿鍚敤鐨勬寜閽� _enabledList.Add(btnLoad.Name); _enabledList.Add(btnHelp.Name); + _enabledList.Add(btnLayout.Name); _enabledBtn(_enabledList); } catch (Exception ex) @@ -745,11 +852,11 @@ catch (Exception ex) { MsgHelper.Warning("鎻愮ず锛�" + ex.Message); - return true; + return false; } return false; } - + #region 鍏叡浜嬩欢 @@ -886,29 +993,18 @@ public event EventHandler btnTzblClick; /// <summary> - /// 寰呭紑宸� + /// 鐘舵�� /// </summary> - public event EventHandler btnBtnDkgClick; - - /// <summary> - /// 宸ュ崟鏆傚仠 - /// </summary> - public event EventHandler btnZanTingClick; - - /// <summary> - /// 澶囧崟棰嗘枡 - /// </summary> - public event EventHandler btnBdllClick; + public event EventHandler btnZhongTaiClick; /// <summary> /// 鎵嬪姩瀹屽伐 /// </summary> public event EventHandler btnWgClick; - /// <summary> - /// 鍙嶉�氱煡澶囨枡 - /// </summary> - public event EventHandler btnFtzblClick; + + //public event EventHandler btnLayoutClick; + #endregion #region 鍏叡灞炴�� @@ -945,8 +1041,200 @@ /// </summary> public string chkParameter { get; set; } + /// <summary> + /// 褰撳墠鐘舵�� + /// </summary> + public string currentAction { get; set; } + + public string defaultActions { get; set; } #endregion + + /// <summary> + /// 鏌ユ壘gridView + /// </summary> + /// <returns></returns> + private List<DevExpress.XtraGrid.Views.Grid.GridView> getGvList() + { + Form parentForm; + if (this.Parent is Form) + parentForm = this.Parent as Form; + else + parentForm = this.Parent.Parent as Form; + List<DevExpress.XtraGrid.Views.Grid.GridView> gvList = new List<DevExpress.XtraGrid.Views.Grid.GridView>(); + //鏌ユ壘gridview,涓婚〉闈� + GridControl gcMain = parentForm.Controls.Find("gcMain1", true).OfType<GridControl>().FirstOrDefault(); + if (gcMain != null) + { + GridView gv1 = gcMain.MainView as GridView; + if (gv1 != null) + { + gvList.Add(gv1); + } + } + GridControl mx = parentForm.Controls.Find("gcMx1", true).OfType<GridControl>().FirstOrDefault(); + if (mx != null) + { + GridView gv1 = mx.MainView as GridView; + if (gv1 != null) + { + gvList.Add(gv1); + } + } + GridControl mx2 = parentForm.Controls.Find("gcMx2", true).OfType<GridControl>().FirstOrDefault(); + if (mx2 != null) + { + GridView gv1 = mx2.MainView as GridView; + if (gv1 != null) + { + gvList.Add(gv1); + } + } + return gvList; + } + /// <summary> + /// 鏌ユ壘LayoutControl + /// </summary> + /// <returns></returns> + private List<DevExpress.XtraLayout.LayoutControl> getLayList() + { + Form parentForm; + if (this.Parent is Form) + parentForm = this.Parent as Form; + else + parentForm = this.Parent.Parent as Form; + List<DevExpress.XtraLayout.LayoutControl> layList = new List<DevExpress.XtraLayout.LayoutControl>(); + DevExpress.XtraLayout.LayoutControl lay2 = parentForm.Controls.Find("layoutMx1", true).OfType<DevExpress.XtraLayout.LayoutControl>().FirstOrDefault(); + if (lay2 != null) + { + layList.Add(lay2); + } + return layList; + } + + /// <summary> + /// 鏌ユ壘SplitContainerControl + /// </summary> + /// <returns></returns> + private List<DevExpress.XtraEditors.SplitContainerControl> getSpcList() + { + Form parentForm; + if (this.Parent is Form) + parentForm = this.Parent as Form; + else + parentForm = this.Parent.Parent as Form; + List<DevExpress.XtraEditors.SplitContainerControl> spcList = new List<DevExpress.XtraEditors.SplitContainerControl>(); + DevExpress.XtraEditors.SplitContainerControl spc1 = parentForm.Controls.Find("split1", true).OfType<DevExpress.XtraEditors.SplitContainerControl>().FirstOrDefault(); + DevExpress.XtraEditors.SplitContainerControl spc2 = parentForm.Controls.Find("splitMx1", true).OfType<DevExpress.XtraEditors.SplitContainerControl>().FirstOrDefault(); + if (spc1 != null) + { + spcList.Add(spc1); + } + if (spc2 != null) + { + spcList.Add(spc2); + } + return spcList; + } + + /// <summary> + /// 璇诲彇xml閰嶇疆锛岀洰鍓嶉厤缃甮cMain1,layoutMx1 + /// </summary> + public void getXmlConfig() + { + Form parentForm; + if (this.Parent is Form) + parentForm = this.Parent as Form; + else + parentForm = this.Parent.Parent as Form; + + string _formNamespace = parentForm.GetType().FullName; + List<DevExpress.XtraGrid.Views.Grid.GridView> gvList = getGvList(); + List<DevExpress.XtraLayout.LayoutControl> layList = getLayList(); + List<DevExpress.XtraEditors.SplitContainerControl> spcList = getSpcList(); + JArray array = new JArray(); + var _obj = new + { + formPath = _formNamespace, + }; + try + { + string strJson = UtilityHelper.HttpPost("", "Fm/GetModel", JsonConvert.SerializeObject(_obj)); + ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson); + if (_rtn.rtnCode > 0) + { + JObject _job = JObject.Parse(strJson); + foreach (var a in _job["rtnData"]["list"]) + { + //string _id = a["controlId"].ToString(); + //string _controlType = a["controlType"].ToString(); + //string _controlXml = a["controlXml"].ToString(); + //string _splitterPosition = a["splitterPosition"].ToString(); + array.Add(a); + } + foreach (GridView gv in gvList) + { + JToken john = array.FirstOrDefault(t => t["controlId"].ToString().ToUpper() == gv.Name.ToString().Trim().ToUpper()); + if (john != null) + { + string controlId = john["controlId"].ToString(); + string controlXml = john["controlXml"].ToString(); + byte[] byteArray = Encoding.UTF8.GetBytes(controlXml); + using (var stream = new MemoryStream(byteArray)) + { + gv.RestoreLayoutFromStream(stream); + } + } + } + foreach (LayoutControl lay in layList) + { + JToken john = array.FirstOrDefault(t => t["controlId"].ToString().ToUpper() == lay.Name.ToString().Trim().ToUpper()); + if (john != null) + { + string controlId = john["controlId"].ToString(); + string controlXml = john["controlXml"].ToString(); + byte[] byteArray = Encoding.UTF8.GetBytes(controlXml); + using (var stream = new MemoryStream(byteArray)) + { + lay.RestoreLayoutFromStream(stream); + } + } + } + foreach (SplitContainerControl spt in spcList) + { + JToken john = array.FirstOrDefault(t => t["controlId"].ToString().ToUpper() == spt.Name.ToString().Trim().ToUpper()); + if (john != null) + { + string controlId = john["controlId"].ToString(); + string controlXml = john["controlXml"].ToString(); + // string splitterPosition = john["splitterPosition"].ToString(); + byte[] byteArray = Encoding.UTF8.GetBytes(controlXml); + using (var stream = new MemoryStream(byteArray)) + { + spt.RestoreLayoutFromStream(stream); + } + spt.Horizontal = false; + spt.Panel1.AutoScroll = false; + spt.Panel2.AutoScroll = false; + //spt.Panel1.MaximumSize = new System.Drawing.Size(spt.Panel1.Width, 100); + // spt.SplitterPosition = int.Parse( splitterPosition); + spt.ShowSplitGlyph = DevExpress.Utils.DefaultBoolean.True; + if (spt.Name.Contains("Mx")) + spt.FixedPanel = DevExpress.XtraEditors.SplitFixedPanel.Panel1; + else + spt.FixedPanel = DevExpress.XtraEditors.SplitFixedPanel.Panel2; + + } + } + } + else + ToolBox.MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnMsg); + } + catch (Exception ex) + { + ToolBox.MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + } + } } } \ No newline at end of file -- Gitblit v1.9.3