AddTimeView = AddTimeView or BaseClass(BaseView) local AddTimeView = AddTimeView AddTimeView.Type = { DESIGNATION = 1, FASHION = 2, } --通用续时界面 function AddTimeView:__init() self.base_file = "uiComponent" self.layout_file = "AddTimeView" self.layer_name = "Top" self.destroy_imm = true self.use_background = true --全屏界面默认使用这个参数 self.change_scene_close = true self.append_to_ctl_queue = false --是否要添加进界面堆栈 self.need_show_money = false --是否要显示顶部的金钱栏 self.load_callback = function () self:LoadSuccess() self:AddEvent() end self.open_callback = function ( ) self:OpenSuccess() end self.switch_callback = function(index) self:SwitchTab(index) end self.destroy_callback = function ( ) self:DestroySuccess() end end function AddTimeView:Open( data) self.data = data BaseView.Open(self) end function AddTimeView:LoadSuccess() local nodes = { "num_text:txt","name_text:txt","add_num_con","bg:raw","close_btn:obj", "rest_time_text:txt","btn:obj","add_time_text:txt","title_text:txt", "item_con","goods_name_text:txt", } self:GetChildren(nodes) lua_resM:setOutsideRawImage(self,self.bg_raw,GameResPath.GetViewBigBg("add_time_bg"),false) self.awardItem = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.item_con) self.awardItem:SetItemSize(59, 59) self.addNumComponent = AddNumberComponent.New(self.add_num_con) self.addNumComponent:SetComponentWidth(380) self.addNumComponent:SetVisibleCalcBtn(false) end function AddTimeView:AddEvent() local function on_click( target ) if target == self.btn_obj then if self.data.type == AddTimeView.Type.DESIGNATION then if self.count > 0 then DesignationModel:GetInstance():Fire(DesignationModel.REQUEST_DESIGNATION, 41106, self.data.goods_id, self.data.id, self.count) else Message.show("您没有该物品哦~") end elseif self.data.type == AddTimeView.Type.FASHION then if self.count > 0 then FashionModel:GetInstance():Fire(FashionEvent.REQUEST_FASHION_PROTOCOL, 41304, self.data.goods_id, self.data.id, self.count) else Message.show("您没有该物品哦~") end end self:Close() elseif target == self.close_btn_obj then self:Close() end end AddClickEvent(self.btn_obj, on_click) AddClickEvent(self.close_btn_obj, on_click) local function onChangeCountHandler(count) self:SetCountNum(count) end self.change_count_id = self.addNumComponent:Bind(ComponentEvent.AddNumberComponent.CHANGE_COUNT, onChangeCountHandler) end function AddTimeView:OpenSuccess() self:UpdateView() end function AddTimeView:UpdateView() local rest_time = 0 if self.data.type == AddTimeView.Type.DESIGNATION then rest_time = DesignationModel:GetInstance():GetDesignationRestTimeById(self.data.id) rest_time = rest_time > 0 and rest_time or 0 self.rest_time_text_txt.text = string.format("剩余时间:%s", TimeUtil:timeConvert10(rest_time, true)) self.title_text_txt.text = "称号续费" self.goods_num = GoodsModel:getInstance():GetTypeGoodsNum(self.data.goods_id) local goods_name = GoodsModel:getInstance():getGoodsName(self.data.goods_id, true) self.num_text_txt.text = HtmlColorTxt(self.goods_num, ColorUtil.GREEN_DARK) self.goods_name_text_txt.text = goods_name self.name_text_txt.text = DesignationModel:GetInstance():GetDesignationNameById(self.data.id) self.awardItem:SetData(self.data.goods_id, 1, nil, nil, nil, nil, nil, self.mask_id) self.addNumComponent:InitData(1, self.goods_num, 1, 1, 12) self:SetCountNum(self.goods_num > 0 and 1 or 0) elseif self.data.type == AddTimeView.Type.FASHION then rest_time = FashionModel:GetInstance():GetFashionRestTimeById(self.data.id) rest_time = rest_time > 0 and rest_time or 0 self.rest_time_text_txt.text = string.format("剩余时间:%s", TimeUtil:timeConvert10(rest_time, true)) self.title_text_txt.text = "时装续费" self.goods_num = GoodsModel:getInstance():GetTypeGoodsNum(self.data.goods_id) local goods_name = GoodsModel:getInstance():getGoodsName(self.data.goods_id, true) local fashion_name = GoodsModel:getInstance():getGoodsName(self.data.goods_id, false) self.num_text_txt.text = HtmlColorTxt(self.goods_num, ColorUtil.GREEN_DARK) self.goods_name_text_txt.text = goods_name self.name_text_txt.text = fashion_name self.awardItem:SetData(self.data.goods_id, 1, nil, nil, nil, nil, nil, self.mask_id) self.addNumComponent:InitData(1, self.goods_num, 1, 1, 12) self:SetCountNum(self.goods_num > 0 and 1 or 0) end end function AddTimeView:SetCountNum( count ) self.count = count if self.data.type == AddTimeView.Type.DESIGNATION then local expire_time = 0 local cfg = Config.Dsgt[self.data.id] if cfg then expire_time = cfg.expire_time end self.add_time_text_txt.text = TimeUtil:timeConvert10(expire_time * self.count, true) elseif self.data.type == AddTimeView.Type.FASHION then local career = RoleManager.Instance.mainRoleInfo.career local cfg = Config.Fashionmodel[self.data.id.."@"..career] local expire_time = 0 if cfg then expire_time = cfg.expire_time end self.add_time_text_txt.text = TimeUtil:timeConvert10(expire_time * self.count, true) end end function AddTimeView:DestroySuccess( ) if self.awardItem then UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.awardItem) self.awardItem = nil end if self.addNumComponent then if self.change_count_id then self.addNumComponent:UnBind(self.change_count_id) self.change_count_id = nil end self.addNumComponent:DeleteMe() self.addNumComponent = nil end end