From 200b60701072ff421156d7fd3c4fecf1a3b5bdb3 Mon Sep 17 00:00:00 2001
From: lu <123456>
Date: 星期日, 07 九月 2025 10:58:58 +0800
Subject: [PATCH] Merge branch 'master' of http://git.gs-mes.com:8080/r/~tjx/GsMesClient

---
 DevApp/Gs.DevApp/DevFrm/FrmMain.cs |  245 +++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 197 insertions(+), 48 deletions(-)

diff --git a/DevApp/Gs.DevApp/DevFrm/FrmMain.cs b/DevApp/Gs.DevApp/DevFrm/FrmMain.cs
index 3126b9e..5603fcc 100644
--- a/DevApp/Gs.DevApp/DevFrm/FrmMain.cs
+++ b/DevApp/Gs.DevApp/DevFrm/FrmMain.cs
@@ -1,30 +1,37 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Configuration;
-using System.Data;
-using System.Drawing;
-using System.Reflection;
-using System.Windows.Forms;
-using DevExpress.XtraBars;
+锘縰sing DevExpress.XtraBars;
 using DevExpress.XtraBars.FluentDesignSystem;
 using DevExpress.XtraBars.Navigation;
+using DevExpress.XtraEditors;
+using DevExpress.XtraEditors.TextEditController;
+using DevExpress.XtraLayout;
+using DevExpress.XtraRichEdit.Model;
 using DevExpress.XtraTab;
 using DevExpress.XtraTab.ViewInfo;
-using Gs.DevApp.DevFrm.Sys;
 using Gs.DevApp.DevFrm.User;
 using Gs.DevApp.Entity;
 using Gs.DevApp.ToolBox;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Configuration;
+using System.Data;
+using System.Drawing;
+using System.IO;
+using System.Reflection;
+using System.Text;
+using System.Windows.Forms;
 
 namespace Gs.DevApp.DevFrm
 {
     public partial class FrmMain : FluentDesignForm
     {
-        private static readonly Dictionary<string, XtraTabPage> TabPageDic =
-            new Dictionary<string, XtraTabPage>();
-
+        /// <summary>
+        /// tab涓存椂閫夐」鍗�
+        /// </summary>
+        private static readonly Dictionary<string, XtraTabPage> TabPageDic = new Dictionary<string, XtraTabPage>();
+        private string OldorgFids = "";
         public FrmMain()
         {
             InitializeComponent();
@@ -34,7 +41,6 @@
             barPwd.ItemClick += BarPwd_ItemClick;
             barExit.ItemClick += BarExit_ItemClick;
             FormClosing += FrmMain_FormClosing;
-            barEasy.ItemClick += BarEasy_ItemClick;
             getTree();
             tab.MouseDown += Tab_MouseDown;
             tabCloseCurrent.Click += (s, e) =>
@@ -61,27 +67,65 @@
                     }
                 }
             };
+            GetOrg();
+            barOrg.EditValueChanged += (s, e) =>
+            {
+                if (barOrg.EditValue == null)
+                {
+                    Gs.DevApp.ToolBox.MsgHelper.ShowInformation("璇烽�夋嫨浣犻渶瑕佺殑缁勭粐锛�");
+                    return;
+                }
+                string _val = barOrg.EditValue.ToString();
+                if (string.IsNullOrEmpty(_val))
+                {
+                    Gs.DevApp.ToolBox.MsgHelper.ShowInformation("璇烽�夋嫨浣犻渶瑕佺殑缁勭粐锛�");
+                    return;
+                }
+                if (OldorgFids == _val)
+                    return;
+                var _obj = new
+                {
+                    edtUserGuid = LoginInfoModel.CurrentUser.LoginUserGuid,
+                    userGuid = LoginInfoModel.CurrentUser.LoginUserGuid,
+                    userOrgFids = _val,
+                };
+                try
+                {
+                    var strJson = UtilityHelper.HttpPost("", "User/SetUserOrg",
+                        JsonConvert.SerializeObject(_obj));
+                    var _rtn = UtilityHelper.ReturnToDynamic(strJson);
+                    MsgHelper.ShowInformation("鎻愮ず锛�" + _rtn.rtnData.outMsg);
+                }
+                catch (Exception ex)
+                {
+                    MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
+                }
+            };
+            #region 鍔犱笂搴曢儴鎻愰啋
+            tab.SelectedPageChanged += (s, e) => {
+                string _strForm = e.Page.Tag != null ? e.Page.Tag.ToString() : "鏈煡";
+                toolForm.Text = ("绐椾綋:" + _strForm);
+            };
+            string _webApiUrl = ConfigurationManager.AppSettings["WebApiUrl"];
+            string _autoUpdate = (ConfigurationManager.AppSettings["IsAutoUpdater"]);
+            string _version = ConfigurationManager.AppSettings["Version"];
+            toolVersion.Text = "褰撳墠鐗堟湰:" + _version + ",鏈嶅姟Api:" + _webApiUrl;
+            string _strFont = Gs.DevApp.Properties.Settings.Default.fontSizeName;
+            toolFont.Text = (",瀛椾綋:" + _strFont);
+            #endregion
         }
