From 65bcedda4d8e3ff6500dbf59a4e607d96e469375 Mon Sep 17 00:00:00 2001
From: tzy <hxb@hdlchina.com.cn>
Date: 星期二, 25 五月 2021 15:47:15 +0800
Subject: [PATCH] 初步完成过户的功能

---
 HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePageBLL.cs             |   68 +-
 HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockPasswordPage.cs                 |    2 
 HDL-ON_Android/Assets/Language.ini                                                    |   31 +
 HDL_ON/UI/UI2/FuntionControlView/DoorLock/DoorLockPage.cs                             |   19 
 HDL_ON/UI/UI2/UserPage.cs                                                             |    2 
 HDL_ON/HDL_ON.projitems                                                               |    3 
 HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs        |    4 
 HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferConfirmPage.cs         |  188 ++----
 HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferingResidencePage.cs    |  293 ++++++++++
 HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePage.cs                |  231 ++++----
 HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferUserConfirmPage.cs     |  138 +++-
 HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs                                      |   12 
 HDL_ON/UI/UI0-Stan/Form/AppNumPasswordSecurityForm.cs                                 |    2 
 HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferInputPage.cs           |  265 ++++----
 HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs        |    4 
 DLL/EZvizMonitor/Square.OkHttp3.dll                                                   |    0 
 HDL_ON/UI/UI0-Stan/Common/CommonClass.cs                                              |   39 +
 HDL_ON/UI/UI0-Stan/Logic/HdlCheckLogic.cs                                             |   64 +
 HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection3Page.cs        |    4 
 HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferResidenceResultPage.cs |   65 ++
 DLL/EZvizMonitor/Square.OkIO.dll                                                      |    0 
 HDL_ON/DAL/Server/NewAPI.cs                                                           |   32 +
 HDL_ON/Common/R.cs                                                                    |   51 +
 HDL_ON/DAL/Server/HttpServerRequest.cs                                                |   45 +
 HDL_ON/UI/UI0-Stan/Resourse/HdlControlResourse.cs                                     |    2 
 25 files changed, 1,088 insertions(+), 476 deletions(-)

diff --git a/DLL/EZvizMonitor/Square.OkHttp3.dll b/DLL/EZvizMonitor/Square.OkHttp3.dll
old mode 100755
new mode 100644
Binary files differ
diff --git a/DLL/EZvizMonitor/Square.OkIO.dll b/DLL/EZvizMonitor/Square.OkIO.dll
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini
index 2ec7e95..5cbe1fe 100644
--- a/HDL-ON_Android/Assets/Language.ini
+++ b/HDL-ON_Android/Assets/Language.ini
@@ -73,11 +73,11 @@
 72=The address of the residence
 73=Floor Management
 74=Room Management
-75=Administrator migration
-76=Administrator privilege migration
+75=Admin Migration
+76=Privilege Migration
 77=Debugging privilege
 78=The administrator is migrated to other user.
-79=All of the data for the residence is migrated to new user.
+79=All residence data are migrated to new user.
 80=Allow the staff to visit your home remotely
 81=Floor
 82=Add floor
@@ -585,7 +585,18 @@
 1140=Expire time should not be more than 72 hours
 1141=Expire time should not be less than 1 hour
 1142=Fail to set, please try again
-
+1143=Fail to verify administrator ID, please log in again account
+1144=Your residence is being migrated to other HDL 
+1145=Note:
+1146=1. All of your residence data will be migrate to new user.{0}2. After migration, original member will be{0}automatically unbound from this residence.{0}3. The new account is a valid HDL one.{0}4. The account from receiver cannot be the same{0}as that from migration side.
+1147=Confirm
+1148=Input receiver's account
+1149=Profile
+1150=Confirm admin migration from {0} to {1}
+1151=The account does not exist.
+1152=Fail to Transfer Ownership to Yourself
+1153=Terminate
+1154=姝e湪杩囨埛缁欑敤鎴�,璇风◢鍚�...
 
 5000=Music
 5001=Group
@@ -1445,6 +1456,18 @@
 1140=澶辨晥鏃堕棿涓嶈兘澶т簬72灏忔椂
 1141=澶辨晥鏃堕棿涓嶈兘灏忎簬1灏忔椂
 1142=甯稿紑妯″紡鍏抽棴璁剧疆澶辨晥锛岃閲嶈瘯
+1143=绠$悊鍛樿韩浠介獙璇佸け璐�,璇烽噸鏂扮櫥褰�
+1144=鎮ㄧ殑浣忓畢灏嗚繃鎴风粰鍏朵粬HDL璐﹀彿
+1145=璇锋敞鎰忥細
+1146=1.璇ヤ綇瀹呮偍鐨勬暟鎹紙浜戠鏁版嵁锛夊皢鍏ㄩ儴杞Щ缁欐柊鐨勬埛涓粄0}2.杩囨埛鍚庯紝鍘熸湁鐨勬垚鍛樺皢鑷姩瑙g粦璇ヤ綇瀹厈0}3.鏂版埛涓昏处鍙蜂负鏈夋晥鐨凥DL璐﹀彿{0}4.鎺ユ敹鏂硅处鍙蜂笌杞Щ鏂硅处鍙蜂笉鍙负鍚屼竴涓处鍙�
+1147=纭杩囨埛
+1148=璇疯緭鍏ユ帴鏀舵柟璐﹀彿
+1149=涓汉璧勬枡
+1150=纭杩囨埛{0}鐨勭鐞嗗憳璐﹀彿缁欒处鍙穥1}
+1151=鐩爣璐﹀彿骞朵笉瀛樺湪
+1152=涓嶈兘鑷繁杩囨埛缁欒嚜宸�
+1153=缁堟
+1154=姝e湪杩囨埛缁欑敤鎴�,璇风◢鍚�...
 
 4000=鍙瀵硅
 4001=閫氳瘽璁板綍
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
index e15cea9..5d24e53 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -1038,8 +1038,55 @@
         /// <summary>
         /// 甯稿紑妯″紡鍏抽棴璁剧疆澶辨晥锛岃閲嶈瘯
         /// </summary>
-        public const int AlwayOnFailTimeSettionFailMsg = 1142;
-
+        public const int AlwayOnFailTimeSettionFailMsg = 1142;
+        /// <summary>
+        /// 绠$悊鍛樿韩浠介獙璇佸け璐�,璇烽噸鏂扮櫥褰�
+        /// </summary>
+        public const int CheckAdminFailAndLoginAgain = 1143;
+        /// <summary>
+        /// 鎮ㄧ殑浣忓畢灏嗚繃鎴风粰鍏朵粬HDL璐﹀彿
+        /// </summary>
+        public const int YourHomeWillBeTransferredToOtherAccounts = 1144;
+        /// <summary>
+        /// 璇锋敞鎰忥細
+        /// </summary>
+        public const int Attention = 1145;
+        /// <summary>
+        /// 1.璇ヤ綇瀹呮偍鐨勬暟鎹紙浜戠鏁版嵁锛夊皢鍏ㄩ儴杞Щ缁欐柊鐨勬埛涓粄0}2.杩囨埛鍚庯紝鍘熸湁鐨勬垚鍛樺皢鑷姩瑙g粦璇ヤ綇瀹厈0}3.鏂版埛涓昏处鍙蜂负鏈夋晥鐨凥DL璐﹀彿{0}4.鎺ユ敹鏂硅处鍙蜂笌杞Щ鏂硅处鍙蜂笉鍙负鍚屼竴涓处鍙�
+        /// </summary>
+        public const int TransferreConfirmMsg1 = 1146;
+        /// <summary>
+        /// 纭杩囨埛
+        /// </summary>
+        public const int ConfirmTransferre = 1147;
+        /// <summary>
+        /// 璇疯緭鍏ユ帴鏀舵柟璐﹀彿
+        /// </summary>
+        public const int PleaseInputReceiverAccount = 1148;
+        /// <summary>
+        /// 涓汉璧勬枡
+        /// </summary>
+        public const int Profile = 1149;
+        /// <summary>
+        /// 纭杩囨埛{0}鐨勭鐞嗗憳璐﹀彿缁欒处鍙穥1}
+        /// </summary>
+        public const int TransferreConfirmMsg2 = 1150;
+        /// <summary>
+        /// 鐩爣璐﹀彿骞朵笉瀛樺湪
+        /// </summary>
+        public const int TargetAcountDoesNotExist = 1151;
+        /// <summary>
+        /// 涓嶈兘鑷繁杩囨埛缁欒嚜宸�
+        /// </summary>
+        public const int YouCannotTransferOwnershipToYourself = 1152;
+        /// <summary>
+        /// 缁堟
+        /// </summary>
+        public const int Terminate = 1153;
+        /// <summary>
+        /// 姝e湪杩囨埛缁欑敤鎴�,璇风◢鍚�...
+        /// </summary>
+        public const int IsTransferingPleaseWaitting = 1154;
 
 
         public const int keshiduijiang = 4000;
diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs
index 8218c94..214c33d 100644
--- a/HDL_ON/DAL/Server/HttpServerRequest.cs
+++ b/HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -452,6 +452,18 @@
             return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_UnbindWithAccount, requestJson).Code;
         }
 
+        /// <summary>
+        /// 鏍规嵁璐﹀彿,鑾峰彇璐﹀彿淇℃伅
+        /// </summary>
+        /// <param name="i_account">鎸囧畾璐﹀彿</param>
+        /// <returns></returns>
+        public ResponsePackNew GetMemberInfoByAccount(string i_account)
+        {
+            var pra = new { account = i_account };
+            var requestJson = HttpUtil.GetSignRequestJson(pra);
+            return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_GetMemberInfoByAccount, requestJson);
+        }
+
         #endregion
 
         #region 浣忓畢閮ㄥ垎
@@ -694,6 +706,24 @@
                 isAllowCreateScene = isAllow,
             });
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_Update, requestJson);
+        }
+
+        /// <summary>
+        /// 杩囨埛
+        /// </summary>
+        /// <param name="i_account">瀵规柟璐﹀彿</param>
+        /// <returns></returns>
+        public bool TransferResidence(string i_account)
+        {
+            var pra2 = new
+            {
+                homeId = Entity.DB_ResidenceData.Instance.CurrentRegion.id,
+                account = i_account
+            };
+            var requestJson = HttpUtil.GetSignRequestJson(pra2);
+            var result = HttpUtil.RequestHttpsPost(NewAPI.API_Post_TransferResidence, requestJson);
+
+            return result != null && result.Code == StateCode.SUCCESS;
         }
 
         #region 鏂版暟鎹垎浜�
@@ -2418,7 +2448,7 @@
         }
         #endregion
 
-        #region 鈻� 闂ㄩ攣鍘嗗彶璁板綍________________________
+        #region 鈻� 闂ㄩ攣鐩稿叧____________________________
 
         /// <summary>
         /// 鑾峰彇闂ㄩ攣鍘嗗彶璁板綍(鎸夋棩鏈熼檷搴�)
