From 063021ff33f3dffb7543880ebac988807c107aa8 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期一, 17 十月 2022 15:24:02 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/wjc' into dev--wxr --- HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs | 180 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 165 insertions(+), 15 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs index 5de45b6..3545a8c 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs @@ -1,6 +1,7 @@ 锘縰sing System; using System.Collections.Generic; using Shared; + namespace HDL_ON.UI.UI2.Intelligence.Automation { public class AddInputType : FrameLayout @@ -64,14 +65,14 @@ likiadaodaView.btnIcon.UnSelectedImagePath = "LogicIcon/location.png"; int count = 3;//杈撳叆绫诲瀷涓暟 //2022骞�05鏈�24鏃�15:08:22 闅愯棌鎺夊湴鐞嗗洿鏍� - //if (MainView.IsGatewayType) - //{ - // count = 4; - // viewLayout.AddChidren(likiadaodaView.FLayoutView()); - //} + if (MainView.IsGatewayType) + { + count = 4; + viewLayout.AddChidren(likiadaodaView.FLayoutView()); + } ////鍔熻兘 ///浜у搧缁忕悊鍚涚剷瑕佹眰锛岃澶囧姛鑳界Щ鍒拌繖閲屻��<2022-3-7> - new FunTpye(LogicMethod.condition_if).FunTypeView(viewLayout, shiwaiView.frameLayout.Bottom, count); + new FunTpye(LogicMethod.condition_if).FunTypeView(viewLayout, likiadaodaView.frameLayout.Bottom, count); #endregion @@ -80,13 +81,13 @@ timeView.btnClick.MouseUpEventHandler += (sen, e) => { - TimeTpye timeTpye = new TimeTpye(); - MainPage.BasePageView.AddChidren(timeTpye); - timeTpye.Show(); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + TimeTpye timeTpye = new TimeTpye(); + MainPage.BasePageView.AddChidren(timeTpye); + timeTpye.Show(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; - + //鍦烘櫙鐐瑰嚮浜嬩欢 sceneView.btnClick.MouseUpEventHandler += (sen, e) => { @@ -113,6 +114,7 @@ #endregion } + /// <summary> /// 娣诲姞鍦烘櫙 /// </summary> @@ -153,11 +155,14 @@ /// <param name="edit">If set to <c>true</c> edit.</param> public void LocationView(FrameLayout flMain, bool edit) { + string strname = ""; ///閫氳繃璋冭瘯瀹濈粰鐨勭粡绾害<鏍囧噯GPS> - double latitude = Entity.DB_ResidenceData.Instance.CurrentRegion.latitude;//绾害 - double longitude = Entity.DB_ResidenceData.Instance.CurrentRegion.longitude;//缁忓害 - LogicMethod.Current.WGS84_to_GCJ02(Entity.DB_ResidenceData.Instance.CurrentRegion.longitude, Entity.DB_ResidenceData.Instance.CurrentRegion.latitude, out longitude, out latitude); + //double latitude = Entity.DB_ResidenceData.Instance.CurrentRegion.latitude;//绾害 + //double longitude = Entity.DB_ResidenceData.Instance.CurrentRegion.longitude;//缁忓害 + /////濡傛灉鏄敤褰撳墠鎵嬫満浣嶇疆浣滀负涓績鐨勮瘽锛涘啀娆$紪杈憉i鐣岄潰鏄剧ず鏄綋鍓嶆墜鏈轰綅缃紝杩樻槸涔嬪墠鐨勭粡绾憿锛� + double latitude = Convert.ToDouble(MainPage.cityInfo.lat);//绾害 + double longitude = Convert.ToDouble(MainPage.cityInfo.lon);//缁忓害 int r = 500;//榛樿鍗婂緞 if (edit) { @@ -253,6 +258,151 @@ //鎸夐亾鐞嗚涓嶄細鍑虹幇 r = 500; } + ChooseIocate chooseIocate = new ChooseIocate(); + MainPage.BasePageView.AddChidren(chooseIocate); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + chooseIocate.Show(latitude, longitude, r, (value) => + { + if (value.Contains("km")) + { + value = value.Replace("km", ""); + } + else { + value = value.Replace("m", ""); + } + Input input = new Input(); + input.sid = LogicMethod.Current.NewSid(); + input.condition_type = "8"; + Dictionary<string, string> dic = new Dictionary<string, string>(); + LogicMethod.Current.dictionary(dic, "key", "direction"); + LogicMethod.Current.dictionary(dic, "comparator", "="); + LogicMethod.Current.dictionary(dic, "data_type", "string"); + LogicMethod.Current.dictionary(dic, "value", valueStr); + input.condition.Add(dic); + //绾害 + input.geo_fence.latitude = latitude.ToString(); + //缁忓害 + input.geo_fence.longitude = longitude.ToString(); + //鍗婂緞<鍗曚綅绫�> + input.geo_fence.radius = value; + AddCondition(input); + LogicMethod.Current.RemoveAllView(); + AddLogic addLogic = new AddLogic(); + MainPage.BasePageView.AddChidren(addLogic); + addLogic.Show(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + + }); + + } + /// <summary> + /// 娣诲姞鍦扮悊鍥存爮(鏈夐珮寰峰湴鍥�,鍥犱负楂樺痉鏀惰垂鏆傛椂寮冪敤) + /// </summary> + /// <param name="flMain">Fl main.</param> + /// <param name="edit">If set to <c>true</c> edit.</param> + public void LocationView1(FrameLayout flMain, bool edit) + { + string strname = ""; + ///閫氳繃璋冭瘯瀹濈粰鐨勭粡绾害<鏍囧噯GPS> + double latitude = Entity.DB_ResidenceData.Instance.CurrentRegion.latitude;//绾害 + double longitude = Entity.DB_ResidenceData.Instance.CurrentRegion.longitude;//缁忓害 + LogicMethod.Current.WGS84_to_GCJ02(Entity.DB_ResidenceData.Instance.CurrentRegion.longitude, Entity.DB_ResidenceData.Instance.CurrentRegion.latitude, out longitude, out latitude); + int r = 500;//榛樿鍗婂緞 + if (edit) + { + for (var i = 0; i < Logic.currlogic.input.Count; i++) + { + var input = Logic.currlogic.input[i]; + if (input.condition_type != "8") + { + continue; + } + if (input.condition[0]["value"] == "arrive") + { + //鍒拌揪鏌愬湴 + strname = Language.StringByID(StringId.daoda); + } + else + { + //绂诲紑鍦扮偣 + strname = Language.StringByID(StringId.likai); + } + //鍐嶄竴娆$紪杈戝湴鐞嗗洿鏍� <鎺т欢鏆傛椂涓嶆敮鎸佹樉绀鸿褰曚笂涓�娆$殑鐘舵��> + if (!string.IsNullOrEmpty(input.geo_fence.latitude) && !string.IsNullOrEmpty(input.geo_fence.longitude)) + { + ////绾害 + //var latitude1 = Convert.ToDouble(input.geo_fence.latitude); + ////缁忓害 + //var longitude1 = Convert.ToDouble(input.geo_fence.longitude); + //鍗婂緞 + r = int.Parse(input.geo_fence.radius); + //WGS84鍧愭爣杞珮寰峰潗鏍� + //LogicMethod.CurrLogicMethod.WGS84_to_GCJ02(longitude1, latitude1, out longitude, out latitude); + } + } + } + + PublicInterface publicInterface = new PublicInterface(); + var list = publicInterface.GetViewList("鍦扮悊鍥存爮"); + publicInterface.SingleSelectionShow(flMain, list, Language.StringByID(StringId.likiadaoda), strname, (str) => + { + + string valueStr = "arrive"; + if (str == Language.StringByID(StringId.daoda)) + { + //鍒拌揪鏌愬湴 + valueStr = "arrive"; + } + else + { + //绂诲紑 + valueStr = "leave"; + } + +#if __Android__ + //鐢宠瀹氫綅鏉冮檺 + ((BaseActivity)Application.Activity).SetGPSLocationPermission((result1) => + { + if (result1 == false) { return; } + + //鐢宠鍏佽绋嬪簭鍐欏叆澶栭儴瀛樺偍锛屽SD鍗′笂鍐欐枃浠� + ((BaseActivity)Application.Activity).SetPermission((result2) => + { + if (result2 == false) { return; } + //璇诲彇鐢佃瘽鐘舵�佹潈闄� + ((BaseActivity)Application.Activity).SetPermission((result3) => + { + if (result3 == false) { return; } + //璋冪敤鏂规硶锛岃烦杞〉闈� + Location(valueStr, strname, latitude, longitude, r); + }, "android.permission.READ_PHONE_STATE"); + + }, "android.permission.WRITE_EXTERNAL_STORAGE"); + }); +#endif +#if __IOS__ + //璋冪敤鏂规硶锛岃烦杞〉闈� + Location(valueStr, strname, latitude, longitude, r); +#endif + }); + + + } + /// <summary> + /// 鍦扮悊鍥存爮View + /// </summary> + /// <param name="valueStr">杩涘叆(arrive)鎴栬�呯寮�(leave)</param> + /// <param name="strname"></param> + /// <param name="latitude">绾害</param> + /// <param name="longitude">缁忓害</param> + /// <param name="r">鍗婂緞(榛樿500绫�)</param> + private void Location1(string valueStr, string strname, double latitude, double longitude, int r) + { + if (r == 0) + { + //鎸夐亾鐞嗚涓嶄細鍑虹幇 + r = 500; + } //璋冪敤鏂规硶锛岃烦杞〉闈� GDMapKit.Show((mLatitude, mLongitude, mRadius, name) => { @@ -314,6 +464,6 @@ Logic.currlogic.input.Add(input); } } - + } } -- Gitblit v1.8.0