-
+        /// <summary>
+        /// 鏄剧ず鍙抽敭鑿滃崟
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
         private void Tab_MouseDown(object sender, MouseEventArgs e)
         {
             if (e.Button == MouseButtons.Right)
             {
-                tab.ContextMenuStrip = null;
-                //TreeListHitInfo hInfo = treeList1.CalcHitInfo(new Point(e.X, e.Y));
-                //TreeListNode node = hInfo.Node;
-                //treeList1.FocusedNode = node;
-                tab.ContextMenuStrip = contextMenuStrip1;
-
+                cms1.Show(tab, e.Location);
             }
         }
-
-        private void BarEasy_ItemClick(object sender, ItemClickEventArgs e)
-        {
-            var frm = new EasyCode();
-            frm.ShowDialog();
-        }
-
         private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
         {
             if (MsgHelper.AskQuestion("纭畾瑕侀��鍑虹郴缁熷悧?"))
@@ -141,21 +185,25 @@
         {
             getTree();
         }
-
-        private   void getTree()
+        /// <summary>
+        /// 璇诲彇宸﹀垯妯″潡鑿滃崟
+        /// </summary>
+        private void getTree()
         {
-            
-            toolTime.Text = "鐧诲綍鏃堕棿" + LoginInfoModel.CurrentUser.LoginTime;
+            toolTime.Text = "鐧诲綍鏃堕棿:" + LoginInfoModel.CurrentUser.LoginTime;
             var _obj = new
             {
                 userGuid = LoginInfoModel.CurrentUser.LoginUserGuid,
-                orgGuid = LoginInfoModel.CurrentUser.LoginOrgGuid
             };
             try
             {
                 var strJson = UtilityHelper.HttpPost("",
                     "User/GetUserLoginInfo", JsonConvert.SerializeObject(_obj));
-                DevExpress.Utils.WaitDialogForm wdf = new DevExpress.Utils.WaitDialogForm("鎷煎懡鍔犺浇涓紝璇风◢鍚�......", "鍙嬫儏鎻愮ず");
+                Size _size; string _caption; Color _color; Padding _pad;
+                (_size, _caption, _color, _pad) = Gs.DevApp.ToolBox.UtilityHelper.getLoading();
+                DevExpress.Utils.WaitDialogForm wdf = new DevExpress.Utils.WaitDialogForm("鍔犺浇杩涘害:", _caption, _size);
+                wdf.BackColor = _color;
+                wdf.Padding = _pad;
                 var _job = JObject.Parse(strJson);
                 var rtnCode = _job["rtnCode"].ToString();
                 if (int.Parse(rtnCode) > 0)
@@ -183,6 +231,7 @@
                         _grp.Style = ElementStyle.Group;
                         _grp.Text = _dy["name"].ToString();
                         _grp.Tag = _dy["formPath"].ToString(); //瀛樿矾寰勶紝绫诲悕
+                        _grp.AccessibleDescription = _dy["layoutVersion"].ToString();//鐗堥潰
                         _grp.Click += _grp_Click;
                         if (gdx == 0)
                             _grp.Expanded = true;
@@ -190,15 +239,17 @@
                         foreach (var _dy2 in drItem)
                         {
                             var _itm = acrd.AddItem();
+                            _itm.Appearance.Hovered.Options.UseFont = true;
+                            _itm.Appearance.Normal.Options.UseFont = true;
                             _itm.ImageOptions.Image =
                                 UtilityHelper.GetImgFromResource(
                                     _dy2["icon"].ToString(), 2);
                             _itm.Name = _dy2["guid"].ToString();
                             _itm.Style = ElementStyle.Item;
                             _itm.Text = _dy2["name"].ToString();
-                            _itm.Appearance.Normal.Font =
-                                new Font("Tahoma", 10F);
+                            wdf.SetCaption("鍔犺浇杩涘害:" + _dy2["name"].ToString());
                             _itm.Tag = _dy2["formPath"].ToString(); //瀛樿矾寰勶紝绫诲悕
+                            _itm.AccessibleDescription = _dy2["layoutVersion"].ToString();//鐗堥潰
                             _itm.Click += _grp_Click;
                             _grp.Elements.Add(_itm);
                             if (idx == 0 && tab.TabPages.Count <= 0)
@@ -207,8 +258,11 @@
                                 var tabText = _itm.Text; //褰撳墠閫夐」鍗¢〉Text鏍囬
                                 var newFormName = _itm.Tag.ToString(); //瀛樿矾寰勶紝绫诲悕
                                 var imgIcon = _itm.Image;
+                                var layoutVersion = _itm.AccessibleDescription;
                                 AddTabpage(tab, tabPageName, tabText,
-                                    newFormName, imgIcon);
+                                    newFormName, imgIcon,"", layoutVersion);
+                                //绗�0涓紝涓嶄細瑙﹀彂浜嬩欢锛屾墜鍔ㄨ缃�
+                                toolForm.Text = ("绐椾綋:" + newFormName+ ",鐗堥潰:" + layoutVersion);
                             }
                             idx++;
                         }
@@ -225,10 +279,8 @@
             }
             catch (Exception ex)
             {
-                
                 MsgHelper.ShowError("鎻愮ず锛�" + ex.Message);
             }