@@ -2427,6 +2457,19 @@
         /// <returns></returns>
         public List<Stan.DoorHistoryLog> GetDoorHistoryLogs(Function i_device)
         {
+            //var dicPra = new Dictionary<string, object>();
+            //dicPra.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            //dicPra.Add("deviceId", i_device.deviceId);
+            //dicPra.Add("logType", "OPEN_DOOR");
+            //dicPra.Add("pageSize", "200");
+            //var requestJson = HttpUtil.GetSignRequestJson(dicPra);
+            //var packData = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_DoorHistory, requestJson);
+            //if (packData.Code != StateCode.SUCCESS)
+            //{
+            //    return null;
+            //}
+
+
             //娴嬭瘯
             var listLog = new List<Stan.DoorHistoryLog>();
             for (int i = 1; i <= 3; i++)
diff --git a/HDL_ON/DAL/Server/NewAPI.cs b/HDL_ON/DAL/Server/NewAPI.cs
index 41d7e2c..1a7927f 100644
--- a/HDL_ON/DAL/Server/NewAPI.cs
+++ b/HDL_ON/DAL/Server/NewAPI.cs
@@ -53,6 +53,10 @@
         /// 鏇存柊涓汉淇℃伅
         /// </summary>
         public const string API_POST_Member_UpdateMemberInfo = "/smart-footstone/member/memberInfo/updateMemberInfo";
+        /// <summary>
+        /// 鏍规嵁璐﹀彿鑾峰彇涓汉淇℃伅
+        /// </summary>
+        public const string API_POST_Member_GetMemberInfoByAccount = "/smart-footstone/member/memberInfo/getMemberInfoByAccount";
         ///// <summary>
         ///// 涓婁紶澶村儚
         ///// </summary>
@@ -107,6 +111,11 @@
         /// 鏇存敼浣忓畢鏉冮檺
         /// </summary>
         public const string API_Post_Home_UpdateDebugPerm = "/home-wisdom/app/home/updateDebugPerm";
+        /// <summary>
+        /// 杩囨埛
+        /// </summary>
+        public const string API_Post_TransferResidence = "/home-wisdom/app/home/transfer";
+
         #endregion
 
         #region 鈻� 瀛愯处鍙� -- 娣诲姞浣忓畢鎴愬憳___________________________
@@ -626,7 +635,30 @@
         public const string API_POST_FL_QRcode = "http://112.74.164.111:180/api.php/Device/setdynamicpwd";
         #endregion
 
+        #region  鈻�  -- 闂ㄩ攣鐩稿叧鎺ュ彛_______________________________
 
+        /// <summary>
+        /// 鍒ゆ柇闂ㄩ攣鏄惁绗竴浣跨敤
+        /// </summary>
+        public const string API_POST_DoorisFirstUse = "/home-wisdom/app/device/door/isUserBind";
+        /// <summary>
+        /// 闂ㄩ攣绗竴娆′娇鐢ㄦ椂,缁戝畾鐨勫瘑鐮�
+        /// </summary>
+        public const string API_POST_DoorBindFirstUsePsw = "/home-wisdom/app/device/door/userBind";
+        /// <summary>
+        /// 鑾峰彇闂ㄩ攣鎵�鏈夌殑瀵嗙爜
+        /// </summary>
+        public const string API_POST_GetDoorAllPsw = "/home-wisdom/app/device/door/getPwds";
+        /// <summary>
+        /// 闂ㄩ攣鍒嗛厤瀵嗙爜缁欑敤鎴�
+        /// </summary>
+        public const string API_POST_DoorAssignPswToUser = "/home-wisdom/app/device/door/pwdAllot";
+        /// <summary>
+        /// 闂ㄩ攣鐨勫巻鍙茶褰�
+        /// </summary>
+        public const string API_POST_DoorHistory = "/home-wisdom/app/device/door/logs";
+
+        #endregion
     }
 
     ///// <summary>
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index e7a238c..d66621d 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -37,6 +37,8 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlBluetoothIOSLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlCheckLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlCommonLogic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\TransferingResidencePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\TransferResidenceResultPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\DoorLock\DoorLockAlwaysOnManagerPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\DoorLock\DoorLockAlwaysOnListPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\DoorLock\DoorLockExpireTimeSettionPage.cs" />
@@ -454,7 +456,6 @@
     <Folder Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\" />
     <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\" />
     <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\GetSupport\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\" />
     <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\AddRoom\" />
     <Folder Include="$(MSBuildThisFileDirectory)UI\BindingResidence\" />
     <Folder Include="$(MSBuildThisFileDirectory)Common\Utlis\" />
diff --git a/HDL_ON/UI/UI0-Stan/Common/CommonClass.cs b/HDL_ON/UI/UI0-Stan/Common/CommonClass.cs
index e8d8e27..a6e263f 100644
--- a/HDL_ON/UI/UI0-Stan/Common/CommonClass.cs
+++ b/HDL_ON/UI/UI0-Stan/Common/CommonClass.cs
@@ -4,6 +4,45 @@
 
 namespace HDL_ON.Stan
 {
+    #region 鈻� 鎴愬憳淇℃伅绫籣_________________________
+
+    /// <summary>
+    /// 鑾峰彇璐﹀彿鐨勪俊鎭殑缁撴灉
+    /// </summary>
+    public class AccountInfoResult
+    {
+        /// <summary>
+        /// 璐﹀彿(濡傛灉鏄暱搴︿负0鐨勫瓧绗︿覆,鍒欎唬琛ㄨ繖涓处鍙峰湪浜戠涓嶅瓨鍦�,闇�瑕佹墜鍔ㄨ祴鍊�)
+        /// </summary>
+        public string Account = string.Empty;
+        /// <summary>
+        /// 璐﹀彿鐨刬d(搴旇鏄富閿�)
+        /// </summary>
+        public string MemberId = string.Empty;
+        /// <summary>
+        /// 鐢ㄦ埛鏄电О
+        /// </summary>
+        public string MemberName = string.Empty;
+        /// <summary>
+        /// 鍦板尯鐮�
+        /// </summary>
+        public string MemberPhonePrefix = string.Empty;
+        /// <summary>
+        /// 閭
+        /// </summary>
+        public string MemberEmail = string.Empty;
+        /// <summary>
+        /// 鎵嬫満鍙�
+        /// </summary>
+        public string MemberPhone = string.Empty;
+        /// <summary>
+        /// 澶村儚鍦板潃
+        /// </summary>
+        public string MemberHeadIcon = string.Empty;
+    }
+
+    #endregion
+
     #region 鈻� 甯稿紑鑷姩鍖栦俊鎭痏____________________
 
     /// <summary>
diff --git a/HDL_ON/UI/UI0-Stan/Form/AppNumPasswordSecurityForm.cs b/HDL_ON/UI/UI0-Stan/Form/AppNumPasswordSecurityForm.cs
index 3171273..f2f5ec2 100644
--- a/HDL_ON/UI/UI0-Stan/Form/AppNumPasswordSecurityForm.cs
+++ b/HDL_ON/UI/UI0-Stan/Form/AppNumPasswordSecurityForm.cs
@@ -135,7 +135,7 @@
             //瀵嗙爜杈撳叆妗�
             this.txtPassword = new EditText();
             txtPassword.IsNumberKeyboardType = true;
-            txtPassword.Height = 0;
+            txtPassword.Height = 1;
             bodyFrameLayout.AddChidren(txtPassword);
             txtPassword.Foucs = true;
             txtPassword.TextChangeEventHandler = (sender, e) =>
diff --git a/HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs b/HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs
index 381bc86..85164ed 100644
--- a/HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs
+++ b/HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs
@@ -318,7 +318,7 @@
         #region 鈻� 娣诲姞鍒楄〃娑堟伅鏄剧ず鎺т欢_______________
 
         /// <summary>
-        /// 娣诲姞鍒楄〃娑堟伅鏄剧ず鎺т欢,杩斿洖鐨勬槸鏈�鍚庝竴涓帶浠剁殑搴曢儴鍧愭爣(娌$湅鎳傝繖涓嚱鏁板墠,璇峰嬁浣跨敤)
+        /// 娣诲姞鍒楄〃娑堟伅鏄剧ず鎺т欢,杩斿洖鐢熸垚鐨勬帶浠�(娌$湅鎳傝繖涓嚱鏁板墠,璇峰嬁浣跨敤,瀹冧笉浼氬府璁$畻鎹㈣)
         /// </summary>
         /// <param name="frameTable">妗屽竷瀹瑰櫒鎺т欢</param>
         /// <param name="i_msg">鏄剧ず鐨勬秷鎭�(鎹㈣璇蜂娇鐢ㄣ�恵0}銆戣繘琛屽垎鍓�)</param>
@@ -333,7 +333,7 @@
         /// </param>
         /// <param name="i_width">鏂囨湰瀹藉害,鐪熷疄鍊�,褰撲负-1鏃�,鍐呴儴鑷姩璁$畻</param>
         /// <returns></returns>
-        public int AddListMsgControls(FrameLayout frameTable, string i_msg, int i_fontSize, uint i_fontColor, int i_height,
+        public List<NormalViewControl> AddListMsgControls(FrameLayout frameTable, string i_msg, int i_fontSize, uint i_fontColor, int i_height,
             int i_yy, TextAlignment alignment = TextAlignment.Center, bool special = false, int i_width = -1)
         {
             var listMsg = i_msg.Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
@@ -382,7 +382,7 @@
                 }
 
                 //鐗规畩澶勭悊
-                if (special == true && alignment == TextAlignment.Center)
+                if (special == true)
                 {
                     //璁剧疆瀹冪殑鐪熷疄瀹藉害(瀵箂pecial鍙橀噺鏈夌敤)
                     int realWidth = btnMsg.GetRealWidthByText();
@@ -400,7 +400,7 @@
                 i_yy = btnMsg.Bottom + Application.GetRealHeight(4);
             }
             //鐗规畩澶勭悊
-            if (special == true && alignment == TextAlignment.Center)
+            if (special == true)
             {
                 foreach (var contr in listContr)
                 {
@@ -409,7 +409,7 @@
                 }
             }
 
-            return i_yy - Application.GetRealHeight(4);
+            return listContr;
         }
 
         #endregion
@@ -475,7 +475,7 @@
         public void RemoveBackButton()
         {
             //绉婚櫎杩斿洖閿�
-            var back = (NormalViewControl)topFrameLayout.GetTagByKey("btnBack");
+            var back = (PicViewControl)topFrameLayout.GetTagByKey("btnBack");
             topFrameLayout.RemoveTag("btnBack");
             back?.RemoveFromParent();
 
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlCheckLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlCheckLogic.cs
index 0397230..fcc986b 100644
--- a/HDL_ON/UI/UI0-Stan/Logic/HdlCheckLogic.cs
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlCheckLogic.cs
@@ -30,6 +30,12 @@
                 return m_Current;
             }
         }
+
+        /// <summary>
+        /// 楠岃瘉璁よ瘉鐨勬鏁�
+        /// </summary>
+        private int checkSecurityCount = 3;
+
         #endregion
 
         #region 鈻� 楠岃瘉瑙i攣璁よ瘉_______________________
@@ -38,9 +44,9 @@
         /// 楠岃瘉瑙i攣璁よ瘉
         /// </summary>
         /// <param name="addTopFrame">楠岃瘉鐣岄潰鏄惁娣诲姞澶撮儴Frame(鍙鎵嬪娍瀵嗙爜鍜屾暟瀛楀瘑鐮佹湁鏁�)</param>
