From e87985ec1dcb69beedaf9f95e8e7aba14b7c08d6 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期三, 09 十二月 2020 18:50:14 +0800 Subject: [PATCH] 2020-12-09 1.信息中心,增加下划线和点击Alter提醒详情。 --- HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs | 235 ++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 152 insertions(+), 83 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs index 4654e69..aa23898 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs @@ -3,6 +3,8 @@ using Shared; using HDL_ON.Entity; using System.Collections.Generic; +using System.Threading; +using HDL_ON.DAL.Server; namespace HDL_ON.UI { @@ -136,9 +138,13 @@ Gravity = Gravity.CenterHorizontal, Height = Application.GetRealWidth(184), Radius = (uint)Application.GetRealWidth(12), - ImagePath = scene.ImagePath + //ImagePath = scene.ImagePath }; sceneBgView.AddChidren(addSceneImageView); + + //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶 + ImageUtlis.Current.LoadLocalOrNetworkImages(scene.ImagePath, addSceneImageView); + #region 鍦烘櫙鍚嶇Оrow sceneNameView = new FrameLayout() @@ -327,9 +333,7 @@ }; contentView.AddChidren(functionListView); - LoadFunctionRow(functionListView); - Button btnLine1 = new Button() { @@ -339,7 +343,6 @@ }; contentView.AddChidren(btnLine1); - Button btnLine2 = new Button() { //Y = sceneDelayRow.Bottom, @@ -347,12 +350,11 @@ BackgroundColor = CSS_Color.DividingLineColor, }; contentView.AddChidren(btnLine2); - #endregion Button btnBottomLine = new Button() { - Y = Application.GetRealHeight(667-50)-1, + Y = Application.GetRealHeight(667 - 50) - 1, Height = 1, BackgroundColor = CSS_Color.DividingLineColor, }; @@ -379,8 +381,8 @@ void LoadFunctionRow(VerticalScrolViewLayout functionListView) { functionListView.RemoveAll(); - functionListView.Height = Application.GetRealWidth(65 * scene.sceneFunctionList.Count); - foreach (var function in scene.sceneFunctionList) + functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); + foreach (var scenefunction in scene.functions) { var row = new RowLayout() { @@ -416,7 +418,7 @@ TextAlignment = TextAlignment.BottomRight, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - Text = GetFunctionScnenInfo(function), + Text = GetFunctionScnenInfo(scenefunction), }; row.AddChidren(btnFunctionInfo); @@ -431,9 +433,9 @@ }; row.AddChidren(btnFunctionDelayInfo); - if (function.delay > 0) + if (Convert.ToInt32( scenefunction.delay) > 0) { - btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + function.delayText; + btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + scenefunction.localFunction.delayText; } else { @@ -447,7 +449,7 @@ TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, - Text = function.name, + Text = scenefunction.localFunction.name, }; row.AddChidren(btnFunctionName); @@ -459,20 +461,20 @@ TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.TextFontSize, - Text = function.GetRoomListName(), + Text = scenefunction.localFunction.GetRoomListName(), }; row.AddChidren(btnFunctionFloorAndRoom); btnFunctionName.MouseUpEventHandler = (sender, e) => { - var ssf = new SceneFunctionInfoEditPage(scene, function, refreshFunctionRowAction); + var ssf = new SceneFunctionInfoEditPage(scene, scenefunction, refreshFunctionRowAction); MainPage.BasePageView.AddChidren(ssf); ssf.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; btnFunctionFloorAndRoom.MouseUpEventHandler = (sender, e) => { - var ssf = new SceneFunctionInfoEditPage(scene, function, refreshFunctionRowAction); + var ssf = new SceneFunctionInfoEditPage(scene, scenefunction, refreshFunctionRowAction); MainPage.BasePageView.AddChidren(ssf); ssf.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; @@ -486,10 +488,10 @@ }; row.AddRightView(btnDelSceneFunction); btnDelSceneFunction.MouseUpEventHandler = (sender, e) => { - scene.sceneFunctionList.Remove(function); - scene.SaveFunctionData(); + scene.functions.Remove(scenefunction); + scene.SaveSceneData(true); row.RemoveFromParent(); - functionListView.Height = Application.GetRealWidth(65 * scene.sceneFunctionList.Count); + functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); //LoadFunctionRow(functionListView); }; @@ -501,32 +503,41 @@ /// 瑙f瀽鍦烘櫙鍔熻兘鏁版嵁 /// </summary> /// <param name="sceneFunction"></param> - string GetFunctionScnenInfo(Function sceneFunction) + string GetFunctionScnenInfo(SceneFunction sceneFunction) { - string sceneFunctionInfo = Language.StringByID(StringId.Close); - if (sceneFunction.trait_on_off.curValue.ToString() == "off") - return sceneFunctionInfo; - sceneFunctionInfo = ""; + var sceneFunctionInfo = ""; + foreach (var sfs in sceneFunction.status) + { + if (sfs.key == FunctionAttributeKey.OnOff) + { + if (sfs.value == "off") + return Language.StringByID(StringId.Close); + } + if (sfs.key == FunctionAttributeKey.Mode) + { + + } + } FunctionAttributes perTrait; - switch (sceneFunction.functionType) + switch (sceneFunction.localFunction.functionType) { case FunctionType.AC: - sceneFunctionInfo += sceneFunction.function.Find((obj) => obj.key == "mode").GetCurValueText(); - sceneFunctionInfo += " " + sceneFunction.function.Find((obj) => obj.key == "set_temperature").curValue.ToString() + - sceneFunction.function.Find((obj) => obj.key == "set_temperature").uintString; - sceneFunctionInfo += sceneFunction.function.Find((obj) => obj.key == "fan").GetCurValueText(); + sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText(); + sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").curValue.ToString() + + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").uintString; + sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "fan").GetCurValueText(); break; case FunctionType.FloorHeating: - sceneFunctionInfo += sceneFunction.function.Find((obj) => obj.key == "mode").GetCurValueText(); - sceneFunctionInfo += " " + sceneFunction.function.Find((obj) => obj.key == "set_temperature").curValue.ToString() + - sceneFunction.function.Find((obj) => obj.key == "set_temperature").uintString; + sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText(); + sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").curValue.ToString() + + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").uintString; break; case FunctionType.Dimmer: - perTrait = sceneFunction.function.Find((obj) => obj.key == "brightness"); + perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness"); if (perTrait != null) { - sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.function.Find((obj) => obj.key == "brightness").curValue.ToString() + "%"; + sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%"; } else { @@ -537,10 +548,10 @@ sceneFunctionInfo += Language.StringByID(StringId.Open); break; case FunctionType.RGB: - perTrait = sceneFunction.function.Find((obj) => obj.key == "percent"); + perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent"); if (perTrait != null) { - sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.function.Find((obj) => obj.key == "brightness").curValue.ToString() + "%"; + sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%"; } else { @@ -551,10 +562,10 @@ sceneFunctionInfo += Language.StringByID(StringId.Open); break; case FunctionType.MotorCurtain: - perTrait = sceneFunction.function.Find((obj) => obj.key == "percent"); + perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent"); if (perTrait != null) { - sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.function.Find((obj) => obj.key == "percent").curValue.ToString() + "%"; + sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent").curValue.ToString() + "%"; } else { @@ -747,11 +758,12 @@ //}, pid.ToString(), 4, 3); - //var imageName = Guid.NewGuid().ToString(); - var imageName = scene.sid; + var imageName = Guid.NewGuid().ToString(); + //var imageName = scene.sid; CropImage.TakePicture((imagePath) => { - CropImageCallBack(imagePath, imageName); + CropImageCallBack(imagePath); + }, imageName, 4, 3); //if (pageTitleId == StringId.EditScene) @@ -779,11 +791,11 @@ //}, pid.ToString(), 4, 3); //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀 - //var imageName = Guid.NewGuid().ToString(); - var imageName = scene.sid; + var imageName = Guid.NewGuid().ToString(); + //var imageName = scene.sid; CropImage.SelectPicture((imagePath) => { - CropImageCallBack(imagePath, imageName); + CropImageCallBack(imagePath); }, imageName, 4, 3); @@ -801,7 +813,7 @@ addSceneImageView.ImagePath = scene.ImagePath; if (pageTitleId == StringId.EditScene) { - scene.SaveFunctionData(); + scene.SaveSceneData(true); } }; @@ -818,51 +830,25 @@ /// </summary> /// <param name="imagePath">瑁佸壀鍚庣殑鐪熷疄璺緞</param> /// <param name="imageName">鑷畾涔夌殑鍥剧墖鍚嶇О</param> - void CropImageCallBack(string imagePath, string imageName) + void CropImageCallBack(string selectImagePath) { - if (string.IsNullOrEmpty(imagePath) == true) + if (string.IsNullOrEmpty(selectImagePath) == true) { return; } - try + //涓婁紶鎴愬姛鍒板洖璋� + Action<string> uploadSuccessAction = (imageUrl) => { - var mPath = imagePath; - MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + imagePath); - -#if __IOS__ - - -#else - //1.浣跨敤鏂板悕瀛楋紝瑙e喅鐩稿悓璺緞涓嶅埛鏂板浘鐗囬棶棰� - imageName = Guid.NewGuid().ToString() + ".png"; - //1.2濡傛灉鏄嚜瀹氫箟鍥剧墖鍒犻櫎涔嬪墠鐨� - if (!addSceneImageView.ImagePath.Contains("Gallery/scenebg")) - { - Utlis.WriteLine("鍒犻櫎: " + addSceneImageView.ImagePath); - System.IO.File.Delete(addSceneImageView.ImagePath); - } - //1.3濡傛灉鏄畨鍗撻渶瑕佹嫹璐濆洖鏉PP鏍圭洰褰� - FileUtils.FileCopyToRootPath(imagePath, imageName); - System.IO.File.Delete(imagePath); - MainPage.Log("SelectPicture 鏈�缁堣矾寰�: " + imageName); - mPath = imageName; -#endif - //娓呯┖鍘熸潵鍥剧墖 - addSceneImageView.ImagePath = "NULL"; - addSceneImageView.ImagePath = mPath; - scene.ImagePath = mPath; - + //2020-12-03 闇�瑕佽鏈�鏂扮殑鍥剧墖璺緞鍚屾鍒颁簯绔� + scene.ImagePath = imageUrl; if (pageTitleId == StringId.EditScene) { - scene.SaveFunctionData(); + scene.SaveSceneData(true); } - } - catch - { - - } - + }; + //涓婁紶鍥剧墖鍒颁簯绔� + UploadImage(selectImagePath, addSceneImageView, scene, uploadSuccessAction); } /// <summary> @@ -892,7 +878,7 @@ return; } } - scene.SaveFunctionData(); + scene.SaveSceneData(true); DB_ResidenceData.functionList.scenes.Add(scene); backAction(); this.RemoveFromParent(); @@ -901,7 +887,7 @@ { Action action = () => { - DB_ResidenceData.DelSceneFunction(scene.sid); + DB_ResidenceData.functionList.DeleteScene(scene,true); backAction(); this.RemoveFromParent(); }; @@ -933,7 +919,7 @@ scene.name = str; if (pageTitleId == StringId.EditScene) { - scene.SaveFunctionData(); + scene.SaveSceneData(true); } }; EventHandler<MouseEventArgs> eventHandler = (sender, e) => @@ -950,6 +936,89 @@ btnEditSceneNameIcon.MouseUpEventHandler = eventHandler; } + /// <summary> + /// 涓婁紶鍥剧墖鏂规硶 + /// </summary> + /// <param name="selectImagePath">瑁佸壀鍚庣殑鍥剧墖璺緞</param> + /// <param name="imageView"></param> + /// <param name="uploadSuccessAction"></param> + void UploadImage(string selectImagePath, ImageView imageView, Scene mScene, Action<string> uploadSuccessAction) + { + try + { + //MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + selectImagePath); + //1.璇诲彇瑁佸壀鍚庣殑鍥剧墖锛岀劧鍚庡垹闄� + var imageBytes = Shared.IO.FileUtils.ReadFile(selectImagePath); + System.IO.File.Delete(selectImagePath); + var waitPage = new Loading(); + bodyView.AddChidren(waitPage); + waitPage.Start(Language.StringByID(StringId.PleaseWait)); + //寮�濮嬩笂浼� + new Thread(() => + { + try + { + var newImageName = mScene.name.Trim() + ".png"; + var uploadImageObj = new UploadImageObj() + { + prefix = "Scene" + Utlis.GetTimestamp(), + fileName = newImageName, + uid = mScene.sid, + content = imageBytes, + }; + + var imageUrl = ImageUtlis.Current.UploadImage(uploadImageObj); + if (!string.IsNullOrEmpty(imageUrl) && imageUrl.Contains(newImageName)) + { + //涓婁紶鎴愬姛 + Application.RunOnMainThread(() => + { + //Utlis.WriteLine("涓婁紶鎴愬姛锛�" + imageUrl); + //1.2濡傛灉鏄嚜瀹氫箟鍥剧墖鍒犻櫎涔嬪墠鐨� + if (!string.IsNullOrEmpty(imageView.ImagePath) && !imageView.ImagePath.Contains("Classification/Room/Roombg")) + { + //Utlis.WriteLine("鍒犻櫎: " + imageView.ImagePath); + System.IO.File.Delete(imageView.ImagePath); + } + //閲嶅懡鍚嶄繚瀛� + FileUtils.WriteFileByBytes(imageUrl, imageBytes); + imageView.ImagePath = null; + imageView.ImageBytes = imageBytes; + //涓婁紶鎴愬姛 + Utlis.ShowTip(Language.StringByID(StringId.UploadSuccessfully)); + uploadSuccessAction?.Invoke(imageUrl); + }); + } + else + { + //涓婁紶澶辫触 + Application.RunOnMainThread(() => + { + //涓婁紶澶辫触 + Utlis.ShowTip(Language.StringByID(StringId.UploadFailed)); + }); + } + + } + catch (Exception ex) + { + } + finally + { + Application.RunOnMainThread(() => + { + if (waitPage != null) + { + waitPage.RemoveFromParent(); + waitPage = null; + } + }); + } + }) + { IsBackground = true }.Start(); + } + catch { } + } } } -- Gitblit v1.8.0