-           
         }
 
         /// <summary>
@@ -244,7 +296,8 @@
             var tabText = _acd.Text;
             var newFormName = _acd.Tag.ToString();
             var imgIcon = _acd.Image;
-            AddTabpage(tab, tabPageName, tabText, newFormName, imgIcon);
+            string _strLayout = _acd.AccessibleDescription;
+            AddTabpage(tab, tabPageName, tabText, newFormName, imgIcon, "", _strLayout);
         }
 
         /// <summary>
@@ -260,14 +313,16 @@
         }
 
         /// <summary>
-        ///     鏂板閫夐」鍗¢〉
+        /// 鏂板閫夐」鍗¢〉
         /// </summary>
         /// <param name="tabControl">閫夐」鍗℃帶浠�</param>
         /// <param name="tabPageName">褰撴湡閫夐」鍗¢〉name鍚嶇О</param>
         /// <param name="tabText">褰撳墠閫夐」鍗¢〉Text鏍囬</param>
-        /// <param name="newFormName">褰撳墠閫夐」鍗′腑鐨勬柊绐椾綋璺緞锛岀被鍚�</param>
+        /// <param name="newFormName"></param>
+        /// <param name="imgIcon">褰撳墠閫夐」鍗′腑鐨勬柊绐椾綋璺緞锛岀被鍚�</param>
+        /// <param name="InitializeVal">鍒濆鍊硷紝鐢ㄤ簬瀛愮獥浣撲腑璋冪敤鐖剁獥浣撶殑鍊�</param>
         public void AddTabpage(XtraTabControl tabControl, string tabPageName,
-            string tabText, string newFormName, Image imgIcon)
+            string tabText, string newFormName, Image imgIcon, string InitializeVal = "", string strLayout = "")
         {
             if (IsTabpageExsit(tabControl, tabPageName)) return;
             var newPage = new XtraTabPage();
@@ -276,7 +331,8 @@
             newPage.Tooltip = newPage.Name;
             newPage.Appearance.Header.Font = tab.Appearance.Font;
             newPage.ImageOptions.Image = imgIcon;
-            var fm = AddNewForm(newFormName);
+            newPage.Tag = newFormName + ",鐗堥潰:" + strLayout;
+            var fm = AddNewForm(newFormName, InitializeVal);
             if (fm != null)
             {
                 newPage.Controls.Add(fm);
@@ -300,13 +356,25 @@
                 return;
             }
             foreach (XtraTabPage item in tabControl.TabPages)
+            {
                 if (item.Name == name)
                 {
+                    //2025-08-08鍔犱笂锛屼负浜嗛噴鏀剧獥浣撹祫婧恇eg
+                    foreach (Control control in item.Controls)
+                    {
+                        if (control is Form)
+                        {
+                            Form myForm = control as Form;
+                            myForm.Invoke((MethodInvoker)delegate { myForm.Dispose(); }); // 纭繚 UI 绾跨▼瀹夊叏鍦伴噴鏀捐祫婧�
+                        }
+                    }
+                    //鍚庢潵鍔犱笂锛屼负浜嗛噴鏀剧獥浣撹祫婧恊nd
                     tabControl.TabPages.Remove(item);
                     item.Dispose();
                     TabPageDic.Remove(name);
                     return;
                 }
+            }
         }
 
         /// <summary>
@@ -332,7 +400,7 @@
         ///     鍦ㄩ�夐」鍗′腑鐢熸垚绐椾綋
         /// </summary>
         /// <param name="form">绐椾綋鍚嶇О</param>
-        private Form AddNewForm(string formName)
+        private Form AddNewForm(string formName, string InitializeVal)
         {
             try
             {
@@ -343,22 +411,25 @@
                     MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒");
                     return null;
                 }
-
                 newForm.FormBorderStyle = FormBorderStyle.None;
                 newForm.TopLevel = false;
                 newForm.ControlBox = false;
                 newForm.Dock = DockStyle.Fill;
                 newForm.Visible = true;
+                shiXian(newForm, formName, InitializeVal);
                 return newForm;
             }
             catch (Exception)
             {
                 MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒");
             }
