From 987933326b9620e29f7c4acac808ec3b8d958642 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 19 七月 2023 10:41:47 +0800
Subject: [PATCH] 2023年07月19日10:41:42
---
HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs | 190 +++++++++++++++++++++++++++++++++++++++++------
1 files changed, 164 insertions(+), 26 deletions(-)
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs
index b64cdd0..4a6070a 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs
@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.Threading;
+using HDL_ON.Common;
using HDL_ON.DAL.Server;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
@@ -50,7 +51,8 @@
/// <summary>
/// 鍥炶皟鍒锋柊
/// </summary>
- Action backActon;
+ Action<GroupControl> addActon;
+ Action delAction;
/// <summary>
/// 鏄惁鏂板缇ゆ帶
/// </summary>
@@ -64,7 +66,7 @@
GroupControlType groupControlType = new GroupControlType();
- public AddGroupControlPage(GroupControl groupControl, Action action)
+ public AddGroupControlPage(GroupControl groupControl, Action<GroupControl> addAction,Action delAction)
{
bodyView = this;
if(groupControl == null)
@@ -78,19 +80,85 @@
editDataString = Newtonsoft.Json.JsonConvert.SerializeObject(this.groupControl);
}
groupControlLightList = new List<Function>();
- backActon = action;
+ this.addActon = addAction;
+
+ this.delAction = delAction;
+
lightList = FunctionList.List.GetLightList();
}
public void LoadPage()
{
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
- new TopViewDiv(bodyView, Language.StringByID(StringId.CombinedDimming)).LoadTopView();
+ if (isAdd)
+ {
+ new TopViewDiv(bodyView, Language.StringByID(StringId.CombinedDimming)).LoadTopView();
+ }
+ else
+ {
+ new TopViewDiv(bodyView, "").LoadTopView_SettingText(()=> {
+ Action action = () => {
+ var waitPage = new Loading();
+ this.AddChidren(waitPage);
+ waitPage.Start("");
+ new System.Threading.Thread(() =>
+ {
+ try
+ {
+ var pack = ApiUtlis.Ins.HttpRequest.DelGroupControl(groupControl.userDeviceGroupControlId);
+ if (pack != null)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ try
+ {
+ if (pack.Code == StateCode.SUCCESS)
+ {
+ FunctionList.List.groupControls.Remove(groupControl);
+ //list.Remove(groupControl);
+ this.RemoveFromParent();
+ delAction?.Invoke();
+ }
+ else
+ {
+ IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
+ }
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"鍒锋柊缁勬帶鏁版嵁寮傚父:{ex.Message}");
+ }
+ });
+ }
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"鍒犻櫎缁勬帶寮傚父:{ex.Message}");
+ }
+ finally
+ {
+ Application.RunOnMainThread(() => {
+ if (waitPage != null)
+ {
+ waitPage.Hide();
+ waitPage.RemoveFromParent();
+ waitPage = null;
+ }
+ });
+ }
+ })
+ { IsBackground = true }.Start();
+
+ };
+ new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DoYouWantDelCombinedDimming, action);
+
+ }, Language.StringByID(StringId.DelGroupControl),true);
+ }
var contentView = new FrameLayout()
{
Y = Application.GetRealHeight(64),
- Height = Application.GetRealHeight(550),
+ Height = Application.GetRealHeight(667-64),
};
bodyView.AddChidren(contentView);
@@ -105,7 +173,7 @@
Button btnGroupNameTitle = new Button()
{
X = Application.GetRealWidth(16),
- Width = Application.GetRealWidth(78),
+ Width = Application.GetRealWidth(178),
TextID = StringId.GroupNmae,
TextAlignment = TextAlignment.CenterLeft,
TextSize = CSS_FontSize.SubheadingFontSize,
@@ -182,6 +250,7 @@
Action chooseRoomBackAction = () => {
try
{
+ groupControl.uids = groupControl.roomIds;
btnLocationValues.Text = groupControl.GetRoomListName();
}
catch { }
@@ -253,13 +322,13 @@
TextColor = CSS_Color.FirstLevelTitleColor,
TextID = StringId.SelectedAll,
};
- if (groupControlLightList.Count > 0)
+ if (groupControlLightList.Count == lightList.Count)
{
btnChooseAll.TextID = StringId.Cancel;
}
roomFloorChangeView.AddChidren(btnChooseAll);
btnChooseAll.MouseUpEventHandler = (sender, e) => {
- if (groupControlLightList.Count > 0)
+ if (groupControlLightList.Count == lightList.Count)
{
groupControlLightList.Clear();
btnChooseAll.TextID = StringId.SelectAll;
@@ -267,11 +336,33 @@
}
else
{
+ groupControlLightList.Clear();
groupControlLightList.AddRange(lightList);
btnChooseAll.TextID = StringId.Cancel;
btnConfrim.IsSelected = true;
}
- LoadLightRow(lightList);
+
+ for (int i = 0; i < functionListView.ChildrenCount; i++)
+ {
+ var view = functionListView.GetChildren(i);
+ if (view.GetType() == typeof(LightRow))
+ {
+ if (view.Tag != null && view.Tag.ToString() == "row")
+ {
+ for (int j = 0; j < (view as FrameLayout).ChildrenCount; j++)
+ {
+ var btn = (view as FrameLayout).GetChildren(j);
+ if (btn.GetType() == typeof(Button))
+ {
+ if (btn.Tag != null && btn.Tag.ToString() == "ChooseIcon")
+ {
+ (btn as Button).IsSelected = groupControlLightList.Count == lightList.Count;
+ }
+ }
+ }
+ }
+ }
+ }
};
#endregion
@@ -358,7 +449,18 @@
{
if (pack.Code == StateCode.SUCCESS)
{
- backActon?.Invoke();
+ try
+ {
+ var addTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GroupControl>>(pack.Data.ToString());
+ if (addTemp != null && addTemp.Count > 0)
+ groupControl.userDeviceGroupControlId = addTemp[0].userDeviceGroupControlId;
+ FunctionList.List.groupControls.Add(groupControl);
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"娣诲姞缇ゆ帶寮傚父锛岃浆璇戣繑鍥炴暟鎹け璐�:{ex.Message}");
+ }
+ addActon?.Invoke(groupControl);
this.RemoveFromParent();
}
else
@@ -383,12 +485,33 @@
this.RemoveFromParent();
return;
}
+ groupControl.sids.Clear();
+ foreach (var light in groupControlLightList)
+ {
+ try
+ {
+ var gc = new GroupControlFunction();
+ gc.sid = light.sid;
+ gc.spk = light.spk;
+ groupControl.sids.Add(gc);
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"鏂板缇ゆ帶杞崲鏁版嵁寮傚父:{ex.Message}");
+ }
+ }
+
var pack = Common.ApiUtlis.Ins.HttpRequest.EditGroupControl(new List<GroupControl>() { groupControl });
if (pack != null)
{
if (pack.Code == StateCode.SUCCESS)
{
- backActon?.Invoke();
+ var temp = FunctionList.List.groupControls.Find((obj) => obj.userDeviceGroupControlId == groupControl.userDeviceGroupControlId);
+ if(temp!= null)
+ {
+ temp = groupControl;
+ }
+ addActon?.Invoke(temp);
this.RemoveFromParent();
}
else
@@ -459,6 +582,10 @@
groupControl = groupControlTemps[0];
Application.RunOnMainThread(() =>
{
+ if (groupControl.sids.Count == lightList.Count)
+ {
+ btnChooseAll.TextID = StringId.Cancel;
+ }
LoadLightRow(lightList);
});
}
@@ -486,7 +613,7 @@
/// <summary>
/// 鏄剧ず鐨勮澶囩殑鎬绘暟
/// </summary>
- int showCount = 0;
+ int showCount = -1;
/// <summary>
/// 鍔犺浇鍔熻兘row
@@ -506,18 +633,19 @@
{
if (!isAppend)
{
- showCount = 0;
+ showCount = -1;
functionListView.RemoveAll();
}
- int i = 0;
- foreach (var function in functions)
+ for(var i =0;i<100;i++)
+ //foreach (var function in functions)
{
- i++;
- if (i > 100)
+ showCount++;
+ if (showCount >= functions.Count)
{
break;
}
- showCount++;
+ var function = functions[showCount];
+
var functionDiv = new LightRow(function)
{
Gravity = Gravity.CenterHorizontal,
@@ -525,7 +653,7 @@
BorderColor = 0x00FFFFFF,
BorderWidth = 1,
BackgroundColor = CSS_Color.MainBackgroundColor,
- Tag = function.spk + function.sid
+ Tag = "row"
};
functionDiv.AddChidren(new Button()
{
@@ -538,13 +666,22 @@
Action setAction = () =>
{
- if (groupControlLightList.Count > 0)
+ if (groupControlLightList.Count > 1)
{
btnConfrim.IsSelected = true;
}
else
{
btnConfrim.IsSelected = false;
+ }
+ if (groupControlLightList.Count != functions.Count)
+ {
+ btnChooseAll.TextID = StringId.SelectedAll;
+ }
+ else
+ {
+ if(btnChooseAll.TextID != StringId.Cancel)
+ btnChooseAll.TextID = StringId.Cancel;
}
};
if (groupControl.sids.Find((obj) => obj.sid == function.sid) != null)
@@ -564,12 +701,8 @@
TextAlignment = TextAlignment.Center,
TextSize = CSS_FontSize.SubheadingFontSize,
TextColor = CSS_Color.FirstLevelTitleColor,
- Text = "鍔犺浇鏇村",
+ TextID = StringId.LoadMore,
};
- if (Language.CurrentLanguage != "Chinese")
- {
- btnAppend.Text = "Load more";
- }
functionListView.AddChidren(btnAppend);
btnAppend.MouseUpEventHandler = (sender, e) =>
{
@@ -613,8 +746,12 @@
var form = new FloorRoomSelectPopupView();
form.ShowDeviceFunctionView(btnFloor, this.lightList, (selectId, listFunc) =>
{
+ groupControlLightList.Clear();
+ groupControl.sids.Clear();
+ btnChooseAll.TextID = StringId.SelectAll;
+ btnConfrim.IsSelected = false;
btnChooseAll.MouseUpEventHandler = (sender2, e2) => {
- if (groupControlLightList.Count > 0)
+ if (groupControlLightList.Count == listFunc.Count)
{
groupControlLightList.Clear();
btnChooseAll.TextID = StringId.SelectAll;
@@ -622,6 +759,7 @@
}
else
{
+ groupControlLightList.Clear();
groupControlLightList.AddRange(listFunc);
btnChooseAll.TextID = StringId.Cancel;
btnConfrim.IsSelected = true;
--
Gitblit v1.8.0