源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

133 rivejä
4.1 KiB

4 viikkoa sitten
  1. --[[@------------------------------------------------------------------
  2. @description:item
  3. @author:huangcong
  4. ----------------------------------------------------------------------]]
  5. RechargeAddItem = RechargeAddItem or BaseClass(BaseItem)
  6. RechargeAddItem.Width = 891
  7. RechargeAddItem.Height = 105
  8. local RechargeAddItem = RechargeAddItem
  9. function RechargeAddItem:__init()
  10. self.base_file = "rechargeActivity"
  11. self.layout_file = "RechargeAddItem"
  12. self.model = RechargeActivityModel:getInstance()
  13. self.need_red = false
  14. self.item_list = {}
  15. self:Load()
  16. end
  17. function RechargeAddItem:Load_callback()
  18. local nodes = {
  19. "redDot:obj", "descText:tmp", "awardScroll/Viewport/awardCon", "nameText:tmp",
  20. "getBtnText:tmp", "awardScroll:scroll", "getBtn:obj:img", "descTitleText:tmp", "getImg:obj",
  21. }
  22. self:GetChildren(nodes)
  23. self.descTitleText_tmp.text = "累计返利"
  24. self:InitEvent()
  25. if self.need_refreshData then
  26. self:SetData(self.data,self.index)
  27. end
  28. end
  29. function RechargeAddItem:__delete()
  30. for k,v in pairs(self.item_list) do
  31. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, v)
  32. end
  33. self.item_list = {}
  34. end
  35. function RechargeAddItem:InitEvent()
  36. local function clickHandler(target)
  37. if target == self.getBtn_obj then
  38. if self.data then
  39. if self.data.state == 1 then
  40. self.model:Fire(RechargeActivityModel.REQUEST_CCMD_EVENT, 15906, self.data.index, self.data.product_id)
  41. elseif self.data.state == 2 then
  42. Message.show("奖励已领取!","fault")
  43. elseif self.data.state == 3 then
  44. Message.show("明日可以来领取礼包哦!","fault")
  45. else
  46. OpenFun.Open(450,1)
  47. end
  48. end
  49. end
  50. end
  51. AddClickEvent(self.getBtn_obj, clickHandler, 1)
  52. end
  53. function RechargeAddItem:SetData(data,index)
  54. self.data = data or self.data
  55. self.index = index or self.index
  56. if self.is_loaded then
  57. self.need_refreshData = false
  58. else
  59. self.need_refreshData = true
  60. return
  61. end
  62. if not self.data then return end
  63. local btn_str = "激活立领"
  64. local size = 18
  65. local material = ShaderTools.TMPSharedMaterialType.FZZZDefault
  66. if self.data.state == 2 then--已领取
  67. btn_str = ""
  68. elseif self.data.state == 1 then--可领取
  69. btn_str = "立即领取"
  70. size = 22
  71. material = ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn
  72. elseif self.data.state == 0 then--待领取
  73. btn_str = "待领取"
  74. elseif self.data.state == 3 then--明日可领
  75. btn_str = "明日可领"
  76. else
  77. size = 22
  78. material = ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn
  79. end
  80. self.getBtnText_tmp.fontSize = size
  81. SetTMPSharedMaterial(self.getBtnText_tmp, material)
  82. -- SetImageGray(self.getBtn_img,self.data.state == 2)
  83. self.getBtn_obj:SetActive(self.data.state == 1 or self.data.state == 5)
  84. self.getImg_obj:SetActive(self.data.state == 2)
  85. self.getBtnText_tmp.text = btn_str--次日可领--待领取--已领取
  86. self.nameText_tmp.text = string.format("第%s天",self.data.index)
  87. self.descText_tmp.text = self.data.title
  88. self.redDot_obj:SetActive(self.data.state == 1)
  89. self:UpdateAwardItemList()
  90. end
  91. --奖励item列表
  92. function RechargeAddItem:UpdateAwardItemList()--更新一个item奖励列表
  93. for k,v in pairs(self.item_list) do
  94. v:SetVisible(false)
  95. end
  96. local item_list = self.data.reward
  97. if not item_list or TableSize(item_list) == 0 then return end
  98. local offer_x = 9
  99. local offer_y = 0
  100. local x = 0
  101. local y = 0
  102. for i, v in ipairs(item_list) do
  103. local item = self.item_list[i]
  104. if item == nil then
  105. item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.awardCon)
  106. item:SetItemSize(62,62)
  107. item:SetIsAct(true)
  108. self.item_list[i] = item
  109. end
  110. y = -2
  111. x = (62+offer_x) * (i-1) + 3
  112. item:SetPosition(x,y)
  113. local goods_Id, lock = GoodsModel:getInstance():GetMappingTypeId(v[1], v[2])
  114. local goodVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods_Id)
  115. if goodVo then
  116. item:SetData(goods_Id, v[3] , goodVo.color, 0, lock,true,nil)
  117. else
  118. -- error("没有找到物品信息 "..v.typeId)
  119. end
  120. item:SetVisible(true)
  121. end
  122. local len = #item_list
  123. local all_width = len * (62 + offer_x) + 12
  124. SetSizeDeltaX(self.awardCon, all_width)
  125. self.awardScroll_scroll.enabled = len >= 6
  126. end