DiffTaskItemCtr.lua 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. local DiffTaskItemCtr ={}
  2. function DiffTaskItemCtr:SetData(wnd, itemlua, logicData, enterType, onClickOwner, onClickCB, params)
  3. --LogError("---------------"..itemlua:getClassName().."----------------"..Inspect(logicData))
  4. self:InitUI(wnd, itemlua, logicData, enterType, onClickOwner, onClickCB, params)
  5. self:SetItemsData(itemlua, logicData)
  6. self:SetBtns(itemlua, logicData)
  7. end
  8. function DiffTaskItemCtr:SetItemsData(itemlua,logicData)
  9. itemlua.goodsItems.loopHorizontalScrollRect:ClearCells()
  10. itemlua.goodsItems.loopHorizontalScrollRect:ClearAnchoredPostion()
  11. local datalist = self:GetReward(logicData._cfgData.Reward)
  12. --local datalist = self:GetReward({{100,100},{110,50},{47,1000000},{529,5}})
  13. itemlua.goodsItems.loopHorizontalScrollRect.horizontal = #datalist > 3
  14. CommonUtil.LoopGridViewEleCreateNew(self,
  15. itemlua.goodsItems.loopHorizontalScrollRect,
  16. itemlua.content.horizontalLayoutGroup,
  17. datalist,
  18. 0,
  19. self,
  20. self.UpdateItem,
  21. nil,nil,0);
  22. end
  23. function DiffTaskItemCtr:UpdateItem(_itemLua, _idx,_data)
  24. if not _itemLua or not _data then return end
  25. CommonUtil.UpdateItemPrefab(self, _itemLua, _data, Enum.ItemIEnterType.Bag)
  26. end
  27. function DiffTaskItemCtr:InitUI(wnd, itemlua, logicData, enterType, onClickOwner, onClickCB, params)
  28. itemlua.itemName.text.text = I18N.T("DiffTaskTitleTxt")
  29. itemlua.descTxt.text.text = ManagerContainer.DataMgr.HardMissionDataMgr:GetConditionTxt(logicData)
  30. wnd.uiBase:AddButtonUniqueEventListener(itemlua.getBtn.button,onClickOwner,onClickCB,logicData)
  31. wnd.uiBase:AddButtonEventListener(itemlua.btnGoto.button,onClickOwner,wnd.OnClickJump)
  32. end
  33. function DiffTaskItemCtr:GetReward(rewards)
  34. local datalist = {}
  35. if rewards then
  36. local reward
  37. for i = 1, #rewards do
  38. reward = rewards[i]
  39. datalist[i] = {cfgId = reward[1], num = reward[2]}
  40. end
  41. end
  42. return datalist
  43. end
  44. function DiffTaskItemCtr:SetBtns(itemlua,logicData)
  45. if logicData ~= nil then
  46. --local isNeedShow = logicData._got == 1 or logicData._got == 0
  47. local got = logicData._got
  48. itemlua.btnGoto:SetActive(got == 0)
  49. itemlua.getBtn:SetActive(got == 1)
  50. itemlua.sealBtn:SetActive(got == 2)
  51. --itemlua.getBtn.button.interactable = logicData._got == 1
  52. else
  53. itemlua.btnGoto:SetActive(false)
  54. itemlua.getBtn:SetActive(false)
  55. itemlua.sealBtn:SetActive(false)
  56. end
  57. end
  58. return DiffTaskItemCtr