296 lines
11 KiB
Lua
296 lines
11 KiB
Lua
--[[
|
||
* @ClassName OperatingPanel
|
||
* @Description 运营活动
|
||
* @Date 2019/5/25 14:16
|
||
* @Author MagicianJoker, fengliudianshao@outlook.com
|
||
* @Copyright Copyright (c) 2019, MagicianJoker
|
||
--]]
|
||
--礼包>月卡>成长礼金>连续充值>签到>关注有礼>高级鸡精
|
||
local WeekMonthGiftPackPage = require("Modules/Operating/WeekMonthGiftPackPage")
|
||
local MonthCardPage = require("Modules/Operating/MonthCardPage")
|
||
local GrowthGiftPage = require("Modules/Operating/GrowthGiftPage")
|
||
local ContinuityRechargePage = require("Modules/Operating/ContinuityRechargePage") --积天豪礼
|
||
local CumulativeSignIn = require("Modules/Operating/CumulativeSignInPage") --累计签到
|
||
local AttentionGiftPage = require("Modules/Operating/AttentionGiftPage") --关注有礼
|
||
local UpperMonthCard = require("Modules/Operating/UppperMonthCard")--月基金
|
||
|
||
---@class OperatingPanel
|
||
local OperatingPanel = quick_class("OperatingPanel", BasePanel)
|
||
|
||
local kMaxTab = 11
|
||
|
||
--显示类型 type 面板类型 body 显示页签索引
|
||
local ShowType={
|
||
Welfare={type=1,body={1,2,5,6}},--福利
|
||
MonthFund={type=2,body={7,8}} --超值基金
|
||
}
|
||
local TabToContent = {
|
||
[1] = 1,
|
||
[2] = 2,
|
||
[3] = 3,
|
||
[4] = 4,
|
||
[5] = 5,
|
||
[6] = 5,
|
||
[7] = 7,
|
||
[8] = 7,
|
||
[9] = 6,
|
||
[10] = 5,
|
||
[11] = 5,
|
||
[12] = 5,
|
||
}
|
||
|
||
local TabImageConfig = {
|
||
[1] = {normal = "r_meiriqiandao_anniu_01_zh", select = "r_meiriqiandao_anniu_zh"},
|
||
[2] = {normal = "c_chengzhang_yueka002_zh", select = "c_chengzhang_yueka001_zh"},
|
||
[3] = {normal = "c_czjj_icon2_zh", select = "c_czjj_icon1_zh"},
|
||
[4] = {normal = "r_jitianhaoli_anniu_01_zh", select = "r_jitianhaoli_anniu_zh"},
|
||
[5] = {normal = "m_meizhoulibao_icon2_zh", select = "m_meizhoulibao_icon1_zh"},
|
||
[6] = {normal = "m_meiyuelibao_icon2_zh", select = "m_meiyuelibao_icon1_zh"},
|
||
[7] = {normal = "y_yjj_128yjj001_zh", select = "y_yjj_128yjj002_zh"},
|
||
[8] = {normal = "y_yjj_328yjj002_zh", select = "y_yjj_328yjj001_zh"},
|
||
[9] = {normal = "r_guanzhuyouli_anniu_01_zh", select = "r_guanzhuyouli_anniu_zh"},
|
||
[10] = {normal = "z_zhenqibaoge_anniu_02_zh", select = "z_zhenqibaoge_anniu_01_zh"},
|
||
[11] = {normal = "s_shengxingyouli_anniu_02_zh", select = "s_shengxingyouli_anniu_01_zh"},
|
||
[12] = {normal = "r_huodong_leijichengzhianniu_01_zh", select = "r_huodong_leijichengzhianniu_zh"},
|
||
}
|
||
|
||
local kMaxTab = #TabToContent
|
||
|
||
function OperatingPanel:InitComponent()
|
||
self.btnBack = Util.GetGameObject(self.transform, "bg/btnBack")
|
||
|
||
self.tabsContent = Util.GetGameObject(self.transform, "bg/tabList/viewPort/tabsContent"):GetComponent("RectTransform")
|
||
self.operateTabs = {}
|
||
self.selectTabs = {}
|
||
for i = 1, kMaxTab do
|
||
self.operateTabs[i] = Util.GetGameObject(self.tabsContent.transform, "tabs_" .. i)
|
||
self.operateTabs[i]:GetComponent("Image").sprite = Util.LoadSprite(TabImageConfig[i].normal)
|
||
self.selectTabs[i] = Util.GetGameObject(self.operateTabs[i], "selected")
|
||
self.selectTabs[i]:GetComponent("Image").sprite = Util.LoadSprite(TabImageConfig[i].select)
|
||
end
|
||
self.selectTabIndex = -1
|
||
self.operatingContents = {
|
||
[1] = CumulativeSignIn.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_1")),
|
||
[2] = MonthCardPage.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_2")),
|
||
[3] = GrowthGiftPage.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_3")),
|
||
[4] = ContinuityRechargePage.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_4")),
|
||
[5] = WeekMonthGiftPackPage.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_5")),
|
||
[6] = AttentionGiftPage.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_6")),
|
||
[7] = UpperMonthCard:New(self, Util.GetGameObject(self.transform, "bg/pageContent/page_7")),
|
||
}
|
||
table.walk(self.operatingContents, function(content)
|
||
content:OnHide()
|
||
end)
|
||
|
||
BindRedPointObject(RedPointType.CumulativeSignIn, Util.GetGameObject(self.operateTabs[1], "redPoint"))
|
||
BindRedPointObject(RedPointType.WeekGiftPage, Util.GetGameObject(self.operateTabs[5], "redPoint"))
|
||
BindRedPointObject(RedPointType.MonthGiftPage, Util.GetGameObject(self.operateTabs[6], "redPoint"))
|
||
BindRedPointObject(RedPointType.MonthCard, Util.GetGameObject(self.operateTabs[2], "redPoint"))
|
||
BindRedPointObject(RedPointType.GrowthGift, Util.GetGameObject(self.operateTabs[3], "redPoint"))
|
||
-- BindRedPointObject(RedPointType.ContinuityRecharge, Util.GetGameObject(self.operateTabs[4], "redPoint"))
|
||
|
||
-- 上部货币显示
|
||
self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.transform, { showType = UpViewOpenType.ShowLeft })
|
||
end
|
||
|
||
function OperatingPanel:BindEvent()
|
||
Util.AddClick(self.btnBack, function()
|
||
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
|
||
self:ClosePanel()
|
||
--UIManager.OpenPanel(UIName.MainPanel)
|
||
end)
|
||
|
||
for i = 1, kMaxTab do
|
||
Util.AddClick(self.operateTabs[i], function()
|
||
self:OnTabClicked(i)
|
||
end)
|
||
end
|
||
end
|
||
|
||
function OperatingPanel:OnOpen(data)
|
||
for i = 1, #self.operatingContents do
|
||
self.operatingContents[i]:OnHide()
|
||
end
|
||
data = data and data or {}
|
||
self.selectTabIndex = data.tabIndex and data.tabIndex or self:GetPriorityIndex()
|
||
self.extraParam = data.extraParam
|
||
self.showType= data.showType or 1
|
||
self.tabsContent.anchoredPosition = Vector2(0, 0)
|
||
self:RefreshTabStatus()
|
||
end
|
||
|
||
function OperatingPanel:OnShow()
|
||
SoundManager.PlayMusic(SoundConfig.BGM_Main)
|
||
self:OnTabChanged(self.selectTabIndex)
|
||
|
||
end
|
||
function OperatingPanel:OnSortingOrderChange()
|
||
--特效穿透签到 和 礼包特殊处理
|
||
self.operatingContents[1]:OnSortingOrderChange( self.sortingOrder)
|
||
self.operatingContents[3]:OnSortingOrderChange( self.sortingOrder)
|
||
self.operatingContents[4]:OnSortingOrderChange( self.sortingOrder)
|
||
self.operatingContents[5]:OnSortingOrderChange( self.sortingOrder)
|
||
end
|
||
--添加事件监听(用于子类重写)
|
||
function OperatingPanel:AddListener()
|
||
Game.GlobalEvent:AddEvent(GameEvent.MonthCard.OnMonthCardUpdate, self.RefreshMonthCardData,self)
|
||
end
|
||
--移除事件监听(用于子类重写)
|
||
function OperatingPanel:RemoveListener()
|
||
Game.GlobalEvent:RemoveEvent(GameEvent.MonthCard.OnMonthCardUpdate, self.RefreshMonthCardData,self)
|
||
end
|
||
function OperatingPanel:RefreshMonthCardData()
|
||
if self.selectTabIndex == 2 then
|
||
self.operatingContents[2]:OnShow(self.sortingOrder,nil, self.selectTabIndex)
|
||
end
|
||
end
|
||
|
||
function OperatingPanel:OnClose()
|
||
if self.selectTabIndex ~= -1 then
|
||
local curContent = TabToContent[self.selectTabIndex]
|
||
if curContent then
|
||
self.operatingContents[curContent]:OnHide()
|
||
end
|
||
end
|
||
end
|
||
|
||
function OperatingPanel:OnDestroy()
|
||
SubUIManager.Close(self.UpView)
|
||
ClearRedPointObject(RedPointType.CumulativeSignIn)
|
||
ClearRedPointObject(RedPointType.GrowthGift)
|
||
ClearRedPointObject(RedPointType.MonthCard)
|
||
ClearRedPointObject(RedPointType.WeekGiftPage)
|
||
ClearRedPointObject(RedPointType.MonthGiftPage)
|
||
self.operatingContents[1]:OnDestroy()
|
||
self.operatingContents[5]:OnDestroy()
|
||
end
|
||
|
||
function OperatingPanel:OnTabClicked(index)
|
||
if index == 9 then --第9个是什么绑定手鸡
|
||
PopupTipPanel.ShowTip(Language[11386])
|
||
return
|
||
end
|
||
if self.selectTabIndex == index then
|
||
return
|
||
end
|
||
self:OnTabChanged(index)
|
||
end
|
||
|
||
function OperatingPanel:OnTabChanged(index)
|
||
for i, select in ipairs(self.selectTabs) do
|
||
select:SetActive(i == index)
|
||
end
|
||
self:ShowTabContent(index)
|
||
end
|
||
|
||
function OperatingPanel:ShowTabContent(index)
|
||
|
||
-- 货币界面
|
||
self.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.SoulCrystal })
|
||
|
||
local oldSelect
|
||
oldSelect, self.selectTabIndex = self.selectTabIndex, index
|
||
local oldContent, curContent = TabToContent[oldSelect], TabToContent[self.selectTabIndex]
|
||
|
||
if oldContent then
|
||
self.operatingContents[oldContent]:OnHide()
|
||
end
|
||
|
||
if index == 5 then
|
||
self.operatingContents[curContent]:OnShow(self.sortingOrder, 1)
|
||
return
|
||
elseif index == 6 then
|
||
self.operatingContents[curContent]:OnShow(self.sortingOrder, 2)
|
||
return
|
||
elseif index==10 then
|
||
self.operatingContents[curContent]:OnShow(self.sortingOrder)
|
||
self.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.TimelimitCall })
|
||
return
|
||
elseif index == 11 then
|
||
self.operatingContents[curContent]:OnShow(self.sortingOrder)
|
||
self.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.QianKunBox })
|
||
return
|
||
end
|
||
|
||
if self.extraParam then
|
||
self.operatingContents[curContent]:OnShow(self.sortingOrder, self.extraParam, self.selectTabIndex)
|
||
self.extraParam = nil
|
||
else
|
||
self.operatingContents[curContent]:OnShow(self.sortingOrder,nil, self.selectTabIndex)
|
||
end
|
||
end
|
||
|
||
--活动结束隐藏的按钮
|
||
function OperatingPanel:RefreshTabStatus()
|
||
for n = 1, #self.operateTabs do
|
||
self.operateTabs[n]:SetActive(false)
|
||
end
|
||
|
||
if self.showType==ShowType.Welfare.type then
|
||
for i = 1, #ShowType.Welfare.body do
|
||
self.operateTabs[ShowType.Welfare.body[i]]:SetActive(true)
|
||
end
|
||
--判断成长基金活动是否开启或结束(16是最后一档活动ActivityId)
|
||
local t2 = false
|
||
local GrowthRewardId = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.GrowthReward)
|
||
if GrowthRewardId then--是否开启
|
||
t2 = true
|
||
end
|
||
local hasGift = OperatingManager.HasGoodsByShowType(4)
|
||
if t2 and not hasGift then
|
||
t2 = false
|
||
end
|
||
if t2 and GrowthRewardId == 16 then--是否结束
|
||
local singleRewardData = ActivityGiftManager.GetActivityInfo(GrowthRewardId, 5324)
|
||
if not singleRewardData then
|
||
t2 = false
|
||
else
|
||
if singleRewardData.state == 1 then
|
||
t2 = false
|
||
end
|
||
end
|
||
end
|
||
|
||
self.operateTabs[3]:SetActive(t2)
|
||
self.operateTabs[4]:SetActive(false)
|
||
|
||
--
|
||
local isWeekGift = OperatingManager.HasGoodsByShowType(15)
|
||
local isMonthGift = OperatingManager.HasGoodsByShowType(16)
|
||
self.operateTabs[5]:SetActive(isWeekGift)
|
||
self.operateTabs[6]:SetActive(isMonthGift)
|
||
|
||
|
||
elseif self.showType==ShowType.MonthFund.type then
|
||
--- 7 跟 8 是活动开启
|
||
self.operateTabs[7]:SetActive(OperatingManager.IsBaseOpen(GoodsTypeDef.MONTHCARD_128))--, SALARY_TYPE.BASE_128
|
||
self.operateTabs[8]:SetActive(OperatingManager.IsBaseOpen(GoodsTypeDef.MONTHCARD_328))--, SALARY_TYPE.BASE_328
|
||
|
||
|
||
end
|
||
|
||
if not RECHARGEABLE then--(是否开启充值)
|
||
self.operateTabs[5]:SetActive(false)
|
||
self.operateTabs[2]:SetActive(false)
|
||
self.operateTabs[6]:SetActive(false)
|
||
self.operateTabs[3]:SetActive(false)
|
||
self.operateTabs[7]:SetActive(false)--, SALARY_TYPE.BASE_128
|
||
self.operateTabs[8]:SetActive(false)--, SALARY_TYPE.BASE_328
|
||
self.operateTabs[10]:SetActive(true)
|
||
self.operateTabs[11]:SetActive(true)
|
||
self.operateTabs[12]:SetActive(true)
|
||
end
|
||
end
|
||
|
||
function OperatingPanel:GetPriorityIndex()
|
||
local index = 1
|
||
for idx, operateItem in ipairs(self.operateTabs) do
|
||
if Util.GetGameObject(operateItem, "redPoint").activeSelf then
|
||
index = idx
|
||
break
|
||
end
|
||
end
|
||
return index
|
||
end
|
||
|
||
return OperatingPanel |