-        /// <param name="successEvent">楠岃瘉鎴愬姛涔嬪悗鐨勫洖璋冨嚱鏁�,澶辫触涓嶄細鍥炶皟</param>
+        /// <param name="successEvent">楠岃瘉鎴愬姛涔嬪悗鐨勫洖璋冨嚱鏁�,澶辫触涓嶄細鍥炶皟(0:娌℃湁璁剧疆鏈夐獙璇� 1:楠岃瘉鎴愬姛锛�</param>
         /// <param name="loadPageBeforEvent">鍔犺浇鎸囧畾瑙i攣璁よ瘉鐣岄潰涔嬪墠鐨勪簨浠�,0:鍙栨秷褰撳墠楠岃瘉骞跺垏鎹㈠埌鍏朵粬鏂瑰紡,1:鏁板瓧瀵嗙爜,2:鎵嬪娍瀵嗙爜,3:鎸囩汗瀵嗙爜,4:闈㈠ID</param>
-        public void CheckUnlockSecurity(bool addTopFrame, Action successEvent, Action<string> loadPageBeforEvent = null)
+        public void CheckUnlockSecurity(bool addTopFrame, Action<int> successEvent, Action<string> loadPageBeforEvent = null)
         {
             //楠岃瘉鎸囩汗鍜岄潰瀹筰d閮戒娇鐢ㄦ寚绾归獙璇�
             if (UserInfo.Current.appUnlockType.Contains("3") || UserInfo.Current.appUnlockType.Contains("4"))
@@ -59,8 +65,11 @@
                     {
                         if (e2 == TouchIDUtils.TouchIDState.Success)
                         {
+                            //娆℃暟杩樺師
+                            this.checkSecurityCount = 3;
+
                             //TouchID楠岃瘉鎴愬姛
-                            successEvent?.Invoke();
+                            successEvent?.Invoke(1);
                             successEvent = null;
                             loadPageBeforEvent = null;
                             TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = null;
@@ -97,9 +106,9 @@
         /// 浣跨敤瀵嗙爜鎴栬�呮墜鍔垮瘑鐮佽В閿佽璇�
         /// </summary>
         /// <param name="addTopFrame">楠岃瘉鐣岄潰鏄惁娣诲姞澶撮儴Frame(鍙鎵嬪娍瀵嗙爜鍜屾暟瀛楀瘑鐮佹湁鏁�)</param>
-        /// <param name="successEvent">楠岃瘉鎴愬姛涔嬪悗鐨勫洖璋冨嚱鏁�,澶辫触涓嶄細鍥炶皟</param>
+        /// <param name="successEvent">楠岃瘉鎴愬姛涔嬪悗鐨勫洖璋冨嚱鏁�,澶辫触涓嶄細鍥炶皟(0:娌℃湁璁剧疆鏈夐獙璇� 1:楠岃瘉鎴愬姛锛�</param>
         /// <param name="loadPageBeforEvent">鍔犺浇鎸囧畾瑙i攣璁よ瘉鐣岄潰涔嬪墠鐨勪簨浠�,1:鏁板瓧瀵嗙爜,2:鎵嬪娍瀵嗙爜,3:鎸囩汗瀵嗙爜,4:闈㈠ID</param>
-        private void CheckUnlockSecurityByPassword(bool addTopFrame, Action successEvent, Action<string> loadPageBeforEvent = null)
+        private void CheckUnlockSecurityByPassword(bool addTopFrame, Action<int> successEvent, Action<string> loadPageBeforEvent = null)
         {
             if (UserInfo.Current.appUnlockType.Contains("1"))
             {
@@ -117,14 +126,20 @@
                 //鏄剧ず鎵嬪娍瀵嗙爜瑙i攣璁よ瘉鐣岄潰
                 this.ShowAppGestureSecurityForm(addTopFrame, successEvent);
             }
+            else
+            {
+                //娌℃湁璁剧疆鏈夐獙璇�
+                successEvent?.Invoke(0);
+                successEvent = null;
+            }
         }
 
         /// <summary>
         /// 鏄剧ず鏁板瓧瀵嗙爜瑙i攣璁よ瘉鐣岄潰
         /// </summary>
         /// <param name="addTopFrame">楠岃瘉鐣岄潰鏄惁娣诲姞澶撮儴Frame(鍙鎵嬪娍瀵嗙爜鍜屾暟瀛楀瘑鐮佹湁鏁�)</param>
-        /// <param name="successEvent">楠岃瘉鎴愬姛涔嬪悗鐨勫洖璋冨嚱鏁�,澶辫触涓嶄細鍥炶皟</param>
-        private void ShowAppNumPasswordSecurityForm(bool addTopFrame, Action successEvent)
+        /// <param name="successEvent">楠岃瘉鎴愬姛涔嬪悗鐨勫洖璋冨嚱鏁�,澶辫触涓嶄細鍥炶皟(0:娌℃湁璁剧疆鏈夐獙璇� 1:楠岃瘉鎴愬姛锛�</param>
+        private void ShowAppNumPasswordSecurityForm(bool addTopFrame, Action<int> successEvent)
         {
             var form = new AppNumPasswordSecurityForm();
             form.AddForm(addTopFrame, Language.StringByID(StringId.PlsEntryPassword), string.Empty);
@@ -136,13 +151,26 @@
                     //瀵嗙爜姝g‘
                     if (UserInfo.Current.appUnlockPasswrod == password)
                     {
+                        //娆℃暟杩樺師
+                        this.checkSecurityCount = 3;
+
                         form.CloseForm();
                         //鍥炶皟
-                        successEvent?.Invoke();
+                        successEvent?.Invoke(1);
                         successEvent = null;
                     }
                     else
                     {
+                        this.checkSecurityCount--;
+                        if (this.checkSecurityCount == 0)
+                        {
+                            //绠$悊鍛樿韩浠介獙璇佸け璐�,璇烽噸鏂扮櫥褰�
+                            HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(StringId.CheckAdminFailAndLoginAgain));
+                            HDLCommon.Current.Logout();
+
+                            this.checkSecurityCount = 3;
+                            return;
+                        }
                         //楠岃瘉澶辫触锛屽瘑鐮侀敊璇�.
                         form.ShowErrorMsg(Language.StringByID(StringId.AuthenticationFailedPasswordError));
                     }
@@ -154,8 +182,8 @@
         /// 鏄剧ず鎵嬪娍瀵嗙爜瑙i攣璁よ瘉鐣岄潰
         /// </summary>
         /// <param name="addTopFrame">楠岃瘉鐣岄潰鏄惁娣诲姞澶撮儴Frame(鍙鎵嬪娍瀵嗙爜鍜屾暟瀛楀瘑鐮佹湁鏁�)</param>
-        /// <param name="successEvent">楠岃瘉鎴愬姛涔嬪悗鐨勫洖璋冨嚱鏁�,澶辫触涓嶄細鍥炶皟</param>
-        private void ShowAppGestureSecurityForm(bool addTopFrame, Action successEvent)
+        /// <param name="successEvent">楠岃瘉鎴愬姛涔嬪悗鐨勫洖璋冨嚱鏁�,澶辫触涓嶄細鍥炶皟(0:娌℃湁璁剧疆鏈夐獙璇� 1:楠岃瘉鎴愬姛锛�</param>
+        private void ShowAppGestureSecurityForm(bool addTopFrame, Action<int> successEvent)
         {
             var form = new AppGestureSecurityForm();
             form.AddForm(addTopFrame, Language.StringByID(StringId.VerifyGesturePassword), string.Empty);
@@ -168,13 +196,27 @@
                     //瀵嗙爜姝g‘
                     if (UserInfo.Current.appUnlockPasswrod == password)
                     {
+                        //娆℃暟杩樺師
+                        this.checkSecurityCount = 3;
+
                         form.CloseForm();
                         //鍥炶皟
-                        successEvent?.Invoke();
+                        successEvent?.Invoke(1);
                         successEvent = null;
                     }
                     else
                     {
+                        this.checkSecurityCount--;
+                        if (this.checkSecurityCount == 0)
+                        {
+                            //绠$悊鍛樿韩浠介獙璇佸け璐�,璇烽噸鏂扮櫥褰�
+                            HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(StringId.CheckAdminFailAndLoginAgain));
+                            HDLCommon.Current.Logout();
+
+                            this.checkSecurityCount = 3;
+                            return;
+                        }
+
                         //楠岃瘉澶辫触锛屽瘑鐮侀敊璇�.
                         form.ShowErrorMsg(Language.StringByID(StringId.AuthenticationFailedPasswordError));
                     }
diff --git a/HDL_ON/UI/UI0-Stan/Resourse/HdlControlResourse.cs b/HDL_ON/UI/UI0-Stan/Resourse/HdlControlResourse.cs
index 0efd68c..ceca9b1 100644
--- a/HDL_ON/UI/UI0-Stan/Resourse/HdlControlResourse.cs
+++ b/HDL_ON/UI/UI0-Stan/Resourse/HdlControlResourse.cs
@@ -30,7 +30,7 @@
         /// </summary>
         public static int XXLeft = Application.GetRealWidth(16);
         /// <summary>
-        /// VerticalScrolViewLayout鎺т欢涓�琛岀殑楂樺害(鍙拡瀵规爣鍑嗗瀷鍒楄〃寮忕敾闈�)
+        /// VerticalScrolViewLayout鎺т欢涓�琛岀殑楂樺害(鍙拡瀵规爣鍑嗗瀷鍒楄〃寮忕敾闈�,,44楂樺害)
         /// </summary>
         public static int ListViewRowHeight = Application.GetRealHeight(44);
         /// <summary>
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs
index f80aa7a..e0fe98b 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs
@@ -50,13 +50,13 @@
 
             //闀挎寜绾㈠閬ユ帶鍣ㄦ寜閽�10绉掞紝鎸囩ず鐏摑鑹插揩闂�
             var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg1);
-            var intYY = this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize,
+            var listContr = this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize,
                 CSS.CSS_Color.FirstLevelTitleColor, Application.GetRealHeight(20), Application.GetRealHeight(408));
 
             //璇风‘淇濇偍鐨勮摑鐗欏凡寮�鍚苟澶勪簬鍙互琚悳绱㈢姸鎬�
             strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg2);
             this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.PromptFontSize_FirstLevel,
-                CSS.CSS_Color.PromptingColor1, Application.GetRealHeight(18), intYY + Application.GetRealHeight(4));
+                CSS.CSS_Color.PromptingColor1, Application.GetRealHeight(18), listContr[listContr.Count - 1].Bottom + Application.GetRealHeight(4));
 
             //涓嬩竴姝�
             var btnNext = this.AddBottomClickButton(Language.StringByID(StringId.Next));
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection3Page.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection3Page.cs
index 3d08125..2332a70 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection3Page.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection3Page.cs
@@ -78,12 +78,12 @@
             //鐩墠鍙敮鎸�2.4G WiFi缃戠粶
             //鏆備笉鏀寔甯︽湁涓枃瀛楃鐨刉iFi鍚嶇О
             var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg4);
-            int yy = this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize, CSS.CSS_Color.TextualColor,
+            var listContr = this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize, CSS.CSS_Color.TextualColor,
                 Application.GetRealHeight(20), btnWifi.Bottom + Application.GetRealHeight(16), TextAlignment.CenterLeft);
 
             //wifi琛�
             var rowWifi = new RowLayoutControl();
