GuildActiveTaskItem = GuildActiveTaskItem or BaseClass(BaseItem) local GuildActiveTaskItem = GuildActiveTaskItem function GuildActiveTaskItem:__init(parent_wnd,prefab_asset,layer_name) self.base_file = "guild" self.layout_file = "GuildActiveTaskItem" self.parent_wnd = parent_wnd self.layer_name = layer_name self.model = GuildModel:getInstance() self:Load() end function GuildActiveTaskItem:Load_callback() self.nodes = { "bg:imgex", "go_btn:obj", "item_con", "finish_flag:obj", "task_desc:tmp", "task_name:tmp", "task_act:obj:tmp", "finish_btn:obj:img", } self:GetChildren(self.nodes) self.award_item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.item_con) self.award_item:SetItemSize(78, 78) self.award_item:SetVisible(false) self.award_item:SetAnchoredPosition(0, 0) self:AddEvents() if self.need_refreshData then self:UpdateView() end end function GuildActiveTaskItem:AddEvents( ) local function click_event(target) if target == self.go_btn_obj then self:ClickGoBtnFunc() elseif target == self.finish_btn_obj then self:ClickFinishBtnFunc() end end AddClickEvent(self.go_btn_obj, click_event) AddClickEvent(self.finish_btn_obj, click_event) end function GuildActiveTaskItem:UpdateView( ) if self.data then self.task_name_tmp.text = Trim(self.data.name) local task_desc_str = Trim(self.data.desc) self.task_act_tmp.text = string.format("活跃 %s", self.data.add) local act_condition = stringtotable(self.data.content) local progress_condition = act_condition[3] local task_data = self.model:GetGuildActiveTaskData(self.data.id) local cur_progress = task_data and task_data.progress or act_condition[2] local state = task_data and task_data.state or 0 -- 完成情况 if state == 0 then task_desc_str = task_desc_str .. string.format("(%s/%s)", cur_progress, progress_condition) end self.task_desc_tmp.text = task_desc_str self.finish_flag_obj:SetActive(state == 2) self.go_btn_obj:SetActive(state == 0) self.task_act_obj:SetActive(state ~= 2) self.finish_btn_obj:SetActive(state == 1) -- 加载奖励 local reward = stringtotable(self.data.awards) self.award_item:SetDataWithMapId(reward[1][2], reward[1][3], reward[1][1]) self.award_item:SetVisible(true) end end function GuildActiveTaskItem:SetData( data ) self.data = data if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function GuildActiveTaskItem:ClickGoBtnFunc( ) if not self.data then return end if self.data.id == 1 then -- 完成跑环任务10环 TaskModel:getInstance():DoGuildTask() -- OpenFun.Open(157, 0) GlobalEventSystem:Fire(EventName.CLOSE_GUILD_MAIN_VIEW) elseif self.data.id == 2 then -- 完成派单 OpenFun.Open(400, 3) elseif self.data.id == 3 then -- 午间幻魔 OpenFun.Open(406, 1) elseif self.data.id == 4 then -- 晚间幻魔 OpenFun.Open(406, 2) elseif self.data.id == 5 then -- 封印裂隙 OpenFun.Open(408, 0) elseif self.data.id == 6 then -- 社团晚宴 OpenFun.Open(400, 7) end end function GuildActiveTaskItem:ClickFinishBtnFunc( ) self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40407, self.data.id) end function GuildActiveTaskItem:__delete( ) if self.award_item then UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.award_item) end self.award_item = nil end