From 7bea8bc6d399e9097e3565c2eed48ee6145d6b2f Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 12 七月 2023 20:49:11 +0800
Subject: [PATCH] 萤石猫眼,门锁,摄像头功能对接

---
 HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockUserManagerPage.cs |  434 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 346 insertions(+), 88 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockUserManagerPage.cs b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockUserManagerPage.cs
index 062a590..36eea30 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockUserManagerPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockUserManagerPage.cs
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using HDL_ON.Common;
 using HDL_ON.DAL.Server;
+using HDL_ON.DriverLayer;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
 using Shared;
@@ -21,6 +22,9 @@
 
         Function device;
         VideoDoorlockUser doorlockUser;
+        public Action delCallBackAction;
+
+        Loading waitPage;
 
         public VideoDoorlockUserManagerPage(Function function,VideoDoorlockUser user)
         {
@@ -28,6 +32,9 @@
             device = function;
             doorlockUser = user;
             BackgroundColor = CSS_Color.BackgroundColor;
+            waitPage = new Loading();
+            bodyView.AddChidren(waitPage);
+            waitPage.Hide();
         }
 
         public void LoadPage()
@@ -91,25 +98,30 @@
 
         void initOptionView(bool isEdit)
         {
-            if(userPermissionsView!= null)
+            int childrenViewHeight = Application.GetRealWidth(116);
+            int permissionsViewHeight = Application.GetRealHeight(291 + 92);
+            if (userPermissionsView!= null)
             {
                 userPermissionsView.RemoveAll();
+
+                if (isEdit)
+                {
+                    permissionsViewHeight = Application.GetRealHeight(391 + 50);
+                    childrenViewHeight = Application.GetRealWidth(156);
+                }
+                userPermissionsView.Height = permissionsViewHeight;
             }
-            int childrenViewHeight = Application.GetRealHeight( 108);
-            int permissionsViewHeight = Application.GetRealHeight( 291+92);
-            if (isEdit)
+            else
             {
-                permissionsViewHeight = Application.GetRealHeight(391 + 92);
-                childrenViewHeight = Application.GetRealHeight(136);
+                userPermissionsView = new FrameLayout()
+                {
+                    Height = permissionsViewHeight,
+                    BackgroundColor = CSS_Color.MainBackgroundColor,
+                };
+                contentView.AddChidren(userPermissionsView);
             }
 
             #region 闂ㄩ攣鐢ㄦ埛寮�閿佹柟寮忕鐞�
-            userPermissionsView = new FrameLayout()
-            {
-                Height = permissionsViewHeight,
-                BackgroundColor = CSS_Color.MainBackgroundColor,
-            };
-            contentView.AddChidren(userPermissionsView);
 
             var userPermissionsTitleView = new FrameLayout()
             {
@@ -135,11 +147,19 @@
                 TextAlignment = TextAlignment.CenterRight,
                 TextSize = CSS_FontSize.TextFontSize,
                 TextColor = CSS_Color.MainColor,
-                TextID = StringId.Edit,
+                TextID = !isEdit? StringId.Edit: StringId.Complete,
             };
             userPermissionsTitleView.AddChidren(btnEditUserPermissions);
             btnEditUserPermissions.MouseUpEventHandler = (sender, e) => {
-                initOptionView(isEdit ? false : true);
+                if(!isEdit)
+                {
+                    initOptionView(true);
+                }
+                else
+                {
+                    initOptionView(false);
+                }
+
             };
 
 
@@ -147,7 +167,7 @@
             var unlockOptionView = new FrameLayout()
             {
                 Y = userPermissionsTitleView.Bottom,
-                Height = Application.GetRealHeight(231),
+                Height =2 * childrenViewHeight +Application.GetRealHeight(20),
                 BackgroundColor = CSS_Color.MainBackgroundColor,
             };
             userPermissionsView.AddChidren(unlockOptionView);
@@ -157,7 +177,7 @@
             {
                 X = Application.GetRealWidth(16),
                 Width = Application.GetRealWidth(64 + 32),
-                Height = Application.GetRealHeight(64 + 24 + 20)
+                Height = childrenViewHeight
             };
             unlockOptionView.AddChidren(fingerprintView);
 
@@ -193,24 +213,70 @@
                 {
                     btnFingerprintText.Text = doorlockUser.fingerCount + " " + Language.StringByID(StringId.Fingerprints);
                 }
-            }
 
