duheng
2024-10-18 8e1523be1951458d436c9eb0686cd0f6dbf4e167
基础模块增加排序功能
已修改17个文件
已删除1个文件
1577 ■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.Basic/00-SysTypeManage/Class1.cs 1118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/00-ViewModel/SysCatalogViewModel.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.Designer.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.cs 115 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.resx 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysTypeListBoxCtrl.designer.cs 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysTypeListBoxCtrl.resx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/UpdateCatalogParentDlg.Designer.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/UpdateCatalogParentDlg.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/UpdateCatalogParentDlg.resx 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SetSysPropChoiceDlg.resx 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropGroupTreeListCtrl.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropGroupTreeListCtrl.designer.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropGroupTreeListCtrl.resx 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropManageMainPanel.Designer.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropManageMainPanel.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropManageMainPanel.resx 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/HStation.WinFrmUI.Basic.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Basic/00-SysTypeManage/Class1.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/00-ViewModel/SysCatalogViewModel.cs
@@ -2,6 +2,21 @@
{
    public class SysCatalogViewModel
    {
        public SysCatalogViewModel()
        {
        }
        public SysCatalogViewModel(SysCatalogViewModel rhs)
        {
            this.ID = rhs.ID;
            this.ParentID = rhs.ParentID;
            this.Description = rhs.Description;
            this.Name = rhs.Name;
            this.TypeID = rhs.TypeID;
            this.SortCode = rhs.SortCode;
            this.Code = rhs.Code;
        }
        public SysCatalogViewModel(Yw.Vmo.SysCatalogVmo rhs)
        {
            this.ID = rhs.ID;
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.Designer.cs
@@ -52,7 +52,6 @@
            barButtonItem1 = new DevExpress.XtraBars.BarButtonItem();
            svgImage32 = new DevExpress.Utils.SvgImageCollection(components);
            sidePanel1 = new DevExpress.XtraEditors.SidePanel();
            behaviorManager1 = new DevExpress.Utils.Behaviors.BehaviorManager(components);
            ((System.ComponentModel.ISupportInitialize)ribbonControl1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)dockManager1).BeginInit();
            dockPanel1.SuspendLayout();
@@ -61,7 +60,6 @@
            ((System.ComponentModel.ISupportInitialize)catalogViewModelBindingSource).BeginInit();
            ((System.ComponentModel.ISupportInitialize)svgImage32).BeginInit();
            sidePanel1.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)behaviorManager1).BeginInit();
            SuspendLayout();
            // 
            // ribbonControl1
@@ -203,6 +201,7 @@
            treeList1.OptionsView.ShowTreeLines = DevExpress.Utils.DefaultBoolean.True;
            treeList1.Size = new Size(933, 446);
            treeList1.TabIndex = 4;
            treeList1.DragDrop += treeList1_DragDrop;
            // 
            // colName
            // 
@@ -283,7 +282,6 @@
            ((System.ComponentModel.ISupportInitialize)svgImage32).EndInit();
            sidePanel1.ResumeLayout(false);
            sidePanel1.PerformLayout();
            ((System.ComponentModel.ISupportInitialize)behaviorManager1).EndInit();
            ResumeLayout(false);
        }
