miduo_client/Assets/ManagedResources/~Lua/Modules/ContinuePackage/PremiumRebatePanel.lua

247 lines
10 KiB
Lua
Raw Normal View History

2021-12-16 11:45:02 +08:00
require("Base/BasePanel")
2021-12-16 18:41:30 +08:00
local PremiumRebatePanel = Inherit(BasePanel)
local this = PremiumRebatePanel
2021-12-16 11:45:02 +08:00
local rechargeConfig = ConfigManager.GetConfig(ConfigName.RechargeCommodityConfig)
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
local artResourcesConfig = ConfigManager.GetConfig(ConfigName.ArtResourcesConfig)
2021-12-16 18:41:30 +08:00
local activityRewardConfig = ConfigManager.GetConfig(ConfigName.ActivityRewardConfig)
local TabBox = require("Modules/Common/TabBox")
2021-12-16 11:45:02 +08:00
local BTNS = {
[1] = {bg1 = "b_baibao_andi",bg2 = "b_baibao_liangdi",text1 = "c_czfl_6yuan",text2 = "c_czfl_6yuan2",showType = 48,actType = ActivityTypeDef.chaozhifanli,goodsType = GoodsTypeDef.chaozhifanli,redpoint= RedPointType.chaozhifanli6,price = 6},
[2] = {bg1 = "b_baibao_andi",bg2 = "b_baibao_liangdi",text1 = "c_czfl_18yuan",text2 = "c_czfl_18yuan",showType = 49,actType = ActivityTypeDef.chaozhifanli30,goodsType = GoodsTypeDef.chaozhifanli,redpoint= RedPointType.chaozhifanli30,price = 18},
2021-12-16 11:45:02 +08:00
}
2021-12-16 18:41:30 +08:00
local curPage = 1
local redList = {}
local gridPar
2021-12-16 18:41:30 +08:00
function PremiumRebatePanel:InitComponent()
2021-12-17 16:41:08 +08:00
this.spLoader = SpriteLoader.New()
this.backBtn = Util.GetGameObject(self.gameObject, "closeBtn")
this.itemPre = Util.GetGameObject(self.gameObject, "Bg/ItemPre")
this.scrollItem = Util.GetGameObject(self.gameObject, "Bg/scroll")
this.leftTime = Util.GetGameObject(self.gameObject, "Bg/time/leftTime"):GetComponent("Text")
this.tabbox = Util.GetGameObject(self.gameObject, "Bg/tabbox")
Util.GetGameObject(self.gameObject, "Bg/NameBg/Image"):GetComponent("Text").text="超值连充"
this.jiantou=Util.GetGameObject(self.gameObject, "Bg/jiantou")
2021-12-17 16:41:08 +08:00
local rootHight = this.scrollItem.transform.rect.height
local width = this.scrollItem.transform.rect.width
this.scrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, this.scrollItem.transform,
this.itemPre, nil, Vector2.New(width, rootHight), 1, 1, Vector2.New(0, 15))
this.scrollView.moveTween.MomentumAmount = 1
this.scrollView.moveTween.Strength = 2
this.scrollView.elastic = false
this.itemViewList = {}
grid=Util.GetGameObject(self.gameObject, "Bg/scroll/ScrollCycleView/grid"):GetComponent("RectTransform")
2021-12-17 16:41:08 +08:00
this.sortingOrder = 0
2021-12-16 11:45:02 +08:00
end
--绑定事件(用于子类重写)
2021-12-16 18:41:30 +08:00
function PremiumRebatePanel:BindEvent()
2021-12-17 16:41:08 +08:00
Util.AddOnceClick(this.backBtn, function()
this:ClosePanel()
2021-12-16 18:41:30 +08:00
end)
-- 初始化Tab管理器
2021-12-17 16:41:08 +08:00
this.PageTabCtrl = TabBox.New()
this.PageTabCtrl:SetTabAdapter(this.PageTabAdapter)
this.PageTabCtrl:SetTabIsLockCheck(this.PageTabIsLockCheck)
this.PageTabCtrl:SetChangeTabCallBack(this.OnPageTabChange)
2021-12-16 18:41:30 +08:00
end
2021-12-17 16:41:08 +08:00
function this.PageTabAdapter(tab, index, status)
2021-12-16 18:41:30 +08:00
local select = Util.GetGameObject(tab, "select")
2021-12-17 16:41:08 +08:00
local title = Util.GetGameObject(tab, "title"):GetComponent("Image")
local red = Util.GetGameObject(tab, "red")
2021-12-16 18:41:30 +08:00
if status == "select" then
select.gameObject:SetActive(true)
2021-12-17 16:41:08 +08:00
title.sprite = this.spLoader:LoadSprite(BTNS[index].text1)
2021-12-16 18:41:30 +08:00
else
select.gameObject:SetActive(false)
2021-12-17 16:41:08 +08:00
title.sprite = this.spLoader:LoadSprite(BTNS[index].text2)
2021-12-16 11:45:02 +08:00
end
BindRedPointObject(BTNS[index].redpoint,red)
redList[BTNS[index].redpoint] = red
2021-12-16 18:41:30 +08:00
end
2021-12-17 16:41:08 +08:00
function this.PageTabIsLockCheck()
return false
2021-12-16 18:41:30 +08:00
end
2021-12-17 16:41:08 +08:00
function this.OnPageTabChange(index)
2021-12-16 18:41:30 +08:00
if curPage == index then
return
2021-12-16 11:45:02 +08:00
end
2021-12-16 18:41:30 +08:00
curPage = index
this:Refresh(false,false)
2021-12-16 11:45:02 +08:00
end
2021-12-16 18:41:30 +08:00
2021-12-16 11:45:02 +08:00
--添加事件监听(用于子类重写)
2021-12-16 18:41:30 +08:00
function PremiumRebatePanel:AddListener()
2021-12-17 16:41:08 +08:00
Game.GlobalEvent:AddEvent(GameEvent.Activity.OnActivityProgressStateChange,this.OnShow,self)
2021-12-16 11:45:02 +08:00
end
--移除事件监听(用于子类重写)
2021-12-16 18:41:30 +08:00
function PremiumRebatePanel:RemoveListener()
2021-12-17 16:41:08 +08:00
Game.GlobalEvent:RemoveEvent(GameEvent.Activity.OnActivityProgressStateChange,this.OnShow,self)
2021-12-16 11:45:02 +08:00
end
2021-12-16 18:41:30 +08:00
function PremiumRebatePanel:OnSortingOrderChange()
2021-12-16 11:45:02 +08:00
end
2021-12-16 18:41:30 +08:00
2021-12-16 11:45:02 +08:00
--界面打开时调用(用于子类重写)
2021-12-16 18:41:30 +08:00
function PremiumRebatePanel:OnOpen()
2021-12-17 16:41:08 +08:00
curPage = 1
2021-12-16 11:45:02 +08:00
end
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
2021-12-16 18:41:30 +08:00
function PremiumRebatePanel:OnShow()
2021-12-17 16:41:08 +08:00
this:Refresh(true,true)
FixedUpdateBeat:Add(this.OnUpdate,self)
2021-12-17 16:41:08 +08:00
this.PageTabCtrl:Init(this.tabbox.gameObject, BTNS,curPage)
2021-12-16 11:45:02 +08:00
end
2021-12-16 18:41:30 +08:00
function PremiumRebatePanel:Refresh(isTop,isAni)
2021-12-17 16:41:08 +08:00
--value 累计充值天数 昨天
this.actData = ActivityGiftManager.GetActivityTypeInfo(BTNS[curPage].actType)
2022-02-11 15:09:32 +08:00
table.sort(this.actData.mission,function(a,b)
return a.missionId < b.missionId
end)
--this.giftData = DynamicActivityManager.GetGiftDataByType({{DataType.Direct,BTNS[curPage].goodsType,BTNS[curPage].showType}})
2021-12-17 16:41:08 +08:00
this.actConfigData = ConfigManager.GetAllConfigsDataByKey(ConfigName.ActivityRewardConfig,"ActivityId",this.actData.activityId)
local missionConfig = ConfigManager.GetConfigDataByDoubleKey(ConfigName.ActivityRewardConfig,"ActivityId",this.actData.activityId,"Sort",this.actData.value + 1)
local missionData = ActivityGiftManager.GetActivityInfo(this.actData.activityId,missionConfig.Id)
if missionData.state == 1 or
(missionData.state == 0 and missionData.progress >= activityRewardConfig[missionConfig.Id].Values[1][1]) then
2022-02-11 15:57:58 +08:00
this.leftTime.text = string.format("每日仅需充值%s 累计天数:%s/15",MoneyUtil.GetMoneyUnitNameWithMoney(BTNS[curPage].price),this.actData.value + 1)
2021-12-17 16:41:08 +08:00
else
2022-02-11 15:57:58 +08:00
this.leftTime.text = string.format("每日仅需充值%s 累计天数:%s/15",MoneyUtil.GetMoneyUnitNameWithMoney(BTNS[curPage].price),this.actData.value)
2021-12-17 13:29:08 +08:00
end
2021-12-17 16:41:08 +08:00
this:SetRewardShow(isTop,isAni)
this:SetTime()
2021-12-16 11:45:02 +08:00
end
function this.OnUpdate()
if gridPar~=nil then
if gridPar.localPosition and gridPar.localPosition.y>2140 then
this.jiantou:SetActive(false)
else
this.jiantou:SetActive(true)
end
end
end
2021-12-16 18:41:30 +08:00
function PremiumRebatePanel:SetRewardShow(isTop,isAni)
2021-12-16 11:45:02 +08:00
-- 显示
this.scrollView:SetData(this.actData.mission, function (index, item)
this:ShowSingleHero(item, this.actData.mission[index],index)
2021-12-16 11:45:02 +08:00
end,not isTop,not isAni)
2022-02-11 15:09:32 +08:00
local index = this.actData.value + 1
for i = 1,#this.actData.mission do
if this.actData.mission[i].state == 0 and this.actData.mission[i].progress >= activityRewardConfig[this.actData.mission[i].missionId].Values[1][1] then
index = i
break
end
end
this.scrollView:SetIndex(index)
2021-12-16 11:45:02 +08:00
end
2021-12-16 18:41:30 +08:00
function PremiumRebatePanel:ShowSingleHero(go,_data,index)
local title = Util.GetGameObject(go, "title"):GetComponent("Text")
2021-12-16 11:45:02 +08:00
local grid = Util.GetGameObject(go, "Grid")
local btnGet = Util.GetGameObject(go, "btnGet")
local btnText = Util.GetGameObject(go, "btnGet/Text"):GetComponent("Text")
2022-02-11 15:09:32 +08:00
local btnProgressText = Util.GetGameObject(go, "btnGet/progress"):GetComponent("Text")
2021-12-16 11:45:02 +08:00
local btnImg = Util.GetGameObject(go, "btnGet"):GetComponent("Image")
local red = Util.GetGameObject(btnImg.gameObject, "red")
local missionConfigData = activityRewardConfig[_data.missionId]
if missionConfigData then
2021-12-30 15:05:21 +08:00
go.gameObject:SetActive(true)
else
go.gameObject:SetActive(false)
return
end
2022-02-11 15:09:32 +08:00
btnProgressText.text = string.format("%s/%s",_data.progress,missionConfigData.Values[1][1])
btnProgressText.gameObject:SetActive(true)
2021-12-16 18:41:30 +08:00
title.text = missionConfigData.ContentsShow
2021-12-17 16:41:08 +08:00
if not this.itemViewList[go] then
this.itemViewList[go] = {}
2021-12-16 11:45:02 +08:00
end
2021-12-17 16:41:08 +08:00
for k,v in ipairs(this.itemViewList[go]) do
2021-12-16 11:45:02 +08:00
v.gameObject:SetActive(false)
end
for i = 1, #missionConfigData.Reward do
2021-12-17 16:41:08 +08:00
if not this.itemViewList[go][i] then
this.itemViewList[go][i] = SubUIManager.Open(SubUIConfig.ItemView,grid.transform)
this.itemViewList[go][i].gameObject:SetActive(false)
2021-12-16 11:45:02 +08:00
end
this.itemViewList[go][i]:OnOpen(false, {missionConfigData.Reward[i][1],missionConfigData.Reward[i][2],missionConfigData.Reward[i][3]}, 0.65,false,false,false,this.sortingOrder)
2021-12-17 16:41:08 +08:00
this.itemViewList[go][i].gameObject:SetActive(true)
2021-12-16 11:45:02 +08:00
end
2021-12-16 18:41:30 +08:00
btnText.gameObject:SetActive(true)
red.gameObject:SetActive(false)
btnImg.sprite = this.spLoader:LoadSprite("s_slbz_1anniuhuangse")
btnText.text = "前往"--_data.data.price
2022-02-11 15:09:32 +08:00
if _data.state == 0 and index <= this.actData.value + 1 then
2021-12-17 11:22:54 +08:00
Util.SetGray(btnGet,false)
if _data.progress >= missionConfigData.Values[1][1] then
2022-02-11 15:09:32 +08:00
btnText.text = "领取"--_data.data.price
red.gameObject:SetActive(true)
btnImg.sprite = this.spLoader:LoadSprite("s_slbz_1anniuongse")
Util.AddOnceClick(btnGet,function ()
-- PayManager.Pay(_data.data.shopData.goodsId, function(id)
-- FirstRechargeManager.RefreshAccumRechargeValue(_data.data.shopData.goodsId)
-- OperatingManager.SetHadBuyGoodsId({_data.data.shopData.goodsId})
-- ActivityGiftManager.SetActivityInfo(this.actData.activityId, _data.missionId, 1)
-- _data.state = 1
-- self:ShowSingleHero(go,_data,index)
-- end)
NetManager.GetActivityRewardRequest(_data.missionId, this.actData.activityId, function(_drop)
ActivityGiftManager.SetActivityInfo(this.actData.activityId, _data.missionId, 1)
_data.state = 1
self:ShowSingleHero(go,_data,index)
CheckRedPointStatus(BTNS[curPage].redpoint)
UIManager.OpenPanel(UIName.RewardItemPopup, _drop, 1,function()
end)
end)
2021-12-16 18:41:30 +08:00
end)
else
Util.AddOnceClick(btnGet,function ()
JumpManager.GoJump(36008)
end)
end
elseif _data.state == 1 then
Util.SetGray(btnGet,true)
btnText.text = "已领取"
2022-02-11 15:09:32 +08:00
btnProgressText.gameObject:SetActive(false)
2021-12-17 17:19:30 +08:00
Util.AddOnceClick(btnGet,function ()
end)
2021-12-16 18:41:30 +08:00
else
Util.SetGray(btnGet,true)
2021-12-17 16:41:08 +08:00
Util.AddOnceClick(btnGet,function ()
2021-12-17 17:48:26 +08:00
PopupTipPanel.ShowTip(string.format("累计充值超值返利%s天时可领取",index))
2021-12-17 16:41:08 +08:00
end)
2021-12-16 18:41:30 +08:00
end
2021-12-16 11:45:02 +08:00
end
2021-12-16 18:41:30 +08:00
function PremiumRebatePanel:SetTime()
2021-12-16 11:45:02 +08:00
end
2021-12-16 18:41:30 +08:00
function PremiumRebatePanel:OnClose()
--FixedUpdateBeat:Remove(this.OnUpdate,self)
2021-12-16 11:45:02 +08:00
end
--界面销毁时调用(用于子类重写)
2021-12-16 18:41:30 +08:00
function PremiumRebatePanel:OnDestroy()
2021-12-17 16:41:08 +08:00
this.spLoader:Destroy()
FixedUpdateBeat:Remove(this.OnUpdate,self)
2021-12-17 16:41:08 +08:00
this.itemViewList = {}
for k,v in pairs(redList) do
ClearRedPointObject(k,v)
end
redList = {}
2021-12-16 11:45:02 +08:00
end
2021-12-16 18:41:30 +08:00
return PremiumRebatePanel