|
|
-
- TaskSubExtensionView = TaskSubExtensionView or BaseClass(BaseItem)
- local TaskSubExtensionView = TaskSubExtensionView
-
-
- function TaskSubExtensionView:__init(parent_wnd)
- self.base_file = "task"
- self.layout_file = "TaskSubExtensionView"
- self.model = TaskModel:getInstance()
- self.layer_name = "UI"
- self.award_item_list = {}
- self.last_click_time = 0
- self:Load()
- end
-
-
- function TaskSubExtensionView:__delete()
-
- if self.task_event_id then
- self.model:UnBind(self.task_event_id)
- self.task_event_id = nil
- end
-
- for i,item in pairs(self.award_item_list) do
- item:DeleteMe()
- end
-
- self.award_item_list = {}
-
- if self.verTabBar then
- self.verTabBar:DeleteMe()
- end
- self.verTabBar = nil
- end
-
- function TaskSubExtensionView:Load_callback()
-
- self.title_txt,
- self.task_desc_txt,
- self.task_tip_txt,
- self.opt_btn_txt,
- self.empty_tip_txt = self:GetChildTexts({
- "MessagePanel/Title/Text",
- "MessagePanel/TaskDesc",
- "MessagePanel/TaskTip",
- "MessagePanel/OptBtn/Text",
- "EmptyPanel/EmptyTip",
- })
-
- self.message_panel,
- self.empty_panel,
- self.opt_btn,
- self.opt_btn_bg,
- self.award_title_con = self:GetChildGameObjects({
- "MessagePanel",
- "EmptyPanel",
- "MessagePanel/OptBtn",
- "MessagePanel/OptBtn/Bg",
- "MessagePanel/3",
- })
-
- self.mContent,
- self.effect,
- self.bar_parent = self:GetChildTransforms({
- "MessagePanel/ScrollView/Viewport/Content",
- "MessagePanel/OptBtn/Effect",
- "Info",
- })
-
- self:InitEvent()
-
- if self.need_refreshData then
- self:SetData(self.task_type,self.task_id)
- end
- end
-
- function TaskSubExtensionView:InitEvent()
-
- local function onClickHandler(target)
- if target == self.opt_btn then
- self:BtnCall()
- end
- end
-
- AddClickEvent(self.opt_btn,onClickHandler)
-
- -- 刷新列表
- local function onUpdateView( )
- if not self.data then
- return
- end
-
- local task_id = self.data.id
- local main_index,sub_index = self:GetTabIndexByTaskId(task_id)
- if main_index ~= 0 and self.verTabBar then
- self:CreateNewUICusVerTabBar()
- self:SeletedTabbar(main_index,sub_index,true)
- self.verTabBar:SetSelectTab(main_index,sub_index,true)
- else
- self:SetData()
- end
- end
- self.task_event_id = self.model:Bind(TaskEvent.TASK_LIST_INIT,onUpdateView)
- end
-
-
- function TaskSubExtensionView:AutoFindWay()
- if self.data then
- self.model:TaskClickFun(self.data)
- self.model:Fire(TaskEvent.CLOSE_TASK_VIEW)
- end
- end
-
- function TaskSubExtensionView:GetExtendsionTaskNum()
- if not self.tab_data then
- return 0,0
- end
- return #self.tab_data[1].sub_tab,#self.tab_data[2].sub_tab
- end
-
- function TaskSubExtensionView:CreateNewUICusVerTabBar()
-
- self.tab_data = self.model:GetExtensionTabData()
-
- if not self.verTabBar then
- self.verTabBar = NewUICusVerTabBar.New(self.bar_parent, Vector2(280, 580), TaskVerTabSubBtn, co.TableXY(274, 70),co.TableXY(140, -103))
- end
-
- local function select_callback(parent_index,sub_index,data)
- self:SeletedTabbar(parent_index,sub_index,data)
- end
-
- self.verTabBar:SetTabBars(self.tab_data, select_callback, true, true)
- end
-
- function TaskSubExtensionView:SeletedTabbar(parent_index,sub_index)
-
- self.parent_index = parent_index
- self.sub_index = sub_index
-
- if self.verTabBar ~= nil then
- self.verTabBar:SetTabBarIndex(parent_index,sub_index)
- self:SwitchBar()
- end
- end
-
-
- function TaskSubExtensionView:SwitchBar()
-
- local parent_index,sub_index = self.verTabBar:GetCurrentSelectIndex()
-
- if parent_index > 0 and sub_index > 0 then
- local data = self.tab_data[parent_index]
- if not data then
- return
- end
- data = data.sub_tab[sub_index]
- if data then
- self:ShowMessagePanel(true)
- self:SelectTask(data)
- end
- elseif parent_index > 0 then
- local data = self.tab_data[parent_index]
-
- if not data then
- return
- end
-
- if #data.sub_tab == 0 then
- self:ShowMessagePanel(false)
-
- if self.verTabBar then
- self.verTabBar:CancelCurrSelect()
- end
-
- if parent_index == 1 then
- self.empty_tip_txt.text = string.format("暂无已接支线任务")
- elseif parent_index == 2 then
- self.empty_tip_txt.text = string.format("暂无可接支线任务")
- end
- end
- end
- end
-
- function TaskSubExtensionView:ShowMessagePanel(bool)
- if bool then
- if not self.message_panel.activeSelf then
- self.message_panel:SetActive(true)
- end
-
- if self.empty_panel.activeSelf then
- self.empty_panel:SetActive(false)
- end
- else
- if self.message_panel.activeSelf then
- self.message_panel:SetActive(false)
- end
-
- if not self.empty_panel.activeSelf then
- self.empty_panel:SetActive(true)
- end
- end
- end
-
- function TaskSubExtensionView:SetData(task_type,task_id)
- self.task_type = task_type or self.task_type
- self.task_id = task_id or self.task_id
-
- if self.is_loaded then
- self.need_refreshData = false
-
- self:CreateNewUICusVerTabBar()
-
- local has_task,main_index,sub_index
- local receive_num,can_receive_num = self:GetExtendsionTaskNum()
- if receive_num > 0 then
- has_task = true
- main_index = 1
- sub_index = 1
- elseif can_receive_num > 0 then
- has_task = true
- main_index = 2
- sub_index = 1
- else
- has_task = false
- main_index = 1
- sub_index = 0
- end
-
- if self.task_id then
- local new_main_index,new_sub_index = self:GetTabIndexByTaskId(self.task_id)
- if new_main_index ~= 0 then
- main_index = new_main_index
- sub_index = new_sub_index
- end
- self.task_id = false
- end
-
- self:SeletedTabbar(main_index,sub_index,true)
- self.verTabBar:SetSelectTab(main_index,sub_index,true)
- else
- self.need_refreshData = true
- end
- end
-
- function TaskSubExtensionView:GetTabIndexByTaskId(task_id)
- if not self.tab_data then
- return 0,0
- end
-
- for index,data in ipairs(self.tab_data[1].sub_tab) do
- if data.id == task_id then
- return 1,index
- end
- end
-
- for index,data in ipairs(self.tab_data[2].sub_tab) do
- if data.id == task_id then
- return 2,index
- end
- end
-
- return 0,0
- end
-
- function TaskSubExtensionView:SelectTask(task_vo)
- self.data = task_vo
- self.model:MakeTaskTip(task_vo)
-
- self.title_txt.text = Trim(task_vo.taskName)
- self.task_desc_txt.text = Trim(task_vo.description)
- self.task_tip_txt.text = Trim(task_vo.tipContent)
-
- local award_list = task_vo.award_list or {}
- for i,v in ipairs(award_list) do
- local item = self.award_item_list[i]
- if item == nil then
- item = AwardItem.New(self.mContent)
- item:SetItemSize(80, 80)
- self.award_item_list[i] = item
- end
- item:SetVisible(true)
- local goods_id, lock = GoodsModel:getInstance():GetMappingTypeId(v[1], v[2])
- item:SetData(goods_id, v[3], nil, nil, lock)
- end
-
- self.mContent.sizeDelta = Vector2(#award_list * 85,100)
-
- if #award_list > 0 then
- self.award_title_con:SetActive(true)
- else
- self.award_title_con:SetActive(false)
- end
-
- for i = #award_list + 1, #self.award_item_list do
- self.award_item_list[i]:SetVisible(false)
- end
-
- self:SetOptBtnState(task_vo)
- end
-
- function TaskSubExtensionView:SetOptBtnState(taskVO)
- if taskVO.isFinish then
- self.opt_btn:SetActive(false)
- else
- self.opt_btn:SetActive(true)
- if taskVO.acceptType == 1 then
- if taskVO.mainTip then
- self.opt_btn_txt.text = "前往日常"
- self:ClearEffect()
- else
- self.opt_btn_txt.text = "领取任务"
- --self:AddUIEffect("ui_anniu_1", self.effect, self.layer_name, nil, {x=1.22,y=1.1}, true)
- end
- else
- self.opt_btn_txt.text = "立即前往"
- self.opt_btn_bg:SetActive(false)
- self:ClearEffect()
- --如果是支线已完成的
- if self:IsExtendFinish() then
- self.opt_btn_txt.text = "领取奖励"
- self.opt_btn_bg:SetActive(true)
- -- self:AddUIEffect("ui_anniu_1", self.effect, self.layer_name, nil, {x=1.22,y=1.1}, true)
- end
- end
- end
- end
-
- function TaskSubExtensionView:IsExtendFinish( )
- if self.model:IsNeedClickTask(self.data) then
- --点击判断是否已经完成任务,是的话发协议完成任务
- local tip = self.model:GetExtendSpecialTip(self.data)
- if tip and tip.isFinish == 1 then
- return true
- end
- end
- end
-
- function TaskSubExtensionView:ClearEffect( )
- self:ClearUIEffect(self.effect)
- end
-
- function TaskSubExtensionView:BtnCall( )
- if not self.data then
- return
- end
- if Status.NowTime - self.last_click_time < 1 then
- return
- end
- self.last_click_time = Status.NowTime
-
- if self.data.mainTip then
- GlobalEventSystem:Fire(EventName.OPEN_DAILY_VIEW)
- self.model:Fire(TaskEvent.CLOSE_TASK_VIEW)
- else
- if self:IsExtendFinish() then
- GlobalEventSystem:Fire(TaskEventType.SEND_TASK_FINISH, self.data.id)
- else
- self:AutoFindWay()
- end
- end
- end
|