FuliSignItem = FuliSignItem or BaseClass(BaseItem) local FuliSignItem = FuliSignItem function FuliSignItem:__init() self.base_file = "fuli" self.layout_file = "FuliSignItem" self.model = FuliModel:GetInstance() self:Load() end function FuliSignItem:Load_callback() self.nodes = { "btn/btn_text:tmp", "btn:obj:imgex", "bg:img", "item_con", "double_image:obj", "btn/btn_red:obj", "click_con:obj", "num_text:tmp", } self:GetChildren(self.nodes) self.awardItem = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.item_con) self.awardItem:SetItemSize(84, 84) self.awardItem:SetVisible(false) self:AddEvents() if self.need_refreshData then self:UpdateView() end end function FuliSignItem:AddEvents( ) local function on_click( target ) if self.can_sign then local vip = RoleManager.Instance.mainRoleInfo.vip_flag or 0 local function ok() OpenFun.Open(450,2) end local function cancel( ... ) self.model:Fire(FuliConst.REQ_FULI_SCMD, 16002) end if self.data.vip_lv > vip and self.is_sign then -- Alert.show("是否提升到V3,翻倍领取奖励?",Alert.Type.Two,ok,cancel, "确定", "领取单倍") self.model:Fire(FuliConst.OPEN_FULI_VIP_ASK_VIEW) else cancel() end else Message.show("您还没达到这个签到天数哦~") end end -- AddClickEvent(self.click_con_obj, on_click) AddClickEvent(self.btn_obj, on_click) local function on_vip_change( ... ) self:UpdateView() end self.vip_id = RoleManager:getInstance().mainRoleInfo:BindOne("vip_flag", on_vip_change) end function FuliSignItem:UpdateView( ) self.is_sign = false self.can_sign = false self.not_vip = false self.num_text_tmp.text = string.format("第 %s 天", self.index) local vip = RoleManager.Instance.mainRoleInfo.vip_flag or 0 self.awardItem:SetData(self.data.award_list[1][2], self.data.award_list[1][3],nil) self.awardItem:SetVisible(true) self.awardItem:SetGray(false) self.double_image_obj:SetActive(self.data.vip_lv > 0) -- if self.index >= 10 then -- SetAnchoredPositionX(self.day_text, -8) -- else -- SetAnchoredPositionX(self.day_text, -25) -- end local bg_asset = "" if self.index % 5 == 0 then bg_asset = "fuli_item15" self.num_text_tmp.text = HtmlColorTxt(string.format("第 %s 天", self.index), "#fdffc2") else bg_asset = "fuli_item16" end if TableSize(self.server_data) > 0 then if self.server_data.sign_in_status == 0 then--没签到的话 if self.index < self.server_data.days + 1 then self.awardItem:SetGray(true) self.btn_red_obj:SetActive(false) self.btn_obj:SetActive(false) bg_asset = "fuli_item38" self.num_text_tmp.text = HtmlColorTxt("已领取", "#A6A8AB") elseif self.index == self.server_data.days + 1 then self.can_sign = true self.btn_red_obj:SetActive(true) self.btn_obj:SetActive(true) self.btn_imgex.gray = false self.btn_text_tmp.text = "领取" else self.btn_red_obj:SetActive(false) self.btn_obj:SetActive(false) self.btn_imgex.gray = true end elseif self.server_data.sign_in_status == 1 and self.data.vip_lv > 0 then--签到1次的话 self.is_sign = true if self.index < self.server_data.days then self.btn_red_obj:SetActive(false) self.btn_obj:SetActive(false) self.num_text_tmp.text = HtmlColorTxt("已领取", "#A6A8AB") bg_asset = "fuli_item38" elseif self.index == self.server_data.days then self.can_sign = true self.btn_red_obj:SetActive(self.data.vip_lv<=vip) self.btn_text_tmp.text = "再次领取" self.btn_obj:SetActive(true) self.btn_imgex.gray = false else self.btn_red_obj:SetActive(false) self.btn_obj:SetActive(false) self.btn_imgex.gray = true self.btn_text_tmp.text = "领取" end -- elseif self.server_data.sign_in_status == 2 then--签到的话 --没有签到两次了的说法了 else self.is_sign = true if self.index < self.server_data.days then self.btn_red_obj:SetActive(false) self.btn_obj:SetActive(false) self.num_text_tmp.text = HtmlColorTxt("已领取", "#A6A8AB") self.awardItem:SetGray(true) bg_asset = "fuli_item38" elseif self.index == self.server_data.days then self.awardItem:SetGray(true) self.btn_red_obj:SetActive(false) self.btn_obj:SetActive(false) self.btn_imgex.gray = false self.num_text_tmp.text = HtmlColorTxt("已领取", "#A6A8AB") bg_asset = "fuli_item38" else self.btn_red_obj:SetActive(false) self.btn_obj:SetActive(false) self.btn_imgex.gray = true self.btn_text_tmp.text = "领取" end end end lua_resM:setImageSprite(self, self.bg_img, "fuli_asset", bg_asset) end function FuliSignItem:SetData( index, data,server_data ) self.index = index self.data = data self.server_data = server_data if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function FuliSignItem:SetDepth( ) do return end--不需要这个设置方法了 if self.server_data.sign_in_status == 0 then--没签到的话 if self.index == self.server_data.days + 1 then self.transform:SetAsLastSibling() end elseif self.server_data.sign_in_status == 1 then--签到的话 if self.index == self.server_data.days then self.transform:SetAsLastSibling() end elseif self.server_data.sign_in_status == 2 then--签到的话 if self.index == self.server_data.days then self.transform:SetAsLastSibling() end end end function FuliSignItem:__delete( ) if self.awardItem then UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.awardItem) self.awardItem = nil end if self.vip_id then RoleManager:getInstance().mainRoleInfo:UnBind(self.vip_id) self.vip_id = nil end end