From f08871fe7d148d667f2f11f80f64de71a0d9504c Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期一, 15 六月 2026 18:19:37 +0800
Subject: [PATCH] 优化标准老化界面

---
 HMI.SettingControl/SystemConfig.xaml.cs |  107 +++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 95 insertions(+), 12 deletions(-)

diff --git a/HMI.SettingControl/SystemConfig.xaml.cs b/HMI.SettingControl/SystemConfig.xaml.cs
index 1e75505..f9877f7 100644
--- a/HMI.SettingControl/SystemConfig.xaml.cs
+++ b/HMI.SettingControl/SystemConfig.xaml.cs
@@ -1,37 +1,120 @@
 锘縰sing System;
+using System.IO;
+using System.Windows;
 using System.Windows.Controls;
+using HMI.Core.Api;
 using HMI.Core.Setting;
 using HMI.Core.Util;
 using HMI.UI.Util;
+using Microsoft.Win32;
 
 namespace HMI.SettingControl
 {
     /// <summary>
     /// SystemConfig.xaml 鐨勪氦浜掗�昏緫
     /// </summary>
-    public partial class SystemConfig : UserControl
+    public partial class SystemConfig : UserControl, IFolderOwner, IConfigManager
     {
+        private string BaseFolder;
+        private SystemSettingModel Model;
         public SystemConfig()
         {
-            var model = new SystemSettingModel();
-            BeanUtil.Copy(SystemSetting.Instance, model);
-            DataContext = model;
             InitializeComponent();
         }
 
-        private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
+        public object GetConfig()
         {
-            try
+            return SystemSetting.Instance;
+        }
+
+        public void ResetConfig()
+        {
+            Model = new SystemSettingModel();
+            BeanUtil.Copy(SystemSetting.Instance, Model);
+            DataContext = Model;
+        }
+
+        public void SaveConfig()
+        {
+            SystemSettingModel settingModel = (SystemSettingModel)DataContext;
+            XmlHelper.SerializeToXml(Path.Combine(PathHelper.SettingFolder, "SystemConfig.xml"), settingModel);
+            SystemSetting.ReLoad();
+        }
+
+        public void SetBaseFolder(string folder)
+        {
+            this.BaseFolder = folder;
+        }
+
+        private void Button_Click(object sender, RoutedEventArgs e)
+        {
+            Button btn = sender as Button;
+            switch (btn.Name)
             {
-                SystemSettingModel settingModel = (SystemSettingModel)DataContext;
-                XmlHelper.SerializeToXml(PathHelper.ConfigFolder + "\\SystemConfig.xml", settingModel);
-                SystemSetting.ReLoad();
-                this.Success("淇濆瓨鎴愬姛");
+                case "BtnIcon":
+                    OpenSelectIcon();
+                    break;
+                case "BtnLoginLogo":
+                    OpenSelectIcon2();
+                    break;
+                default:
+                    break;
             }
-            catch (Exception ex)
+        }
+
+        private void OpenSelectIcon()
+        {
+            string BasePath = PathHelper.IconFolder;
+
+            OpenFileDialog openFileDialog = new OpenFileDialog();
+            openFileDialog.Filter = "(*.*)|*.*";
+            openFileDialog.InitialDirectory = BasePath;
+            openFileDialog.Title = this.lang("App.SelectPic");
+            openFileDialog.Multiselect = false;
+
+            if (openFileDialog.ShowDialog() == true)
             {
-                this.Error($"淇濆瓨澶辫触锛亄ex.Message}");
+                string FileName = openFileDialog.FileName;
+                if (!FileName.StartsWith(BasePath))
+                {
+                    ToastHelper.Warning(Window.GetWindow(this), this.lang("App.IconMustInFolder"));
+                }
+                else
+                {
+                    Model.LogoPath = FileName.Replace(BasePath, ".");
+                }
             }
         }
+
+        private void OpenSelectIcon2()
+        {
+            string BasePath = PathHelper.IconFolder;
+
+            OpenFileDialog openFileDialog = new OpenFileDialog();
+            openFileDialog.Filter = "(*.*)|*.*";
+            openFileDialog.InitialDirectory = BasePath;
+            openFileDialog.Title = this.lang("App.SelectPic");
+            openFileDialog.Multiselect = false;
+
+            if (openFileDialog.ShowDialog() == true)
+            {
+                string FileName = openFileDialog.FileName;
+                if (!FileName.StartsWith(BasePath))
+                {
+                    ToastHelper.Warning(Window.GetWindow(this), this.lang("App.IconMustInFolder"));
+                }
+                else
+                {
+                    Model.LoginLogoPath = FileName.Replace(BasePath, ".");
+                }
+            }
+        }
+
+        private void UserControl_Loaded(object sender, RoutedEventArgs e)
+        {
+            CbLang.ItemsSource = LangUtil.langs;
+            ResetConfig();
+            Loaded -= UserControl_Loaded;
+        }
     }
 }

--
Gitblit v1.9.1