@@ -310,7 +308,6 @@
        private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup2;
        private DevExpress.XtraEditors.SidePanel sidePanel1;
        private DevExpress.XtraBars.BarButtonItem barBtnUpdateParent;
        private DevExpress.Utils.Behaviors.BehaviorManager behaviorManager1;
        private DevExpress.XtraBars.BarCheckItem barCheckSorter;
    }
}
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.cs
@@ -1,5 +1,11 @@
using DevExpress.Utils.DragDrop;
using DevExpress.XtraLayout.Customization.Behaviours;
using DevExpress.XtraEditors;
using DevExpress.XtraTreeList;
using DevExpress.XtraTreeList.Handler;
using DevExpress.XtraTreeList.Nodes;
using SqlSugar;
using System.ComponentModel;
using System.Reflection;
namespace HStation.WinFrmUI.Basic
{
@@ -19,6 +25,8 @@
        private Yw.BLL.SysCatalog _bll;
        private List<SysCatalogViewModel> _IndexList;
        public override void InitialDataSource()
        {
            this.typeTreeListCtrl2.SetBindingData();
@@ -35,8 +43,8 @@
            {
                _allBindingList.Add(new SysCatalogViewModel(item));
            }
            _allBindingList = _allBindingList.OrderBy(x => x.SortCode).ToList();
            this.catalogViewModelBindingSource.DataSource = _allBindingList;
            _IndexList = _allBindingList.Select(x => new SysCatalogViewModel(x)).ToList();
            this.catalogViewModelBindingSource.ResetBindings(false);
            this.treeList1.ExpandAll();
        }
@@ -149,7 +157,7 @@
                return;
            }
            var dlg = new UpdateCatalogParentDlg();
            dlg.SetBindingData(currentVm.TypeID, currentVm.ID);
            dlg.SetBindingData(currentVm.TypeID, currentVm.ID, currentVm.ParentID);
            dlg.ReloadEvent += async (parentId) =>
            {
                var bol = await _bll.UpdateTreeSortCode(currentVm.ID, parentId, 1);
@@ -163,32 +171,97 @@
            dlg.ShowDialog();
        }
        private TreeListNode currentDragNode = null;
        private void treeList1_DragDrop(object sender, DragEventArgs e)
        {
            currentDragNode = (TreeListNode)e.Data.GetData(typeof(TreeListNode));
            var currentvm = GetViewModel(currentDragNode);
            var dragInsertPosition = AjustDirection(sender, e);
            var targetNode = GetTargetNode(e);
            var targetVm = GetViewModel(targetNode);
            var currentIndex = _allBindingList.IndexOf(currentvm);  //操作目标索引
            var targetIndex = _allBindingList.IndexOf(targetVm);  //目标位置索引
            if (dragInsertPosition == DragInsertPosition.AsChild || targetVm == null || currentvm == null)
            {
                e.Effect = DragDropEffects.None;
                return;
            }
            if (dragInsertPosition == DragInsertPosition.After)
            {
                _IndexList.RemoveAt(currentIndex);
                _IndexList.Insert(targetIndex + 1, currentvm);
            }
            else if (dragInsertPosition == DragInsertPosition.Before)
            {
                _IndexList.RemoveAt(currentIndex);
                _IndexList.Insert(targetIndex - 1, currentvm);
            }
            if (currentvm.ParentID == targetVm.ParentID)
            {
                /*  var sortIndex = currentvm.SortCode;
                  currentvm.SortCode = targetVm.SortCode;
                  targetVm.SortCode = sortIndex;*/
                SetTreeListSorter(currentvm.ParentID);
                return;
            }
            e.Effect = DragDropEffects.None;
        }
        /// <summary>
        /// èŽ·å–æ‹–åŠ¨è¿‡ç¨‹ä¸­çš„æ–¹å‘
        /// </summary>
        private DragInsertPosition AjustDirection(object sender, DragEventArgs e)
        {
            PropertyInfo pi = typeof(TreeList).GetProperty("Handler", BindingFlags.Instance | BindingFlags.NonPublic);
            TreeListHandler handler = (TreeListHandler)pi.GetValue(this.treeList1, null);
            return handler.StateData.DragInfo.DragInsertPosition;
        }
        private async void SetTreeListSorter(long parentId)
        {
            var sortList = new List<Yw.Vmo.Sorter>();
            var targetList = _IndexList.Where(x => x.ParentID == parentId).ToList();
            int i = 1;
            foreach (var item in targetList)
            {
                sortList.Add(new Yw.Vmo.Sorter { ID = item.ID, SortCode = i });
                i++;
            }
            if (!await _bll.UpdateSorter(sortList))
            {
                TipFormHelper.ShowError("修改排序失败!");
            }
            //  this.catalogViewModelBindingSource.ResetBindings(false);
        }
        private TreeListNode GetTargetNode(DragEventArgs e)
        {
            var point = new Point(e.X, e.Y);
            var clientPoint = this.treeList1.PointToClient(point);
            var targetNode = this.treeList1.GetNodeAt(clientPoint);
            return targetNode;
        }
        private SysCatalogViewModel GetViewModel(TreeListNode node)
        {
            if (node == null)
                return default;
            var vm = this.treeList1.GetDataRecordByNode(node) as SysCatalogViewModel;
            return vm;
        }
        private void barCheckSorter_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (barCheckSorter.Checked)
            {
                behaviorManager1.Attach<DragDropBehavior>(treeList1, behavior =>
                {
                    behavior.BeginDragDrop += Behavior_BeginDragDrop;
                    behavior.EndDragDrop += Behavior_EndDragDrop;
                });
                this.treeList1.OptionsDragAndDrop.DragNodesMode = DragNodesMode.Single;
            }
            else
            {
                behaviorManager1.Detach<DragDropBehavior>(treeList1);
                this.treeList1.OptionsDragAndDrop.DragNodesMode = DragNodesMode.None;
            }
        }
        private void Behavior_BeginDragDrop(object sender, BeginDragDropEventArgs e)
        {
        }
        private async void Behavior_EndDragDrop(object sender, EndDragDropEventArgs e)
        {
            foreach (var item in _allBindingList)
            {
            }
            //   await _bll.update()
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.resx
@@ -262,7 +262,4 @@
  <metadata name="svgImage32.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>406, 21</value>
  </metadata>
  <metadata name="behaviorManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>532, 21</value>
  </metadata>
</root>
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysTypeListBoxCtrl.designer.cs
@@ -36,6 +36,7 @@
            barBtnCollpseAll = new DevExpress.XtraBars.BarButtonItem();
            barBtnSearchBox = new DevExpress.XtraBars.BarCheckItem();
            barCkTreeLine = new DevExpress.XtraBars.BarCheckItem();
            barBtnRefresh = new DevExpress.XtraBars.BarButtonItem();
            barDockControlTop = new DevExpress.XtraBars.BarDockControl();
            barDockControlBottom = new DevExpress.XtraBars.BarDockControl();
            barDockControlLeft = new DevExpress.XtraBars.BarDockControl();
@@ -84,7 +85,6 @@
            barRootBasicInfoMgr = new DevExpress.XtraBars.BarSubItem();
            popupMenu1 = new DevExpress.XtraBars.PopupMenu(components);
            popupMenu2 = new DevExpress.XtraBars.PopupMenu(components);
            barBtnRefresh = new DevExpress.XtraBars.BarButtonItem();
            ((System.ComponentModel.ISupportInitialize)barManager1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
@@ -108,7 +108,7 @@
            barManager1.DockControls.Add(barDockControlRight);
            barManager1.Form = this;
            barManager1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { barBtnSearchBox, barButtonItem1, barButtonItem2, barButtonItem3, barBtnExpandAll, barBtnCollpseAll, barCkTreeLine, barBtnRefresh });
            barManager1.MaxItemId = 60;
            barManager1.MaxItemId = 61;
            // 
            // bar1
            // 
@@ -157,6 +157,14 @@
            barCkTreeLine.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barCkTreeLine.ImageOptions.SvgImage");
            barCkTreeLine.Name = "barCkTreeLine";
            barCkTreeLine.CheckedChanged += barCkTreeLine_ItemClick;
            //
            // barBtnRefresh
            //
            barBtnRefresh.Caption = "刷新";
            barBtnRefresh.Id = 59;
            barBtnRefresh.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnRefresh.ImageOptions.SvgImage");
            barBtnRefresh.Name = "barBtnRefresh";
            barBtnRefresh.ItemClick += barBtnRefresh_ItemClick;
            // 
            // barDockControlTop
            // 
@@ -515,14 +523,6 @@
            // 
            popupMenu2.Manager = barManager1;
            popupMenu2.Name = "popupMenu2";
            //
            // barBtnRefresh
            //
            barBtnRefresh.Caption = "刷新";
            barBtnRefresh.Id = 59;
            barBtnRefresh.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barButtonItem4.ImageOptions.SvgImage");
            barBtnRefresh.Name = "barBtnRefresh";
            barBtnRefresh.ItemClick += barBtnRefresh_ItemClick;
            // 
            // SysTypeListBoxCtrl
            // 
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysTypeListBoxCtrl.resx
@@ -201,7 +201,7 @@
        Zz4L
</value>
  </data>
  <data name="barButtonItem4.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
  <data name="barBtnRefresh.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/UpdateCatalogParentDlg.Designer.cs
@@ -28,6 +28,7 @@
        /// </summary>
        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(UpdateCatalogParentDlg));
            emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
            ComboBoxEditParentsChoice = new DevExpress.XtraEditors.TreeListLookUpEdit();
