Преглед изворни кода

pc打开测量页面支持

loki.wu пре 2 година
родитељ
комит
7e031075a1
3 измењених фајлова са 45 додато и 20 уклоњено
  1. 1 1
      fis/Managers/SecondaryScreenManager.cs
  2. 42 18
      fis/SlaveWindow.axaml.cs
  3. 2 1
      fis/Utilities/TargetMethodName.cs

+ 1 - 1
fis/Managers/SecondaryScreenManager.cs

@@ -21,7 +21,7 @@ namespace fis.Win.Dev.Managers
                 if (windows.Keys.Contains(windowType))
                 {
                     window = windows[windowType];
-                    window.ChangeContent(host, keyValuePairs);
+                    window.ChangeContentView(host, keyValuePairs);
                 }
                 else
                 {

+ 42 - 18
fis/SlaveWindow.axaml.cs

@@ -31,7 +31,7 @@ namespace fis
             ExtendClientAreaTitleBarHeightHint = -1;
             MainThreadSyncContext = SynchronizationContext.Current;
 #if DEBUG
-           // this.AttachDevTools();
+            this.AttachDevTools();
 #endif
         }
 
@@ -40,35 +40,59 @@ namespace fis
         /// </summary>
         /// <param name="host"></param>
         /// <param name="keyValuePairs"></param>
-        internal void ChangeContent(string host, Dictionary<string, string> keyValuePairs)
+        internal void ChangeContentView(string host, Dictionary<string, string> keyValuePairs)
         {
             var browserContainer = this.FindControl<Border>("BrowserBorder");
             _host = host;
             _parameters = keyValuePairs;
-            var parameter = "";
-            var index = 0;
+            var arguments = new List<string>();
             foreach (var p in _parameters)
             {
-                parameter += p.Key + "=" + p.Value;
-                if (index < _parameters.Count - 1)
-                {
-                    parameter += "&";
-                }
-                index++;
+                arguments.Add(p.Value);
             }
-            // window.WindowState = Avalonia.Controls.WindowState.Minimized;
-          //  window.ShowInTaskbar = false;
-            _browser.Address = "http://" + ShellConfig.Instance.AppHost + "/index.html?page=measure&" + parameter;
             if (WindowState == WindowState.Minimized) {
                 WindowState = WindowState.Maximized;
             }
             if (!ShowInTaskbar) {
                 ShowInTaskbar = true;
             }
-            browserContainer.Child = _browser;
+            ExecuteJS("externalNotification", TargetMethodName.OpenMeasurePage, arguments);
         }
 
+        /// <summary>
+        /// 执行Js方法
+        /// </summary>
+        /// <param name="methodName"></param>
+        /// <param name="targetMethodName"></param>
+        /// <param name="arguments"></param>
+        /// ?page=measure&token=F680C7A0ADEF45D28D291DFD290000AC&patientCode=PatientInfoDO_20220725094305QTFMzU&index=0&imageIndex=0
+        private void ExecuteJS(string methodName, TargetMethodName targetMethodName, List<string> arguments)
+        {
+            string callString = methodName + "(";
+            if (arguments != null)
+            {
+                string comma = ", ";
+                var argumentsStr = "";
+                int index = 0;
+                foreach (var e in arguments)
+                {
+                    if (index == arguments.Count - 1)
+                    {
+                        argumentsStr += e;
+                    }
+                    else
+                    {
+                        argumentsStr += e + "&";
+                    }
+                    index++;
+                }
+                var escaped = System.Web.HttpUtility.JavaScriptStringEncode(argumentsStr, true);
+                callString += (int)targetMethodName + comma + escaped;
+            }
+            callString += ");";
 
+            _browser?.ExecuteJavaScript(callString, null, 0);
+        }
 
         /// <summary>
         /// 初始化参数和组件
@@ -149,7 +173,7 @@ namespace fis
             _browser.BrowserInitialized += () =>
             {
 #if DEBUG
-          //    _browser!.ShowDeveloperTools();
+             _browser!.ShowDeveloperTools();
 #endif
             };
             var language = CultureInfo.CurrentCulture.Name;
@@ -164,10 +188,10 @@ namespace fis
                     _title.Text = "FLYINSONO";
                 }
             }
-            if (_title != null)
+            if (_title != null && _host.Contains(ShellConfig.Instance.DistHost))
             {
-                var scriptObj = new FisBrowserScriptObject(_title, platformService);
-                _browser.RegisterJavascriptObject(scriptObj, "FisShellApi");
+                 var scriptObj = new FisBrowserScriptObject(_title, platformService);
+                 _browser.RegisterJavascriptObject(scriptObj, "FisShellApi");
             }
             browserContainer.Child = _browser;
             WindowStartupLocation = WindowStartupLocation.Manual;

+ 2 - 1
fis/Utilities/TargetMethodName.cs

@@ -2,6 +2,7 @@
 {
     public enum TargetMethodName
     {
-        SaveReportTemplate
+        SaveReportTemplate,
+        OpenMeasurePage,
     }
 }