-            if (isEdit)
-            {
-                var btnClearFingerprints = new Button()
+                if (isEdit)
                 {
-                    Y = btnFingerprintText.Bottom,
-                    Width = Application.GetRealWidth(60),
-                    Height = Application.GetRealHeight(28),
-                    BorderWidth = 1,
-                    BorderColor = CSS_Color.MainColor,
-                    Radius = (uint)Application.GetRealWidth(4),
-                    TextID = StringId.Clear,
-                };
-                fingerprintView.AddChidren(btnClearFingerprints);
-                btnClearFingerprints.MouseUpEventHandler = (sender, e) => {
-
-                };
+                    var btnClearFingerprints = new Button()
+                    {
+                        X = Application.GetRealWidth(18),
+                        Y = btnFingerprintText.Bottom,
+                        Width = Application.GetRealWidth(60),
+                        Height = Application.GetRealHeight(28),
+                        BorderWidth = 1,
+                        BorderColor = CSS_Color.MainColor,
+                        Radius = (uint)Application.GetRealWidth(4),
+                        TextID = StringId.Clear,
+                        TextColor = CSS_Color.MainColor,
+                    };
+                    fingerprintView.AddChidren(btnClearFingerprints);
+                    btnClearFingerprints.MouseUpEventHandler = (sender, e) =>
+                    {
+                        waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                        new System.Threading.Thread(() =>
+                        {
+                            try
+                            {
+                                var pack = ApiUtlis.Ins.HttpRequest.DeleteDoorlockUserFingerPassword(device.deviceId, doorlockUser.lockUserIndex);
+                                if (pack != null && pack.Code == StateCode.SUCCESS)
+                                {
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        //鏇存柊鐣岄潰
+                                        initOptionView(true);
+                                    });
+                                }
+                                else
+                                {
+                                    //澶辫触鎻愮ず
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        //澶辫触鎻愮ず
+                                        var tip = new Tip()
+                                        {
+                                            MaxWidth = Application.GetRealWidth(300),
+                                            Text = pack.message,
+                                            CloseTime = 3,
+                                            Direction = AMPopTipDirection.None
+                                        };
+                                        tip.Show(MainPage.BaseView);
+                                    });
+                                }
+                            }
+                            catch (Exception ex)
+                            {
+                                MainPage.Log($"delete finger error : {ex.Message}");
+                            }
+                            finally
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    waitPage.Hide();
+                                });
+                            }
+                        })
+                        { IsBackground = true }.Start();
+                    };
+                }
             }
             #endregion
 
@@ -220,7 +286,7 @@
             {
                 Gravity = Gravity.CenterHorizontal,
                 Width = Application.GetRealWidth(64 + 32),
-                Height = Application.GetRealHeight(64 + 24 + 20)
+                Height = childrenViewHeight
             };
             unlockOptionView.AddChidren(digitalPasswordView);
 
@@ -256,21 +322,71 @@
                 {
                     btnDigitalPasswordText.Text = doorlockUser.fingerCount + " " + Language.StringByID(StringId.DigitalPassword);
                 }
-            }
 