@@ -40,6 +41,7 @@
            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
            emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem();
            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
            simpleLabelItemDelete = new DevExpress.XtraLayout.SimpleLabelItem();
            ((System.ComponentModel.ISupportInitialize)emptySpaceItem1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
@@ -50,6 +52,7 @@
            ((System.ComponentModel.ISupportInitialize)layoutControlItem1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)emptySpaceItem3).BeginInit();
            ((System.ComponentModel.ISupportInitialize)layoutControlItem3).BeginInit();
            ((System.ComponentModel.ISupportInitialize)simpleLabelItemDelete).BeginInit();
            SuspendLayout();
            // 
            // emptySpaceItem1
@@ -83,9 +86,9 @@
            ComboBoxEditParentsChoice.Properties.PopupSizeable = false;
            ComboBoxEditParentsChoice.Properties.TreeList = treeListLookUpEdit1TreeList;
            ComboBoxEditParentsChoice.Properties.ValueMember = "ID";
            ComboBoxEditParentsChoice.Size = new Size(244, 20);
            ComboBoxEditParentsChoice.Size = new Size(211, 20);
            ComboBoxEditParentsChoice.StyleController = layoutControl1;
            ComboBoxEditParentsChoice.TabIndex = 10;
            ComboBoxEditParentsChoice.TabIndex = 0;
            // 
            // treeListLookUpEdit1TreeList
            // 
@@ -110,22 +113,22 @@
            btnCancel.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Danger;
            btnCancel.Appearance.Options.UseBackColor = true;
            btnCancel.DialogResult = DialogResult.Cancel;
            btnCancel.Location = new Point(280, 36);
            btnCancel.Location = new Point(271, 36);
            btnCancel.Name = "btnCancel";
            btnCancel.Size = new Size(40, 22);
            btnCancel.Size = new Size(49, 22);
            btnCancel.StyleController = layoutControl1;
            btnCancel.TabIndex = 2;
            btnCancel.TabIndex = 3;
            btnCancel.Text = "取消";
            // 
            // BtnOk
            // 
            BtnOk.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Primary;
            BtnOk.Appearance.Options.UseBackColor = true;
            BtnOk.Location = new Point(231, 36);
            BtnOk.Location = new Point(218, 36);
            BtnOk.Name = "BtnOk";
            BtnOk.Size = new Size(45, 22);
            BtnOk.Size = new Size(49, 22);
            BtnOk.StyleController = layoutControl1;
            BtnOk.TabIndex = 0;
            BtnOk.TabIndex = 2;
            BtnOk.Text = "完成";
            BtnOk.Click += BtnOk_Click;
            // 
