local DiffTaskItemCtr ={} function DiffTaskItemCtr:SetData(wnd, itemlua, logicData, enterType, onClickOwner, onClickCB, params) --LogError("---------------"..itemlua:getClassName().."----------------"..Inspect(logicData)) self:InitUI(wnd, itemlua, logicData, enterType, onClickOwner, onClickCB, params) self:SetItemsData(itemlua, logicData) self:SetBtns(itemlua, logicData) end function DiffTaskItemCtr:SetItemsData(itemlua,logicData) itemlua.goodsItems.loopHorizontalScrollRect:ClearCells() itemlua.goodsItems.loopHorizontalScrollRect:ClearAnchoredPostion() local datalist = self:GetReward(logicData._cfgData.Reward) --local datalist = self:GetReward({{100,100},{110,50},{47,1000000},{529,5}}) itemlua.goodsItems.loopHorizontalScrollRect.horizontal = #datalist > 3 CommonUtil.LoopGridViewEleCreateNew(self, itemlua.goodsItems.loopHorizontalScrollRect, itemlua.content.horizontalLayoutGroup, datalist, 0, self, self.UpdateItem, nil,nil,0); end function DiffTaskItemCtr:UpdateItem(_itemLua, _idx,_data) if not _itemLua or not _data then return end CommonUtil.UpdateItemPrefab(self, _itemLua, _data, Enum.ItemIEnterType.Bag) end function DiffTaskItemCtr:InitUI(wnd, itemlua, logicData, enterType, onClickOwner, onClickCB, params) itemlua.itemName.text.text = I18N.T("DiffTaskTitleTxt") itemlua.descTxt.text.text = ManagerContainer.DataMgr.HardMissionDataMgr:GetConditionTxt(logicData) wnd.uiBase:AddButtonUniqueEventListener(itemlua.getBtn.button,onClickOwner,onClickCB,logicData) wnd.uiBase:AddButtonEventListener(itemlua.btnGoto.button,onClickOwner,wnd.OnClickJump) end function DiffTaskItemCtr:GetReward(rewards) local datalist = {} if rewards then local reward for i = 1, #rewards do reward = rewards[i] datalist[i] = {cfgId = reward[1], num = reward[2]} end end return datalist end function DiffTaskItemCtr:SetBtns(itemlua,logicData) if logicData ~= nil then --local isNeedShow = logicData._got == 1 or logicData._got == 0 local got = logicData._got itemlua.btnGoto:SetActive(got == 0) itemlua.getBtn:SetActive(got == 1) itemlua.sealBtn:SetActive(got == 2) --itemlua.getBtn.button.interactable = logicData._got == 1 else itemlua.btnGoto:SetActive(false) itemlua.getBtn:SetActive(false) itemlua.sealBtn:SetActive(false) end end return DiffTaskItemCtr