-            if (isEdit)
-            {
-                var btnClearDigitalPassword = new Button()
+                if (isEdit)
                 {
-                    Y = btnDigitalPasswordText.Bottom,
-                    Width = Application.GetRealWidth(60),
-                    Height = Application.GetRealHeight(28),
-                    BorderWidth = 1,
-                    BorderColor = CSS_Color.MainColor,
-                    Radius = (uint)Application.GetRealWidth(4),
-                    TextID = StringId.Clear,
-                };
-                digitalPasswordView.AddChidren(btnClearDigitalPassword);
+                    var btnClearDigitalPassword = new Button()
+                    {
+                        X = Application.GetRealWidth(18),
+                        Y = btnDigitalPasswordText.Bottom,
+                        Width = Application.GetRealWidth(60),
+                        Height = Application.GetRealHeight(28),
+                        BorderWidth = 1,
+                        BorderColor = CSS_Color.MainColor,
+                        Radius = (uint)Application.GetRealWidth(4),
+                        TextID = StringId.Clear,
+                        TextColor = CSS_Color.MainColor,
+                    };
+                    digitalPasswordView.AddChidren(btnClearDigitalPassword);
+                    btnClearDigitalPassword.MouseUpEventHandler = (sender, e) =>
+                    {
+                        waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                        new System.Threading.Thread(() =>
+                        {
+                            try
+                            {
+                                var pack = ApiUtlis.Ins.HttpRequest.DeleteDoorlockUserNumberPassword(device.deviceId, doorlockUser.lockUserIndex);
+                                if (pack != null && pack.Code == StateCode.SUCCESS)
+                                {
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        //鏇存柊鐣岄潰
+                                        initOptionView(true);
+                                    });
+                                }
+                                else
+                                {
+                                    //澶辫触鎻愮ず
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        //澶辫触鎻愮ず
+                                        var tip = new Tip()
+                                        {
+                                            MaxWidth = Application.GetRealWidth(300),
+                                            Text = pack.message,
+                                            CloseTime = 3,
+                                            Direction = AMPopTipDirection.None
+                                        };
+                                        tip.Show(MainPage.BaseView);
+                                    });
+                                }
+                            }
+                            catch (Exception ex)
+                            {
+                                MainPage.Log($"delete number password error : {ex.Message}");
+                            }
+                            finally
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    waitPage.Hide();
+                                });
+                            }
+                        })
+                        { IsBackground = true }.Start();
+                    };
+
+                }
             }
             #endregion
 
@@ -279,7 +395,7 @@
             {
                 X = Application.GetRealWidth(263),
                 Width = Application.GetRealWidth(64 + 32),
-                Height = Application.GetRealHeight(64 + 24 + 20)
+                Height = childrenViewHeight
             };
             unlockOptionView.AddChidren(nfcView);
 
@@ -315,21 +431,68 @@
                 {
                     btnNfcText.Text = doorlockUser.fingerCount + " " + Language.StringByID(StringId.NfcKey);
                 }
-            }
 
-            if (isEdit)
-            {
-                var btnClearNfc = new Button()
+                if (isEdit)
                 {
-                    Y = btnNfcText.Bottom,
-                    Width = Application.GetRealWidth(60),
-                    Height = Application.GetRealHeight(28),
-                    BorderWidth = 1,
-                    BorderColor = CSS_Color.MainColor,
-                    Radius = (uint)Application.GetRealWidth(4),
-                    TextID = StringId.Clear,
-                };
-                nfcView.AddChidren(btnClearNfc);
+                    var btnClearNfc = new Button()
+                    {
+                        X = Application.GetRealWidth(18),
+                        Y = btnNfcText.Bottom,
+                        Width = Application.GetRealWidth(60),
+                        Height = Application.GetRealHeight(28),
+                        BorderWidth = 1,
+                        BorderColor = CSS_Color.MainColor,
+                        Radius = (uint)Application.GetRealWidth(4),
+                        TextID = StringId.Clear,
+                        TextColor = CSS_Color.MainColor,
+                    };
+                    nfcView.AddChidren(btnClearNfc);
+                    btnClearNfc.MouseUpEventHandler = (sender, e) => {
+                        waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                        new System.Threading.Thread(() =>
+                        {
+                            try
+                            {
+                                var pack = ApiUtlis.Ins.HttpRequest.DeleteDoorlockUserCardPassword(device.deviceId, doorlockUser.lockUserIndex);
+                                if (pack != null && pack.Code == StateCode.SUCCESS)
+                                {
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        //鏇存柊鐣岄潰
+                                        initOptionView(true);
+                                    });
+                                }
+                                else
+                                {
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        //澶辫触鎻愮ず
+                                        var tip = new Tip()
+                                        {
+                                            MaxWidth = Application.GetRealWidth(300),
+                                            Text = pack.message,
+                                            CloseTime = 3,
+                                            Direction = AMPopTipDirection.None
+                                        };
+                                        tip.Show(MainPage.BaseView);
+                                    });
+                                }
+                            }
+                            catch (Exception ex)
+                            {
+                                MainPage.Log($"delete face error : {ex.Message}");
+                            }
+                            finally
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    waitPage.Hide();
+                                });
+                            }
+                        })
+                        { IsBackground = true }.Start();
+                    };
+                }
             }
             #endregion
 
