KLRechargeActivityTwoItem.lua 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. ---@class KLRechargeActivityTwoItem:UIKmlLuaPanelBase
  2. ---@field view KLRechargeActivityTwoItemView
  3. local KLRechargeActivityTwoItem = class(UIKmlLuaPanelBase)
  4. local this =KLRechargeActivityTwoItem
  5. --限时礼包单个礼包
  6. ---创建时调用一次
  7. function this:Init()
  8. self.canBuy = false
  9. --道具奖励
  10. GUI:DataListInitData(self.view.giftDataList,function()
  11. return self:ItemRewardItemCountFunc()
  12. end,function(realIndex)
  13. return self:ItemRewardItemGetFunc(realIndex)
  14. end,function(realIndex, kmlcontrol)
  15. return self:ItemRewardItemInitFunc(realIndex, kmlcontrol)
  16. end, function(realIndex, kmlcontrol)
  17. return self:ItemRewardItemUpdateFunc(realIndex, kmlcontrol)
  18. end)
  19. self.Item_Reward_all_item = {}
  20. GUI:Effect_Create(self.view.RedDot,{
  21. effectid="40001",mpos="-47,-16,0",mscale="0.75,0.8,0.75",mrotate="0,0,0"
  22. })
  23. end
  24. --region 道具奖励列表
  25. function this:ItemRewardItemCountFunc()
  26. return #self.allItemRewardData
  27. end
  28. function this:ItemRewardItemGetFunc(realIndex)
  29. local itemId = self.allItemRewardData[realIndex + 1][1]
  30. local itemCount = self.allItemRewardData[realIndex + 1][2]
  31. local item = GUI:Item_Create(self.view.giftDataList,{
  32. width = 60,
  33. height = 60,
  34. itemid = itemId,
  35. --mfixsize = "80,80",
  36. tips = "1",
  37. itemcustomcount = itemCount,
  38. })
  39. GUI:AddOnClickEvent(item,self,function()
  40. SL:OpenTips(nil,itemId)
  41. end)
  42. self.Item_Reward_all_item[realIndex + 1] = item
  43. return item.kmlControl
  44. end
  45. function this:ItemRewardItemInitFunc(realIndex, kmlcontrol)
  46. end
  47. function this:ItemRewardItemUpdateFunc(realIndex, kmlcontrol)
  48. local itemId = self.allItemRewardData[realIndex + 1][1]
  49. local itemCount = self.allItemRewardData[realIndex + 1][2]
  50. local item = self.Item_Reward_all_item[realIndex + 1]
  51. GUI:Item_setItemId(item,itemId)
  52. --GUI:Item_setItemCount(item,itemCount)
  53. GUI:Item_setItemCount(item,tostring(itemCount))
  54. GUI:AddOnClickEvent(item,self,function()
  55. SL:OpenTips(nil,itemId)
  56. end)
  57. end
  58. function this:RefreshItemList(gift)
  59. self.allItemRewardData = gift
  60. GUI:DataListUpdateData(self.view.giftDataList)
  61. end
  62. --endregion 道具奖励列表
  63. ---注册UI事件和服务器消息
  64. function this:RegistEvents()
  65. GUI:AddOnClickEvent(self.view.buyButton, self, self.BuyButtonOnClick)
  66. end
  67. function this:BuyButtonOnClick()
  68. if not self.args.canBuy then
  69. --SL:TipMessage({ SL:GetConfig('cfg_string', 330).text, 1, NoticeType.NoticeMid })
  70. SL:TipMessage( "请先解锁上一档礼包",1, NoticeType.NoticeMid)
  71. return
  72. end
  73. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_BUY_TIME_LIMIT_GIFT ,{id = self.args.giftCfg.id})
  74. end
  75. ---创建或者刷新界面数据时调用
  76. function this:Refresh()
  77. if self.args then
  78. --高度
  79. GUI:Image_loadTexture(self.view.BG,string.format("Texture/img_rechargeBg%d.png",self.args.giftCfg.sort))
  80. --道具列表
  81. self:RefreshItemList(self.args.giftCfg.gift)
  82. --按钮
  83. if self.args.hasBuy then
  84. GUI:setVisible(self.view.buyButton,false)
  85. else
  86. GUI:setVisible(self.view.buyButton,true)
  87. if table.count(self.args.giftCfg.cost) == 0 then
  88. GUI:setVisible(self.view.zuanshi,false)
  89. GUI:Text_setString(self.view.buyCount,"免费")
  90. else
  91. --GUI:Image_loadTexture(self.view.zuanshi,) --TODO:根据道具id显示图标
  92. GUI:setVisible(self.view.zuanshi,true)
  93. --GUI:setContentSize(self.view.zuanshi,43,24) --组件自适应偶尔会把宽改成0
  94. GUI:Text_setString(self.view.buyCount,tostring(self.args.giftCfg.cost[2]))
  95. end
  96. if self.args.canBuy then
  97. GUI:setVisible(self.view.LockUI,false)
  98. else
  99. GUI:setVisible(self.view.LockUI,true)
  100. end
  101. end
  102. end
  103. end
  104. function this:RefreshItem(args)
  105. self.args = args
  106. self:Refresh()
  107. end
  108. function this:Close()
  109. self.canBuy = false
  110. end
  111. return this