169 lines
5.6 KiB
Lua
169 lines
5.6 KiB
Lua
require("Base/BasePanel")
|
|
CardActivityPanel = Inherit(BasePanel)
|
|
local this = CardActivityPanel
|
|
local _CurPageIndex = 1
|
|
local TabBox = require("Modules/Common/TabBox")
|
|
local tabs = {
|
|
[1] = {
|
|
default = "X1_zhutihuodong_yingxiongjiadao_02",
|
|
select = "X1_zhutihuodong_yingxiongjiadao_01",
|
|
rpType = RedPointType.CardActivity_Draw,
|
|
panelType = PanelType.CardActivity,
|
|
UpViewConfigId = 4,
|
|
ActType = ActivityTypeDef.CardActivity_Draw
|
|
},
|
|
[2] = {
|
|
default = "X1_zhutihuodong_shenmizhiling_02",
|
|
select = "X1_zhutihuodong_shenmizhiling_01",
|
|
rpType = RedPointType.CardActivity_Task,
|
|
panelType = PanelType.CardActivity,
|
|
UpViewConfigId = 5,
|
|
ActType = ActivityTypeDef.CardActivity_Task
|
|
},
|
|
[3] = {
|
|
default = "X1_zhutihuodong_yingxionglibao_02",
|
|
select = "X1_zhutihuodong_yingxionglibao_01",
|
|
rpType = -1,
|
|
panelType = PanelType.CardActivity,
|
|
UpViewConfigId = 6,
|
|
ActType = ActivityTypeDef.CardActivity_Gift
|
|
},
|
|
[4] = {
|
|
default = "X1_zhutihuodong_yingxionghaoli_02",
|
|
select = "X1_zhutihuodong_yingxionghaoli_01",
|
|
rpType = RedPointType.CardActivity_Haoli,
|
|
panelType = PanelType.CardActivity,
|
|
UpViewConfigId = 7,
|
|
ActType = ActivityTypeDef.CardActivity_Haoli
|
|
},
|
|
--[[
|
|
[5] = {
|
|
default = "X1_zhutihuodong_yingxiongshouji_02",
|
|
select = "X1_zhutihuodong_yingxiongshouji_01",
|
|
rpType = RedPointType.CardActivity_Collect,
|
|
panelType = PanelType.CardActivity,
|
|
UpViewConfigId = 8,
|
|
ActType = ActivityTypeDef.CardActivity_Collect
|
|
},
|
|
]]
|
|
}
|
|
|
|
this.contents = {
|
|
[1] = {view = require("Modules/CardActivity/DrawCardPanel"), panelName = "page_1"},
|
|
[2] = {view = require("Modules/CardActivity/TaskPanel"), panelName = "page_2"},
|
|
[3] = {view = require("Modules/CardActivity/GiftPanel"), panelName = "page_3"},
|
|
[4] = {view = require("Modules/CardActivity/WishPanel"), panelName = "page_4"},
|
|
[5] = {view = require("Modules/CardActivity/CollectPanel"), panelName = "page_5"},
|
|
}
|
|
--初始化组件(用于子类重写)
|
|
function CardActivityPanel:InitComponent()
|
|
this.close = Util.GetGameObject(self.gameObject,"btnBack")
|
|
this.tabbox = Util.GetGameObject(self.gameObject, "tabbox")
|
|
|
|
this.PageTabCtrl = TabBox.New()
|
|
this.PageTabCtrl:SetTabAdapter(this.PageTabAdapter)
|
|
this.PageTabCtrl:SetTabIsLockCheck(this.PageTabIsLockCheck)
|
|
this.PageTabCtrl:SetChangeTabCallBack(this.OnPageTabChange)
|
|
|
|
this.prefabs = {}
|
|
|
|
for i = 1, #this.contents do
|
|
this.prefabs[i] = Util.GetGameObject(self.gameObject,this.contents[i].panelName)
|
|
this.contents[i].view:InitComponent(Util.GetGameObject(self.gameObject, this.contents[i].panelName))
|
|
end
|
|
|
|
this.PlayerHeadFrameView = SubUIManager.Open(SubUIConfig.PlayerHeadFrameView, self.gameObject.transform)
|
|
this.UpView = SubUIManager.Open(SubUIConfig.UpView, self.transform)
|
|
end
|
|
|
|
-- tab按钮自定义显示设置
|
|
function this.PageTabAdapter(tab, index, status)
|
|
local img = Util.GetGameObject(tab, "icon"):GetComponent("Image")
|
|
local selected = Util.GetGameObject(tab, "selected")
|
|
|
|
img.sprite = Util.LoadSprite(GetPictureFont(tabs[index].default))
|
|
Util.GetGameObject(selected, "icon"):GetComponent("Image").sprite = Util.LoadSprite(GetPictureFont(tabs[index].select))
|
|
selected:SetActive(status == "select")
|
|
end
|
|
|
|
-- tab可用性检测
|
|
function this.PageTabIsLockCheck(index)
|
|
return false
|
|
end
|
|
|
|
-- tab改变事件
|
|
function this.OnPageTabChange(index)
|
|
_CurPageIndex = index
|
|
|
|
for i = 1, #this.prefabs do
|
|
this.prefabs[i].gameObject:SetActive(i == index)--切换子模块预设显隐
|
|
end
|
|
this.contents[index].view:OnShow(this.sortingOrder,this)
|
|
this.UpView:OnOpen({ showType = UpViewOpenType.ShowRight, UpViewConfigId = tabs[index].UpViewConfigId })
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function CardActivityPanel:BindEvent()
|
|
Util.AddClick(this.close,function ()
|
|
self:ClosePanel()
|
|
end)
|
|
for i = 1, #this.contents do
|
|
this.contents[i].view:BindEvent()
|
|
end
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function CardActivityPanel:AddListener()
|
|
for i = 1, #this.contents do
|
|
this.contents[i].view:AddListener()
|
|
end
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function CardActivityPanel:RemoveListener()
|
|
for i = 1, #this.contents do
|
|
this.contents[i].view:RemoveListener()
|
|
end
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function CardActivityPanel:OnOpen(index)
|
|
_CurPageIndex = index and index or 1
|
|
|
|
this.PageTabCtrl:Init(this.tabbox, tabs,_CurPageIndex)
|
|
|
|
for i = 1, #tabs do
|
|
local go = Util.GetGameObject(this.tabbox, "box").transform:GetChild(i - 1).gameObject
|
|
BindRedPointObject(tabs[i].rpType, Util.GetGameObject(go, "redPoint"))
|
|
end
|
|
end
|
|
|
|
function CardActivityPanel:OnShow()
|
|
for i = 1, #tabs do
|
|
CheckRedPointStatus(tabs[i].rpType)
|
|
end
|
|
this.PageTabCtrl:ChangeTab(_CurPageIndex)
|
|
this.contents[_CurPageIndex].view:OnShow()
|
|
this.PlayerHeadFrameView:OnShow(true)
|
|
end
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
function CardActivityPanel:OnClose()
|
|
for i = 1, #this.contents do
|
|
this.contents[i].view:OnClose()
|
|
end
|
|
end
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
function CardActivityPanel:OnDestroy()
|
|
SubUIManager.Close(this.PlayerHeadFrameView)
|
|
SubUIManager.Close(this.UpView)
|
|
for i = 1, #this.contents do
|
|
this.contents[i].view:OnDestroy()
|
|
end
|
|
for i = 1, #tabs do
|
|
ClearRedPointObject(tabs[i].rpType)
|
|
end
|
|
end
|
|
|
|
return CardActivityPanel |