@@ -337,9 +500,9 @@
             var faceView = new FrameLayout()
             {
                 X = Application.GetRealWidth(16),
-                Y = fingerprintView.Bottom+ Application.GetRealHeight(20),
+                Y = fingerprintView.Bottom,
                 Width = Application.GetRealWidth(64 + 32),
-                Height = Application.GetRealHeight(64 + 24 + 20)
+                Height = childrenViewHeight
             };
             unlockOptionView.AddChidren(faceView);
 
@@ -375,21 +538,69 @@
                 {
                     btnFaceText.Text = doorlockUser.fingerCount + " " + Language.StringByID(StringId.FaceKey);
                 }
-            }
 
-            if (isEdit)
-            {
-                var btnClearFace = new Button()
+                if (isEdit)
                 {
-                    Y = btnFaceText.Bottom,
-                    Width = Application.GetRealWidth(60),
-                    Height = Application.GetRealHeight(28),
-                    BorderWidth = 1,
-                    BorderColor = CSS_Color.MainColor,
-                    Radius = (uint)Application.GetRealWidth(4),
-                    TextID = StringId.Clear,
-                };
-                faceView.AddChidren(btnClearFace);
+                    var btnClearFace = new Button()
+                    {
+                        X = Application.GetRealWidth(18),
+                        Y = btnFaceText.Bottom,
+                        Width = Application.GetRealWidth(60),
+                        Height = Application.GetRealHeight(28),
+                        BorderWidth = 1,
+                        BorderColor = CSS_Color.MainColor,
+                        Radius = (uint)Application.GetRealWidth(4),
+                        TextID = StringId.Clear,
+                        TextColor = CSS_Color.MainColor,
+                    };
+                    faceView.AddChidren(btnClearFace);
+                    btnClearFace.MouseUpEventHandler = (sender, e) => {
+                        waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                        new System.Threading.Thread(() =>
+                        {
+                            try
+                            {
+                                var pack = ApiUtlis.Ins.HttpRequest.DeleteDoorlockUserFacePassword(device.deviceId, doorlockUser.lockUserIndex);
+                                if (pack != null && pack.Code == StateCode.SUCCESS)
+                                {
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        //鏇存柊鐣岄潰
+                                        initOptionView(true);
+                                    });
+                                }
+                                else
+                                {
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        //澶辫触鎻愮ず
+                                        var tip = new Tip()
+                                        {
+                                            MaxWidth = Application.GetRealWidth(300),
+                                            Text = pack.message,
+                                            CloseTime = 3,
+                                            Direction = AMPopTipDirection.None
+                                        };
+                                        tip.Show(MainPage.BaseView);
+                                    });
+                                }
+                            }
+                            catch (Exception ex)
+                            {
+                                MainPage.Log($"delete face error : {ex.Message}");
+                            }
+                            finally
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    waitPage.Hide();
+                                });
+                            }
+                        })
+                        { IsBackground = true }.Start();
+                    };
+
+                }
             }
             #endregion
 
