MailListItemCtr.lua 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. local MailListItemCtr = {}
  2. local BitUtil = require("BitUtil")
  3. function MailListItemCtr:SetData(wnd, item, logicData, onClickOwner, onClickCB)
  4. item:SetActive(logicData ~= nil)
  5. if logicData == nil then
  6. return
  7. end
  8. local state = logicData.state
  9. local readState = BitUtil.ParseMailReadState(state) == 1
  10. local rewardState = BitUtil.ParseMailRewardState(state) == 1
  11. item.litter:SetActive(not readState)
  12. item.item:SetActive(not readState and not rewardState and #logicData.rewardList > 0)
  13. item.litterOpen:SetActive(readState)
  14. item.itemOpen:SetActive(readState and not rewardState and #logicData.rewardList > 0)
  15. item.readMark:SetActive(readState)
  16. local mailTitle = logicData.title
  17. local mailCfgData = ManagerContainer.CfgMgr:GetMailDataByCfgId(logicData.configId)
  18. if mailCfgData then
  19. mailTitle = I18N.T(mailCfgData.Title)
  20. end
  21. item.mailTtle.text.text = mailTitle
  22. if logicData.expireTime then
  23. local remainTime = ManagerContainer.LuaTimerMgr:GetRemainSecondsWithUInt64(logicData.expireTime)
  24. if remainTime > ManagerContainer.LuaTimerMgr:GetOneDaySeconds() then
  25. local time = DateTimeUtil.convertSeconds2TimeStr1(remainTime, true, true)
  26. item.timer.text.text = I18N.SetLanguageValue("MailBeginTime", time)
  27. else
  28. item.timer.text.text = I18N.T("MailOver")
  29. end
  30. end
  31. item.redPointNewItem:SetActive(not readState)
  32. if onClickOwner ~= nil and onClickCB ~= nil then
  33. wnd.uiBase:AddButtonUniqueEventListener(item.button, onClickOwner, onClickCB, item, logicData)
  34. end
  35. end
  36. return MailListItemCtr