From 264f86c363a6a019fac8eb138877fee9e4734e2d Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期六, 21 八月 2021 17:45:44 +0800
Subject: [PATCH] Merge branch 'WJC' into wxr7

---
 HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs |   79 ++++++++++++++++++++++++++++++++++-----
 1 files changed, 68 insertions(+), 11 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs
index cdb06f7..31845a4 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs
@@ -36,11 +36,18 @@
             viewLayout.AddChidren(functionView.FLayoutView());
 
             //鍦烘櫙
-            LogicView.SelectTypeView sceneView = new LogicView.SelectTypeView();
+            LogicView.SelectTypeView sceneView= new LogicView.SelectTypeView();
             sceneView.frameLayout.Y = functionView.frameLayout.Bottom;
             sceneView.btnText.TextID = StringId.Scenes;
             sceneView.btnIcon.UnSelectedImagePath = "LogicIcon/scene.png";
             viewLayout.AddChidren(sceneView.FLayoutView());
+
+            //瀹夐槻
+            LogicView.SelectTypeView securityView = new LogicView.SelectTypeView();
+            securityView.frameLayout.Y = sceneView.frameLayout.Bottom;
+            securityView.btnText.TextID = StringId.anfang;
+            securityView.btnIcon.UnSelectedImagePath = "LogicIcon/security.png";
+            viewLayout.AddChidren(securityView.FLayoutView());
 
             //寤舵椂
             LogicView.SelectTypeView delayView = new LogicView.SelectTypeView();
@@ -64,6 +71,11 @@
             sceneView.btnClick.MouseUpEventHandler += (sen, e) =>
             {
                 SceneMethod();
+            };
+            //瀹夐槻鐐瑰嚮浜嬩欢
+            securityView.btnClick.MouseUpEventHandler += (sen, e) =>
+            {
+                SecurityMethod(this);
             };
             //寤舵椂鐐瑰嚮浜嬩欢
             delayView.btnClick.MouseUpEventHandler += (sen, e) =>
@@ -92,7 +104,7 @@
                 nameList.Add(scene.name);
             }
             PublicInterface publicInterface = new PublicInterface();
-            publicInterface.FrameOrVv(this, nameList, StringId.addSceneLogic, (index) =>
+            publicInterface.FrameOrVv(this, nameList,new List<string> { }, StringId.addSceneLogic, (index) =>
             {
                 var sceneSelecetd = sceneList[index];
                 Output outputDevice = new Output();
@@ -108,7 +120,41 @@
                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
             });
         }
-
+        /// <summary>
+        /// 娣诲姞瀹夐槻
+        /// </summary>
+        public void SecurityMethod(FrameLayout frameLayout, bool edit=false, int index1=-1)
+        {
+            List<string> stateList = new List<string>();
+            if (edit&& index1 != -1) {
+                Output output = Logic.currlogic.output[index1];
+                var security = LogicMethod.CurrLogicMethod.GetSecurity(output.sid);
+                stateList.Add(security.name);
+            }
+            var securityList = LogicMethod.CurrLogicMethod.GetSecurityList(); 
+            List<string> nameList = new List<string>();
+            for (int i = 0; i < securityList.Count; i++)
+            {
+                var security = securityList[i];
+                nameList.Add(security.name); 
+            }
+            PublicInterface publicInterface = new PublicInterface();
+            publicInterface.FrameOrVv(frameLayout, nameList, stateList, StringId.addSecurityLogic,(index) =>
+            {
+                var securitySelecetd = securityList[index];
+                Output outputDevice = new Output();
+                outputDevice.target_type = "3";
+                outputDevice.sid = securitySelecetd.sid;
+                //娌″暐浣滅敤锛屼负浜嗗彂閫佹暟鎹牸寮忕粺涓�;
+                outputDevice.status = new List<Dictionary<string, string>> { new Dictionary<string, string> { { "key", "security" }, { "value", "0" } } };
+                AddOutput(outputDevice,true);
+                LogicMethod.CurrLogicMethod.RemoveAllView();
+                AddLogic addLogic = new AddLogic();
+                MainPage.BasePageView.AddChidren(addLogic);
+                addLogic.Show();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            });
+        }
         /// <summary>
         /// 寤舵椂鏃堕棿鏂规硶
         /// </summary>
@@ -137,7 +183,7 @@
             if (edit)
             {
                 Output output = Logic.currlogic.output[index];
-                if (output.target_type == "3")
+                if (output.target_type == "4")
                 {
                     List<Dictionary<string, string>> dicList = output.status as List<Dictionary<string, string>>;
                     foreach (var dic in dicList)
@@ -169,7 +215,7 @@
                 }
                 Output outputTime= new Output();
                 outputTime.sid = LogicMethod.CurrLogicMethod.NewSid();
-                outputTime.target_type = "3";
+                outputTime.target_type = "4";
                 Dictionary<string, string> dic = new Dictionary<string, string>();
                 LogicMethod.CurrLogicMethod.dictionary(dic, "key", "delay");
                 LogicMethod.CurrLogicMethod.dictionary(dic, "value", timepoint);
@@ -195,23 +241,34 @@
 
             };
         }
-
         /// <summary>
         /// 娣诲姞鐩爣
         /// </summary>
         /// <param name="target"></param>
-        private void AddOutput(Output target)
+        /// <param name="bool_if">琛ㄧず鍚敤涓嶅悓鏉′欢</param>
+        private void AddOutput(Output target,bool bool_if=false)
         {
             int indexValue = -1;
             for (int i = 0; i < Logic.currlogic.output.Count; i++)
             {
-                if (Logic.currlogic.output[i].sid == target.sid)
+                if (bool_if)
                 {
-                    indexValue = i;
-                    break;
+                    ///瀹夐槻鍏佽涓�绉�
+                    if (Logic.currlogic.output[i].target_type == target.target_type)
+                    {
+                        indexValue = i;
+                        break;
+                    }
+                }
+                else
+                {
+                    if (Logic.currlogic.output[i].sid == target.sid)
+                    {
+                        indexValue = i;
+                        break;
+                    }
                 }
             }
-
             if (indexValue != -1)
             {
                 Logic.currlogic.output.RemoveAt(indexValue);

--
Gitblit v1.8.0