wjc
2023-07-19 1b56157e8edc3f502810820d99b607e3629c7171
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockUserListPage.cs
New file
@@ -0,0 +1,198 @@
using System;
using System.Collections.Generic;
using HDL_ON.Common;
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock
{
    public class VideoDoorlockUserListPage : FrameLayout
    {
        FrameLayout bodyView;
        VerticalScrolViewLayout contentView;
        Function device;
        List<VideoDoorlockUser> userList;
        public VideoDoorlockUserListPage(Function function)
        {
            bodyView = this;
            device = function;
            userList = new List<VideoDoorlockUser>();
        }
        public void LoadPage()
        {
            new TopViewDiv(bodyView, Language.StringByID(StringId.UserManagement)).LoadTopView();
            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
            contentView = new VerticalScrolViewLayout()
            {
                Y = Application.GetRealHeight(64),
                Height = Application.GetRealHeight(667 - 70),
            };
            bodyView.AddChidren(contentView);
            var waitPage = new Loading();
            bodyView.AddChidren(waitPage);
            waitPage.Start("");
            new System.Threading.Thread(() => {
                try
                {
                    var pack = ApiUtlis.Ins.HttpRequest.GetDoorlockUserList(device.deviceId);
                    if (pack != null)
                    {
                        if (pack.Code == StateCode.SUCCESS)
                        {
                            userList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<VideoDoorlockUser>>(pack.Data.ToString());
                            if (userList != null)
                            {
                                Application.RunOnMainThread(() => {
                                    initView();
                                });
                            }
                        }
                        else
                        {
                            Application.RunOnMainThread(() =>
                            {
                                IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
                            });
                        }
                    }
                }
                catch (Exception ex)
                {
                    MainPage.Log($"获取门锁用户异常:{ex.Message}");
                }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        waitPage.Hide();
                    });
                }
            })
            { IsBackground = true }.Start();
        }
        void initView()
        {
            contentView.RemoveAll();
            foreach (var user in userList)
            {
                contentView.AddChidren(new Button() { Height = Application.GetRealHeight(12) });
                var row = new FrameLayout()
                {
                    Gravity = Gravity.CenterHorizontal,
                    Height = Application.GetRealHeight(50),
                    Radius = (uint)Application.GetRealWidth(12),
                    BackgroundColor = CSS_Color.MainBackgroundColor,
                    Width = Application.GetRealWidth(343),
                };
                contentView.AddChidren(row);
                var btnRight = new Button()
                {
                    X = Application.GetRealWidth(307),
                    Gravity = Gravity.CenterVertical,
                    Width = Application.GetMinRealAverage(16),
                    Height = Application.GetMinRealAverage(16),
                    UnSelectedImagePath = "Public/Right.png",
                };
                row.AddChidren(btnRight);
                var btnName = new Button()
                {
                    X = Application.GetRealWidth(12),
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextSize = CSS_FontSize.TextFontSize,
                    Text = user.lockUserName
                };
                row.AddChidren(btnName);
                btnName.MouseUpEventHandler = (sender, e) => {
                    var page = new VideoDoorlockUserManagerPage(device, user);
                    page.delCallBackAction = () => {
                        userList.Remove(user);
                        initView();
                    };
                    MainPage.BasePageView.AddChidren(page);
                    page.LoadPage();
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                };
            }
        }
    }
    public class VideoDoorlockUser
    {
        /// <summary>
        ///  开始时间    integer(int32)
        /// </summary>
        public string beginTime;
        /// <summary>
        /// 感应卡密码数量 integer(int32)
        /// </summary>
        public int cardCount;
        /// <summary>
        /// 结束时间    integer(int32)
        /// </summary>
        public int endTime;
        /// <summary>
        ///  是否过期    integer(int32)
        /// </summary>
        public string expiredEnable;
        /// <summary>
        ///  门锁用户id  string
        /// </summary>
        public string extUserId;
        /// <summary>
        ///        string
        /// </summary>
        public string extUserName;
        /// <summary>
        ///  人脸密码数量 integer(int32)
        /// </summary>
        public int faceCount;
        /// <summary>
        ///  指纹密码数量  integer(int32)
        /// </summary>
        public int fingerCount;
        /// <summary>
        /// 用户备注名   string
        /// </summary>
        public string lockRemarkName;
        /// <summary>
        ///  锁用户类型// 0-主用户,1-普通用户   integer(int32)
        /// </summary>
        public int lockType;
        /// <summary>
        ///  门锁用户id string
        /// </summary>
        public string lockUserIndex;
        /// <summary>
        /// 用户名 string
        /// </summary>
        public string lockUserName;
        /// <summary>
        /// 数字密码数量 integer(int32)
        /// </summary>
        public int pwdCount;
    }
}