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