mac
2023-11-06 54c202bd4867092fca2bc6f96bec0cfd1056a46a
HDL_ON/UI/UI2/3-Intelligence/Scene/SceneFunctionListChoosePage.cs
@@ -128,7 +128,11 @@
            };
            bodyView.AddChidren(functionListView);
            foreach (var function in FunctionList.List.Functions)
            List<Function> showList = new List<Function>();
            showList.AddRange(FunctionList.List.Functions);
            showList.AddRange(FunctionList.List.groupControls);
            foreach (var function in showList)
            {
                if (!MainPage.SceneSupportFunctionList.Contains(function.spk))
                {
@@ -156,9 +160,39 @@
                {
                    unallocatedList.Add(function);
                }
            }
            if (string.IsNullOrEmpty(DB_ResidenceData.Instance.sceneChooseRoomId))
            {
                LoadFunctionListRow(null);
            }
            else
            {
                var selectedRoom = Room.CurrentSpatial.RoomList.Find((obj) => obj.uid == DB_ResidenceData.Instance.sceneChooseRoomId);
                if (selectedRoom == null)
                {
                    LoadFunctionListRow(null);
                }
                else
                {
                    var listAllFun = new List<Function>();
                    var listFun = new List<Function>();
                    listAllFun.AddRange(unallocatedList);
                    listAllFun.AddRange(allocatedList);
                    btnFloor.Text = selectedRoom.floorRoomName;
                    foreach (var funtion in listAllFun)
                    {
                        if (funtion.roomIds.Contains(selectedRoom.roomId))
                        {
                            listFun.Add(funtion);
                        }
                    }
                    LoadFunctionListRow(listFun);
                }
            }
            LoadFunctionListRow(null);
            LoadEventList();
        }
@@ -166,9 +200,8 @@
        /// <summary>
        /// 显示功能Row
        /// </summary>
        void LoadFunctionListRow(List<Function> functions)
        void LoadFunctionListRow(List<Function> functions, bool isAppend = false)
        {
            functionListView.RemoveAll();
            if (functions == null)
            {
                //初始值
@@ -176,8 +209,20 @@
                functions.AddRange(unallocatedList);
                functions.AddRange(allocatedList);
            }
            foreach (var function in functions)
            if (!isAppend)
            {
                showCount = -1;
                functionListView.RemoveAll();
            }
            for (var i = 0; i < 100; i++)
            //foreach (var function in functions)
            {
                showCount++;
                if (showCount >= functions.Count)
                {
                    break;
                }
                var function = functions[showCount];
                if (!MainPage.SceneSupportFunctionList.Contains(function.spk))
                {
                    continue;
@@ -256,9 +301,32 @@
                };
                functionRow.AddChidren(btnChooseIcon);
                LoadEvent_SkipEditFunctionInfo(functionRow, btnFunctionFloorName, btnChooseIcon, btnFunctionName, function);
            }
            if (functions.Count > showCount)
            {
                var btnAppend = new Button()
                {
                    Height = Application.GetRealHeight(60),
                    TextAlignment = TextAlignment.Center,
                    TextSize = CSS_FontSize.SubheadingFontSize,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextID = StringId.LoadMore,
                };
                functionListView.AddChidren(btnAppend);
                btnAppend.MouseUpEventHandler = (sender, e) =>
                {
                    btnAppend.RemoveFromParent();
                    LoadFunctionListRow(functions, true);
                };
            }
        }
        /// <summary>
        /// 显示的设备的总数
        /// </summary>
        int showCount = -1;
        /// <summary>
@@ -278,6 +346,7 @@
                form.ShowDeviceFunctionView(btnFloor, listAllFun, (selectId, listFun) =>
                {
                    nowSelectId = selectId;
                    DB_ResidenceData.Instance.sceneChooseRoomId = selectId;
                    //重新刷新设备列表
                    this.LoadFunctionListRow(listFun);
                }, nowSelectId);