From 9a4b76398009cf76c508d61f7e48fb6f5cb7ac2d Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期二, 21 七月 2020 09:46:53 +0800 Subject: [PATCH] 请合并最新多功能面板代码 --- ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswEditorForm.cs | 400 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 400 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswEditorForm.cs new file mode 100755 index 0000000..0cbe83e --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswEditorForm.cs @@ -0,0 +1,400 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; + +namespace Shared.Phone.UserCenter.Safety +{ + /// <summary> + /// 缂栬緫鑳佽揩瀵嗙爜鐨勭晫闈� + /// </summary> + public class CoercePswEditorForm : EditorCommonForm + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 鐢ㄦ埛璐﹀彿 + /// </summary> + private int pswNo = 5; + /// <summary> + /// 瀵嗙爜 + /// </summary> + private string password = string.Empty; + /// <summary> + /// 瀵嗙爜鎻愮ず + /// </summary> + private string passwordTip = string.Empty; + /// <summary> + /// 鑱旂郴浜虹殑鍒楄〃鎺т欢 + /// </summary> + private FrameListControl listPhoneView = null; + /// <summary> + /// 淇℃伅鎺т欢 + /// </summary> + private InformationEditorControl tableContr = null; + /// <summary> + /// 瀵嗙爜鎺т欢 + /// </summary> + private NormalViewControl btnPassword = null; + /// <summary> + /// 褰撳墠鐨勮仈绯讳汉鍒楄〃 + /// </summary> + private List<ZigBee.Device.Safeguard.PushTargetInfo> listPhoneData = null; + + #endregion + + #region 鈻� 鍒濆鍖朹____________________________ + + /// <summary> + /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) + /// </summary> + /// <param name="i_password">鐢ㄦ埛瀵嗙爜</param> + /// <param name="i_passwordTip">鐢ㄦ埛瀵嗙爜鎻愮ず</param> + public void ShowForm(string i_password, string i_passwordTip) + { + this.password = i_password; + this.passwordTip = i_passwordTip; + this.ScrollEnabled = false; + //璁剧疆澶撮儴淇℃伅 + base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uCoercePassword)); + + //鍒濆鍖栦腑閮ㄤ俊鎭� + this.InitMiddleFrame(i_password); + } + + /// <summary> + /// 鍒濆鍖栦腑閮ㄤ俊鎭� + /// </summary> + /// <param name="i_password">鐢ㄦ埛瀵嗙爜</param> + private void InitMiddleFrame(string i_password) + { + //娓呯┖bodyFrame + this.ClearBodyFrame(); + + var listBackControl = new VerticalFrameControl(); + listBackControl.Height = bodyFrameLayout.Height; + bodyFrameLayout.AddChidren(listBackControl); + + var frameback = new FrameLayout(); + frameback.Y = Application.GetRealHeight(179); + frameback.Height = Application.GetRealHeight(395); + frameback.Width = Application.GetRealWidth(717); + frameback.Gravity = Gravity.CenterHorizontal; + frameback.BackgroundImagePath = "Safeguard/SafeguardPasswordGround.png"; + listBackControl.frameTable.AddChidren(frameback); + //褰撳墠浣跨敤瀵嗙爜 + var btnNowTip = new NormalViewControl(frameback.Width, Application.GetRealHeight(50), false); + btnNowTip.Y = Application.GetRealHeight(81); + btnNowTip.TextSize = 12; + btnNowTip.TextAlignment = TextAlignment.Center; + btnNowTip.TextColor = UserCenterColor.Current.TextGrayColor3; + btnNowTip.TextID = R.MyInternationalizationString.uNowUsePassword; + frameback.AddChidren(btnNowTip); + this.btnPassword = new NormalViewControl(frameback.Width, Application.GetRealHeight(90), false); + btnPassword.TextAlignment = TextAlignment.Center; + btnPassword.Y = Application.GetRealHeight(150); + btnPassword.TextSize = 24; + btnPassword.TextColor = 0xfffc744b; + btnPassword.Text = i_password; + btnPassword.IsBold = true; + frameback.AddChidren(btnPassword); + + //鍒濆鍖栧垪琛ㄦ帶浠� + this.InitListViewControl(listBackControl); + } + + /// <summary> + /// 鍒濆鍖栧垪琛ㄦ帶浠� + /// </summary> + private void InitListViewControl(VerticalFrameControl listBackControl) + { + //鍒濆鍖栨甯� + this.tableContr = new InformationEditorControl(); + var listView = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 1025); + + //澶囨敞淇℃伅 + string caption = Language.StringByID(R.MyInternationalizationString.uNoteInformation); + var rowNote = new FrameCaptionInputControl(caption, passwordTip, listView.rowSpace / 2); + rowNote.txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPlesaeInputNoteInformation); + rowNote.txtInput.MaxByte = 90; + listView.AddChidren(rowNote); + rowNote.InitControl(); + rowNote.AddBottomLine(); + rowNote.txtInput.FinishInputEvent += async () => + { + if (rowNote.Text == string.Empty) + { + rowNote.Text = passwordTip; + return; + } + if (passwordTip != rowNote.Text) + { + //淇敼瀵嗙爜澶囨敞 + await this.EditorPassworTip(password, rowNote.Text, true); + } + }; + + //淇敼瀵嗙爜 + var rowPsw = new FrameRowControl(listView.rowSpace / 2); + listView.AddChidren(rowPsw); + rowPsw.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uChangedPassword), 300); + rowPsw.AddRightArrow(); + rowPsw.AddBottomLine(); + rowPsw.ButtonClickEvent += (sender, e) => + { + var form = new CoercePswAddNewForm(); + form.AddForm(rowNote.Text); + form.PasswordChangedEvent += (newPassword) => + { + this.btnPassword.Text = newPassword; + this.password = newPassword; + }; + }; + + //鍒濆鍖栬仈绯讳汉鎺т欢 + this.InitPhoneControl(listView); + + //閲嶅啓搴曞眰鐨勮繑鍥炴寜閿簨浠� + this.BackButtonClickEvent = async (sender) => + { + sender.CanClick = false; + if (rowNote.Text == string.Empty || passwordTip == rowNote.Text) + { + this.CloseForm(); + } + else + { + //淇敼瀵嗙爜澶囨敞 + var result = await this.EditorPassworTip(password, rowNote.Text, false); + sender.CanClick = true; + if (result == true) + { + this.CloseForm(); + } + } + }; + } + + #endregion + + #region 鈻� 鍒濆鍖栬仈绯讳汉鎺т欢___________________ + + /// <summary> + /// 鍒濆鍖栬仈绯讳汉鎺т欢 + /// </summary> + private void InitPhoneControl(FrameListControl listTableView) + { + //鑱旂郴浜虹殑鍒楄〃鎺т欢 + if (listPhoneView == null) + { + this.listPhoneView = new FrameListControl(); + listPhoneView.rowSpace = listTableView.rowSpace; + listPhoneView.Height = Application.GetRealHeight(200); + listTableView.AddChidren(listPhoneView); + listPhoneView.Y -= listTableView.rowSpace; + } + else + { + this.listPhoneView.RemoveAll(); + } + + HdlThreadLogic.Current.RunThread(async () => + { + //寮�鍚繘搴︽潯 + this.ShowProgressBar(); + //鑾峰彇鑱旂郴鏂瑰紡 + var result = await HdlSafeguardLogic.Current.GetCoercePhoneNumber(); + if (result == null) + { + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(ShowReLoadMode.YES); + return; + } + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(); + + HdlThreadLogic.Current.RunMain(() => + { + this.listPhoneData = new List<ZigBee.Device.Safeguard.PushTargetInfo>(); + //鑱旂郴浜� + var rowContact = new FrameRowControl(this.listPhoneView.rowSpace / 2); + rowContact.UseClickStatu = false; + listPhoneView.AddChidren(rowContact); + rowContact.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uContactPersion), 300); + var btnAdd = rowContact.AddMostRightEmptyIcon(81, 81); + btnAdd.UnSelectedImagePath = "Item/Add.png"; + rowContact.ButtonClickEvent += (sender, e) => + { + var form = new CoercePswAddContactForm(); + form.AddForm(listPhoneData); + form.AddPhoneEvent += () => + { + //閲嶆柊鍒锋柊 + this.InitPhoneControl(listTableView); + }; + }; + + if (result.Actions.Count > 0) + { + listPhoneData = result.Actions[0].PushTarget; + foreach (var data in listPhoneData) + { + //娣诲姞鑱旂郴浜鸿 + this.AddPhoneNumRowLayout(data); + } + } + else + { + //娌℃湁鑱旂郴浜虹殑璇�,娣诲姞涓簳绾� + rowContact.AddBottomLine(); + } + //璋冩暣妗屽竷澶у皬 + this.AdjustPhoneContrlTable(); + }); + }); + } + + /// <summary> + /// 璋冩暣妗屽竷澶у皬 + /// </summary> + private void AdjustPhoneContrlTable() + { + //璋冩暣妗屽竷 + listPhoneView.AdjustRealHeight(); + tableContr.FinishInitControl(false, true); + } + + #endregion + + #region 鈻� 娣诲姞鑱旂郴浜鸿_______________________ + + /// <summary> + /// 娣诲姞鑱旂郴浜鸿 + /// </summary> + /// <param name="data"></param> + private void AddPhoneNumRowLayout(ZigBee.Device.Safeguard.PushTargetInfo data) + { + var strArry = data.PushNumber.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries); + if (strArry.Length != 2) + { + return; + } + string areaCode2 = strArry[0]; + string phoneNum = strArry[1]; + + string strPhone = "+" + areaCode2 + " " + phoneNum; + if (phoneNum.Length >= 11) + { + phoneNum = phoneNum.Substring(0, 3) + "".PadLeft(phoneNum.Length - 7, '*') + phoneNum.Substring(phoneNum.Length - 4, 4); + strPhone = "+" + areaCode2 + " " + phoneNum; + } + else if (phoneNum.Length >= 5) + { + //鎴栬杩欐槸鍥藉鐨勬墜鏈哄惂 + phoneNum = phoneNum.Substring(0, 3) + "".PadLeft(phoneNum.Length - 5, '*') + phoneNum.Substring(phoneNum.Length - 2, 2); + strPhone = "+" + areaCode2 + " " + phoneNum; + } + + var rowContact = new RowLayoutControl(); + rowContact.MainKeys = strPhone; + this.listPhoneView.AddChidren(rowContact); + rowContact.frameTable.UseClickStatu = false; + //鑱旂郴鏂瑰紡 + rowContact.frameTable.AddLeftCaption(strPhone + " (" + data.PushNumberNote + ")", 800); + rowContact.frameTable.AddBottomLine(); + //鍒犻櫎 + var btnDetete = rowContact.AddDeleteControl(); + btnDetete.ButtonClickEvent += (sender, e) => + { + string[] Arry = data.PushNumber.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries); + string PNumber = string.Empty; + string areaCode = string.Empty; + if (Arry.Length == 1) + { + PNumber = Arry[0]; + } + else + { + areaCode = Arry[0]; + PNumber = Arry[1]; + } + string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg); + this.ShowMassage(ShowMsgType.Confirm, msg, () => + { + //鍒犻櫎鑱旂郴浜烘柟寮� + this.DeleteCoercePhoneNumber(areaCode, PNumber, rowContact); + }); + }; + } + + /// <summary> + /// 鍒犻櫎鑱旂郴浜烘柟寮� + /// </summary> + /// <param name="areaCode"></param> + /// <param name="phone"></param> + /// <param name="rowContact"></param> + public async void DeleteCoercePhoneNumber(string areaCode, string phone, RowLayoutControl rowContact) + { + bool result = await HdlSafeguardLogic.Current.DeleteCoercePhoneNumber(areaCode, phone); + if (result == true) + { + bool canMove = false; + for (int i = 0; i < this.listPhoneView.ChildrenCount; i++) + { + var myRow = this.listPhoneView.GetChildren(i) as RowLayoutControl; + if (myRow != null && myRow.MainKeys == rowContact.MainKeys) + { + //寰幆鍒颁簡褰撳墠鎺т欢 + canMove = true; + continue; + } + if (canMove == true) + { + //瀹冧箣鍚庣殑鎺т欢鍏ㄩ儴寰�涓婄Щ鍔� + myRow.Y -= rowContact.Height; + } + } + rowContact.RemoveFromParent(); + + //绉婚櫎缂撳瓨 + string checkKeys = areaCode + "-" + phone; + for (int i = 0; i < this.listPhoneData.Count; i++) + { + if (listPhoneData[i].PushNumber == checkKeys) + { + listPhoneData.RemoveAt(i); + } + } + //璋冩暣妗屽竷澶у皬 + this.AdjustPhoneContrlTable(); + } + } + + #endregion + + #region 鈻� 淇敼澶囨敞___________________________ + + /// <summary> + /// 淇敼瀵嗙爜澶囨敞 + /// </summary> + /// <param name="i_password">鐢ㄦ埛瀵嗙爜</param> + /// <param name="i_passwordTip">鐢ㄦ埛瀵嗙爜鎻愮ず</param> + private async System.Threading.Tasks.Task<bool> EditorPassworTip(string i_password, string i_passwordTip, bool ShowMsg) + { + var result = await HdlSafeguardLogic.Current.AddPassWordTips(this.pswNo, i_password, i_passwordTip); + if (result == true) + { + if (ShowMsg == true) + { + //淇敼澶囨敞淇℃伅鎴愬姛! + string msg = Language.StringByID(R.MyInternationalizationString.uEditorNoteInformationSuccess); + this.ShowMassage(ShowMsgType.Tip, msg); + } + + this.passwordTip = i_passwordTip; + } + return result; + } + + #endregion + } +} -- Gitblit v1.8.0