@@ -133,7 +136,7 @@
            // 
            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
            Root.GroupBordersVisible = false;
            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2, layoutControlItem1, emptySpaceItem3, layoutControlItem3 });
            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2, layoutControlItem1, emptySpaceItem3, layoutControlItem3, simpleLabelItemDelete });
            Root.Name = "Root";
            Root.Size = new Size(332, 72);
            Root.TextVisible = false;
@@ -141,18 +144,18 @@
            // layoutControlItem2
            // 
            layoutControlItem2.Control = btnCancel;
            layoutControlItem2.Location = new Point(268, 24);
            layoutControlItem2.Location = new Point(259, 24);
            layoutControlItem2.Name = "layoutControlItem2";
            layoutControlItem2.Size = new Size(44, 28);
            layoutControlItem2.Size = new Size(53, 28);
            layoutControlItem2.TextSize = new Size(0, 0);
            layoutControlItem2.TextVisible = false;
            // 
            // layoutControlItem1
            // 
            layoutControlItem1.Control = BtnOk;
            layoutControlItem1.Location = new Point(219, 24);
            layoutControlItem1.Location = new Point(206, 24);
            layoutControlItem1.Name = "layoutControlItem1";
            layoutControlItem1.Size = new Size(49, 28);
            layoutControlItem1.Size = new Size(53, 28);
            layoutControlItem1.TextSize = new Size(0, 0);
            layoutControlItem1.TextVisible = false;
            // 
@@ -161,7 +164,7 @@
            emptySpaceItem3.AllowHotTrack = false;
            emptySpaceItem3.Location = new Point(0, 24);
            emptySpaceItem3.Name = "emptySpaceItem3";
            emptySpaceItem3.Size = new Size(219, 28);
            emptySpaceItem3.Size = new Size(206, 28);
            emptySpaceItem3.TextSize = new Size(0, 0);
            // 
            // layoutControlItem3
@@ -169,9 +172,22 @@
            layoutControlItem3.Control = ComboBoxEditParentsChoice;
            layoutControlItem3.Location = new Point(0, 0);
            layoutControlItem3.Name = "layoutControlItem3";
            layoutControlItem3.Size = new Size(312, 24);
            layoutControlItem3.Size = new Size(279, 24);
            layoutControlItem3.Text = "选择父级:";
            layoutControlItem3.TextSize = new Size(52, 14);
            //
            // simpleLabelItemDelete
            //
            simpleLabelItemDelete.AllowHotTrack = false;
            simpleLabelItemDelete.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("simpleLabelItemDelete.ImageOptions.SvgImage");
            simpleLabelItemDelete.ImageOptions.SvgImageSize = new Size(20, 20);
            simpleLabelItemDelete.Location = new Point(279, 0);
            simpleLabelItemDelete.Name = "simpleLabelItemDelete";
            simpleLabelItemDelete.Size = new Size(33, 24);
            simpleLabelItemDelete.Text = " ";
            simpleLabelItemDelete.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.AutoSize;
            simpleLabelItemDelete.TextSize = new Size(29, 20);
            simpleLabelItemDelete.Click += simpleLabelItemDelete_Click;
            // 
            // UpdateCatalogParentDlg
            // 
@@ -192,6 +208,7 @@
            ((System.ComponentModel.ISupportInitialize)layoutControlItem1).EndInit();
            ((System.ComponentModel.ISupportInitialize)emptySpaceItem3).EndInit();
            ((System.ComponentModel.ISupportInitialize)layoutControlItem3).EndInit();
            ((System.ComponentModel.ISupportInitialize)simpleLabelItemDelete).EndInit();
            ResumeLayout(false);
        }
@@ -209,5 +226,6 @@
        private DevExpress.XtraTreeList.TreeList treeListLookUpEdit1TreeList;
        private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn1;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
        private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItemDelete;
    }
}
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/UpdateCatalogParentDlg.cs
@@ -10,11 +10,12 @@
            InitializeComponent();
        }
        public async void SetBindingData(long TypeId, long vmId)
        public async void SetBindingData(long TypeId, long vmId, long currentParentId)
        {
            var alllist = await new Yw.BLL.SysCatalog().GetByTypeID(TypeId);
            alllist.Remove(alllist.Find(x => x.ID == vmId));
            treeListLookUpEdit1TreeList.DataSource = alllist;
            this.ComboBoxEditParentsChoice.EditValue = currentParentId;
        }
        public event Func<long, Task<bool>> ReloadEvent;