@@ -399,24 +610,79 @@
 
             var delUserView = new FrameLayout()
             {
-                Y = permissionsViewHeight - Application.GetRealHeight(92),
-                Height = Application.GetRealHeight(92),
+                Y = unlockOptionView.Bottom,
+                Height = Application.GetRealHeight(110),
                 BackgroundColor = CSS_Color.BackgroundColor,
             };
             userPermissionsView.AddChidren(delUserView);
 
             Button btnDelUser = new Button()
             {
-                Y = Application.GetRealHeight(48),
+                Y = Application.GetRealHeight(40),
                 Gravity = Gravity.CenterHorizontal,
                 Width = Application.GetRealWidth(220),
-                Height = Application.GetRealHeight(44),
+                Height = Application.GetRealWidth(44),
                 BackgroundColor = CSS_Color.MainBackgroundColor,
                 TextColor = CSS_Color.WarningColor,
                 Radius = (uint)Application.GetRealWidth(22),
                 TextID = StringId.DeleteUser,
+                TextSize = CSS_FontSize.SubheadingFontSize,
             };
             delUserView.AddChidren(btnDelUser);
+
+            btnDelUser.MouseUpEventHandler = (sender, e) =>
+            {
+                new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DeleteDoorlockUserTip, () =>
+                {
+                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                    new System.Threading.Thread(() =>
+                    {
+                        try
+                        {
+                            var pack = ApiUtlis.Ins.HttpRequest.DeleteDoorlockUser(device.deviceId, doorlockUser.lockUserIndex);
+                            if (pack != null && pack.Code == StateCode.SUCCESS)
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    //鏇存柊鐣岄潰
+                                    new PublicAssmebly().TipMsg(StringId.Tip, StringId.DeleteSuccess, () => {
+                                        this.RemoveFromParent();
+                                        delCallBackAction?.Invoke();
+                                    });
+                                });
+                            }
+                            else
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    //澶辫触鎻愮ず
+                                    var tip = new Tip()
+                                    {
+                                        MaxWidth = Application.GetRealWidth(300),
+                                        Text = pack.message,
+                                        CloseTime = 3,
+                                        Direction = AMPopTipDirection.None
+                                    };
+                                    tip.Show(MainPage.BaseView);
+                                });
+                            }
+                        }
+                        catch (Exception ex)
+                        {
+                            MainPage.Log($"delete face error : {ex.Message}");
+                        }
+                        finally
+                        {
+                            Application.RunOnMainThread(() =>
+                            {
+                                waitPage.Hide();
+                            });
+                        }
+                    })
+                    { IsBackground = true }.Start();
+                });
+            };
+
 
 
         }
@@ -446,8 +712,6 @@
                     {
                         return;
                     }
-                    var waitPage = new Loading();
-                    bodyView.AddChidren(waitPage);
                     waitPage.Start(Language.StringByID(StringId.PleaseWait));
                     new System.Threading.Thread(() =>
                     {
@@ -456,8 +720,6 @@
                             var resultObj = ApiUtlis.Ins.HttpRequest.EditDoorlockUserName(device.deviceId, doorlockUser.extUserId,str);
                             if (resultObj.Code == StateCode.SUCCESS)
                             {
-                                UserInfo.Current.userName = str;
-                                UserInfo.Current.SaveUserInfo();
                                 Application.RunOnMainThread(() =>
                                 {
                                     btnUserName.Text = str;
@@ -477,11 +739,7 @@
                         {
                             Application.RunOnMainThread(() =>
                             {
-                                if (waitPage != null)
-                                {
-                                    waitPage.RemoveFromParent();
-                                    waitPage = null;
-                                }
+                                waitPage.Hide();
                             });
                         }
                     })

--
Gitblit v1.8.0