miduo_client/Assets/ManagedResources/~Lua/Modules/Operating/QuanMinFLPanel.lua

225 lines
8.1 KiB
Lua

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