@@ -41,5 +42,10 @@
                this.Close();
            }
        }
        private void simpleLabelItemDelete_Click(object sender, EventArgs e)
        {
            this.ComboBoxEditParentsChoice.EditValue = null;
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/UpdateCatalogParentDlg.resx
@@ -117,4 +117,26 @@
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <assembly alias="DevExpress.Data.v23.2" name="DevExpress.Data.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
  <data name="simpleLabelItemDelete.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAD0DAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJs
        YWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAzOUMy
        Mzt9CgkuWWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRGVsZXRlIj4N
        CiAgICA8Zz4NCiAgICAgIDxwYXRoIGQ9Ik0xOC44LDE2bDYuOS02LjljMC40LTAuNCwwLjQtMSwwLTEu
        NGwtMS40LTEuNGMtMC40LTAuNC0xLTAuNC0xLjQsMEwxNiwxMy4yTDkuMSw2LjNjLTAuNC0wLjQtMS0w
        LjQtMS40LDAgICAgTDYuMyw3LjdjLTAuNCwwLjQtMC40LDEsMCwxLjRsNi45LDYuOWwtNi45LDYuOWMt
        MC40LDAuNC0wLjQsMSwwLDEuNGwxLjQsMS40YzAuNCwwLjQsMSwwLjQsMS40LDBsNi45LTYuOWw2Ljks
        Ni45ICAgIGMwLjQsMC40LDEsMC40LDEuNCwwbDEuNC0xLjRjMC40LTAuNCwwLjQtMSwwLTEuNEwxOC44
        LDE2eiIgY2xhc3M9IlJlZCIgLz4NCiAgICA8L2c+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
</root>
WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SetSysPropChoiceDlg.resx
@@ -125,23 +125,21 @@
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAJIDAAAC77u/
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAD0DAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw
        MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu
        bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRGVsZXRlIj4NCiAgICA8cGF0aCBk
        PSJNMTguOCwxNmw4LjktOC45YzAuNC0wLjQsMC40LTEsMC0xLjRsLTEuNC0xLjRjLTAuNC0wLjQtMS0w
        LjQtMS40LDBMMTYsMTMuMkw3LjEsNC4zYy0wLjQtMC40LTEtMC40LTEuNCwwICAgTDQuMyw1LjdjLTAu
        NCwwLjQtMC40LDEsMCwxLjRsOC45LDguOWwtOC45LDguOWMtMC40LDAuNC0wLjQsMSwwLDEuNGwxLjQs
        MS40YzAuNCwwLjQsMSwwLjQsMS40LDBsOC45LTguOWw4LjksOC45ICAgYzAuNCwwLjQsMSwwLjQsMS40
        LDBsMS40LTEuNGMwLjQtMC40LDAuNC0xLDAtMS40TDE4LjgsMTZ6IiBjbGFzcz0iUmVkIiAvPg0KICA8
        L2c+DQo8L3N2Zz4L
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJs
        YWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAzOUMy
        Mzt9CgkuWWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRGVsZXRlIj4N
        CiAgICA8Zz4NCiAgICAgIDxwYXRoIGQ9Ik0xOC44LDE2bDYuOS02LjljMC40LTAuNCwwLjQtMSwwLTEu
        NGwtMS40LTEuNGMtMC40LTAuNC0xLTAuNC0xLjQsMEwxNiwxMy4yTDkuMSw2LjNjLTAuNC0wLjQtMS0w
        LjQtMS40LDAgICAgTDYuMyw3LjdjLTAuNCwwLjQtMC40LDEsMCwxLjRsNi45LDYuOWwtNi45LDYuOWMt
        MC40LDAuNC0wLjQsMSwwLDEuNGwxLjQsMS40YzAuNCwwLjQsMSwwLjQsMS40LDBsNi45LTYuOWw2Ljks
        Ni45ICAgIGMwLjQsMC40LDEsMC40LDEuNCwwbDEuNC0xLjRjMC40LTAuNCwwLjQtMSwwLTEuNEwxOC44
        LDE2eiIgY2xhc3M9IlJlZCIgLz4NCiAgICA8L2c+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
</root>
WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropGroupTreeListCtrl.cs
@@ -177,5 +177,16 @@
                return;
            }
        }
        //刷新
        private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.SetBindingData();
        }
        //排序
        private void barCheckSorter_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropGroupTreeListCtrl.designer.cs
@@ -36,6 +36,8 @@
            barBtnEdit = new DevExpress.XtraBars.BarButtonItem();
            barBtnDelete = new DevExpress.XtraBars.BarButtonItem();
            barCkSearch = new DevExpress.XtraBars.BarCheckItem();
            barBtnRefresh = new DevExpress.XtraBars.BarButtonItem();
            barCheckSorter = new DevExpress.XtraBars.BarCheckItem();
            standaloneBarDockControl1 = new DevExpress.XtraBars.StandaloneBarDockControl();
            barDockControlTop = new DevExpress.XtraBars.BarDockControl();
            barDockControlBottom = new DevExpress.XtraBars.BarDockControl();
@@ -109,8 +111,8 @@
            barManager1.DockControls.Add(barDockControlRight);
            barManager1.DockControls.Add(standaloneBarDockControl1);
            barManager1.Form = this;
            barManager1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { barCkSearch, barBtnAdd, barBtnEdit, barBtnDelete, barButtonItem1, barButtonItem2, barButtonItem3 });
            barManager1.MaxItemId = 55;
            barManager1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { barCkSearch, barBtnAdd, barBtnEdit, barBtnDelete, barButtonItem1, barButtonItem2, barButtonItem3, barBtnRefresh, barCheckSorter });
            barManager1.MaxItemId = 58;
            // 
            // bar1
            // 
