TaskAnnounceItem = TaskAnnounceItem or BaseClass(BaseItem) local TaskAnnounceItem = TaskAnnounceItem function TaskAnnounceItem:__init() self.base_file = "taskAnnounce" self.layout_file = "TaskAnnounceItem" self.layer_name = layer_name or "UI" self.is_delay_callback = true -- self.use_local_view = true self.model = TaskAnnounceModel:getInstance() self.is_select = false self.index = false self.item_list = {} self:Load() end function TaskAnnounceItem:Load_callback() local nodes = { "select:obj", "red_dot:obj", "title:tmp", "bg:obj:imgex", "lock:obj", "tips:tmp", "title_img:img", } self:GetChildren(nodes) self:InitEvent() if self.need_refreshData then self:SetData(self.index, self.data, self.mask_id) self:SetSelect(self.is_select) end end function TaskAnnounceItem:InitEvent() local function onBtnClickHandler(target) if target == self.bg_obj then if self.click_call_back then self.click_call_back(self.index) end end end AddClickEvent(self.bg_obj,onBtnClickHandler) end function TaskAnnounceItem:SetSelect(is_select) self.is_select = is_select if self.is_loaded then self.select_obj:SetActive(self.is_select) else self.need_refreshData = true end end function TaskAnnounceItem:SetData(index, data, mask_id) self.index = index self.data = data self.mask_id = mask_id if self.is_loaded then --self.title_tmp.text = Trim(self.data.name) self.bg_imgex.gray = not self.data.has_open self.lock_obj:SetActive(not self.data.has_open) self.select_obj:SetActive(self.is_select) self.tips_tmp.text = self.data.has_open and HtmlColorTxt(Trim(self.data.con_desc), "#ffffff") or Trim(self.data.con_desc) local icon_res = Trim(self.data.title_pic) .. "_item" local icon_title_res = Trim(self.data.title_pic) lua_resM:setOutsideImageSprite(self, self.bg_imgex, GameResPath.GetTaskAnnounce(icon_res), true) lua_resM:setOutsideImageSprite(self, self.title_img_img, GameResPath.GetTaskAnnounce(icon_title_res), true) local state = self.model:GetRewardData(self.data.id) self.red_dot_obj:SetActive(state == 1) else self.need_refreshData = true end end -- -- 设置物品的领取状态 可领取 已领取 不可领取 -- function TaskAnnounceItem:SetStatue(state, has_open) -- if state and self.item_list[1] then -- local callback = function() -- self.model:Fire(TaskAnnounceModel.REQUEST_CCMD_EVENT, 18201, self.data.id) -- end -- self.awardCon.gameObject:SetActive(state ~= 2) -- if state == 0 or not has_open then --不可领取 -- self.item_list[1]:SetEnableClick(false) -- self.item_list[1]:SetRedDot(false) -- self.item_list[1]:SetCallBack(nil) -- elseif state == 1 then --未领取 -- self.item_list[1]:SetEnableClick(true) -- self.item_list[1]:SetRedDot(true) -- self.item_list[1]:SetCallBack(callback) -- elseif state == 2 then --已领取 -- self.item_list[1]:SetEnableClick(true) -- self.item_list[1]:SetStatueTips(true, "tyui_ylq", nil, true) -- self.item_list[1]:SetRedDot(false) -- self.item_list[1]:SetCallBack(nil) -- end -- else -- end -- end function TaskAnnounceItem:__delete() -- for k,v in pairs(self.item_list) do -- if v then -- v:ReleaseObj() -- v = nil -- end -- end -- self:ClearUIEffect(self.rt_item) -- self.item_list = {} -- if self.is_load_rt then -- lua_resM:clearRoleMode(self) -- self.is_load_rt = false -- end -- self:StopOpenFunTweenAnimation() end function TaskAnnounceItem:GetItemIdx() return self.index end function TaskAnnounceItem:SetClickCallBack(cb) self.click_call_back = cb end