-            rowWifi.Y = yy + Application.GetRealHeight(32);
+            rowWifi.Y = listContr[listContr.Count - 1].Bottom + Application.GetRealHeight(32);
             bodyFrameLayout.AddChidren(rowWifi);
             //wifi鍚嶅瓧
             var txtWifi = rowWifi.frameTable.AddLeftInput(wifiName, 200);
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
index 2c7f627..70f04f8 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
@@ -203,12 +203,12 @@
 
             //鍙互寮�濮嬩娇鐢ㄧ孩澶栭仴鎺у姛鑳斤紒
             var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg7);
-            int yy = this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize, CSS.CSS_Color.TextualColor,
+            var listContr = this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize, CSS.CSS_Color.TextualColor,
                 Application.GetRealHeight(20), btnFail.Bottom + Application.GetRealHeight(8));
 
             //寮�濮嬩娇鐢�
             var btnUse = new BottomClickButton(220);
-            btnUse.Y = yy + Application.GetRealHeight(60);
+            btnUse.Y = listContr[listContr.Count - 1].Bottom + Application.GetRealHeight(60);
             btnUse.TextID = StringId.StartUse;
             bodyFrameLayout.AddChidren(btnUse);
             btnUse.ButtonClickEvent += (sender, e) =>
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePage.cs
index d285fbb..f877f78 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePage.cs
@@ -57,33 +57,32 @@
         /// </summary>
         Button btnCommissioningAuthoritySwitchIcon;
 
-        #region F3闃舵
         #region 绠$悊鍛樻潈闄愯縼绉�
-        //FrameLayout administratorPermissionMigrationRow;
-        //Button btnAdministratorPermissionMigrationTitle;
-        //Button btnAdministratorPermissionMigrationExplan;
-        //Button btnAdministratorPermissionMigrationSkinIcon;
+        FrameLayout administratorPermissionMigrationRow;
+        Button btnAdministratorPermissionMigrationTitle;
+        Button btnAdministratorPermissionMigrationExplan;
+        Button btnAdministratorPermissionMigrationSkinIcon;
         #endregion
 
         #region 杩囨埛
-        ///// <summary>
-        ///// 
-        ///// </summary>
-        //FrameLayout transferRow;
-        ///// <summary>
-        ///// 
-        ///// </summary>
-        //Button btnTransferTitle;
-        ///// <summary>
-        ///// 
-        ///// </summary>
-        //Button btnTrasferExplan;
-        ///// <summary>
-        ///// 
-        ///// </summary>
-        //Button btnTrasferSkinIcon;
+        /// <summary>
+        /// 
+        /// </summary>
+        FrameLayout transferRow;
+        /// <summary>
+        /// 
+        /// </summary>
+        Button btnTransferTitle;
+        /// <summary>
+        /// 
+        /// </summary>
+        Button btnTrasferExplan;
+        /// <summary>
+        /// 
+        /// </summary>
+        Button btnTrasferSkinIcon;
         #endregion
-        #endregion
+
         #endregion
         /// <summary>
         /// 鏇存柊浣忓畢鍚嶇О鐨勫洖璋冨嚱鏁�
@@ -276,112 +275,112 @@
             roomManagementRow.AddChidren(btnRoomManagementSkinIcon);
             #endregion
 
-
-            #region F3闃舵
             #region 绠$悊鍛樻潈闄愯縼绉�
-            //contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8) });
-            //administratorPermissionMigrationRow = new FrameLayout()
-            //{
-            //    Height = Application.GetRealHeight(65),
-            //    BackgroundColor = CSS_Color.MainBackgroundColor,
-            //};
-            //contentView.AddChidren(administratorPermissionMigrationRow);
+            contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8) });
+            administratorPermissionMigrationRow = new FrameLayout()
+            {
+                Height = Application.GetRealHeight(65),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+            };
+            contentView.AddChidren(administratorPermissionMigrationRow);
 
-            //btnAdministratorPermissionMigrationTitle = new Button()
-            //{
-            //    X = Application.GetRealWidth(16),
-            //    Y = Application.GetRealHeight(10),
-            //    Width = Application.GetRealWidth(308),
-            //    Height = Application.GetRealHeight(24),
-            //    TextID = StringId.AdministratorPermissionMigration,
-            //    TextAlignment = TextAlignment.CenterLeft,
-            //    TextSize = CSS_FontSize.SubheadingFontSize,
-            //    TextColor = CSS_Color.FirstLevelTitleColor,
-            //};
-            //administratorPermissionMigrationRow.AddChidren(btnAdministratorPermissionMigrationTitle);
+            btnAdministratorPermissionMigrationTitle = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                Y = Application.GetRealHeight(10),
+                Width = Application.GetRealWidth(308),
+                Height = Application.GetRealHeight(24),
+                TextID = StringId.AdministratorPermissionMigration,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+                TextColor = CSS_Color.FirstLevelTitleColor,
+            };
+            administratorPermissionMigrationRow.AddChidren(btnAdministratorPermissionMigrationTitle);
 
-            //btnAdministratorPermissionMigrationExplan = new Button()
-            //{
-            //    X = Application.GetRealWidth(16),
-            //    Y = btnAdministratorPermissionMigrationTitle.Bottom,
-            //    Width = Application.GetRealWidth(308),
-            //    Height = Application.GetRealHeight(21),
-            //    TextID = StringId.AdministratorPermissionMigrationExPlan,
-            //    TextAlignment = TextAlignment.CenterLeft,
-            //    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-            //    TextColor = CSS_Color.PromptingColor1,
-            //};
-            //administratorPermissionMigrationRow.AddChidren(btnAdministratorPermissionMigrationExplan);
+            btnAdministratorPermissionMigrationExplan = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                Y = btnAdministratorPermissionMigrationTitle.Bottom,
+                Width = Application.GetRealWidth(308),
+                Height = Application.GetRealHeight(21),
+                TextID = StringId.AdministratorPermissionMigrationExPlan,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                TextColor = CSS_Color.PromptingColor1,
+            };
+            administratorPermissionMigrationRow.AddChidren(btnAdministratorPermissionMigrationExplan);
 
 
-            //btnAdministratorPermissionMigrationSkinIcon = new Button()
-            //{
-            //    X = Application.GetRealWidth(343),
-            //    Gravity = Gravity.CenterVertical,
-            //    Width = Application.GetMinRealAverage(16),
-            //    Height = Application.GetMinRealAverage(16),
-            //    UnSelectedImagePath = "Public/RightIcon.png",
-            //};
-            //administratorPermissionMigrationRow.AddChidren(btnAdministratorPermissionMigrationSkinIcon);
+            btnAdministratorPermissionMigrationSkinIcon = new Button()
+            {
+                X = Application.GetRealWidth(343),
+                Gravity = Gravity.CenterVertical,
+                Width = Application.GetMinRealAverage(16),
+                Height = Application.GetMinRealAverage(16),
+                UnSelectedImagePath = "Public/RightIcon.png",
+            };
+            administratorPermissionMigrationRow.AddChidren(btnAdministratorPermissionMigrationSkinIcon);
 
-            //administratorPermissionMigrationRow.AddChidren(
-            //    new Button()
-            //    {
-            //        Gravity = Gravity.CenterHorizontal,
-            //        Y = Application.GetRealHeight(64),
-            //        Height = Application.GetRealHeight(1),
-            //        Width = Application.GetRealWidth(343),
-            //        BackgroundColor = CSS_Color.DividingLineColor,
-            //    });
-            #endregion
+            administratorPermissionMigrationRow.AddChidren(
+                new Button()
+                {
+                    Gravity = Gravity.CenterHorizontal,
+                    Y = Application.GetRealHeight(64),
+                    Height = Application.GetRealHeight(1),
+                    Width = Application.GetRealWidth(343),
+                    BackgroundColor = CSS_Color.DividingLineColor,
+                });
             #endregion
 
-            #region F3闃舵
             #region 杩囨埛
-            //transferRow = new FrameLayout()
-            //{
-            //    Y = administratorPermissionMigrationRow.Bottom,
-            //    Height = Application.GetRealHeight(65),
-            //    BackgroundColor = CSS_Color.MainBackgroundColor,
-            //};
-            //contentView.AddChidren(transferRow);
+            transferRow = new FrameLayout()
+            {
+                Y = administratorPermissionMigrationRow.Bottom,
+                Height = Application.GetRealHeight(65),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+            };
+            //鏈夌綉鍏虫墠鑳借繃鎴�
+            if (DB_ResidenceData.Instance.HomeGateway != null && string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.gatewayId) == false
+                && DB_ResidenceData.Instance.CurrentRegion.isOtherShare == false)
+            {
+                contentView.AddChidren(transferRow);
+            }
 
-            //btnTransferTitle = new Button()
-            //{
-            //    X = Application.GetRealWidth(16),
-            //    Y = Application.GetRealHeight(10),
-            //    Width = Application.GetRealWidth(308),
-            //    Height = Application.GetRealHeight(24),
-            //    TextID = StringId.Transfer,
-            //    TextAlignment = TextAlignment.CenterLeft,
-            //    TextSize = CSS_FontSize.SubheadingFontSize,
-            //    TextColor = CSS_Color.FirstLevelTitleColor,
-            //};
-            //transferRow.AddChidren(btnTransferTitle);
+            btnTransferTitle = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                Y = Application.GetRealHeight(10),
+                Width = Application.GetRealWidth(308),
+                Height = Application.GetRealHeight(24),
+                TextID = StringId.Transfer,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+                TextColor = CSS_Color.FirstLevelTitleColor,
+            };
+            transferRow.AddChidren(btnTransferTitle);
 
-            //btnTrasferExplan = new Button()
-            //{
-            //    X = Application.GetRealWidth(16),
-            //    Y = btnTransferTitle.Bottom,
-            //    Width = Application.GetRealWidth(308),
-            //    Height = Application.GetRealHeight(21),
-            //    TextID = StringId.TransferExPlan,
-            //    TextAlignment = TextAlignment.CenterLeft,
-            //    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-            //    TextColor = CSS_Color.PromptingColor1,
-            //};
-            //transferRow.AddChidren(btnTrasferExplan);
+            btnTrasferExplan = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                Y = btnTransferTitle.Bottom,
+                Width = Application.GetRealWidth(308),
+                Height = Application.GetRealHeight(21),
+                TextID = StringId.TransferExPlan,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                TextColor = CSS_Color.PromptingColor1,
+            };
+            transferRow.AddChidren(btnTrasferExplan);
 
-            //btnTrasferSkinIcon = new Button()
-            //{
-            //    X = Application.GetRealWidth(343),
-            //    Gravity = Gravity.CenterVertical,
-            //    Width = Application.GetMinRealAverage(16),
-            //    Height = Application.GetMinRealAverage(16),
-            //    UnSelectedImagePath = "Public/RightIcon.png",
-            //};
-            //transferRow.AddChidren(btnTrasferSkinIcon);
-            #endregion
+            btnTrasferSkinIcon = new Button()
+            {
+                X = Application.GetRealWidth(343),
+                Gravity = Gravity.CenterVertical,
+                Width = Application.GetMinRealAverage(16),
+                Height = Application.GetMinRealAverage(16),
+                UnSelectedImagePath = "Public/RightIcon.png",
+            };
+            transferRow.AddChidren(btnTrasferSkinIcon);
             #endregion
 
             #region 璋冭瘯鏉冮檺
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePageBLL.cs
index c874702..9faddfc 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePageBLL.cs
@@ -14,8 +14,8 @@
             LoadEvent_SkipRoomsPage();
             LoadEvent_EditResidencName();
             LoadEvent_EditResidencAddress();