@@ -118,7 +120,7 @@
            bar1.DockCol = 0;
            bar1.DockRow = 0;
            bar1.DockStyle = DevExpress.XtraBars.BarDockStyle.Standalone;
            bar1.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barBtnAdd), new DevExpress.XtraBars.LinkPersistInfo(barBtnEdit), new DevExpress.XtraBars.LinkPersistInfo(barBtnDelete), new DevExpress.XtraBars.LinkPersistInfo(barCkSearch) });
            bar1.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barBtnAdd), new DevExpress.XtraBars.LinkPersistInfo(barBtnEdit), new DevExpress.XtraBars.LinkPersistInfo(barBtnDelete), new DevExpress.XtraBars.LinkPersistInfo(barCkSearch), new DevExpress.XtraBars.LinkPersistInfo(barBtnRefresh), new DevExpress.XtraBars.LinkPersistInfo(barCheckSorter) });
            bar1.OptionsBar.AllowQuickCustomization = false;
            bar1.OptionsBar.DrawBorder = false;
            bar1.OptionsBar.DrawDragBorder = false;
@@ -162,6 +164,22 @@
            barCkSearch.ImageOptions.SvgImageSize = new Size(22, 22);
            barCkSearch.Name = "barCkSearch";
            barCkSearch.CheckedChanged += barCkSearch_CheckedChanged;
            //
            // barBtnRefresh
            //
            barBtnRefresh.Caption = "刷新";
            barBtnRefresh.Id = 55;
            barBtnRefresh.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnRefresh.ImageOptions.SvgImage");
            barBtnRefresh.Name = "barBtnRefresh";
            barBtnRefresh.ItemClick += barBtnRefresh_ItemClick;
            //
            // barCheckSorter
            //
            barCheckSorter.Caption = "排序";
            barCheckSorter.Id = 57;
            barCheckSorter.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barCheckSorter.ImageOptions.SvgImage");
            barCheckSorter.Name = "barCheckSorter";
            barCheckSorter.CheckedChanged += barCheckSorter_CheckedChanged;
            // 
            // standaloneBarDockControl1
            // 
@@ -620,5 +638,7 @@
        private BindingSource propGroupTreeListViewModelBindingSource;
        private DevExpress.XtraBars.StandaloneBarDockControl standaloneBarDockControl1;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
        private DevExpress.XtraBars.BarButtonItem barBtnRefresh;
        private DevExpress.XtraBars.BarCheckItem barCheckSorter;
    }
}
WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropGroupTreeListCtrl.resx
@@ -210,6 +210,50 @@
        Cjwvc3ZnPgs=
</value>
  </data>
  <data name="barBtnRefresh.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAC4DAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
        ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
        OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
        dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlJlZnJlc2hfMV8iPg0KICAgIDxwYXRoIGQ9Ik0yNC41
        LDcuNUMyMi4zLDUuMywxOS4zLDQsMTYsNEMxMC4xLDQsNS4xLDguMyw0LjIsMTRoNC4xYzAuOS0zLjQs
        NC02LDcuNy02YzIuMiwwLDQuMiwwLjksNS42LDIuNEwxOCwxNCAgIGg1LjdoNC4xSDI4VjRMMjQuNSw3
        LjV6IiBjbGFzcz0iR3JlZW4iIC8+DQogICAgPHBhdGggZD0iTTE2LjIsMjRjLTIuMiwwLTQuMi0wLjkt
        NS42LTIuNGwzLjYtMy42SDguNEg0LjRINC4ydjEwbDMuNS0zLjVjMi4yLDIuMiw1LjIsMy41LDguNSwz
        LjUgICBDMjIuMSwyOCwyNywyMy43LDI4LDE4aC00LjFDMjMsMjEuNCwxOS45LDI0LDE2LjIsMjR6IiBj
        bGFzcz0iR3JlZW4iIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="barCheckSorter.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAJQDAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku
        WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAz
        OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQo8L3N0eWxl
        Pg0KICA8ZyBpZD0iU29ydEFzYyI+DQogICAgPHBhdGggZD0iTTI4LDE0aC0wLjJoLTEuOWgtMC4xbDAt
        MC4xTDI1LjIsMTJoLTQuNGwtMC42LDEuOWwwLDAuMWgtMC4xaC0xLjlIMThsMC4xLTAuMmwzLjktMTEu
        N0wyMiwyaDAuMUgyNGgwLjEgICBsMCwwLjFsMy44LDExLjdMMjgsMTRMMjgsMTR6IE0yMS40LDEwaDMu
        MkwyMyw0LjdjMCwwLDAsMCwwLTAuMWMwLDAsMCwwLDAsMC4xTDIxLjQsMTB6IiBjbGFzcz0iUmVkIiAv
        Pg0KICAgIDxwYXRoIGQ9Ik0yNy40LDI4aC0wLjFoLTguNmgtMC4xdi0wLjFWMjdsNS45LTloLTUuMkgx
        OWwwLTAuMXYtMS43VjE2aDAuMWg4LjJoMC4xdjAuMVYxN2wtNS45LDloNS42aDAuMXYwLjF2MS43VjI4
        ICAgTDI3LjQsMjh6IE0xMCwyNFYySDh2MjJINGw1LDVsNS01SDEweiIgY2xhc3M9IkJsdWUiIC8+DQog
        IDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
  <metadata name="propGroupTreeListViewModelBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>420, 17</value>
  </metadata>
WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropManageMainPanel.Designer.cs
@@ -39,8 +39,10 @@
            barBtnEditPumpCurve = new DevExpress.XtraBars.BarButtonItem();
            BtnAdd = new DevExpress.XtraBars.BarButtonItem();
            BtnDelete = new DevExpress.XtraBars.BarButtonItem();
            barCheckSorter = new DevExpress.XtraBars.BarCheckItem();
            ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage();
            ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
            ribbonPageGroup2 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
            dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components);
            dockPanel1 = new DevExpress.XtraBars.Docking.DockPanel();
            dockPanel1_Container = new DevExpress.XtraBars.Docking.ControlContainer();
@@ -50,7 +52,6 @@
            gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
            colName = new DevExpress.XtraGrid.Columns.GridColumn();
            colCode = new DevExpress.XtraGrid.Columns.GridColumn();
            colSortCode = new DevExpress.XtraGrid.Columns.GridColumn();
            colDescription = new DevExpress.XtraGrid.Columns.GridColumn();
            colDefaultValue = new DevExpress.XtraGrid.Columns.GridColumn();
            colFormat = new DevExpress.XtraGrid.Columns.GridColumn();
@@ -61,6 +62,7 @@
            barButtonItem1 = new DevExpress.XtraBars.BarButtonItem();
            svgImage32 = new DevExpress.Utils.SvgImageCollection(components);
            sidePanel1 = new DevExpress.XtraEditors.SidePanel();
            behaviorManager1 = new DevExpress.Utils.Behaviors.BehaviorManager(components);
            ((System.ComponentModel.ISupportInitialize)ribbonControl1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)dockManager1).BeginInit();
            dockPanel1.SuspendLayout();
@@ -71,15 +73,16 @@
            ((System.ComponentModel.ISupportInitialize)repositoryItemButtonEdit1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)svgImage32).BeginInit();
            sidePanel1.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)behaviorManager1).BeginInit();
            SuspendLayout();
            // 
            // ribbonControl1
            // 
            ribbonControl1.ExpandCollapseItem.Id = 0;
            ribbonControl1.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnEditPumpCurve, BtnAdd, BtnDelete });
            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnEditPumpCurve, BtnAdd, BtnDelete, barCheckSorter });
            ribbonControl1.Location = new Point(0, 0);
            ribbonControl1.MaxItemId = 19;
            ribbonControl1.MaxItemId = 20;
            ribbonControl1.Name = "ribbonControl1";
            ribbonControl1.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 });
            ribbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.False;
@@ -113,9 +116,17 @@
            BtnDelete.Name = "BtnDelete";
            BtnDelete.ItemClick += BtnDelete_ItemClick;
            // 
            // barCheckSorter
            //
            barCheckSorter.Caption = "排序";
            barCheckSorter.Id = 19;
            barCheckSorter.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barCheckSorter.ImageOptions.SvgImage");
            barCheckSorter.Name = "barCheckSorter";
            barCheckSorter.ItemClick += barCheckItemSorter_ItemClick;
            //
            // ribbonPage1
            // 
            ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1 });
            ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1, ribbonPageGroup2 });
            ribbonPage1.Name = "ribbonPage1";
            ribbonPage1.Text = "ribbonPage1";
            // 
@@ -126,6 +137,12 @@
            ribbonPageGroup1.ItemLinks.Add(BtnDelete);
            ribbonPageGroup1.Name = "ribbonPageGroup1";
            ribbonPageGroup1.Text = "基础功能";
            //
            // ribbonPageGroup2
            //
            ribbonPageGroup2.ItemLinks.Add(barCheckSorter);
            ribbonPageGroup2.Name = "ribbonPageGroup2";
            ribbonPageGroup2.Text = "更多";
            // 
            // dockManager1
            // 
@@ -187,7 +204,7 @@
            gridView1.Appearance.HeaderPanel.Options.UseTextOptions = true;
            gridView1.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
            gridView1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colName, colCode, colSortCode, colDescription, colDefaultValue, colFormat, colIsNull, colUnitName, ColPropEdit });
            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colName, colCode, colDescription, colDefaultValue, colFormat, colIsNull, colUnitName, ColPropEdit });
            gridView1.GridControl = gridControl1;
            gridView1.Name = "gridView1";
            gridView1.OptionsView.ShowGroupPanel = false;
@@ -212,16 +229,6 @@
            colCode.Name = "colCode";
            colCode.Visible = true;
            colCode.VisibleIndex = 1;
            //
            // colSortCode
            //
            colSortCode.AppearanceCell.Options.UseTextOptions = true;
            colSortCode.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
            colSortCode.Caption = "排序码";
            colSortCode.FieldName = "SortCode";
            colSortCode.Name = "colSortCode";
            colSortCode.Visible = true;
            colSortCode.VisibleIndex = 7;
            // 
            // colDescription
            // 
@@ -272,7 +279,7 @@
            ColPropEdit.Name = "ColPropEdit";
            ColPropEdit.OptionsColumn.AllowEdit = false;
            ColPropEdit.Visible = true;
            ColPropEdit.VisibleIndex = 8;
            ColPropEdit.VisibleIndex = 7;
            // 
            // repositoryItemButtonEdit1
            // 
