226 lines
8.3 KiB
Lua
226 lines
8.3 KiB
Lua
require("Base/BasePanel")
|
|
MainSingleInfoPanel = Inherit(BasePanel)
|
|
local mailData
|
|
local openPanel
|
|
local allGetMail={}
|
|
local goList = {}
|
|
local hasGot = false
|
|
local activeNum = 0
|
|
--item容器
|
|
local itemGoList = {}
|
|
--初始化组件(用于子类重写)
|
|
function MainSingleInfoPanel:InitComponent()
|
|
self.spLoader = SpriteLoader.New()
|
|
|
|
self.closeBtn = Util.GetGameObject(self.gameObject, "bg/btnBack")
|
|
self.mialHead = Util.GetGameObject(self.gameObject, "bg/mialHead"):GetComponent("Text")
|
|
self.mialTimeText = Util.GetGameObject(self.gameObject, "bg/mialTimeText"):GetComponent("Text")
|
|
self.mialInfoRoot = Util.GetGameObject(self.gameObject, "bg/mialInfo")
|
|
self.mialInfo = Util.GetGameObject(self.gameObject, "bg/mialInfo/mialInfoText"):GetComponent("Text")
|
|
self.itemPre=Util.GetGameObject(self.gameObject, "itemPre")
|
|
self.grid=Util.GetGameObject(self.gameObject, "bg/scroll/grid")
|
|
self.btnSure=Util.GetGameObject(self.gameObject, "bg/btnSure")
|
|
self.btnDel = Util.GetGameObject(self.gameObject, "bg/btnDel")
|
|
self.root = Util.GetGameObject(self.gameObject, "bg/newScroll")
|
|
self.line = Util.GetGameObject(self.gameObject, "bg/line")
|
|
local v21 = Util.GetGameObject(self.gameObject, "bg/newScroll"):GetComponent("RectTransform").rect
|
|
self.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, Util.GetGameObject(self.gameObject, "bg/newScroll").transform,
|
|
self.itemPre, nil, Vector2.New(v21.width, v21.height), 1, 5, Vector2.New(20,15))
|
|
self.ScrollView.moveTween.MomentumAmount = 1
|
|
self.ScrollView.moveTween.Strength = 1--height width -v21.x*2, -v21.y*2
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function MainSingleInfoPanel:BindEvent()
|
|
|
|
Util.AddClick(self.closeBtn, function()
|
|
self:ClosePanel()
|
|
end)
|
|
Util.AddClick(self.btnSure, function()
|
|
allGetMail={}
|
|
table.insert(allGetMail,mailData.mailId)
|
|
IndicationManager.getRewardFromMail=true
|
|
NetManager.GetSingleMailRewardData(allGetMail,function (_drop)
|
|
UIManager.OpenPanel(UIName.RewardItemPopup,_drop,1)
|
|
--如果不能领取,不改变按钮状态
|
|
if #_drop.itemlist > 0 or #_drop.equipId > 0 or #_drop.Hero > 0 or #_drop.soulEquip > 0 or #_drop.pokemon > 0 then
|
|
self:CallBackEvent()
|
|
end
|
|
self:OnShowMailData(mailData)
|
|
end)
|
|
|
|
end)
|
|
Util.AddClick(self.btnDel, function()
|
|
if mailData.state >= 1 and mailData.mailItem=="" then--已读取 未领取 无附件
|
|
NetManager.DelMailData({mailData.mailId},function ()
|
|
MailManager.DelSingleMial(mailData.mailId)
|
|
end)
|
|
elseif mailData.state >= 3 then--已领取
|
|
NetManager.DelMailData({mailData.mailId},function ()
|
|
MailManager.DelSingleMial(mailData.mailId)
|
|
end)
|
|
end
|
|
self.btnDel:SetActive(false)
|
|
openPanel.CallBackOnShow()
|
|
self:ClosePanel()
|
|
end)
|
|
end
|
|
function MainSingleInfoPanel:CallBackEvent()
|
|
if IndicationManager.canPopUpBagMaxMessage == false then
|
|
for i = 1, #allGetMail do
|
|
MailManager.UpdataMialIsReadState(allGetMail[i],3)
|
|
end
|
|
openPanel.UpdateMailData()
|
|
self.btnSure:SetActive(false)
|
|
self.btnDel:SetActive(true)
|
|
hasGot = true
|
|
|
|
for i = 1, activeNum do
|
|
if goList[i] then
|
|
Util.GetGameObject(goList[i], "Image"):SetActive(hasGot)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
--添加事件监听(用于子类重写)
|
|
function MainSingleInfoPanel:AddListener()
|
|
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function MainSingleInfoPanel:RemoveListener()
|
|
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function MainSingleInfoPanel:OnOpen(...)
|
|
|
|
local data={...}
|
|
mailData=data[1]
|
|
openPanel=data[2]
|
|
hasGot = mailData.state >= 3
|
|
|
|
end
|
|
function MainSingleInfoPanel:OnShow()
|
|
self:OnShowMailData(mailData)
|
|
end
|
|
|
|
local mailList={}
|
|
local mailmaxNum=500
|
|
local maildataCount=0--数据数量
|
|
--设置英雄列表数据
|
|
function MainSingleInfoPanel:OnShowMailData(mailData)
|
|
self.mialHead.text=mailData.head
|
|
self.mialTimeText.text=GetTimeStrBySeconds(mailData.effectiveTime+mailData.sendTime)..Language[11169]
|
|
self.mialInfo.text=string.gsub(mailData.content, "\\n", "\n")
|
|
Log("mailData.state "..mailData.state)
|
|
self.btnDel:SetActive(false)
|
|
if mailData.state==3 then
|
|
self.btnSure:SetActive(false)
|
|
self.btnDel:SetActive(true)
|
|
else
|
|
if mailData.mailItem=="" or mailData.mailItem==nil then
|
|
maildataCount=0
|
|
self.btnSure:SetActive(false)
|
|
self.btnDel:SetActive(true)
|
|
else
|
|
self.btnSure:SetActive(true)
|
|
end
|
|
end
|
|
Log("mailData.mailItem "..mailData.mailItem)
|
|
local itemList=string.split(mailData.mailItem,"|")
|
|
--maildataCount=#itemList
|
|
--
|
|
--Log("maildataCount "..maildataCount)
|
|
--local haveCount = LengthOfTable(mailList)--已经拥有预设的数量
|
|
--local needCreatCount = ( maildataCount>mailmaxNum and mailmaxNum ) or maildataCount--需要加载预设的数量;
|
|
--local trueCreatCount = needCreatCount - haveCount--实际应该加载预设的数量
|
|
--if trueCreatCount > 0 then
|
|
-- for i = 1, trueCreatCount do
|
|
-- local go = newObjToParent(self.itemPre, self.grid)
|
|
-- local view = SubUIManager.Open(SubUIConfig.ItemView, go.transform)
|
|
-- table.insert(mailList, view)
|
|
-- table.insert(goList, go)
|
|
-- Util.GetGameObject(go, "Image").transform:SetAsLastSibling()
|
|
-- end
|
|
--end
|
|
--haveCount=LengthOfTable(mailList)
|
|
--for i = 1, haveCount do
|
|
-- if i <= needCreatCount then
|
|
-- if itemList and itemList[i] ~= "" then
|
|
-- local rewardStr=string.split(itemList[i],"#")
|
|
-- local itemData={}
|
|
-- table.insert(itemData,tonumber(rewardStr[1]))
|
|
-- table.insert(itemData,tonumber(rewardStr[2]))
|
|
-- mailList[i]:OnOpen(false,itemData,1)--,false,false,false,self.sortingOrder
|
|
-- Util.GetGameObject(goList[i], "Image"):SetActive(hasGot)
|
|
-- activeNum = activeNum + 1
|
|
-- mailList[i].gameObject:SetActive(true)
|
|
-- else
|
|
-- mailList[i].gameObject:SetActive(false)
|
|
-- Util.GetGameObject(goList[i], "Image"):SetActive(false)
|
|
-- end
|
|
-- else
|
|
-- mailList[i].gameObject:SetActive(false)
|
|
-- Util.GetGameObject(goList[i], "Image"):SetActive(false)
|
|
-- end
|
|
--end
|
|
local rewardStr = {}
|
|
for i = 1, #itemList do
|
|
if itemList[i] ~= "" then
|
|
local singlerewardStr=string.split( itemList[i],"#")
|
|
local itemData={}
|
|
table.insert(itemData,tonumber(singlerewardStr[1]))
|
|
table.insert(itemData,tonumber(singlerewardStr[2]))
|
|
table.insert(rewardStr,itemData)
|
|
end
|
|
end
|
|
self.ScrollView:SetData(rewardStr, function (index, go)
|
|
self:SingleMailDataShow(go, rewardStr[index])
|
|
end)
|
|
|
|
-- 根据是否有附件动态修改邮件内容显示状态
|
|
if #rewardStr > 0 then
|
|
self.root:SetActive(true)
|
|
self.line:SetActive(true)
|
|
self.mialInfoRoot.transform.sizeDelta = Vector2.New(683, 439.7)
|
|
self.mialInfoRoot.transform.localPosition = Vector2.New(0, 181)
|
|
else
|
|
self.root:SetActive(false)
|
|
self.line:SetActive(false)
|
|
self.mialInfoRoot.transform.sizeDelta = Vector2.New(683, 743.98)
|
|
self.mialInfoRoot.transform.localPosition = Vector2.New(5.50, 29)
|
|
end
|
|
|
|
end
|
|
local _ItemList = {}
|
|
function MainSingleInfoPanel:SingleMailDataShow(go, rewardStr)
|
|
if not _ItemList[go] then
|
|
_ItemList[go] = SubUIManager.Open(SubUIConfig.ItemView, go.transform)
|
|
end
|
|
_ItemList[go]:OnOpen(false,rewardStr,1,false,false,false,self.sortingOrder)
|
|
local getImage = Util.GetGameObject(go, "Image")
|
|
if mailData.state == 3 then
|
|
getImage:SetActive(true)
|
|
getImage.transform:SetSiblingIndex(2)
|
|
else
|
|
getImage:SetActive(false)
|
|
end
|
|
end
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
function MainSingleInfoPanel:OnClose()
|
|
|
|
hasGot = false
|
|
activeNum = 0
|
|
end
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
function MainSingleInfoPanel:OnDestroy()
|
|
self.spLoader:Destroy()
|
|
_ItemList = {}
|
|
mailList = {}
|
|
goList = {}
|
|
end
|
|
|
|
return MainSingleInfoPanel |