-            //LoadEvent_SkipAdminMigrationConfirmPage();
-            //LoadEvent_SkipTransferConfirmPage();
+            LoadEvent_SkipAdminMigrationConfirmPage();
+            LoadEvent_SkipTransferConfirmPage();
         }
 
         /// <summary>
@@ -150,41 +150,41 @@
         //    };
         //}
 
-        ///// <summary>
-        ///// 璺宠浆绠$悊鍛樻潈闄愯縼绉婚〉闈�
-        ///// </summary>
-        //void LoadEvent_SkipAdminMigrationConfirmPage()
-        //{
-        //    EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
-        //        var skipPage = new AdminMigrationConfirmPage();
-        //        MainPage.BasePageView.AddChidren(skipPage);
-        //        skipPage.LoadPage();
-        //        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-        //    };
+        /// <summary>
+        /// 璺宠浆绠$悊鍛樻潈闄愯縼绉婚〉闈�
+        /// </summary>
+        void LoadEvent_SkipAdminMigrationConfirmPage()
+        {
+            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+            {
+                var skipPage = new AdminMigrationConfirmPage();
+                MainPage.BasePageView.AddChidren(skipPage);
+                skipPage.LoadPage();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
 
-        //    administratorPermissionMigrationRow.MouseUpEventHandler = eventHandler;
-        //    btnAdministratorPermissionMigrationTitle.MouseUpEventHandler = eventHandler;
-        //    btnAdministratorPermissionMigrationExplan.MouseUpEventHandler = eventHandler;
-        //    btnAdministratorPermissionMigrationSkinIcon.MouseUpEventHandler = eventHandler;
-        //}
+            administratorPermissionMigrationRow.MouseUpEventHandler = eventHandler;
+            btnAdministratorPermissionMigrationTitle.MouseUpEventHandler = eventHandler;
+            btnAdministratorPermissionMigrationExplan.MouseUpEventHandler = eventHandler;
+            btnAdministratorPermissionMigrationSkinIcon.MouseUpEventHandler = eventHandler;
+        }
 
-        ///// <summary>
-        ///// 璺宠浆杩囨埛椤甸潰
-        ///// </summary>
-        //void LoadEvent_SkipTransferConfirmPage()
-        //{
-        //    EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
-        //        var skipPage = new TransferConfirmPage();
-        //        MainPage.BasePageView.AddChidren(skipPage);
-        //        skipPage.LoadPage();
-        //        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-        //    };
+        /// <summary>
+        /// 璺宠浆杩囨埛椤甸潰
+        /// </summary>
+        void LoadEvent_SkipTransferConfirmPage()
+        {
+            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+            {
+                var from = new TransferConfirmPage();
+                from.AddForm();
+            };
 
-        //    transferRow.MouseUpEventHandler = eventHandler;
-        //    btnTrasferExplan.MouseUpEventHandler = eventHandler;
-        //    btnTrasferSkinIcon.MouseUpEventHandler = eventHandler;
-        //    btnTransferTitle.MouseUpEventHandler = eventHandler;
-        //}
+            transferRow.MouseUpEventHandler = eventHandler;
+            btnTrasferExplan.MouseUpEventHandler = eventHandler;
+            btnTrasferSkinIcon.MouseUpEventHandler = eventHandler;
+            btnTransferTitle.MouseUpEventHandler = eventHandler;
+        }
         #endregion
 
     }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferConfirmPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferConfirmPage.cs
index 9013b14..f9d3f82 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferConfirmPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferConfirmPage.cs
@@ -1,141 +1,97 @@
 锘縰sing System;
 using Shared;
 using HDL_ON.UI.CSS;
+using HDL_ON.Stan;
 
 namespace HDL_ON.UI
 {
     /// <summary>
     /// 杩囨埛纭鎻愰啋鐣岄潰
     /// </summary>
-    public class TransferConfirmPage : FrameLayout
+    public class TransferConfirmPage : EditorCommonForm
     {
-        /// <summary>
-        /// 
-        /// </summary>
-        FrameLayout bodyView;
+        #region 鈻� 鍙橀噺澹版槑___________________________
 
-        public TransferConfirmPage()
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        public void ShowForm()
         {
-            bodyView = this;
+            //杩囨埛
+            base.SetTitleText(Language.StringByID(StringId.Transfer));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
         }
 
         /// <summary>
-        /// 
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
         /// </summary>
-        public void LoadPage()
+        private void InitMiddleFrame()
         {
-            BackgroundColor = CSS_Color.MainBackgroundColor;
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
 
-            new TopViewDiv(bodyView, Language.StringByID(StringId.Transfer)).LoadTopView();
+            //璐﹀彿鑷繁鐨勫ご鍍�
+            var btnHeadImage = new ImageView();
+            btnHeadImage.X = Application.GetRealWidth(48);
+            btnHeadImage.Y = Application.GetRealHeight(32);
+            btnHeadImage.Width = Application.GetRealWidth(84);
+            btnHeadImage.Height = Application.GetRealWidth(84);
+            btnHeadImage.Radius = (uint)Application.GetRealWidth(42);
+            btnHeadImage.ImagePath = UserInfo.Current.headImagePagePath;
+            bodyFrameLayout.AddChidren(btnHeadImage);
 
-            #region 澶村儚
-            FrameLayout headView = new FrameLayout()
+            //绠ご
+            var btnArrow = new PicViewControl(84, 32);
+            btnArrow.X = btnHeadImage.Right + Application.GetRealWidth(12);
+            btnArrow.Y = Application.GetRealHeight(58);
+            btnArrow.UnSelectedImagePath = "PersonalCenter/Transfer.png";
+            bodyFrameLayout.AddChidren(btnArrow);
+
+            //涓�涓粯璁ゅご鍍�
+            var btnHead2 = new IconViewControl(102);
+            btnHead2.X = btnArrow.Right + Application.GetRealWidth(3);
+            btnHead2.Y = Application.GetRealHeight(26);
+            btnHead2.UnSelectedImagePath = "PersonalCenter/Head.png";
+            bodyFrameLayout.AddChidren(btnHead2);
+
+            //鎮ㄧ殑浣忓畢灏嗚繃鎴风粰鍏朵粬HDL璐﹀彿
+            this.AddListMsgControls(bodyFrameLayout, Language.StringByID(StringId.YourHomeWillBeTransferredToOtherAccounts), CSS_FontSize.SubheadingFontSize,
+                CSS_Color.FirstLevelTitleColor, Application.GetRealHeight(23), btnHead2.Bottom + Application.GetRealHeight(12));
+
+            //璇锋敞鎰�:
+            var btnAttention = new NormalViewControl(200, 18, true);
+            btnAttention.X = HdlControlResourse.XXLeft;
+            btnAttention.Y = btnHeadImage.Bottom + Application.GetRealHeight(84);
+            btnAttention.TextID = StringId.Attention;
+            btnAttention.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+            btnAttention.TextColor = CSS_Color.FirstLevelTitleColor;
+            bodyFrameLayout.AddChidren(btnAttention);
+
+            //1.璇ヤ綇瀹呯殑鏁版嵁锛堜簯绔暟鎹級灏嗗叏閮ㄨ浆绉荤粰鏂扮殑鎴蜂富
+            //2.杩囨埛鍚庯紝鍘熸湁鐨勬垚鍛樺皢鑷姩瑙g粦璇ヤ綇瀹�
+            //3.鏂版埛涓昏处鍙蜂负鏈夋晥鐨凥DL璐﹀彿
+            //4.鎺ユ敹鏂硅处鍙蜂笌杞Щ鏂硅处鍙蜂笉鍙负鍚屼竴涓处鍙�
+            var listContr = this.AddListMsgControls(bodyFrameLayout, Language.StringByID(StringId.TransferreConfirmMsg1), CSS_FontSize.PromptFontSize_FirstLevel,
+                CSS_Color.TextualColor, Application.GetRealHeight(18), btnAttention.Bottom + Application.GetRealHeight(8), TextAlignment.CenterLeft);
+
+            //纭
+            var btnConfirm = new BottomClickButton(220);
+            btnConfirm.Y = listContr[listContr.Count - 1].Bottom + Application.GetRealHeight(75);
+            btnConfirm.TextID = StringId.ConfirmTransferre;
+            bodyFrameLayout.AddChidren(btnConfirm);
+            btnConfirm.ButtonClickEvent += (sender, e) =>
             {
-                Y = Application.GetRealHeight(72),
-                Height = Application.GetRealHeight(132),
+                var form = new TransferInputPage();
+                form.AddForm();
             };
-            bodyView.AddChidren(headView);
-
-
-            ImageView myHeadImage = new ImageView()
-            {
-                X = Application.GetRealWidth(48),
-                Y = Application.GetRealHeight(96),
-                Width = Application.GetRealWidth(84),
-                Height = Application.GetRealWidth(84),
-                Radius = (uint)Application.GetRealWidth(42),
-                ImagePath = UserInfo.Current.headImagePagePath,
-                Gravity = Gravity.CenterVertical,
-            };
-            headView.AddChidren(myHeadImage);
-
-            ImageView transferImage = new ImageView()
-            {
-                X = Application.GetRealWidth(144),
-                Y = Application.GetRealHeight(96),
-                Width = Application.GetRealWidth(84),
-                Height = Application.GetRealWidth(32),
-                ImagePath = "PersonalCenter/Transfer.png",
-                Gravity = Gravity.Center,
-            };
-            headView.AddChidren(transferImage);
-
-            ImageView otherHeadImage = new ImageView()
-            {
-                X = Application.GetRealWidth(231),
-                Y = Application.GetRealHeight(96),
-                Width = Application.GetRealWidth(101),
-                Height = Application.GetRealWidth(101),
-                ImagePath = "PersonalCenter/Head.png",
-                Gravity = Gravity.CenterVertical,
-            };
-            headView.AddChidren(otherHeadImage);
-
-            #endregion
-
-            var btnTip = new Button()
-            {
-                Y = headView.Bottom,
-                X = Application.GetRealWidth(16),
-                Width = Application.GetRealWidth(343),
-                Height = Application.GetRealHeight(22),
-                TextAlignment = TextAlignment.Center,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                Text = "鎮ㄧ殑浣忓畢灏嗚繃鎴风粰鍏朵粬HDL璐﹀彿",
-            };
-            bodyView.AddChidren(btnTip);
-
-
-            //璇锋敞鎰�
-            var btnPleaseNote = new Button()
-            {
-                Y = btnTip.Bottom + Application.GetRealHeight(38),
-                X = Application.GetRealWidth(16),
-                Width = Application.GetRealWidth(343),
-                Height = Application.GetRealHeight(17),
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                Text = "璇锋敞鎰忥細",
-            };
-            bodyView.AddChidren(btnPleaseNote);
-
-            //璇锋敞鎰忕殑鍐呭
-            var btnPleaseNoteStr = new Button()
-            {
-                Y = btnPleaseNote.Bottom + Application.GetRealHeight(8),
-                X = Application.GetRealWidth(16),
-                Width = Application.GetRealWidth(343),
-                Height = Application.GetRealHeight(170),
-                TextAlignment = TextAlignment.TopLeft,
-                TextColor = CSS_Color.TextualColor,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                IsMoreLines = true,
-                Text = "1.璇ヤ綇瀹呮偍鐨勬暟鎹紙浜戠鏁版嵁锛夊皢鍏ㄩ儴杞Щ缁欐柊鐨勬埛涓� \n\n2.杩囨埛鍚庯紝鍘熸湁鐨勬垚鍛樺皢鑷姩瑙g粦璇ヤ綇瀹� \n\n3.鏂版埛涓昏处鍙蜂负鏈夋晥鐨凥DL璐﹀彿 \n\n4.鎺ユ敹鏂硅处鍙蜂笌杞Щ鏂硅处鍙蜂笉鍙负鍚屼竴涓处鍙� (缁戝畾鐨勫叾浠栫櫥褰�)",
-            };
-            bodyView.AddChidren(btnPleaseNoteStr);
-
-            //
-            var btnConfirm = new ConfirmButton()
-            {
-                Y = Application.GetRealHeight(456),
-                Text = "纭杩囨埛",
-            };
-            bodyView.AddChidren(btnConfirm);
-
-            btnConfirm.MouseUpEventHandler = (sender, e) => {
-                //Utlis.ShowTip("鏆備笉鏀寔");
-
-                var skipPage = new TransferInputPage();
-                MainPage.BasePageView.AddChidren(skipPage);
-                skipPage.LoadPage();
-                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-                
-            };
-
         }
 
+        #endregion
     }
-
 }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferInputPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferInputPage.cs
