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 = ActivityTypeDef.chaozhifanli30,goodsType = GoodsTypeDef.chaozhifanli,redpoint= RedPointType.chaozhifanli30,price = 18}, } local curPage = 1 local redList = {} local gridPar function PremiumRebatePanel:InitComponent() 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") 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) -- 初始化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, "title"):GetComponent("Image") local red = Util.GetGameObject(tab, "red") if status == "select" then select.gameObject:SetActive(true) title.sprite = this.spLoader:LoadSprite(BTNS[index].text1) else select.gameObject:SetActive(false) title.sprite = this.spLoader:LoadSprite(BTNS[index].text2) 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 function PremiumRebatePanel:Refresh(isTop,isAni) --value 累计充值天数 昨天 ,, this.actData = ActivityGiftManager.GetActivityTypeInfo(BTNS[curPage].actType) 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}}) 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 this.leftTime.text = string.format("每日仅需充值%s 累计天数:%s/15",MoneyUtil.GetMoneyUnitNameWithMoney(BTNS[curPage].price),this.actData.value + 1) else this.leftTime.text = string.format("每日仅需充值%s 累计天数:%s/15",MoneyUtil.GetMoneyUnitNameWithMoney(BTNS[curPage].price),this.actData.value) end 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") 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(true) title.text = missionConfigData.ContentsShow if not this.itemViewList[go] then this.itemViewList[go] = {} end for k,v in ipairs(this.itemViewList[go]) do v.gameObject:SetActive(false) end for i = 1, #missionConfigData.Reward do 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 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) this.itemViewList[go][i].gameObject:SetActive(true) 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 and index <= this.actData.value + 1 then Util.SetGray(btnGet,false) if _data.progress >= missionConfigData.Values[1][1] then 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) end) else Util.AddOnceClick(btnGet,function () JumpManager.GoJump(36008) end) end elseif _data.state == 1 then Util.SetGray(btnGet,true) btnText.text = "已领取" btnProgressText.gameObject:SetActive(false) Util.AddOnceClick(btnGet,function () end) else Util.SetGray(btnGet,true) Util.AddOnceClick(btnGet,function () PopupTipPanel.ShowTip(string.format("累计充值超值返利%s天时可领取!",index)) 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