@@ -326,6 +333,7 @@
            ((System.ComponentModel.ISupportInitialize)svgImage32).EndInit();
            sidePanel1.ResumeLayout(false);
            sidePanel1.PerformLayout();
            ((System.ComponentModel.ISupportInitialize)behaviorManager1).EndInit();
            ResumeLayout(false);
        }
@@ -345,7 +353,6 @@
           private DevExpress.XtraBars.BarButtonItem barButtonItem1;
        private DevExpress.XtraGrid.Columns.GridColumn colName;
        private DevExpress.XtraGrid.Columns.GridColumn colCode;
        private DevExpress.XtraGrid.Columns.GridColumn colSortCode;
        private DevExpress.XtraGrid.Columns.GridColumn colDescription;
        private BindingSource propViewModelBindingSource;
        private DevExpress.XtraGrid.Columns.GridColumn colDefaultValue;
@@ -357,5 +364,8 @@
        private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit repositoryItemButtonEdit1;
        private DevExpress.Utils.SvgImageCollection svgImage32;
        private DevExpress.XtraEditors.SidePanel sidePanel1;
        private DevExpress.XtraBars.BarCheckItem barCheckSorter;
        private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup2;
        private DevExpress.Utils.Behaviors.BehaviorManager behaviorManager1;
    }
}
WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropManageMainPanel.cs
@@ -1,4 +1,8 @@
namespace HStation.WinFrmUI.Basic
using DevExpress.Utils.Behaviors;
using DevExpress.Utils.DragDrop;
using DevExpress.XtraTreeList;
namespace HStation.WinFrmUI.Basic
{
    public partial class SysPropManageMainPanel : DocumentPage
    {
@@ -130,5 +134,44 @@
                dlg.ShowDialog();
            }
        }
        //排序
        private void barCheckItemSorter_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (barCheckSorter.Checked)
            {
                behaviorManager1.Attach<DragDropBehavior>(gridView1, behavior =>
                {
                    //        behavior.BeginDragDrop += Behavior_BeginDragDrop;
                    behavior.EndDragDrop += Behavior_EndDragDrop;
                });
            }
            else
            {
                behaviorManager1.Detach<DragDropBehavior>(gridView1);
            }
        }
        private async void Behavior_EndDragDrop(object sender, EndDragDropEventArgs e)
        {
            var vm = this.gridView1.GetCurrentViewModel(_allBindingList);
            var sorterList = new List<Yw.Vmo.Sorter>();
            int i = 1;
            foreach (var item in _allBindingList)
            {
                sorterList.Add(new Yw.Vmo.Sorter() { ID = item.ID, SortCode = i });
                i++;
            }
            if (await _bll.UpdateSorter(sorterList))
            {
                this.propViewModelBindingSource.ResetBindings(false);
            }
            else
            {
                //     gridView1.FocusedRowHandle = _LastRowIndex;
                TipFormHelper.ShowError("修改排序失败!");
                return;
            }
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropManageMainPanel.resx
@@ -187,6 +187,29 @@
        LDE2eiIgY2xhc3M9IlJlZCIgLz4NCiAgICA8L2c+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="barCheckSorter.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAJQDAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku
        WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAz
        OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQo8L3N0eWxl
        Pg0KICA8ZyBpZD0iU29ydEFzYyI+DQogICAgPHBhdGggZD0iTTI4LDE0aC0wLjJoLTEuOWgtMC4xbDAt
        MC4xTDI1LjIsMTJoLTQuNGwtMC42LDEuOWwwLDAuMWgtMC4xaC0xLjlIMThsMC4xLTAuMmwzLjktMTEu
        N0wyMiwyaDAuMUgyNGgwLjEgICBsMCwwLjFsMy44LDExLjdMMjgsMTRMMjgsMTR6IE0yMS40LDEwaDMu
        MkwyMyw0LjdjMCwwLDAsMCwwLTAuMWMwLDAsMCwwLDAsMC4xTDIxLjQsMTB6IiBjbGFzcz0iUmVkIiAv
        Pg0KICAgIDxwYXRoIGQ9Ik0yNy40LDI4aC0wLjFoLTguNmgtMC4xdi0wLjFWMjdsNS45LTloLTUuMkgx
        OWwwLTAuMXYtMS43VjE2aDAuMWg4LjJoMC4xdjAuMVYxN2wtNS45LDloNS42aDAuMXYwLjF2MS43VjI4
        ICAgTDI3LjQsMjh6IE0xMCwyNFYySDh2MjJINGw1LDVsNS01SDEweiIgY2xhc3M9IkJsdWUiIC8+DQog
        IDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
  <metadata name="dockManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
@@ -220,4 +243,7 @@
  <metadata name="svgImage32.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>406, 21</value>
  </metadata>
  <metadata name="behaviorManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>532, 21</value>
  </metadata>
</root>
WinFrmUI/HStation.WinFrmUI.Basic/HStation.WinFrmUI.Basic.csproj
@@ -7,6 +7,7 @@
  </PropertyGroup>
  <ItemGroup>
    <Compile Remove="01-SysCatalogManage\Class1.cs" />
    <Compile Remove="Class1.cs" />
  </ItemGroup>