index 6ad0dcc..286f85a 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferInputPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferInputPage.cs
@@ -1,159 +1,160 @@
 锘縰sing System;
 using Shared;
 using HDL_ON.UI.CSS;
+using HDL_ON.Stan;
 
 namespace HDL_ON.UI
 {
     /// <summary>
     /// 杩囨埛杈撳叆璐﹀彿鐣岄潰
     /// </summary>
-    public class TransferInputPage : FrameLayout
+    public class TransferInputPage : EditorCommonForm
     {
-        /// <summary>
-        /// 
-        /// </summary>
-        FrameLayout bodyView;
+        #region 鈻� 鍙橀噺澹版槑___________________________
 
-        public TransferInputPage()
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        public void ShowForm()
         {
-            bodyView = this;
+            //杩囨埛
+            base.SetTitleText(Language.StringByID(StringId.Transfer));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
         }
 
         /// <summary>
-        /// 
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
         /// </summary>
-        public void LoadPage()
+        private void InitMiddleFrame()
         {
-            BackgroundColor = CSS_Color.BackgroundColor;
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
 
-            new TopViewDiv(bodyView, Language.StringByID(StringId.Transfer)).LoadTopView();
+            //鐧借壊鑳屾櫙
+            var frameBack = new FrameLayout();
+            frameBack.Y = Application.GetRealHeight(8);
+            frameBack.BackgroundColor = CSS_Color.MainBackgroundColor;
+            bodyFrameLayout.AddChidren(frameBack);
 
-            #region 璐﹀彿濉啓
-            var accountView = new FrameLayout()
+            //璇疯緭鍏ユ帴鏀舵柟璐﹀彿
+            var rowInput = new FrameRowControl();
+            rowInput.Height = Application.GetRealHeight(50);
+            frameBack.AddChidren(rowInput);
+            //鍥炬爣
+            rowInput.AddLeftIcon(24, "LoginIcon/AccountIcon.png");
+            //杈撳叆妗�
+            var txtInput = rowInput.AddLeftInput(string.Empty, 300);
+            txtInput.PlaceholderText = Language.StringByID(StringId.PleaseInputReceiverAccount);
+            //搴曠嚎
+            rowInput.AddBottomLine();
+            //鍙樻洿瀹瑰櫒楂樺害
+            frameBack.Height = rowInput.Bottom + Application.GetRealHeight(10);
+
+            //杩囨埛
+            var btnMigrate = new BottomClickButton(220);
+            btnMigrate.TextID = StringId.Transfer;
+            btnMigrate.Y = frameBack.Bottom + Application.GetRealHeight(79);
+            bodyFrameLayout.AddChidren(btnMigrate);
+            btnMigrate.ButtonClickEvent += (sender, e) =>
             {
-                Y = Application.GetRealHeight(72),
-                Height = Application.GetRealHeight(50),
-                BackgroundColor = CSS_Color.MainBackgroundColor
-            };
-            bodyView.AddChidren(accountView);
+                string account = txtInput.Text.Trim();
+                if (account == string.Empty)
+                {
+                    return;
+                }
+                if (account == UserInfo.Current.userEmailInfo || account == UserInfo.Current.userMobileInfo)
+                {
+                    //涓嶈兘鑷繁杩囨埛缁欒嚜宸�
+                    HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(StringId.YouCannotTransferOwnershipToYourself));
+                    return;
+                }
+                //鎼滅储璐﹀彿淇℃伅
+                var accountInfo = this.SearchAccountInfoByAccount(account);
+                if (accountInfo == null)
+                {
+                    return;
+                }
 
-            var btnAccountIcon = new Button()
+                this.CloseForm();
+
+                var form = new TransferUserConfirmPage();
+                form.AddForm(accountInfo);
+            };
+
+            //鎵弿浜岀淮鐮�
+            var btnQrcode = new NormalViewControl(220, 32, true);
+            btnQrcode.Y = btnMigrate.Bottom + Application.GetRealWidth(6);
+            btnQrcode.TextColor = CSS_Color.MainColor;
+            btnQrcode.Gravity = Gravity.CenterHorizontal;
+            btnQrcode.TextAlignment = TextAlignment.Center;
+            btnQrcode.TextID = StringId.ScanQRCoden;
+            bodyFrameLayout.AddChidren(btnQrcode);
+            btnQrcode.ButtonClickEvent += (sender, e) =>
             {
-                X = Application.GetRealWidth(16),
-                Gravity = Gravity.CenterVertical,
-                Width = Application.GetMinRealAverage(24),
-                Height = Application.GetMinRealAverage(24),
-                UnSelectedImagePath = "LoginIcon/AccountIcon.png",
+                Scan.OpenScan((scanString) =>
+                {
+                    if (string.IsNullOrEmpty(scanString) == true)
+                    {
+                        return;
+                    }
+                    if (scanString == UserInfo.Current.userEmailInfo || scanString == UserInfo.Current.userMobileInfo)
+                    {
+                        //涓嶈兘鑷繁杩囨埛缁欒嚜宸�
+                        HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(StringId.YouCannotTransferOwnershipToYourself));
+                        return;
+                    }
+                    //鎼滅储璐﹀彿淇℃伅
+                    var accountInfo = this.SearchAccountInfoByAccount(scanString);
+                    if (accountInfo == null)
+                    {
+                        return;
+                    }
+                    this.CloseForm();
+
+                    var form = new TransferUserConfirmPage();
+                    form.AddForm(accountInfo);
+                });
             };
-            accountView.AddChidren(btnAccountIcon);
-
-            var etAccount = new EditText()
-            {
-                X = Application.GetRealWidth(52),
-                Width = Application.GetRealWidth(307),
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextSize = CSS_FontSize.TextFontSize,
-                PlaceholderTextColor = CSS_Color.PromptingColor1,
-                PlaceholderText = "璇疯緭鍏ユ帴鏀舵柟璐﹀彿",
-            };
-            accountView.AddChidren(etAccount);
-
-            var btnLine = new Button()
-            {
-                BackgroundColor = CSS_Color.DividingLineColor,
-                Height = Application.GetRealHeight(1),
-                Y = accountView.Height - Application.GetRealHeight(1),
-                X = Application.GetRealWidth(16),
-                Width = Application.GetRealWidth(343),
-            };
-            accountView.AddChidren(btnLine);
-            #endregion
-
-            #region 璐﹀彿濉啓
-            var accountConfirmView = new FrameLayout()
-            {
-                Y = accountView.Bottom,
-                Height = Application.GetRealHeight(50),
-                BackgroundColor = CSS_Color.MainBackgroundColor
-            };
-            bodyView.AddChidren(accountConfirmView);
-
-            var btnAccountConfirmIcon = new Button()
-            {
-                X = Application.GetRealWidth(16),
-                Gravity = Gravity.CenterVertical,
-                Width = Application.GetMinRealAverage(24),
-                Height = Application.GetMinRealAverage(24),
-                UnSelectedImagePath = "LoginIcon/AccountIcon.png",
-            };
-            accountConfirmView.AddChidren(btnAccountConfirmIcon);
-
-            var etAccountConfirm = new EditText()
-            {
-                X = Application.GetRealWidth(52),
-                Width = Application.GetRealWidth(307),
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextSize = CSS_FontSize.TextFontSize,
-                PlaceholderTextColor = CSS_Color.PromptingColor1,
-                PlaceholderText = "璇峰啀娆¤緭鍏ユ帴鏀舵柟璐﹀彿",
-            };
-            accountConfirmView.AddChidren(etAccountConfirm);
-
-            //var btnLine2 = new Button()
-            //{
-            //    BackgroundColor = CSS_Color.DividingLineColor,
-            //    Height = Application.GetRealHeight(1),
-            //    Y = accountConfirmView.Height - Application.GetRealHeight(1),
-            //};
-            //accountConfirmView.AddChidren(btnLine2);
-            #endregion
-
-            var btnTip = new Button()
-            {
-                Y = accountConfirmView.Bottom + Application.GetRealHeight(12),
-                X = Application.GetRealWidth(16),
-                Width = Application.GetRealWidth(343),
-                TextAlignment = TextAlignment.TopLeft,
-                TextColor = CSS_Color.AuxiliaryColor2,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                Text = "*璇风‘璁よ处鍙锋棤璇紝鍦ㄦ暟鎹浆绉昏繃绋嬩腑涓嶅彲鍙栨秷鎿嶄綔",
-                IsMoreLines = true
-
-            };
-            bodyView.AddChidren(btnTip);
-
-            var btnConfirm = new ConfirmButton()
-            {
-                Y = Application.GetRealHeight(251),
-                Text = "杩囨埛",
-            };
-            bodyView.AddChidren(btnConfirm);
-
-            btnConfirm.MouseUpEventHandler = (sender, e) => {
-                var skipPage = new TransferUserConfirmPage();
-                MainPage.BasePageView.AddChidren(skipPage);
-                skipPage.LoadPage();
-                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-            };
-
-            Button btnEmailOption = new Button()
-            {
-                Y = btnConfirm.Bottom + Application.GetRealWidth(6),
-                Width = Application.GetRealWidth(220),
-                Height = Application.GetRealWidth(32),
-                TextSize = CSS_FontSize.TextFontSize,
-                TextColor = CSS_Color.MainColor,
-                Gravity = Gravity.CenterHorizontal,
-                TextAlignment = TextAlignment.Center,
-                Text = "鎵弿浜岀淮鐮佽繃鎴�"
-            };
-            bodyView.AddChidren(btnEmailOption);
-
-          
         }
 
