123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- ---@class KLRechargePanel:UIKmlLuaPanelBase
- ---@field view KLRechargePanelView
- local KLRechargePanel = class(UIKmlLuaPanelBase)
- local this =KLRechargePanel
- function this:AsyncLoadUI()
- end
- ---创建时调用一次
- function this:Init()
- self.goodsList = {}
- GUI:DataListInitData(self.view.RechargeGoodsList, function()
- return self:GetAllShowGoods()
- end,function()
- end,function()
- end, function(realIndex)
- self:ItemUpdateFun(realIndex)
- end)
- end
- --请求充值
- function this:BuyOnClick(_,eventData)
- GUIUtil.SDKPay(eventData.rechargeData,1)
- end
- function this:ItemUpdateFun(realIndex)
- local data = self.goodsList[realIndex + 1]
- local FirstReward = GUI:GetChildControl(self.view.RechargeGoodsList, realIndex, 'FirstReward')
- local showItems = GUI:GetChildControl(self.view.RechargeGoodsList, realIndex, 'showItems')
- local img_icon = GUI:GetChildControl(self.view.RechargeGoodsList, realIndex, 'img_icon')
- local img_reward = GUI:GetChildControl(self.view.RechargeGoodsList, realIndex, 'img_reward')
- local txt_reward = GUI:GetChildControl(self.view.RechargeGoodsList, realIndex, 'txt_reward')
- local btn_buy = GUI:GetChildControl(self.view.RechargeGoodsList, realIndex, 'btn_buy')
- --是否是首充
- GUI:SetActive(FirstReward,data.isShowFirst)
- --展示首充道具
- if data.isShowFirst then
- local itemRewards = {}
- if data.isRewardFirst then
- itemRewards = SL:GetConfig('cfg_recharge_gear',data.rechargeData.parameter).firstReward --首次首充
- else
- itemRewards = SL:GetConfig('cfg_recharge_gear',data.rechargeData.parameter).resetReward --二次首充
- end
- local showRewards = {}
- for _, v in pairs(itemRewards) do
- if v[1] == SL:MeData_GetCareer().baseCareer then--基础职业
- table.insert(showRewards,v)
- end
- end
- GUI:HideAllChilds(showItems)
- for i = 1, table.count(showRewards) do
- local itemId = showRewards[i][2]
- local item = GUI:Item_Create(showItems, {
- width = "50",
- height = "50",
- itemid = itemId,
- mfixsize = "80,80",
- tips = "1",
- itemcustomcount = Misc.GetSampleNumberString(showRewards[i][3])
- })
- GUI:AddOnClickEvent(item, self, function()
- SL:OpenTips(nil, itemId)
- end)
- end
- end
- --加载道具图片
- GUI:Image_loadTexture(img_icon, SL:GetConfig('cfg_recharge_gear',data.rechargeData.parameter).name,"Atlas/QJ5_UIShopMainPanel.spriteatlas")
- --获得道具图片
- local itemData = data.rechargeData.gain[1]
- local icon = SL:GetConfig("cfg_item", itemData[1]).looks
- GUI:Image_loadTexture(img_reward, icon,"Atlas/QJ5_ItemLooksIcon.spriteatlas")
- --获得道具数量
- GUI:Text_setString(txt_reward, tostring(itemData[2]))
- --请求购买
- local price = "¥"..tostring(data.rechargeData.amount)
- GUI:Button_setTitleText(btn_buy,price)
- GUI:AddOnClickEvent(btn_buy,self,self.BuyOnClick,{ rechargeData = data.rechargeData})
- end
- function this:GetAllShowGoods()
- return table.count(self.goodsList)
- end
- ---注册UI事件和服务器消息
- function this:RegistEvents()
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_RECHARGE_ACTION,self.RES_RECHARGE_ACTION,self)
- end
- function this:RES_RECHARGE_ACTION(_,message)
- if message.type == "1" then
- self:RefreshShowGoodInfoMess(_, message.data.list)
- if self.refreshTimer then
- SL:UnSchedule(self.refreshTimer)
- self.refreshTimer = nil
- end
- local endDayTime = tonumber(message.data.endDayTime)*1000
- local leftTime = endDayTime - Time.GetServerTime()
- GUI:setVisible(self.view.countDownRoot,leftTime>0)
- if leftTime>0 then
- self.refreshTimer = SL:Schedule(self.refreshTimer,0,1,-1,function()
- local leftTime1 = endDayTime - Time.GetServerTime()
- if leftTime1 <= 0 then
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_RECHARGE_ACTION, {type=1, action="panel"})
- SL:UnSchedule(self.refreshTimer)
- self.refreshTimer = nil
- else
- local time_str = "<color=#ff2323>"..GUIUtil.FormatTimeDHM_S(leftTime1//1000) .."</color>"
- GUI:Text_setString(self.view.refreshTime,time_str)
- end
- end)
- end
- end
- end
- ---@param message
- --rechargeId:number cfg_recharge表内id
- --isShowFirst:boolean 是否需要展示首充奖励 true展示
- --isRewardFirst:boolean 首次首充还是重置首充 true首次首充
- function this:RefreshShowGoodInfoMess(_,message)
- self.goodsList = {}
- local data = message
- local allGoods = {}
- for _, v in pairs(data) do
- if type(v) == "table" then
- v.rechargeData = SL:GetConfig("cfg_recharge",tonumber(v.rechargeId))
- table.insert(allGoods,v)
- end
- end
- table.sort(allGoods,function(a,b)
- return a.rechargeData.amount < b.rechargeData.amount --按照价格高低排序
- end)
- self.goodsList = allGoods
- GUI:DataListUpdateData(self.view.RechargeGoodsList)
- end
- ---界面显示时调用一次
- function this:Show()
- end
- ---创建或者刷新界面数据时调用
- function this:Refresh()
- --获取标题图片
- local pic = SL:GetConfig("cfg_global", 16001)
- GUI:Image_loadTexture(self.view.title, pic.value,"Atlas/QJ5_UIShopMainPanel.spriteatlas")
- end
- function this:Close()
- if self.refreshTimer then
- SL:UnSchedule(self.refreshTimer)
- self.refreshTimer = nil
- end
- end
- return this
|