254 lines
9.8 KiB
Lua
254 lines
9.8 KiB
Lua
require("Base/BasePanel")
|
||
local PremiumRebatePanel = Inherit(BasePanel)
|
||
local this = PremiumRebatePanel
|
||
local rechargeConfig = ConfigManager.GetConfig(ConfigName.RechargeCommodityConfig)
|
||
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
||
local artResourcesConfig = ConfigManager.GetConfig(ConfigName.ArtResourcesConfig)
|
||
local activityRewardConfig = ConfigManager.GetConfig(ConfigName.ActivityRewardConfig)
|
||
local TabBox = require("Modules/Common/TabBox")
|
||
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 = 111,goodsType = GoodsTypeDef.chaozhifanli,redpoint= RedPointType.chaozhifanli30,price = 12},
|
||
--[3] = {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 = 30},
|
||
}
|
||
local curPage = 1
|
||
local redList = {}
|
||
local gridPar
|
||
function PremiumRebatePanel:InitComponent()
|
||
this.spLoader = SpriteLoader.New()
|
||
this.backBtn = Util.GetGameObject(self.gameObject, "closeBtn")
|
||
this.btn_close = Util.GetGameObject(self.gameObject, "Bg/btn_close")
|
||
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")
|
||
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")
|
||
this.sortingOrder = 0
|
||
end
|
||
|
||
--绑定事件(用于子类重写)
|
||
function PremiumRebatePanel:BindEvent()
|
||
Util.AddOnceClick(this.backBtn, function()
|
||
this:ClosePanel()
|
||
end)
|
||
Util.AddOnceClick(this.btn_close, function()
|
||
this:ClosePanel()
|
||
end)
|
||
-- 初始化Tab管理器
|
||
this.PageTabCtrl = TabBox.New()
|
||
this.PageTabCtrl:SetTabAdapter(this.PageTabAdapter)
|
||
this.PageTabCtrl:SetTabIsLockCheck(this.PageTabIsLockCheck)
|
||
this.PageTabCtrl:SetChangeTabCallBack(this.OnPageTabChange)
|
||
end
|
||
|
||
function this.PageTabAdapter(tab, index, status)
|
||
local select = Util.GetGameObject(tab, "select")
|
||
local title = Util.GetGameObject(tab, "Text"):GetComponent("Text")
|
||
|
||
local red = Util.GetGameObject(tab, "red")
|
||
if status == "select" then
|
||
select.gameObject:SetActive(true)
|
||
title.text = BTNS[index].price.."元"
|
||
else
|
||
select.gameObject:SetActive(false)
|
||
title.text = BTNS[index].price.."元"
|
||
end
|
||
BindRedPointObject(BTNS[index].redpoint,red)
|
||
redList[BTNS[index].redpoint] = red
|
||
end
|
||
|
||
function this.PageTabIsLockCheck()
|
||
return false
|
||
end
|
||
|
||
function this.OnPageTabChange(index)
|
||
if curPage == index then
|
||
return
|
||
end
|
||
curPage = index
|
||
this:Refresh(false,false)
|
||
end
|
||
|
||
--添加事件监听(用于子类重写)
|
||
function PremiumRebatePanel:AddListener()
|
||
Game.GlobalEvent:AddEvent(GameEvent.Activity.OnActivityProgressStateChange,this.OnShow,self)
|
||
end
|
||
|
||
--移除事件监听(用于子类重写)
|
||
function PremiumRebatePanel:RemoveListener()
|
||
Game.GlobalEvent:RemoveEvent(GameEvent.Activity.OnActivityProgressStateChange,this.OnShow,self)
|
||
end
|
||
|
||
function PremiumRebatePanel:OnSortingOrderChange()
|
||
end
|
||
|
||
--界面打开时调用(用于子类重写)
|
||
function PremiumRebatePanel:OnOpen()
|
||
curPage = 1
|
||
end
|
||
|
||
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
|
||
function PremiumRebatePanel:OnShow()
|
||
this:Refresh(true,true)
|
||
|
||
FixedUpdateBeat:Add(this.OnUpdate,self)
|
||
this.PageTabCtrl:Init(this.tabbox.gameObject, BTNS,curPage)
|
||
end
|
||
local sorts={
|
||
[1]=0,
|
||
[0]=1,
|
||
[2]=2,
|
||
}
|
||
function PremiumRebatePanel:Refresh(isTop,isAni)
|
||
--value 累计充值天数 昨天 ,,
|
||
this.actData = ActivityGiftManager.GetActivityTypeInfo(BTNS[curPage].actType)
|
||
table.sort(this.actData.mission,function(a,b)
|
||
if a.state==b.state then
|
||
return a.missionId < b.missionId
|
||
else
|
||
return sorts[a.state]<sorts[b.state]
|
||
end
|
||
end)
|
||
LogError("this.actData.activityId=="..this.actData.activityId)
|
||
--this.giftData = DynamicActivityManager.GetGiftDataByType({{DataType.Direct,BTNS[curPage].goodsType,BTNS[curPage].showType}})
|
||
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)
|
||
this.leftTime.text = "每档位每日限购一次"
|
||
this:SetRewardShow(isTop,isAni)
|
||
this:SetTime()
|
||
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
|
||
|
||
function PremiumRebatePanel:SetRewardShow(isTop,isAni)
|
||
-- 显示
|
||
this.scrollView:SetData(this.actData.mission, function (index, item)
|
||
this:ShowSingleHero(item, this.actData.mission[index],index)
|
||
end,not isTop,not isAni)
|
||
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)
|
||
end
|
||
|
||
|
||
function PremiumRebatePanel:ShowSingleHero(go,_data,index)
|
||
local title = Util.GetGameObject(go, "title"):GetComponent("Text")
|
||
local grid = Util.GetGameObject(go, "Grid")
|
||
local btnGet = Util.GetGameObject(go, "btnGet")
|
||
local btnText = Util.GetGameObject(go, "btnGet/Text"):GetComponent("Text")
|
||
local btnProgressText = Util.GetGameObject(go, "btnGet/progress"):GetComponent("Text")
|
||
local btnImg = Util.GetGameObject(go, "btnGet"):GetComponent("Image")
|
||
local red = Util.GetGameObject(btnImg.gameObject, "red")
|
||
LogError("_data.missionId===".._data.missionId.." state==".._data.state)
|
||
local missionConfigData = activityRewardConfig[_data.missionId]
|
||
if missionConfigData then
|
||
go.gameObject:SetActive(true)
|
||
else
|
||
go.gameObject:SetActive(false)
|
||
return
|
||
end
|
||
--btnProgressText.text = string.format("%s/%s",_data.progress,missionConfigData.Values[1][1])
|
||
btnProgressText.gameObject:SetActive(false)
|
||
|
||
if not this.itemViewList[go] then
|
||
this.itemViewList[go] = {}
|
||
end
|
||
for k,v in ipairs(this.itemViewList[go]) do
|
||
v.gameObject:SetActive(false)
|
||
end
|
||
|
||
local recharge=ConfigManager.GetConfigData(ConfigName.RechargeCommodityConfig,missionConfigData.Values[1][1])
|
||
title.text = recharge.Name
|
||
if recharge then
|
||
for i = 1, #recharge.BaseReward do
|
||
local reward=recharge.BaseReward[i]
|
||
if not this.itemViewList[go][i] then
|
||
this.itemViewList[go][i] = SubUIManager.Open(SubUIConfig.ItemView,grid.transform)
|
||
this.itemViewList[go][i].gameObject:SetActive(false)
|
||
end
|
||
|
||
if tonumber(reward)~=0 and tonumber(reward[1])~=0 then
|
||
this.itemViewList[go][i]:OnOpen(false, {reward[1],reward[2],reward[3]}, 0.65,false,false,false,this.sortingOrder)
|
||
this.itemViewList[go][i].gameObject:SetActive(true)
|
||
end
|
||
end
|
||
end
|
||
|
||
|
||
btnText.gameObject:SetActive(true)
|
||
red.gameObject:SetActive(false)
|
||
btnImg.sprite = this.spLoader:LoadSprite("s_slbz_1anniuhuangse")
|
||
btnText.text = "前往"--_data.data.price
|
||
if _data.state == 0 then --不可购买
|
||
Util.SetGray(btnGet,true)
|
||
btnText.text = recharge.Price
|
||
btnText.text = recharge.Price.."元"
|
||
elseif _data.state == 1 then --可购买
|
||
Util.SetGray(btnGet,false)
|
||
btnText.text = recharge.Price.."元"
|
||
elseif _data.state==2 then --已购买
|
||
-- body
|
||
Util.SetGray(btnGet,false)
|
||
btnText.text = "已购买"
|
||
end
|
||
|
||
Util.AddOnceClick(btnGet,function ()
|
||
if _data.state==0 then
|
||
--PopupTipPanel.ShowTip("购买上一档礼包后可购买")
|
||
elseif _data.state==1 then
|
||
PayManager.Pay(recharge.Id, function(id)
|
||
_data.state = 2
|
||
self:ShowSingleHero(go,_data,index)
|
||
end)
|
||
elseif _data.state==2 then
|
||
PopupTipPanel.ShowTip("已购买")
|
||
end
|
||
end)
|
||
end
|
||
|
||
function PremiumRebatePanel:SetTime()
|
||
|
||
end
|
||
|
||
function PremiumRebatePanel:OnClose()
|
||
--FixedUpdateBeat:Remove(this.OnUpdate,self)
|
||
end
|
||
|
||
--界面销毁时调用(用于子类重写)
|
||
function PremiumRebatePanel:OnDestroy()
|
||
this.spLoader:Destroy()
|
||
FixedUpdateBeat:Remove(this.OnUpdate,self)
|
||
this.itemViewList = {}
|
||
for k,v in pairs(redList) do
|
||
ClearRedPointObject(k,v)
|
||
end
|
||
redList = {}
|
||
end
|
||
|
||
return PremiumRebatePanel |