+        #endregion
+
+        #region 鈻� 鎼滅储璐﹀彿___________________________
+
+        /// <summary>
+        /// 鎼滅储璐﹀彿淇℃伅
+        /// </summary>
+        /// <param name="i_account">鎼滅储鐨勮处鍙�</param>
+        /// <returns></returns>
+        private AccountInfoResult SearchAccountInfoByAccount(string i_account)
+        {
+            var result = new DAL.Server.HttpServerRequest().GetMemberInfoByAccount(i_account);
+            if (result.Code == DAL.Server.StateCode.ACCOUNT_NOT_EXIST)
+            {
+                //鐩爣璐﹀彿骞朵笉瀛樺湪
+                HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(StringId.TargetAcountDoesNotExist));
+                return null;
+            }
+            if (result.Code != DAL.Server.StateCode.SUCCESS)
+            {
+                DAL.Server.IMessageCommon.Current.ShowErrorInfoAlter(result.Code);
+                return null;
+            }
+            var accountInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<AccountInfoResult>(result.Data.ToString());
+            accountInfo.Account = i_account;
+            if (accountInfo.MemberName == string.Empty)
+            {
+                accountInfo.MemberName = accountInfo.Account;
+            }
+            return accountInfo;
+        }
+
+        #endregion
     }
-
 }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferResidenceResultPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferResidenceResultPage.cs
new file mode 100644
index 0000000..7a7f4c0
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferResidenceResultPage.cs
@@ -0,0 +1,65 @@
+锘縰sing System;
+using Shared;
+using HDL_ON.UI.CSS;
+using HDL_ON.Stan;
+
+namespace HDL_ON.UI
+{
+    /// <summary>
+    /// 杩囨埛缁撴灉鐣岄潰
+    /// </summary>
+    public class TransferResidenceResultPage : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 缁撴潫浜嬩欢
+        /// </summary>
+        public Action FinishEvent = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_accountResult">瀵规柟璐﹀彿淇℃伅</param>
+        /// <param name="i_success">鏄惁鎴愬姛</param>
+        public void ShowForm(AccountInfoResult i_accountResult, bool i_success)
+        {
+            this.ScrollLeftEnabled = false;
+            //杩囨埛
+            base.SetTitleText(Language.StringByID(StringId.Transfer));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+
+            //绉婚櫎杩斿洖閿�
+            base.RemoveBackButton();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            //纭
+            var btnConfirm = new BottomClickButton(220);
+            btnConfirm.TextID = StringId.Complete;
+            bodyFrameLayout.AddChidren(btnConfirm);
+            btnConfirm.ButtonClickEvent += (sender, e) =>
+            {
+                this.CloseForm();
+                //鍥炶皟鍑芥暟
+                this.FinishEvent?.Invoke();
+                this.FinishEvent = null;
+            };
+        }
+
+        #endregion
+    }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferUserConfirmPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferUserConfirmPage.cs
index e29f3fd..4a5c393 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferUserConfirmPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferUserConfirmPage.cs
@@ -1,68 +1,124 @@
 锘縰sing System;
 using Shared;
 using HDL_ON.UI.CSS;
+using HDL_ON.Stan;
 
 namespace HDL_ON.UI
 {
     /// <summary>
-    /// 杩囨埛璐﹀彿纭鐣岄潰
-    /// 涓汉璧勬枡
+    /// 杩囨埛璐﹀彿涓汉璧勬枡纭鐣岄潰
     /// </summary>
-    public class TransferUserConfirmPage : FrameLayout
+    public class TransferUserConfirmPage : EditorCommonForm
     {
-        /// <summary>
-        /// 
-        /// </summary>
-        FrameLayout bodyView;
+        #region 鈻� 鍙橀噺澹版槑___________________________
 
-        public TransferUserConfirmPage()
+        /// <summary>
+        /// 璐﹀彿淇℃伅
+        /// </summary>
+        private AccountInfoResult accountInfo = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_accountInfo"></param>
+        public void ShowForm(AccountInfoResult i_accountInfo)
         {
-            bodyView = this;
+            this.accountInfo = i_accountInfo;
+
+            //涓汉璧勬枡
+            base.SetTitleText(Language.StringByID(StringId.Profile));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
         }
 
         /// <summary>
-        /// 
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
         /// </summary>
-        public void LoadPage()
+        private void InitMiddleFrame()
         {
-            BackgroundColor = CSS_Color.BackgroundColor;
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
 
-            new TopViewDiv(bodyView, "涓汉璧勬枡").LoadTopView();
+            //涓婇儴鐨勭櫧鑹茶儗鏅�
+            var frameBack1 = new FrameLayout();
+            frameBack1.BackgroundColor = CSS_Color.MainBackgroundColor;
+            frameBack1.Height = Application.GetRealHeight(204);
+            bodyFrameLayout.AddChidren(frameBack1);
 
-            var headView = new FrameLayout()
+            //澶村儚
+            var btnHeadImage = new ImageView();
+            btnHeadImage.Y = Application.GetRealHeight(32);
+            btnHeadImage.Gravity = Gravity.CenterHorizontal;
+            btnHeadImage.Width = Application.GetRealWidth(84);
+            btnHeadImage.Height = Application.GetRealWidth(84);
+            btnHeadImage.Radius = (uint)Application.GetRealWidth(42);
+            btnHeadImage.ImagePath = "LoginIcon/2.png";
+            frameBack1.AddChidren(btnHeadImage);
+
+            //鏄电О
+            var btnName = new NormalViewControl(frameBack1.Width - HdlControlResourse.XXLeft * 2, Application.GetRealHeight(24), false);
+            btnName.Y = btnHeadImage.Bottom + Application.GetRealHeight(11);
+            btnName.Gravity = Gravity.CenterHorizontal;
+            btnName.IsBold = true;
+            btnName.TextSize = CSS_FontSize.SubheadingFontSize;
+            btnName.TextColor = CSS_Color.FirstLevelTitleColor;
+            btnName.Text = accountInfo.MemberName;
+            btnName.TextAlignment = TextAlignment.Center;
+            frameBack1.AddChidren(btnName);
+
+            //璐﹀彿
+            var btnAccount = new NormalViewControl(frameBack1.Width - HdlControlResourse.XXLeft * 2, Application.GetRealHeight(16), false);
+            btnAccount.Y = btnName.Bottom + Application.GetRealHeight(7);
+            btnAccount.Gravity = Gravity.CenterHorizontal;
+            btnAccount.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+            btnAccount.TextAlignment = TextAlignment.Center;
+            btnAccount.Text = accountInfo.Account;
+            frameBack1.AddChidren(btnAccount);
+
+            //纭鐨勭櫧鑹茶儗鏅�
+            var frameBack2 = new FrameLayout();
+            frameBack2.Y = frameBack1.Bottom + Application.GetRealHeight(8);
+            frameBack2.Height = Application.GetRealHeight(50);
+            frameBack2.BackgroundColor = CSS_Color.MainBackgroundColor;
+            bodyFrameLayout.AddChidren(frameBack2);
+            //纭杩囨埛
+            var btnConform = new NormalViewControl(200, 24, true);
+            btnConform.Gravity = Gravity.Center;
+            btnConform.TextSize = CSS_FontSize.SubheadingFontSize;
+            btnConform.TextAlignment = TextAlignment.Center;
+            btnConform.TextColor = CSS_Color.MainColor;
+            btnConform.TextID = StringId.ConfirmTransferre;
+            frameBack2.AddChidren(btnConform);
+            btnConform.ButtonClickEvent += (sender, e) =>
             {
-                Y = Application.GetRealHeight(64),
-                Height = Application.GetRealHeight(204),
-                BackgroundColor = CSS_Color.MainBackgroundColor,
+                //濡傛灉璁剧疆鏈夊畨鍏ㄩ獙璇�,鍒欓渶瑕侀獙璇�
+                HdlCheckLogic.Current.CheckUnlockSecurity(true, (div) =>
+                {
+                    var form = new TransferingResidenceForm();
+                    form.AddForm(this.accountInfo);
+                });
             };
-            bodyView.AddChidren(headView);
 
-            ImageView myHeadImage = new ImageView()
+            HdlThreadLogic.Current.RunThread(() =>
             {
-                Y = Application.GetRealHeight(32),
-                Width = Application.GetRealWidth(84),
-                Height = Application.GetRealWidth(84),
-                Radius = (uint)Application.GetRealWidth(42),
-                ImagePath = UserInfo.Current.headImagePagePath,
-                Gravity = Gravity.CenterHorizontal,
-            };
-            headView.AddChidren(myHeadImage);
-
-            var btnConfirm = new Button()
-            {
-                Y = headView.Bottom + Application.GetRealHeight(8),
-                Height = Application.GetRealHeight(50),
-                TextAlignment = TextAlignment.Center,
-                TextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                BackgroundColor = CSS_Color.MainBackgroundColor,
-                Text = "纭杩囨埛"
-
-            };
-            bodyView.AddChidren(btnConfirm);
-
+                //鐢ㄧ嚎绋嬪幓涓嬭浇澶村儚
+                var headImageBytes = ImageUtlis.Current.DownHeadImageByImageKey(this.accountInfo.MemberHeadIcon, true);
+                if (headImageBytes != null && headImageBytes.Length > 0)
+                {
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        btnHeadImage.ImageBytes = headImageBytes;
+                    }, ShowErrorMode.NO);
+                }
+            }); 
         }
 
+        #endregion
     }
 
 }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferingResidencePage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferingResidencePage.cs
