miduo_client/Assets/ManagedResources/~Lua/Modules/Mail/MainSingleInfoPanel.lua

198 lines
7.2 KiB
Lua
Raw Normal View History

2020-08-25 15:46:38 +08:00
require("Base/BasePanel")
2020-05-09 13:31:21 +08:00
MainSingleInfoPanel = Inherit(BasePanel)
local mailData
local openPanel
local allGetMail={}
local goList = {}
local hasGot = false
local activeNum = 0
--item容器
local itemGoList = {}
--初始化组件(用于子类重写)
function MainSingleInfoPanel:InitComponent()
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.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")
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,function()
end)
self:CallBackEvent()
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
2020-06-23 18:36:24 +08:00
self.mialTimeText.text=GetTimeStrBySeconds(mailData.effectiveTime+mailData.sendTime)..Language[11151]
2020-05-09 13:31:21 +08:00
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)
end
2020-06-08 20:18:49 +08:00
local _ItemList = {}
2020-05-09 13:31:21 +08:00
function MainSingleInfoPanel:SingleMailDataShow(go, rewardStr)
2020-06-08 20:18:49 +08:00
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)
2020-05-09 13:31:21 +08:00
end
--界面关闭时调用(用于子类重写)
function MainSingleInfoPanel:OnClose()
hasGot = false
activeNum = 0
end
--界面销毁时调用(用于子类重写)
function MainSingleInfoPanel:OnDestroy()
2020-06-08 20:18:49 +08:00
_ItemList = {}
2020-05-09 13:31:21 +08:00
mailList = {}
goList = {}
end
2020-06-23 18:36:24 +08:00
return MainSingleInfoPanel