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(); } }