new file mode 100644
index 0000000..aa6e574
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferingResidencePage.cs
@@ -0,0 +1,293 @@
+锘縰sing System;
+using Shared;
+using HDL_ON.UI.CSS;
+using HDL_ON.Stan;
+using System.Collections.Generic;
+
+namespace HDL_ON.UI
+{
+    /// <summary>
+    /// 鎵ц杩囨埛鎿嶄綔鐨勭晫闈�
+    /// </summary>
+    public class TransferingResidenceForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鎴愬憳淇℃伅
+        /// </summary>
+        private AccountInfoResult accountResult = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_accountResult">璐﹀彿淇℃伅</param>
+        public void ShowForm(AccountInfoResult i_accountResult)
+        {
+            this.ScrollLeftEnabled = false;
+
+            this.accountResult = i_accountResult;
+
+            //杩囨埛
+            base.SetTitleText(Language.StringByID(StringId.Transfer));
+
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            //浣忓畢鐨勫浘鏍�
+            var btnHouseIcon = new PicViewControl(93, 93);
+            btnHouseIcon.Y = Application.GetRealHeight(127);
+            btnHouseIcon.X = Application.GetRealWidth(48);
+            btnHouseIcon.BackgroundColor = CSS_Color.MainColor;
+            bodyFrameLayout.AddChidren(btnHouseIcon);
+            //浣忓畢鍚嶅瓧  (浠ヤ腑闂翠负鍩哄噯,宸﹀彸闂磋窛16)
+            var btnHouseName = new NormalViewControl(bodyFrameLayout.Width / 2 - Application.GetRealWidth(16 * 2), Application.GetRealHeight(48), false);
+            btnHouseName.X = Application.GetRealWidth(16);
+            btnHouseName.Y = btnHouseIcon.Bottom + Application.GetRealHeight(10);
+            btnHouseName.IsBold = true;
+            btnHouseName.IsMoreLines = true;
+            btnHouseName.TextAlignment = TextAlignment.TopCenter;
+            btnHouseName.TextSize = CSS_FontSize.SubheadingFontSize;
+            btnHouseName.Text = Entity.DB_ResidenceData.Instance.CurrentRegion.homeName;
+            bodyFrameLayout.AddChidren(btnHouseName);
+
+            //澶村儚
+            var imageByte = ImageUtlis.Current.ReadFile(this.accountResult.MemberHeadIcon);
+            var btnUserIcon = new ImageView();
+            btnUserIcon.Y = btnHouseIcon.Y;
+            btnUserIcon.X = bodyFrameLayout.Width - Application.GetRealWidth(48) - this.GetPictrueRealSize(93);
+            btnUserIcon.Height = this.GetPictrueRealSize(93);
+            btnUserIcon.Width = this.GetPictrueRealSize(93);
+            btnUserIcon.Radius = (uint)this.GetPictrueRealSize(93) / 2;
+            if (imageByte != null && imageByte.Length > 0)
+            {
+                btnUserIcon.ImageBytes = imageByte;
+            }
+            else
+            {
+                btnUserIcon.ImagePath = "LoginIcon/2.png";
+            }
+            bodyFrameLayout.AddChidren(btnUserIcon);
+
+            //鏄电О  (浠ヤ腑闂翠负鍩哄噯,宸﹀彸闂磋窛50)
+            var btnName = new NormalViewControl(btnHouseName.Width, btnHouseName.Height, false);
+            btnName.X = bodyFrameLayout.Width - btnHouseName.X - btnHouseName.Width;
+            btnName.Y = btnHouseName.Y;
+            btnName.IsBold = true;
+            btnName.IsMoreLines = true;
+            btnName.TextAlignment = TextAlignment.TopCenter;
+            btnName.TextSize = CSS_FontSize.SubheadingFontSize;
+            btnName.Text = accountResult.MemberName;
+            bodyFrameLayout.AddChidren(btnName);
+
+            //寮�鍚繛鎺ョ殑鍋囨兂鍔ㄧ敾鏁堟灉绾跨▼
+            this.StartConcetionAnimeteThread(btnHouseIcon.Right + Application.GetRealWidth(10));
+
+            //缁堟
+            var btnCancel = new BottomClickButton();
+            btnCancel.Y = Application.GetRealHeight(392);
+            btnCancel.TextID = StringId.Terminate;
+            bodyFrameLayout.AddChidren(btnCancel);
+            btnCancel.ButtonClickEvent += (sender, e) =>
+            {
+                this.CloseForm();
+            };
+
+            //鍒濆鍖栨秷鎭帶浠�
+            this.InitMsgControl();
+
+        }
+
+        #endregion
+
+        #region 鈻� 鍋囨兂鍔ㄧ敾___________________________
+
+        /// <summary>
+        /// 寮�鍚繛鎺ョ殑鍋囨兂鍔ㄧ敾鏁堟灉绾跨▼
+        /// </summary>
+        private void StartConcetionAnimeteThread(int XX)
+        {
+            //鐢熸垚鐐瑰彿鍥炬牱
+            int pointXX = XX;
+            int pointWidth = Application.GetRealWidth(6);
+            int pointSpace = Application.GetRealWidth(5);
+            for (int i = 0; i < 7; i++)
+            {
+                var btnPoint = new NormalViewControl(pointWidth, Application.GetRealHeight(4), false);
+                btnPoint.Radius = (uint)Application.GetRealHeight(4) / 2;
+                btnPoint.BackgroundColor = 0xffd5d5d5;
+                btnPoint.Y = Application.GetRealHeight(170);
+                btnPoint.X = pointXX;
+                bodyFrameLayout.AddChidren(btnPoint);
+                pointXX = btnPoint.Right + Application.GetRealWidth(5);
+            }
+
+            var listPoint = new List<int>();
+            //璺冲姩鐨勯棿璺�
+            int jumpSpace = pointWidth + pointSpace;
+            for (int i = 0; i < 7; i++)
+            {
+                //X杞�+Index*(鍥炬爣澶у皬+闂磋窛)
+                listPoint.Add(XX + i * jumpSpace);
+            }
+
+            var btnRound = new IconViewControl(8);
+            btnRound.Radius = (uint)btnRound.IconSize / 2;
+            btnRound.BackgroundColor = CSS_Color.AuxiliaryColor2;
+            btnRound.X = listPoint[0] - (btnRound.IconSize - pointWidth) / 2;
+            btnRound.Y = Application.GetRealHeight(169);
+            bodyFrameLayout.AddChidren(btnRound);
+
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                int index = 1;
+                while (this.Parent != null)
+                {
+                    System.Threading.Thread.Sleep(500);
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        if (btnRound != null)
+                        {
+                            btnRound.X = listPoint[index];
+                            index++;
+                            if (index == listPoint.Count)
+                            {
+                                index = 0;
+                            }
+                        }
+                    });
+                }
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鎵ц杩囨埛___________________________
+
+        /// <summary>
+        /// 鎵ц杩囨埛
+        /// </summary>
+        private void DoTransferResidence()
+        {
+            this.ShowProgressBar();
+            System.Threading.Thread.Sleep(1500);
+            //杩囨埛
+            bool success = new DAL.Server.HttpServerRequest().TransferResidence(this.accountResult.Account);
+
+            this.CloseProgressBar();
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                var form = new TransferResidenceResultPage();
+                form.AddForm(this.accountResult, success);
+                form.FinishEvent += () =>
+                {
+                    if (success == false)
+                    {
+                        //閲嶈瘯
+                        HdlThreadLogic.Current.RunThread(() =>
+                        {
+                            //鎵ц杩囨埛
+                            this.DoTransferResidence();
+                        });
+                    }
+                    else
+                    {
+                        for (int i = 0; i < UserInfo.Current.regionList.Count; i++)
+                        {
+                            //绉婚櫎褰撳墠浣忓畢Id
+                            if (UserInfo.Current.regionList[i].id == Entity.DB_ResidenceData.Instance.CurrentRegion.id)
+                            {
+                                UserInfo.Current.regionList.RemoveAt(i);
+                                UserInfo.Current.SaveUserInfo();
+                                break;
+                            }
+                        }
+                        //鍏抽棴鎵�鏈夌晫闈�
+                        HdlFormLogic.Current.CloseAllOpenForm();
+
+                        if (UserInfo.Current.regionList.Count == 0)
+                        {
+                            //娌℃湁浣忓畢浜�,杩斿洖鐧婚檰鐣岄潰
+                            HDLCommon.Current.Logout();
+                        }
+                        else
+                        {
+                            Entity.DB_ResidenceData.Instance.CurrentRegion = UserInfo.Current.regionList[0];
+                            Entity.DB_ResidenceData.Instance.SaveResidenceData();
+                            //鍒锋柊浣忓畢鏁版嵁
+                            Common.ApiUtlis.Ins.DownloadData();
+
+                            //鑾峰彇涓婚〉鐨勯偅涓鍣�
+                            var userPage = MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1) as UserPage;
+                            if (userPage != null)
+                            {
+                                //鍒锋柊涓汉涓績鐣岄潰
+                                MainPage.CurPageIndex = 1;
+                                userPage.ChoosePersonalCenter();
+                            }
+                        }
+                    }
+                };
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 鍒濆鍖栨秷鎭帶浠�
+        /// </summary>
+        private void InitMsgControl()
+        {
+            string msg = Language.StringByID(StringId.IsTransferingPleaseWaitting);
+
+            //姝e湪杩囨埛缁欑敤鎴�,璇风◢鍚�...
+            var btnMsg = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(20), false);
+            btnMsg.Y = Application.GetRealHeight(300);
+            btnMsg.TextAlignment = TextAlignment.Center;
+            btnMsg.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+            btnMsg.Text = msg;
+            bodyFrameLayout.AddChidren(btnMsg);
+
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                int timeOut = 15;
+                while (timeOut >= 0 && this.Parent != null)
+                {
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        btnMsg.Text = msg + timeOut + "s";
+                        if (timeOut == 0)
+                        {
+                            btnMsg.Text = msg;
+                        }
+                    }, ShowErrorMode.NO);
+                    System.Threading.Thread.Sleep(1000);
+                    timeOut--;
+                }
+                if (timeOut <= 0)
+                {
+                    //鎵ц杩囨埛鎿嶄綔
+                    this.DoTransferResidence();
+                }
+            });
+        }
+
+        #endregion
+    }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockPasswordPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockPasswordPage.cs
index 706facf..ccb481a 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockPasswordPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockPasswordPage.cs
@@ -147,7 +147,7 @@
             etPassword = new EditText()
             {
                 Y = Application.GetRealWidth(100),
-                Height = Application.GetRealWidth(0),
+                Height = 1,
                 Foucs = true,
                 //Visible = false,
                 IsNumberKeyboardType = true,
diff --git a/HDL_ON/UI/UI2/FuntionControlView/DoorLock/DoorLockPage.cs b/HDL_ON/UI/UI2/FuntionControlView/DoorLock/DoorLockPage.cs
index ab1f308..5b6d5ca 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/DoorLock/DoorLockPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/DoorLock/DoorLockPage.cs
@@ -924,10 +924,25 @@
             if (UserInfo.Current.appUnlockPage.Contains("3") == true)
             {
                 //璋冭捣瀹夊叏璁よ瘉
-                HdlCheckLogic.Current.CheckUnlockSecurity(true, () =>
+                HdlCheckLogic.Current.CheckUnlockSecurity(true, (div) =>
                 {
                     //閿佸凡鎵撳紑
-                    HdlMessageLogic.Current.ShowMassage(ShowMsgType.TipSuccess, Language.StringByID(StringId.LockIsOpened), null, null, null, 2);
+                    if (div == 1)
+                    {
+                        HdlMessageLogic.Current.ShowMassage(ShowMsgType.TipSuccess, Language.StringByID(StringId.LockIsOpened), null, null, null, 2);
+                    }
+                    else
+                    {
+                        //涓轰簡瀹夊叏锛岃璺宠浆鑷充釜浜轰腑蹇儃0}璁剧疆涓汉瀵嗙爜锛屽苟搴旂敤浜庨棬閿佸紑閿�
+                        HdlMessageLogic.Current.ShowMassage(ShowMsgType.Confirm, Language.StringByID(StringId.JumpToPersonalCentetToSetPasswordMsg), () =>
+                        {
+                            var page = new AppUnlockSettingsPage();
+                            MainPage.BasePageView.AddChidren(page);
+                            page.LoadPage();
+                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+
+                        }, Language.StringByID(StringId.Jump));
+                    }
                 });
             }
             else
diff --git a/HDL_ON/UI/UI2/UserPage.cs b/HDL_ON/UI/UI2/UserPage.cs
index 4397173..44540a8 100644
--- a/HDL_ON/UI/UI2/UserPage.cs
+++ b/HDL_ON/UI/UI2/UserPage.cs
@@ -563,7 +563,7 @@
         /// <summary>
         /// 鍒囨崲鍒颁釜浜轰腑蹇冪晫闈�
         /// </summary>
-        void ChoosePersonalCenter()
+        public void ChoosePersonalCenter()
         {
 #if DEBUG
             if(MainPage.NoLoginMode)

--
Gitblit v1.8.0