| using System; | 
| using UnityEngine; | 
| using UnityEngine.UI; | 
|   | 
| public class MailCell : CellView | 
| { | 
|     [SerializeField] Button btnMail; | 
|     [SerializeField] ImageEx imgMask; | 
|     [SerializeField] ImageEx imgRed; | 
|     [SerializeField] ImageEx imgHasAward; | 
|     [SerializeField] TextEx txtTitle; | 
|     [SerializeField] TextEx txtDate; | 
|     MailManager model { get { return MailManager.Instance; } } | 
|     string uuid = string.Empty; | 
|     public void Display(int index, CellView cellView) | 
|     { | 
|         MailCategory mailCategory = (MailCategory)cellView.info.Value.infoInt1; | 
|         var list = model.GetSortMailScrList(mailCategory); | 
|         if (list == null || index < 0 || index >= list.Count) | 
|             return; | 
|         uuid = list[index]; | 
|         if (!model.TryGetMailData(uuid, out var mailData) || mailData == null) | 
|             return; | 
|         //mailData.MailState 邮件状态: 0-未知;1-未读;2-已读;3-已领; | 
|         imgRed.SetActive(mailData.MailState == 1); | 
|         imgHasAward.SetActive(mailData.MailState != 3 && mailData.HasAward()); | 
|         imgMask.SetActive(mailData.MailState == 2 || mailData.MailState == 3); | 
|         if (mailData.IsTemplateMail() && MailConfig.HasKey(mailData.GetTemplateKey())) | 
|         { | 
|             txtTitle.text = MailConfig.Get(mailData.GetTemplateKey()).Title; | 
|         } | 
|         else | 
|         { | 
|             txtTitle.text = mailData.Title; | 
|         } | 
|   | 
|         txtDate.text = model.FormatMailExpiryDays(mailData.CreateDateTime, mailData.LimitDays); | 
|         btnMail.SetListener(OnClickButtonMail); | 
|     } | 
|   | 
|     private void OnClickButtonMail() | 
|     { | 
|         model.nowUuid = uuid; | 
|         if (!model.TryGetMailData(uuid, out var mailData) || mailData == null) | 
|             return; | 
|         if (mailData.MailState == 1) | 
|         { | 
|             model.ReadMail(uuid); | 
|         } | 
|         UIManager.Instance.OpenWindow<MailInfoWin>(); | 
|     } | 
| } |