|
|
- 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
|