UIOptionalWishBoxView.lua 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. local UIOptionalWishBoxView = require("UITips/UIOptionalWishBoxView_Generate")
  2. local IconItemCtr = require("Common/IconItemCtr")
  3. function UIOptionalWishBoxView:OnAwake(data)
  4. self.controller = require("UITips/UIOptionalWishBoxCtr"):new()
  5. self.controller:Init(self)
  6. self.controller:SetData(data)
  7. end
  8. function UIOptionalWishBoxView:AddEventListener()
  9. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  10. end
  11. function UIOptionalWishBoxView:FillContent(data, uiBase)
  12. self.uiBase = uiBase
  13. local gameObject = self.uiBase:GetRoot()
  14. if gameObject ~= nil then
  15. self.gameObject = gameObject
  16. self.transform = gameObject.transform
  17. end
  18. self:InitGenerate(self.transform, data)
  19. self:Init()
  20. end
  21. function UIOptionalWishBoxView:Init()
  22. local cfgId = self.controller:GetCfgId()
  23. local wishCfg = ManagerContainer.CfgMgr:GetWishCfgById(cfgId)
  24. self.selectIdx = nil
  25. self.btnOK.button.interactable = self.selectIdx ~= nil
  26. self.scrollView.scrollRect.enabled = false
  27. if wishCfg then
  28. self.rewardData = wishCfg.WishReward
  29. local len = self.rewardData and #self.rewardData or 0
  30. self.scrollView.loopGridView:InitGridView(0, function(gridView, itemIndex, row, column)
  31. return self:GetItemByRowColumn(gridView, itemIndex, row, column)
  32. end, nil)
  33. self.scrollView.loopGridView:RefreshListByIndex(len, 0)
  34. end
  35. end
  36. function UIOptionalWishBoxView:OnPageInEnd()
  37. self.super.OnPageInEnd(self)
  38. self.scrollView.scrollRect.enabled = true
  39. end
  40. function UIOptionalWishBoxView:OnItemClick(button, params)
  41. local data = params[0]
  42. ManagerContainer.LuaUIMgr:OpenTips(data)
  43. end
  44. function UIOptionalWishBoxView:GetItemByRowColumn(gridView, itemIndex, row, column)
  45. local item = gridView:NewListViewItem('WishBoxListItem')
  46. local itemlua = CommonUtil.BindGridViewItem2Lua(self, 'WishBoxListItem', item.gameObject)
  47. local rewardData = self.rewardData[itemIndex + 1]
  48. local data = {cfgId = rewardData[2],num = rewardData[3]}
  49. IconItemCtr:SetData(self, itemlua.iconItem, data,nil,self,self.OnItemClick)
  50. local itemCfgData = ManagerContainer.CfgMgr:GetItemById(rewardData[2])
  51. itemlua.selected:SetActive(self.selectIdx == itemIndex)
  52. if itemCfgData then
  53. itemlua.textName.text.text = itemCfgData.Name
  54. local dcs = itemCfgData.Describe
  55. itemlua.desText.text.text = I18N.T(dcs)
  56. end
  57. self.uiBase:AddButtonUniqueEventListener(itemlua.button, self, self.OnSelectItemClick,itemIndex)
  58. return item
  59. end
  60. function UIOptionalWishBoxView:OnSelectItemClick(btn,param)
  61. if self.selectIdx then
  62. if self.selectIdx == param[0] then
  63. return
  64. end
  65. local itemLua = self:GetShowItemByIdx(self.selectIdx)
  66. if itemLua then
  67. itemLua.selected:SetActive(false)
  68. end
  69. end
  70. self.selectIdx = param[0]
  71. local itemLua = self:GetShowItemByIdx(self.selectIdx)
  72. if itemLua then
  73. itemLua.selected:SetActive(true)
  74. end
  75. self.btnOK.button.interactable = self.selectIdx ~= nil
  76. end
  77. function UIOptionalWishBoxView:GetShowItemByIdx(idx)
  78. local item = self.scrollView.loopGridView:GetShownItemByItemIndex(idx)
  79. if item then
  80. local itemlua = CommonUtil.GetBindGridViewItem2Lua(self, "WishBoxListItem", item.gameObject)
  81. return itemlua
  82. end
  83. end
  84. function UIOptionalWishBoxView:RemoveEventListener()
  85. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  86. end
  87. function UIOptionalWishBoxView:OnClickCloseBtn()
  88. self:UIClose()
  89. end
  90. function UIOptionalWishBoxView:OnClickOkBtn()
  91. if self.selectIdx then
  92. local data = self.rewardData[self.selectIdx + 1]
  93. local cfgId = data[2]
  94. local id = self.controller:GetId()
  95. ManagerContainer.DataMgr.BagData:SendWishBoxReq({id = id,cfgId = cfgId})
  96. end
  97. self:UIClose()
  98. end
  99. function UIOptionalWishBoxView:AddUIEventListener()
  100. self.uiBase:AddButtonUniqueEventListener(self.btnClose.button, self, self.OnClickCloseBtn)
  101. self.uiBase:AddButtonUniqueEventListener(self.AnyBtn.button, self, self.OnClickCloseBtn)
  102. self.uiBase:AddButtonUniqueEventListener(self.btnOK.button, self, self.OnClickOkBtn)
  103. end
  104. function UIOptionalWishBoxView:OnHide()
  105. end
  106. function UIOptionalWishBoxView:OnShow(data)
  107. self.controller:SetData(data)
  108. end
  109. function UIOptionalWishBoxView:OnClose()
  110. end
  111. function UIOptionalWishBoxView:OnDispose()
  112. self.controller:OnDispose()
  113. self.scrollView.loopGridView:Dispose()
  114. end
  115. return UIOptionalWishBoxView