FuliLevelItem = FuliLevelItem or BaseClass(BaseItem) local FuliLevelItem = FuliLevelItem FuliLevelItem.Width = 699 FuliLevelItem.Height = 120 function FuliLevelItem:__init() self.base_file = "fuli" self.layout_file = "FuliLevelItem" self.model = FuliModel:GetInstance() self:Load() end function FuliLevelItem:Load_callback() self.nodes = { "get_btn:obj:img","get_btn/get_btn_text:tmp","name_text:txt","get_btn/get_btn_red:obj", "item_scroll:scroll","item_scroll/Viewport/item_con","get_image:obj","nameTitle:tmp", "icon:obj", "limitNumText:tmp", "limitBg:obj", } self:GetChildren(self.nodes) self.awardItem = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.icon) self.awardItem:SetItemSize(78,78) SetAnchoredPositionY(self.limitNumText, -46) SetAnchoredPositionY(self.limitBg, -46) -- SetAnchoredPositionY(self.icon, -12) self.nameTitle_tmp.text = "Lv." self:AddEvents() if self.need_refreshData then self:UpdateView() end end function FuliLevelItem:AddEvents( ) local on_click = function ( click_obj ) if self.get_btn_obj == click_obj then self.model:Fire(FuliConst.REQ_FULI_SCMD, 16006, self.data.id) end end AddClickEvent(self.get_btn_obj, on_click) end function FuliLevelItem:UpdateView( ) self.name_text_txt.text = self.data.level local get_str = "" if self.data.limit_num > 0 then local rest_num = self.data.limit_num - self.model:GetFuliLevelLimitGetNum(self.data.id) self.rest_num = rest_num local rest_str = HtmlColorTxt(rest_num, ColorUtil.GREEN_DARK) if rest_num == 0 then rest_str = HtmlColorTxt(rest_num, ColorUtil.RED_DARK) end get_str = string.format("剩余:%s",rest_str) else get_str = string.format("剩余:%s",HtmlColorTxt(0, ColorUtil.RED_DARK)) end self.limitNumText_tmp.text = get_str if not self.item_list_com then self.item_list_com = self:AddUIComponent(UI.ItemListCreator) end self.item_list_com:Reset() local reward = {} if self.data.limit_num > 0 and self.rest_num > 0 then reward = self.data.award_limit_list else reward = self.data.award_list end self.limit_goods_vo = nil local new_reward_list = {} for k,v in ipairs(reward) do if not v.is_limit then new_reward_list[#new_reward_list + 1] = v else self.limit_goods_vo = v end end self.icon_obj:SetActive(self.limit_goods_vo ~= nil) self.limitBg_obj:SetActive(self.limit_goods_vo ~= nil) if self.limit_goods_vo then self.awardItem:SetData(self.limit_goods_vo[2],self.limit_goods_vo[3]) self.awardItem:SetNumLimitVisible( true, 25 ) -- SetSizeDeltaX(self.item_scroll,313) else self.limitNumText_tmp.text = "" -- SetSizeDeltaX(self.item_scroll,410) end local info = { data_list = new_reward_list, item_con = self.item_con, scroll_view = self.item_scroll, obj_pool_type = UIObjPool.UIType.AwardItem, item_width = 78, space_x = 14, start_y = -2, start_x = 2, create_frequency = 0, is_enable = self.limit_goods_vo and #new_reward_list >= 4 or #new_reward_list >= 5, on_update_item = function(item, i, v) item:SetItemSize(78, 78) item:SetVisible(true) if v.is_limit then item:SetNumLimitVisible( true, 4 ) item:SetData(v[2], v[3], nil, nil) else item:SetNumLimitVisible( false ) item:SetData(v[2], v[3], nil, nil) end end, } self.item_list_com:UpdateItems(info) if self.data.sort_rank == 2 then--可以领且没有领 self.get_image_obj:SetActive(false) SetImageGray(self.get_btn_img,false) SetTMPSharedMaterial(self.get_btn_text_tmp,ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn) self.get_btn_red_obj:SetActive(true) self.get_btn_obj:SetActive(true) elseif self.data.sort_rank == 0 then--领了 self.get_image_obj:SetActive(true) self.get_btn_obj:SetActive(false) else--不够等级 self.get_image_obj:SetActive(false) SetImageGray(self.get_btn_img,true) SetTMPSharedMaterial(self.get_btn_text_tmp,ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn) self.get_btn_red_obj:SetActive(false) self.get_btn_obj:SetActive(true) end end function FuliLevelItem:SetData(index, data ) self.index = index self.data = data if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function FuliLevelItem:__delete( ) if self.awardItem then UIObjPool:PushItem(UIObjPool.UIType.AwardItem, self.awardItem) self.awardItem = nil end end