TaskItemRefreshCtr.lua 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. local TaskItemRefreshCtr = {}
  2. function TaskItemRefreshCtr:SetData(wnd, itemLua, logicData, onClickOwner, onClickCB)
  3. local _state = logicData.state == Enum.TaskState.GotAndHas; --true是已经领取,false是还未领取
  4. local _itemData = logicData.itemData;
  5. local _getState = logicData._getState;
  6. local _buttonName = logicData.buttonName;
  7. local _jumpType = logicData.jumpType;
  8. local _canJump = _jumpType > 0;
  9. local _fakeIcon = logicData.fakeIcon
  10. CommonUtil.SetTotalChildrenGray(itemLua.item.gameObject, _state);
  11. itemLua.scrollbar.gameObject:SetActive(not _state);
  12. itemLua.overText.gameObject:SetActive(_state);
  13. itemLua.ratio.gameObject:SetActive(not _state);
  14. itemLua.item.num.text.text = tostring(_itemData._cfgData.Active);
  15. itemLua.taskName.text.text = _itemData._cfgData.TargetTaskDescribe;
  16. itemLua.btnGoto.gameObject:SetActive(_getState == Enum.TaskState.NotGot and _canJump);
  17. itemLua.btnGet.gameObject:SetActive(_getState == Enum.TaskState.Got);
  18. itemLua.seal.gameObject:SetActive(_getState == Enum.TaskState.GotAndHas);
  19. itemLua.btnNotFinish.gameObject:SetActive(_getState == Enum.TaskState.NotGot and not _canJump);
  20. if _getState == Enum.TaskState.NotGot then
  21. itemLua.btnGoto.text.text = _buttonName;
  22. end
  23. if _state == false then
  24. local _progress = _itemData._progressNum;
  25. itemLua.scrollbar.scrollbar.size = _progress;
  26. local _value, _total = _itemData:GetProgressData()
  27. itemLua.ratio.text.text = _value .. "/" .. _total;
  28. local _button;
  29. if _getState == Enum.TaskState.NotGot then
  30. _button = itemLua.btnGoto.button;
  31. elseif _getState == Enum.TaskState.Got then
  32. _button = itemLua.btnGet.button;
  33. end
  34. _button.interactable = true;
  35. if _getState == Enum.TaskState.NotGot and not _canJump then
  36. onClickOwner.uiBase:AddButtonUniqueEventListener(itemLua.btnNotFinish.button, onClickOwner, function ()
  37. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(I18N.T("MissionUnFinish"));
  38. end, nil)
  39. CommonUtil.SetTotalChildrenGray(itemLua.btnNotFinish.gameObject, true);
  40. else
  41. if onClickOwner and onClickCB then
  42. local _newFun = nil;
  43. if _getState == Enum.TaskState.Got then
  44. _newFun = function()
  45. local _tweenTime = GlobalConfig.Instance:GetConfigFloatValue(174);
  46. ManagerContainer.DataMgr.TaskDataNew._refreshImmediately = false;
  47. self._delayShowEnemy = ManagerContainer.LuaTimerMgr:AddTimer(_tweenTime * 1000, 1, wnd, function()
  48. ManagerContainer.DataMgr.TaskDataNew._refreshImmediately = true;
  49. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UI_TASK_CHANGE);
  50. _fakeIcon.gameObject:SetActive(false);
  51. end, nil);
  52. _fakeIcon.transform.position = itemLua.item.transform.position;
  53. _fakeIcon.gameObject:SetActive(true);
  54. LuaBattleBridge.BeginTweenPosition(_fakeIcon.gameObject, _tweenTime, wnd.refreshTaskParent.totalScore.item.transform.position, true)
  55. end
  56. end
  57. _button.interactable = true;
  58. onClickOwner.uiBase:AddButtonUniqueEventListener(_button, onClickOwner, onClickCB, logicData, _newFun)
  59. else
  60. _button.onClick:RemoveAllListeners();
  61. _button.interactable = false;
  62. end
  63. end
  64. end
  65. end
  66. return TaskItemRefreshCtr