118 lines
4.2 KiB
Lua
118 lines
4.2 KiB
Lua
|
|
local LifelongLimitBuy = quick_class("LifelongLimitBuy")
|
|
|
|
function LifelongLimitBuy:ctor(mainPanel, gameObject)
|
|
self.mainPanel = mainPanel
|
|
self.gameObject = gameObject
|
|
self:InitComponent(gameObject)
|
|
self:BindEvent()
|
|
self.preList = {}
|
|
self.ItemList = {}
|
|
end
|
|
|
|
-- 初始化组件
|
|
function LifelongLimitBuy:InitComponent(gameObject)
|
|
self.content = Util.GetGameObject(gameObject, "content/rect/grid")
|
|
self.pre = Util.GetGameObject(gameObject, "content/rect/grid/rewardPre")
|
|
end
|
|
|
|
function LifelongLimitBuy:BindEvent()
|
|
|
|
end
|
|
|
|
function LifelongLimitBuy:AddEvent()
|
|
end
|
|
|
|
function LifelongLimitBuy:RemoveEvent()
|
|
end
|
|
|
|
function LifelongLimitBuy:OnShow(parentSorting, arg, pageIndex)
|
|
self.gameObject:SetActive(true)
|
|
|
|
self:RefreshList()
|
|
end
|
|
|
|
function LifelongLimitBuy:RefreshList()
|
|
local config = ConfigManager.GetConfigDataByKey(ConfigName.GlobalActivity, "Type", ActivityTypeDef.LifeMemeber)
|
|
if not config then
|
|
self.gameObject:SetActive(false)
|
|
return
|
|
end
|
|
local canBuyRechargeId = config.CanBuyRechargeId
|
|
for i = 1, #canBuyRechargeId do
|
|
local config = ConfigManager.GetConfigData(ConfigName.RechargeCommodityConfig, canBuyRechargeId[i])
|
|
|
|
local go = self.preList[i]
|
|
if not go then
|
|
go = newObject(self.pre)
|
|
go.transform:SetParent(self.content.transform)
|
|
go.transform.localScale = Vector3.one
|
|
go.transform.localPosition = Vector3.zero
|
|
self.preList[i] = go
|
|
end
|
|
self:FillPreData(go, config)
|
|
end
|
|
end
|
|
|
|
function LifelongLimitBuy:FillPreData(go, data)
|
|
go:SetActive(true)
|
|
local title = Util.GetGameObject(go, "title/Text"):GetComponent("Text")
|
|
local itemGrid = Util.GetGameObject(go, "content/grid")
|
|
local progress = Util.GetGameObject(go, "progress"):GetComponent("Text")
|
|
local btn = Util.GetGameObject(go, "btn")
|
|
local price = Util.GetGameObject(go, "btn/Text"):GetComponent("Text")
|
|
local originalPrice = Util.GetGameObject(go, "originalPrice"):GetComponent("Text")
|
|
local redpoint = Util.GetGameObject(go, "btn/redPoint")
|
|
local limit = Util.GetGameObject(go, "limit")
|
|
local limitText = Util.GetGameObject(go, "limit/Text"):GetComponent("Text")
|
|
|
|
title.text = GetLanguageStrById(data.Name)
|
|
local boughtNum = OperatingManager.GetGoodsBuyTime(data.Type, data.Id) or 0
|
|
progress.text = GetLanguageStrById(11451).."("..boughtNum.."/"..data.Limit..")"
|
|
price.text = MoneyUtil.GetMoney(data.Price)
|
|
originalPrice.gameObject:SetActive(data.IsDiscount ~= 0)
|
|
originalPrice.text = GetLanguageStrById(10537)..MoneyUtil.GetCurrencyUnit()..data.Price/(data.IsDiscount*0.1)
|
|
local isCanBuy = data.Limit - boughtNum > 0
|
|
Util.SetGray(btn, not isCanBuy)
|
|
redpoint:SetActive(data.Price == 0)
|
|
|
|
if not self.ItemList[go] then
|
|
self.ItemList[go] = {}
|
|
end
|
|
for i = 1, #self.ItemList[go] do
|
|
self.ItemList[go][i].gameObject:SetActive(false)
|
|
end
|
|
for i = 1, #data.RewardShow do
|
|
if not self.ItemList[go][i] then
|
|
self.ItemList[go][i] = SubUIManager.Open(SubUIConfig.ItemView, itemGrid.transform)
|
|
end
|
|
self.ItemList[go][i]:OnOpen(false, data.RewardShow[i], 0.65)
|
|
self.ItemList[go][i].gameObject:SetActive(true)
|
|
end
|
|
|
|
limit:SetActive(PlayerManager.level < data.LevelLinit[1])
|
|
limitText.text = string.format(GetLanguageStrById(11472), data.LevelLinit[1])..GetLanguageStrById(10072)..GetLanguageStrById(12020)
|
|
|
|
limit:SetActive(PlayerManager.level < data.LevelLinit[1])
|
|
limitText.text = string.format(GetLanguageStrById(11472), data.LevelLinit[1])..GetLanguageStrById(10072)..GetLanguageStrById(12020)
|
|
|
|
Util.AddOnceClick(btn, function()
|
|
if PlayerManager.level < data.LevelLinit[1] then
|
|
PopupTipPanel.ShowTip(string.format(GetLanguageStrById(10340),data.LevelLinit[1]))
|
|
end
|
|
if not isCanBuy then
|
|
PopupTipPanel.ShowTipByLanguageId(10540)
|
|
else
|
|
PayManager.Pay({ Id = data.Id }, function()
|
|
FirstRechargeManager.RefreshAccumRechargeValue(data.Id)
|
|
self:RefreshList()
|
|
end)
|
|
end
|
|
end)
|
|
end
|
|
|
|
function LifelongLimitBuy:OnHide()
|
|
self.gameObject:SetActive(false)
|
|
end
|
|
|
|
return LifelongLimitBuy |