From d72ca686a3e262693f8a6e45e747e8e8da43335b Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期二, 06 七月 2021 09:39:03 +0800 Subject: [PATCH] 2021-07-06 1.更新 --- HDL_ON/UI/UI2/1-HomePage/MessageCenterPage.cs | 423 ++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 336 insertions(+), 87 deletions(-) diff --git a/HDL_ON/UI/UI2/1-HomePage/MessageCenterPage.cs b/HDL_ON/UI/UI2/1-HomePage/MessageCenterPage.cs index 602b8eb..05cabc6 100644 --- a/HDL_ON/UI/UI2/1-HomePage/MessageCenterPage.cs +++ b/HDL_ON/UI/UI2/1-HomePage/MessageCenterPage.cs @@ -4,7 +4,9 @@ using System.Collections.Generic; using System.Threading; using HDL_ON.DAL.Server; - +#if DEBUG +using Xamarin.Essentials; +#endif namespace HDL_ON.UI { /// <summary> @@ -20,7 +22,7 @@ /// <summary> /// 鍐呭涓虹┖鎻愮ずView /// </summary> - EmptyTipView emptyTipView; + FrameLayout emptyTipView; /// <summary> /// menuView @@ -34,14 +36,25 @@ /// <summary> /// 鏄剧ず鐨勬秷鎭被鍨� - /// 1鍏ㄩ儴 2鍒嗕韩涓庡姛鑳� 3鎶ヨ绫� 4绯荤粺淇℃伅 + /// 0鍏ㄩ儴 1鍒嗕韩涓庡姛鑳� 2鎶ヨ绫� 3绯荤粺淇℃伅 /// </summary> - int showMesType = 1; + int showMesType = 0; /// <summary> /// 鎺ㄩ�佹秷鎭垪琛� /// </summary> List<PushMessageInfo> PushMessageInfoList = new List<PushMessageInfo>(); + /// <summary> + /// 椤甸潰鍏抽棴鏃堕棿 + /// </summary> + Action backAction; + + public override void RemoveFromParent() + { + UnregisterGetPushMessageAction(); + base.RemoveFromParent(); + backAction?.Invoke(); + } /// <summary> /// @@ -55,15 +68,19 @@ /// <summary> /// /// </summary> - public void LoadPage() + /// <param name="backAction"></param> + public void LoadPage(Action backAction) { + this.backAction = backAction; new TopViewDiv(bodyView, Language.StringByID(StringId.MessageCenter)).LoadTopView(); AddTopMenuView(); AddMessageView(); - MenuButtonSelect(1); + MenuButtonSelect(showMesType); + RegisterGetPushMessageAction(); + //娴嬭瘯浠g爜 + //AddEmptyTipView(); //TestLoad(); - GetPushMessageList(); } /// <summary> @@ -93,12 +110,31 @@ allMenuButton.TextButton.TextID = StringId.All; Action allAction = () => { - MenuButtonSelect(1); + MenuButtonSelect(0); }; allMenuButton.SelectAction = allAction; - #endregion + //娴嬭瘯鎻愬墠褰撳墠鎺ㄩ�両D + allMenuButton.ImageButton.MouseLongEventHandler = (sender, e) => + { +#if DEBUG - #region 鍒嗕韩涓庡姛鑳� + CopyToClipboard("鎺ㄩ�両D锛�" + OnAppConfig.Instance.PushId); +#else + //妫�娴嬫槸鍚﹁幏鍙栨帹閫両D鎴愬姛锛屾彁绀烘帹閫佹敞鍐屾槸鍚︽甯� + if (string.IsNullOrEmpty(OnAppConfig.Instance.PushId)) + { + Utlis.ShowTip(Language.StringByID(StringId.PushException)); + } + else + { + Utlis.ShowTip(Language.StringByID(StringId.PushNormal)); + } +#endif + + }; +#endregion + +#region 鍒嗕韩涓庡姛鑳� shareMenuButton = new MenuButton() { X = allMenuButton.Right, @@ -108,14 +144,15 @@ shareMenuButton.ImageButton.SelectedImagePath = "Collection/MesCenter/ShareOn.png"; shareMenuButton.ImageButton.UnSelectedImagePath = "Collection/MesCenter/Share.png"; shareMenuButton.TextButton.TextID = StringId.SharingAndFunctionality; + shareMenuButton.TextButton.IsMoreLines = true; Action shateAction = () => { - MenuButtonSelect(2); + MenuButtonSelect(1); }; shareMenuButton.SelectAction = shateAction; - #endregion +#endregion - #region 鎶ヨ绫� +#region 鎶ヨ绫� alarmMenuButton = new MenuButton() { X = shareMenuButton.Right, @@ -127,12 +164,12 @@ alarmMenuButton.TextButton.TextID = StringId.AlarmType; Action alarmAction = () => { - MenuButtonSelect(3); + MenuButtonSelect(2); }; alarmMenuButton.SelectAction = alarmAction; - #endregion +#endregion - #region 绯荤粺淇℃伅 +#region 绯荤粺淇℃伅 systemMenuButton = new MenuButton() { X = alarmMenuButton.Right, @@ -144,10 +181,10 @@ systemMenuButton.TextButton.TextID = StringId.SystemMessage; Action systemAction = () => { - MenuButtonSelect(4); + MenuButtonSelect(3); }; systemMenuButton.SelectAction = systemAction; - #endregion +#endregion } @@ -177,20 +214,20 @@ /// <summary> /// /// </summary> - /// <param name="selectId">1鍏ㄩ儴 2鍒嗕韩涓庡姛鑳� 3鎶ヨ绫� 4绯荤粺淇℃伅</param> + /// <param name="selectId">0鍏ㄩ儴 1鍒嗕韩涓庡姛鑳� 2鎶ヨ绫� 3绯荤粺淇℃伅</param> void MenuButtonSelect(int selectId) { showMesType = selectId; - if (selectId == 1) + if (selectId == 0) { allMenuButton.IsSelected = true; - shareMenuButton.IsSelected = false; - alarmMenuButton.IsSelected = false; - systemMenuButton.IsSelected = false; + shareMenuButton.IsSelected = true; + alarmMenuButton.IsSelected = true; + systemMenuButton.IsSelected = true; } - else if (selectId == 2) + else if (selectId == 1) { allMenuButton.IsSelected = false; shareMenuButton.IsSelected = true; @@ -198,14 +235,14 @@ systemMenuButton.IsSelected = false; } - else if (selectId == 3) + else if (selectId == 2) { allMenuButton.IsSelected = false; shareMenuButton.IsSelected = false; alarmMenuButton.IsSelected = true; systemMenuButton.IsSelected = false; } - else if (selectId == 4) + else if (selectId == 3) { allMenuButton.IsSelected = false; shareMenuButton.IsSelected = false; @@ -213,6 +250,8 @@ systemMenuButton.IsSelected = true; } + + GetPushMessageList(showMesType); } @@ -222,13 +261,24 @@ /// </summary> void AddEmptyTipView() { - emptyTipView = new EmptyTipView() + emptyTipView = new FrameLayout() + { + Height = bodyScrolView.Height, + Width = bodyScrolView.Width, + }; + bodyScrolView.AddChidren(emptyTipView); + + var tipView = new EmptyTipView() { Gravity = Gravity.Center }; - messageView.AddChidren(emptyTipView); + emptyTipView.AddChidren(tipView); } + /// <summary> + /// 骞翠唤鏍囪 + /// </summary> + string YearMark = ""; /// <summary> /// 鍔犺浇鎶ヨ淇℃伅RowView /// </summary> @@ -244,21 +294,27 @@ VerticalScrolViewMiddle.AddChidren(rowView); //鏍囬 - var btnTilte = new Button() + var btnTilte = new TextButton() { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(12), - Width = Application.GetRealWidth(320), - Height = Application.GetRealHeight(20), + Width = Application.GetRealWidth(343), + Height = Application.GetRealWidth(20), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, - Text = pushMessageInfo.messageTitle + Text = pushMessageInfo.messageContent, + //IsMoreLines = true, }; rowView.AddChidren(btnTilte); + // + var needHeight = btnTilte.GetMoreLineNeedHeight(); + btnTilte.IsMoreLines = true; + btnTilte.Height = needHeight; + rowView.Height = Application.GetRealHeight(45) + needHeight; //鍓爣棰� - var btnSubtitle = new Button() + var btnSubtitle = new TextButton() { X = Application.GetRealWidth(16), Y = btnTilte.Bottom + Application.GetRealHeight(4), @@ -267,7 +323,7 @@ TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - Text = pushMessageInfo.messageContent + Text = pushMessageInfo.messageTitle }; rowView.AddChidren(btnSubtitle); @@ -281,11 +337,10 @@ TextAlignment = TextAlignment.CenterRight, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - Text = pushMessageInfo.createTime }; rowView.AddChidren(btnDatetime); - var lineView = new LineView(rowView.Height); + var lineView = new LineView(rowView.Height - Application.GetRealHeight(1)); rowView.AddChidren(lineView); //鍒犻櫎鎸夐挳 @@ -299,15 +354,82 @@ rowView.AddRightView(deleteBtn); deleteBtn.MouseUpEventHandler = (sender, e) => { - rowView.RemoveFromParent(); + DeleteThePush(pushMessageInfo, rowView); }; + + btnDatetime.Text = GetUnixToDateTime(pushMessageInfo.createTime); + //2020-12-23 鍘绘帀鐐瑰嚮寮圭獥浜嬩欢 //EventHandler<MouseEventArgs> eventHandler = (sender, e) => //{ + // new Alert(pushMessageInfo.messageTitle, pushMessageInfo.messageContent, Language.StringByID(StringId.Close)).Show(); //}; - + //rowView.MouseUpEventHandler = eventHandler; //btnTilte.MouseUpEventHandler = eventHandler; //btnSubtitle.MouseUpEventHandler = eventHandler; + + + } + + /// <summary> + /// 鏃堕棿鏍煎紡杞崲澶勭悊 + /// </summary> + /// <param name="time">姣鏃堕棿鎴�</param> + /// <returns></returns> + string GetUnixToDateTime(long time) + { + try + { + return Utlis.UnixToDateTimeWithFormatMS(time, "MM/dd HH:mm"); + } + catch (Exception ex) + { + return ""; + } + } + + /// <summary> + /// 鍒犻櫎鎺ㄩ�佹秷鎭� + /// <param name="pushMessageInfo"></param> + /// <param name="rowView"></param> + void DeleteThePush(PushMessageInfo pushMessageInfo, RowLayout rowView) + { + var waitPage = new Loading(); + bodyView.AddChidren(waitPage); + waitPage.Start(Language.StringByID(StringId.PleaseWait)); + + new Thread(() => + { + try + { + var result = new HttpServerRequest().PushSerivceDeleteMessage(pushMessageInfo.id); + if (result) + { + PushMessageInfoList.Remove(pushMessageInfo); + //鍒犻櫎鎴愬姛 + Application.RunOnMainThread(() => + { + rowView.RemoveFromParent(); + }); + + } + } + catch (Exception ex) + { + } + finally + { + Application.RunOnMainThread(() => + { + if (waitPage != null) + { + waitPage.RemoveFromParent(); + waitPage = null; + } + }); + } + }) + { IsBackground = true }.Start(); } /// <summary> @@ -323,7 +445,7 @@ }; VerticalScrolViewMiddle.AddChidren(bgView); - var yearBtn = new Button() + var yearBtn = new TextButton() { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(16), @@ -333,26 +455,43 @@ TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel, IsBold = true, - Text = yearStr }; bgView.AddChidren(yearBtn); + yearBtn.Text = yearStr + Language.StringByID(StringId.Years); } /// <summary> - /// + /// 鏌ヨ鎺ㄩ�佽褰� /// </summary> - void GetPushMessageList() + /// <param name="queryType"></param> + void GetPushMessageList(int queryType = 0) { - var waitPage = new Loading(); - waitPage.Start(Language.StringByID(StringId.PleaseWait)); bodyScrolView.RemoveAll(); - PushMessageInfoList.Clear(); + if(PushMessageInfoList == null) + { + PushMessageInfoList = new List<PushMessageInfo>(); + } + else + { + PushMessageInfoList.Clear(); + } + + YearMark = "";//鏍囪娓呯┖ + if (string.IsNullOrEmpty(OnAppConfig.Instance.PushId)) + { + AddEmptyTipView(); + return; + } + + var waitPage = new Loading(); + bodyView.AddChidren(waitPage); + waitPage.Start(Language.StringByID(StringId.PleaseWait)); new Thread(() => { try { - var result = new HttpServerRequest().PushSerivceGetPushmessagelist(); + var result = new HttpServerRequest().PushSerivceGetPushmessagelist(queryType); if (result.Code == StateCode.SUCCESS) { PushMessageInfoList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PushMessageInfo>>(result.Data.ToString()); @@ -362,6 +501,7 @@ { ParseAndDisplayPushList(); + PushSerivceMarkAllMessageRead(); } else { @@ -401,14 +541,29 @@ /// </summary> void ParseAndDisplayPushList() { - // - if (showMesType == 1) + foreach (var info in PushMessageInfoList) { + //骞翠唤瑙f瀽 鍒ゆ柇鏄惁闇�瑕佹坊鍔犲勾浠芥爣棰� + var mesYear = Utlis.UnixToDateTimeYearMS(info.createTime); + if (string.IsNullOrEmpty(YearMark)) + { + //鍒氬紑濮媃earMark鏍囪涓虹┖锛屾坊鍔犵涓�涓勾浠芥爣棰� + YearMark = mesYear; + AddYearRowView(bodyScrolView, YearMark); + } + else if (YearMark != mesYear) + { + //褰撳墠淇℃伅骞翠唤鍜屼箣鍓嶇殑涓嶄竴鏍凤紝閲嶆柊娣诲姞涓�涓勾浠芥爣棰� + YearMark = mesYear; + AddYearRowView(bodyScrolView, YearMark); + } + AddRowView(bodyScrolView, info); } } - #region 娴嬭瘯 +#region 娴嬭瘯 +#if DEBUG /// <summary> /// /// </summary> @@ -418,82 +573,176 @@ { messageTitle = "鎶ヨ淇℃伅", messageContent = "闂ㄩ攣琚墦寮�", - createTime = "11鏈�30 10:50", + createTime = 1606900275, }); PushMessageInfoList.Add(new PushMessageInfo() { messageTitle = "鎶ヨ淇℃伅1", messageContent = "闂ㄩ攣琚墦寮�", - createTime = "11鏈�30 11:50", + createTime = 1606895454, }); PushMessageInfoList.Add(new PushMessageInfo() { messageTitle = "鎶ヨ淇℃伅2", messageContent = "闂ㄩ攣琚墦寮�", - createTime = "11鏈�30 12:50", + createTime = 1606895454, }); - AddYearRowView(bodyScrolView, "2020骞�"); - foreach (var info in PushMessageInfoList) + PushMessageInfoList.Add(new PushMessageInfo() { - AddRowView(bodyScrolView, info); - } + messageTitle = "鎶ヨ淇℃伅2019", + messageContent = "闂ㄩ攣琚墦寮�", + createTime = 1575277874, + }); - AddYearRowView(bodyScrolView, "2019骞�"); - foreach (var info in PushMessageInfoList) + PushMessageInfoList.Add(new PushMessageInfo() { - AddRowView(bodyScrolView, info); - } + messageTitle = "鎶ヨ淇℃伅2019", + messageContent = "闂ㄩ攣琚墦寮�", + createTime = 1572685874, + }); + + PushMessageInfoList.Add(new PushMessageInfo() + { + messageTitle = "鎶ヨ淇℃伅2018", + messageContent = "闂ㄩ攣琚墦寮�", + createTime = 1541149874, + }); + + PushMessageInfoList.Add(new PushMessageInfo() + { + messageTitle = "鎶ヨ淇℃伅2017", + messageContent = "闂ㄩ攣琚墦寮�", + createTime = 1509613874, + }); + + PushMessageInfoList.Add(new PushMessageInfo() + { + messageTitle = "鎶ヨ淇℃伅2017", + messageContent = "闂ㄩ攣琚墦寮�", + createTime = 1509613874, + }); + + PushMessageInfoList.Add(new PushMessageInfo() + { + messageTitle = "鎶ヨ淇℃伅2017", + messageContent = "闂ㄩ攣琚墦寮�", + createTime = 1506935474, + }); + + ParseAndDisplayPushList(); } - #endregion + +#endif + +#endregion + + /// <summary> + /// 鏍囪鎵�鏈夋帹閫佹秷鎭凡璇� + /// </summary> + void PushSerivceMarkAllMessageRead() + { + new Thread(() => + { + var result = new HttpServerRequest().PushSerivceMarkAllMessageRead(); + if (result) + { + Utlis.WriteLine("鏍囪鎴愬姛"); + } + else + { + Utlis.WriteLine("鏍囪澶辫触"); + } + + + }) + { IsBackground = true }.Start(); + } + + /// <summary> + /// 娉ㄥ唽鏀跺埌鎺ㄩ�佺洃鍚� + /// </summary> + void RegisterGetPushMessageAction() + { + HDLCommon.GetPushMessageAction = () => + { + if (bodyView != null) + { + //Utlis.WriteLine("GetPushMessageAction M鏀跺埌鎺ㄩ��"); + GetPushMessageList(showMesType); + } + }; + } + + /// <summary> + /// 鍙栨秷鏀跺埌鎺ㄩ�佺洃鍚� + /// </summary> + void UnregisterGetPushMessageAction() + { + HDLCommon.GetPushMessageAction = null; + } + +#if DEBUG + + /// <summary> + /// 澶嶅埗鍒板壀鍒囨澘 + /// </summary> + /// <param name="text"></param> + void CopyToClipboard(string text) + { + Clipboard.SetTextAsync(text); + Utlis.ShowTip(text + "\n" + Language.StringByID(StringId.CopySuccess)); + } +#endif + } - /// <summary> - /// 鎺ㄩ�佹秷鎭被鍨� + /// 鎺ㄩ�佹秷鎭被鍨嬭鎯� /// </summary> [System.Serializable] public class PushMessageInfo { /// <summary> - /// 璁板綍Id + /// 璁板綍id /// </summary> public string id; - /// <summary> - /// 鏄惁宸茶 - /// </summary> - public bool isRead; - /// <summary> - /// 娑堟伅鍐呭 - /// </summary> - public string messageContent; - /// <summary> - /// 鎵╁睍鏁版嵁 - /// </summary> - public string messageExpand; - /// <summary> - /// 娑堟伅涓婚 - /// </summary> - public string messageTitle; - /// <summary> - /// 娑堟伅绫诲瀷锛�0锛氭彁绀猴紱1锛氭姤璀︼紱2锛氫赴鏋楀彲鏄璁插懠鍙紱3锛氬己鍒朵笅绾挎帹閫� - /// </summary> - public string messageType; /// <summary> /// 鎺ㄩ�乀oken璁板綍Id /// </summary> public string pushId; /// <summary> - /// 鎺ㄩ�佺被鍨嬶紱0锛氶粯璁わ紱1锛氭姤璀︼紱2锛氭彁绀猴紱3锛氭柊闂伙紱4锛氭帹鑽愶紱 + /// 浜戠瀹氫箟 鎺ㄩ�佺被鍨嬶紱0锛氶粯璁わ紱1锛氭姤璀︼紱2锛氭彁绀猴紱3锛氭柊闂伙紱4锛氭帹鑽愶紱 + /// + /// Default锛氬垎浜笌鍔熻兘锛汚larm锛氭姤璀︾被锛汸rompt锛氱郴缁熸秷鎭� /// </summary> public string pushType; /// <summary> + /// 娑堟伅涓婚 + /// </summary> + public string messageTitle; + /// <summary> + /// 娑堟伅鍐呭 + /// </summary> + public string messageContent; + ///// <summary> + ///// 鎵╁睍鏁版嵁 + ///// </summary> + //public string messageExpand; + ///// <summary> + ///// 娑堟伅绫诲瀷锛�0锛氭彁绀猴紱1锛氭姤璀︼紱2锛氫赴鏋楀彲鏄璁插懠鍙紱3锛氬己鍒朵笅绾挎帹閫� + ///// </summary> + //public string messageType; + /// <summary> + /// 鏄惁宸茶 + /// </summary> + public bool isRead; + /// <summary> /// 鎺ㄩ�佹椂闂� /// </summary> - public string createTime; - + public long createTime; } } -- Gitblit v1.8.0