From fa113f04a917e85af84813487f033fb6bc43a5d7 Mon Sep 17 00:00:00 2001 From: lu <123456> Date: 星期六, 20 九月 2025 15:04:35 +0800 Subject: [PATCH] bug --- DevApp/Gs.DevApp/UserControl/UcDictionarySelect.cs | 123 ++++++++++++++++++++++++++++------------- 1 files changed, 84 insertions(+), 39 deletions(-) diff --git a/DevApp/Gs.DevApp/UserControl/UcDictionarySelect.cs b/DevApp/Gs.DevApp/UserControl/UcDictionarySelect.cs index 9b53c8c..87cea74 100644 --- a/DevApp/Gs.DevApp/UserControl/UcDictionarySelect.cs +++ b/DevApp/Gs.DevApp/UserControl/UcDictionarySelect.cs @@ -6,7 +6,8 @@ using System; using System.Collections.Generic; using System.Data; -using System.Text; +using System.Drawing; +using System.Threading.Tasks; using System.Windows.Forms; @@ -14,36 +15,16 @@ { public partial class UcDictionarySelect : DevExpress.XtraEditors.XtraForm { - private List<string> lstCheckedKeyID = new List<string>();//閫夋嫨灞�ID闆嗗悎 + private List<dynamic> lstCheckedKeyID = new List<dynamic>();//閫夋嫨闆嗗悎 string strTitle = ""; string strWhere = ""; - public UcDictionarySelect(string _strTitle, string _strWhere) + public UcDictionarySelect(string _strTitle, string _strWhere, string _strMsg = "") { InitializeComponent(); - tlMenu.CustomDrawNodeCheckBox += TreeList1_CustomDrawNodeCheckBox; - getTree(); - tlMenu.OptionsBehavior.Editable = true; - tlMenu.OptionsSelection.EnableAppearanceFocusedCell = false; - tlMenu.OptionsSelection.MultiSelect = true; - tlMenu.OptionsSelection.MultiSelectMode = TreeListMultiSelectMode.CellSelect; + lbMsg.Text = _strMsg; this.strTitle = _strTitle; this.strWhere = _strWhere; this.Text = _strTitle; - btnIn.Click += (s, e) => - { - findOrigin(tlMenu); - var list = new List<dynamic>(); - foreach (string key in lstCheckedKeyID) - { - list.Add(new - { - // dicCode = "001", - dicTxt = key - }); - }; - UpdateParent?.Invoke(this, new UpdateParentEventArgs { DynamicList = list }); - Close(); - }; tlMenu.IndicatorWidth = 50; tlMenu.CustomDrawNodeIndicator += (s, ee) => { @@ -51,6 +32,64 @@ { var index = ee.Node.TreeList.GetVisibleIndexByNode(ee.Node); ee.Info.DisplayText = (index + 1).ToString(); + } + }; + getTreeAsync(); + tlMenu.MouseDown += (s, e) => + { + TreeListHitInfo hitInfo = tlMenu.CalcHitInfo(new Point(e.X, e.Y)); + if (hitInfo.HitInfoType == HitInfoType.Cell) + { + TreeListNode node = hitInfo.Node; + if (node != null) + { + if (node.HasChildren) // 鍙湁褰撹妭鐐规湁瀛愯妭鐐规椂鎵嶈�冭檻灞曞紑鎴栨姌鍙� + { + if (node.Expanded) + { + node.Collapse(); + btnOpen.Text = "鍏ㄩ儴灞曞紑"; + } + else + { + node.Expand(); + btnOpen.Text = "鍏ㄩ儴鏀舵嫝"; + } + } + } + } + }; + tlMenu.CustomDrawNodeCheckBox += TreeList1_CustomDrawNodeCheckBox; + btnIn.Click += (s, e) => + { + findOrigin(tlMenu); + var list = new List<dynamic>(); + foreach (dynamic key in lstCheckedKeyID) + { + list.Add(new + { + dicCode = key.dicCode, + dicTxt = key.dicTxt + }); + } + ; + UpdateParent?.Invoke(this, new UpdateParentEventArgs { DynamicList = list }); + Close(); + }; + btnOpen.Click += (s, e) => { + + if (btnOpen.Text == "鍏ㄩ儴灞曞紑") + { + tlMenu.ExpandAll(); + btnOpen.Text = "鍏ㄩ儴鏀舵嫝"; + return; + } + + if (btnOpen.Text == "鍏ㄩ儴鏀舵嫝") + { + tlMenu.CollapseAll(); + btnOpen.Text = "鍏ㄩ儴灞曞紑"; + return; } }; } @@ -72,19 +111,13 @@ e.Handled = true; } } - - // 鍙�夛細澶勭悊鑺傜偣灞曞紑浜嬩欢锛岀‘淇濆姩鎬佸姞杞界殑瀛愯妭鐐圭敓鏁� - private void treeList1_BeforeExpand(object sender, BeforeExpandEventArgs e) - { - // 鑻ュ瓙鑺傜偣鏄姩鎬佸姞杞界殑锛屽湪姝ゅ鍔犺浇鏁版嵁 - // LoadChildNodes(e.Node); - } /// <summary> /// 璇诲彇鍒楄〃 /// </summary> - private void getTree() + private async Task getTreeAsync() { - var pgq = new PageQueryModel(1, 999999, "a.defect_name"); + string _where = " and 1=1 and a.type1=1 and " + this.strWhere; + var pgq = new PageQueryModel(1, 999999, "a.defect_name", "asc", "", _where); var json = JsonConvert.SerializeObject(pgq); try { @@ -97,17 +130,17 @@ tlMenu.ParentFieldName = "pid"; tlMenu.Tag = "defectName"; tlMenu.EndUpdate(); - this.tlMenu.CollapseAll(); - // tlMenu.OptionsBehavior.Editable = true; tlMenu.OptionsBehavior.AllowRecursiveNodeChecking = false; tlMenu.BestFitColumns(); + tlMenu.CollapseAll(); } catch (Exception ex) { MsgHelper.Warning("鎻愮ず锛�" + ex.Message); } + await Task.Delay(500); // 绛夊緟1000姣锛�1绉掞級 + tlMenu.CollapseAll(); } - #region MyRegion @@ -125,20 +158,30 @@ if (drv != null) { string KeyFieldName = (string)drv["defectName"]; - lstCheckedKeyID.Add(KeyFieldName); + string dicCode = (string)drv["defectCode"]; + lstCheckedKeyID.Add(new + { + dicCode = dicCode, + dicTxt = KeyFieldName + }); } } return;//閫掑綊缁堟 } foreach (TreeListNode node in parentNode.Nodes) { - if (node.CheckState == CheckState.Checked) + if (node.CheckState == CheckState.Checked && parentNode.Nodes.Count == 0) { DataRowView drv = tlMenu.GetDataRecordByNode(node) as DataRowView;//鍏抽敭浠g爜锛屽氨鏄笉鐭ラ亾鏄繖鏍疯幏鍙栨暟鎹�岀籂缁撲簡寰堜箙(楝肩煡閬撳彲浠ヨ浆鎹负DataRowView鍟�) if (drv != null) { string KeyFieldName = (string)drv["defectName"]; - lstCheckedKeyID.Add(KeyFieldName); + string dicCode = (string)drv["defectCode"]; + lstCheckedKeyID.Add(new + { + dicCode = dicCode, + dicTxt = KeyFieldName + }); } } GetCheckedKeyID(node); @@ -160,5 +203,7 @@ } } #endregion + + } } \ No newline at end of file -- Gitblit v1.9.3