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]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("Btn_hz_cheng_01") 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 this.scrollView:SetData(this.actData.mission, function (index, item) this:ShowSingleHero(item, this.actData.mission[index],index) end,false,false) 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