-
             return null;
         }
 
+        /// <summary>
+        /// 鐢ㄦ埛閫�鍑�
+        /// </summary>
+        /// <returns></returns>
         private int _userOut()
         {
             var _obj = new
@@ -379,7 +450,85 @@
             {
                 DialogResult = DialogResult.Cancel;
                 MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
-                return -1;
+                return 1;
+            }
+        }
+
+        #region 瀹炵幇瀛愮獥浣撶殑濮旀墭锛屼富瑕佺敤浜庡瓙椤甸潰涓闂埗椤甸潰鏂规硶
+        private void UpdateParent_OnChange(object sender, UpdateParentEventArgs e)
+        {
+            List<string> _val = e.StringList;
+            string _formName = _val[0];//绫诲悕
+            string _parm1 = _val[1];
+            var _obj = new
+            {
+                guid = _formName //涓诲缓
+            };
+            try
+            {
+                var strJson = UtilityHelper.HttpPost("", "MenuAction/GetModelByNameSpace",
+                    JsonConvert.SerializeObject(_obj));
+                var _rtn = UtilityHelper.ReturnToDynamic(strJson);
+                if (_rtn.rtnCode > 0)
+                {
+                    var dy = _rtn.rtnData;
+                    string tabPageName = dy.guid.ToString() + "_page";
+                    string tabText = dy.name.ToString(); //褰撳墠閫夐」鍗¢〉Text鏍囬
+                    string newFormName = dy.formPath.ToString(); //瀛樿矾寰勶紝绫诲悕
+                    Image imgIcon = UtilityHelper.GetImgFromResource(dy.icon.ToString(), 2);
+                    //鍏堝叧闂�
+                    RemoveTabPage(tab, tabPageName);
+                    AddTabpage(tab, tabPageName, tabText, newFormName, imgIcon, _parm1);
+                }
+            }
+            catch (Exception ex)
+            {
+                MsgHelper.ShowError("鎻愮ず锛�" + ex.Message);
+            }
+        }
+
+        private void shiXian(Form newForm, string formName, string InitializeVal)
+        {
+            EventInfo evt = newForm.GetType().GetEvent("ToUpdateParent",
+                BindingFlags.NonPublic | BindingFlags.Instance
+                | BindingFlags.Public
+            );
+            if (evt != null)
+                evt.AddEventHandler(newForm, new EventHandler<UpdateParentEventArgs>(UpdateParent_OnChange));
+            if (!string.IsNullOrEmpty(InitializeVal))
+            {
+                Assembly assembly = Assembly.GetExecutingAssembly();
+                Type type = assembly.GetType(formName);
+                MethodInfo method = type.GetMethod("Initialize"); // 鑾峰彇Initialize鏂规硶鐨勪俊鎭�
+                if (method != null)
+                    method.Invoke(newForm, new object[] { InitializeVal }); // 璋冪敤Initialize鏂规硶骞朵紶閫掑弬鏁�
+            }
+        }
+        #endregion
+
+        private void GetOrg()
+        {
+            string userGuid = LoginInfoModel.CurrentUser.LoginUserGuid;
+            System.Text.StringBuilder sbSql = new System.Text.StringBuilder();
+            sbSql.Append(" and IS_STATUS=1");
+            sbSql.Append(" and fid in( select org.FID from [dbo].[SYS_USER_BIND] b left join SYS_ORGANIZATION org on b.aboutGuid=org.FID where  userGuid='" + LoginInfoModel.CurrentUser.LoginUserGuid + "' and fType='缁勭粐' ) ");
+            var pgq = new PageQueryModel(1, 999999, "FID", "asc", userGuid, sbSql.ToString());
+            var json = JsonConvert.SerializeObject(pgq);
+            try
+            {
+                var strReturn = UtilityHelper.HttpPost("", "Organization/GetListPage", json);
+                var _rtn = UtilityHelper.ReturnToTablePage(strReturn);
+                var dt = _rtn.rtnData.list;
+                repositoryItemCheckedComboBoxEdit1.DataSource = dt;
+                repositoryItemCheckedComboBoxEdit1.DisplayMember = "name";
+                repositoryItemCheckedComboBoxEdit1.ValueMember = "fid";
+                var _obj = UtilityHelper.ReturnToDynamic(strReturn);
+                barOrg.EditValue = _obj.rtnData.extendText;
+                OldorgFids = _obj.rtnData.extendText;
+            }
+            catch (Exception ex)
+            {
+                MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
             }
         }
     }

--
Gitblit v1.9.3