ChildMainTaskItem = ChildMainTaskItem or BaseClass(BaseItem)
|
|
function ChildMainTaskItem:__init()
|
|
self.base_file = "child"
|
|
self.layout_file = "ChildMainTaskItem"
|
|
self.is_delay_callback = true
|
|
-- self.use_local_view = true
|
|
self.model = ChildModel:GetInstance()
|
|
self:Load()
|
|
end
|
|
|
|
function ChildMainTaskItem:Load_callback()
|
|
self.nodes = {
|
|
"bg/txt_desc:tmp","bg/image_had:obj","bg/image_go:obj:img","bg/image_get:obj:img",
|
|
"bg/image_go/lb_image_go:tmp", "bg/image_get/lb_image_get:tmp",
|
|
"bg:obj","bg/red_dot:obj",
|
|
"bg/txt_num:tmp", "bg/fillImg:img", "bg/progressText:tmp",
|
|
"bg/awardCon",
|
|
}
|
|
self:GetChildren(self.nodes)
|
|
self:InitEvent()
|
|
if self.need_refreshData then
|
|
self:SetData(self.data)
|
|
end
|
|
end
|
|
|
|
function ChildMainTaskItem:InitEvent()
|
|
local function onBtnClickHandler(target, x, y)
|
|
if self.model:IsHeartValueMax() then
|
|
Message.show("同心值已满,请尽快领取奖励!")
|
|
return
|
|
end
|
|
if target == self.image_get_obj then
|
|
if self.data.task_state == 1 then
|
|
-- Message.show("完成任务:",self.data.task_id)
|
|
self.model:Fire(ChildConst.CHILD_REQ_EVENT, 16506,1,self.data.task_id,0)
|
|
elseif self.data.task_state == 2 then
|
|
Message.show("已领取")
|
|
else
|
|
end
|
|
elseif target == self.image_go_obj then
|
|
local list = stringtotable(self.data.client_skip)
|
|
local winId = tonumber(list[1][1])
|
|
local subId = tonumber(list[1][2])
|
|
OpenFun.Open(winId, subId)
|
|
end
|
|
end
|
|
AddClickEvent(self.image_get_obj, onBtnClickHandler)
|
|
AddClickEvent(self.image_go_obj, onBtnClickHandler)
|
|
|
|
end
|
|
|
|
function ChildMainTaskItem:SetData(data)
|
|
self.data = data
|
|
if self.is_loaded then
|
|
if not data then return end
|
|
local color = "#18a426"
|
|
if data.progress < data.progress_max then
|
|
color = "#ff373c"
|
|
end
|
|
-- 描述
|
|
self.txt_desc_tmp.text = string.format("%s (<color=%s>%s</color>/%s)",Trim(data.desc),color,data.progress,data.progress_max) or ""
|
|
|
|
--同心值
|
|
--self.txt_num_tmp.text = data.reward_exp or 0
|
|
self.main_reward_item = self.main_reward_item or UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.awardCon)
|
|
self.main_reward_item:SetPosition(0, 0)
|
|
self.main_reward_item:SetItemSize(62, 62)
|
|
self.main_reward_item:SetVisible(true)
|
|
|
|
local reward = stringtotable(self.model:GetConfigChildKvVal("heart_feed"))[1]
|
|
local goods_Id, lock = GoodsModel:getInstance():GetMappingTypeId(0, reward[1])
|
|
local goodVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods_Id)
|
|
if goodVo then
|
|
self.main_reward_item:SetData(goodVo.type_id, data.reward_exp or 0, goodVo.color, 0, lock,true,nil)
|
|
end
|
|
|
|
|
|
-- 进度
|
|
self.progressText_tmp.text = string.format("(<color=%s>%s</color>/%s)", ColorUtil.WHITE_DARK, data.progress,data.progress_max)
|
|
self.fillImg_img.fillAmount = data.progress / data.progress_max
|
|
|
|
-- 按钮状态
|
|
self.image_get_obj:SetActive(false)
|
|
self.image_had_obj:SetActive(false)
|
|
self.image_go_obj:SetActive(false)
|
|
self.red_dot_obj:SetActive(false)
|
|
--0-未完成 1-已完成未领取 2-已领取
|
|
if data.task_state == 1 then
|
|
self.image_get_obj:SetActive(true) --未领取
|
|
self.red_dot_obj:SetActive(not self.model:IsHeartValueMax())
|
|
elseif data.task_state == 2 then
|
|
self.image_had_obj:SetActive(true) --已完成
|
|
else
|
|
self.image_go_obj:SetActive(true) --已领取未完成
|
|
end
|
|
|
|
if self.model:IsHeartValueMax() then
|
|
SetImageGray(self.image_get_img, true)
|
|
SetTMPSharedMaterial(self.lb_image_get_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
|
|
SetImageGray(self.image_go_img, true)
|
|
SetTMPSharedMaterial(self.lb_image_go_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
|
|
else
|
|
SetImageGray(self.image_get_img, false)
|
|
SetTMPSharedMaterial(self.lb_image_get_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
|
|
SetImageGray(self.image_go_img, false)
|
|
SetTMPSharedMaterial(self.lb_image_go_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkBlueBtn)
|
|
end
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
|
|
end
|
|
|
|
function ChildMainTaskItem:__delete( )
|
|
if self.main_reward_item then
|
|
UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.main_reward_item)
|
|
self.main_reward_item = nil
|
|
end
|
|
end
|