require("Base/BasePanel") QuanMinFLPanel = Inherit(BasePanel) local this= QuanMinFLPanel local sortingOrder = 0 local rewardNameConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)--读取奖励名称信息 local GlobalActivity = ConfigManager.GetConfig(ConfigName.GlobalActivity) local actRewardConfig = ConfigManager.GetConfig(ConfigName.ActivityRewardConfig) local UniversalWelfareConfig=ConfigManager.GetConfig(ConfigName.UniversalWelfareConfig) local rechargeConfigs = ConfigManager.GetAllConfigsDataByKey(ConfigName.RechargeCommodityConfig,"Type",GoodsTypeDef.GrowthReward) -- function QuanMinFLPanel:New(gameObject) -- local b = {} -- b.gameObject = gameObject -- b.transform = gameObject.transform -- setmetatable(b, { __index = GrowthGiftPage }) -- return b -- end --初始化组件(用于子类重写) function QuanMinFLPanel:InitComponent() self.spLoader = SpriteLoader.New() --定义头部文字和按钮 self.bg = Util.GetGameObject(self.gameObject, "rzyBg") self.titleBgIma = Util.GetGameObject(self.bg,"bg"):GetComponent("Image") --滚动条和预设 --self.scrollItem = Util.GetGameObject(self.gameObject, "rzyBg/scrollItem") self.itemPre = Util.GetGameObject(self.gameObject, "rzyBg/ItemPre") self.grid = Util.GetGameObject(self.gameObject, "rzyBg/scrollItem/grid") self.btn_close=Util.GetGameObject(self.gameObject, "rzyBg/btn_return") self.hintTxt=Util.GetGameObject(self.gameObject, "rzyBg/hintTxt"):GetComponent("Text") --设置滚动条 --local rootHight = self.scrollItem.transform.rect.height --local width = self.scrollItem.transform.rect.width -- self.scrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.scrollItem.transform, -- self.itemPre, nil, Vector2.New(width, rootHight), 1, 1, Vector2.New(0, 0)) --self.scrollView.moveTween.MomentumAmount = 1 --self.scrollView.moveTween.Strength = 2 self.prelist={} self.itemsList={} end --绑定事件(用于子类重写) function QuanMinFLPanel:BindEvent() Util.AddClick(self.btn_close, function() CheckRedPointStatus(RedPointType.GrowthGift) CheckRedPointStatus(RedPointType.recruitTreasure) self:ClosePanel() end) end --添加事件监听(用于子类重写) function QuanMinFLPanel:AddListener() end --移除事件监听(用于子类重写) function QuanMinFLPanel:RemoveListener() end local stateSort = { [1] = 3, [2] = 1, [0] = 2, [-1] = 2, } --界面打开时调用(用于子类重写) function QuanMinFLPanel:OnOpen(activityId) local missionList={} self.titleBgIma.sprite=self.spLoader:LoadSprite("GM_qmfl_banner_zh") local activityData=ActivityGiftManager.GetActivityInfoByType(10502) if activityData and activityData.mission then for i = 1, #activityData.mission do local mission=activityData.mission[i] if UniversalWelfareConfig[mission.missionId] and UniversalWelfareConfig[mission.missionId].GlobalActivity==activityId then LogError("missions "..activityData.mission[i].state) table.insert(missionList,mission) end end -- if not self.missionPre then -- self.missionPre = {} -- end LogError("missionList len="..#missionList) local dataLen=#missionList self.hintTxt.text="已购买人数"..missionList[dataLen].progress.."/"..UniversalWelfareConfig[missionList[dataLen].missionId].Peolple table.sort(missionList, function(a, b) if stateSort[a.state] == stateSort[b.state] then return a.missionId < b.missionId else return stateSort[a.state] > stateSort[b.state] end end) self.grid:GetComponent("RectTransform").sizeDelta = Vector2.New(1078,250*#missionList) -- self.scrollView:SetData(missionList, function(index, item) -- self:RefreshShowData(item, missionList[index]) -- end,false,false) local len=#self.prelist local dataLen=#missionList if dataLen>len then for i=1,dataLen-len do local go=newObject(self.itemPre) go.transform:SetParent(self.grid.transform) go.transform.localScale = Vector3.one go.transform.localPosition=Vector3.zero; table.insert(self.prelist,go) end end len=#self.prelist for i = 1,len do if i>dataLen then self.prelist[i]:SetActive(false) else self.prelist[i]:SetActive(true) this:RefreshShowData(self.prelist[i],missionList[i],i) end end end end function QuanMinFLPanel:OnSortingOrderChange() end -- 打开,重新打开时回调 function QuanMinFLPanel:OnShow(_sortingOrder) end function QuanMinFLPanel:RefreshData(isTop,isAni) end --设置投资按钮初始状态 function QuanMinFLPanel:SetBtnInvestState() end local type={ [0]={sprite = "Btn_hz_cheng_01",text = "领取"}, [1]={sprite = "Btn_hz_cheng_01",text = Language[10018]}, [2]={sprite = "Btn_hz_lan_01",text = Language[10101]}, } --刷新每一条item function QuanMinFLPanel:RefreshShowData(item, data,index) local nameTxt=Util.GetGameObject(item, "middleLayout/contents/name"):GetComponent("Text") local desTxt=Util.GetGameObject(item, "middleLayout/contents/condition"):GetComponent("Text") local redpoint=Util.GetGameObject(item, "middleLayout/btnGet/redPoint") local grid=Util.GetGameObject(item, "middleLayout/scrollView/grid") local btn_get=Util.GetGameObject(item, "middleLayout/btnGet") local btn_txt=Util.GetGameObject(item, "middleLayout/btnGet/get"):GetComponent("Text") local itemList ={} if self.itemsList[index] then itemList=self.itemsList[index] end for i = 1, #itemList do itemList[i].gameObject:SetActive(false) end local reward=UniversalWelfareConfig[data.missionId].Type for i = 1, #reward do if not itemList[i] then itemList[i] = SubUIManager.Open(SubUIConfig.ItemView,grid.transform) itemList[i].gameObject:SetActive(false) end itemList[i]:OnOpen(false, {reward[i][1],reward[i][2]}, 0.9,false,false,false,sortingOrder) itemList[i].gameObject:SetActive(true) end if not self.itemsList[index] then table.insert(self.itemsList,itemList) end nameTxt.text="妖晶" desTxt.text= UniversalWelfareConfig[data.missionId].Describe --"购买人数达到"..UniversalWelfareConfig[data.missionId].Peolple.."人可领取" Util.SetGray(btn_get,data.state ~=1) redpoint.gameObject:SetActive(false) redpoint.gameObject:SetActive(data.state == 1) -- Util.SetGray(self.redPoint,false) btn_get:GetComponent("Button").enabled = data.state ~= 2 btn_get:GetComponent("Image").sprite = self.spLoader:LoadSprite(type[data.state].sprite) btn_txt.text = type[data.state].text Util.AddOnceClick(btn_get,function() if data.state==1 then NetManager.GetActivityRewardRequest(data.missionId,10502, function(_drop) UIManager.OpenPanel(UIName.RewardItemPopup, _drop, 1) Util.SetGray(btn_get,true) btn_get:GetComponent("Button").enabled = false btn_txt.text = Language[10101] redpoint.gameObject:SetActive(false) -- state=2 end) end end) end --检测是否全部已领取 function QuanMinFLPanel:CheckAllGet(curActiId,missionId) local aciInfo = ActivityGiftManager.GetActivityInfoByType(curActiId) for i = 1, #aciInfo.mission do if aciInfo.mission[i].state ~= 1 and aciInfo.mission[i].missionId ~= missionId then return 0 end end return 1 end --界面关闭时调用(用于子类重写) function QuanMinFLPanel:OnClose() self.gameObject:SetActive(false) end --界面销毁时调用(用于子类重写) function QuanMinFLPanel:OnDestroy() self.spLoader:Destroy() self.prelist={} self.itemsList={} -- self.missionPre = {} end return QuanMinFLPanel