GoodsBatchBuyView = GoodsBatchBuyView or BaseClass(BaseView) local GoodsBatchBuyView = GoodsBatchBuyView -- 批量购买界面 function GoodsBatchBuyView:__init(parent) self.base_file = "bag" self.layout_file = "GoodsBatchBuyView" self.layer_name = "Top" self.destroy_imm = true self.use_background = true self.change_scene_close = true self.is_set_zdepth = true --回调方法 self.load_callback = function() self:LoadSuccess() self:InitEvent() end self.open_callback = function() self:SetData() end self.close_callback = function() local vo = ItemUseModel:getInstance():GetItemShowVo() if vo then GlobalEventSystem:Fire(EventName.OPEN_ITEM_USE_VIEW,vo) end end self.destroy_callback = function() self:Clear() end end function GoodsBatchBuyView:LoadSuccess() self.cancelBtn = self:GetChild("cancelBtn").gameObject self.okBtn = self:GetChild("okBtn").gameObject self.nameText = self:GetChild("nameText"):GetComponent("Text") self.itemCon = self:GetChild("itemCon") self.awardItem = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.itemCon) self.awardItem:SetItemSize(108,108) self.addNumComponent = AddNumberComponent.New(self:GetChild("addNumCon")) self.addNumComponent:SetComponentWidth(422) local function onChangeCountHandler(count) self:ChangeCount(count) end self.change_count_id = self.addNumComponent:Bind(ComponentEvent.AddNumberComponent.CHANGE_COUNT, onChangeCountHandler) self.addNumComponent:SetVisibleCalcBtn(false) self.addNumComponent:InitData(1, 99, 1, 1, 6) local nodes = { "Window:raw", } self:GetChildren(nodes) lua_resM:setOutsideRawImage(self, self.Window_raw, GameResPath.GetViewBigBg("tips_comm_bg6"), false) end function GoodsBatchBuyView:InitEvent() local function onClickHandler(target) if target == self.cancelBtn then self:Close() elseif target == self.okBtn then self:BtnCall() end end AddClickEvent(self.cancelBtn,onClickHandler) AddClickEvent(self.okBtn,onClickHandler) -- local function onChangeCountHandler(count) -- self:ChangeCount(count) -- end -- self.change_count_id = self.addNumComponent:Bind(ComponentEvent.AddNumberComponent.CHANGE_COUNT,onChangeCountHandler) end function GoodsBatchBuyView:Open(goods_id, cur_count, max_count) self.goods_id = goods_id self.cur_count = cur_count self.max_count = max_count self.vo = GoodsModel:getInstance():GetBagGoodsInfoById(goods_id) BaseView.Open(self) end function GoodsBatchBuyView:SetData( ) if not self.vo or not self.vo.type_id then return end local bagGoods = GoodsModel:getInstance():GetBagGoodsInfoById(self.goods_id) local has_num = bagGoods.goods_num --单独数量,不是绑定+非绑定数量 if self.max_count and has_num >= self.max_count then has_num = self.max_count end self.awardItem:SetData(self.vo.type_id, has_num, nil, nil, nil, nil, nil, nil, nil, true) self.nameText.text = "" .. Trim(self.vo.goods_name).."" if self.vo.type==38 and self.vo.subtype==7 then local max = OffLineModel:getInstance():GetNumMax(self.vo.type_id) if has_num < max then max = has_num end self.addNumComponent:InitData(1,has_num,1, max) elseif self.vo.type == 37 and self.vo.subtype == 2 then--经验药水 self.addNumComponent:InitData(1,has_num,1,1) elseif self.vo.type == 38 and (self.vo.subtype == 35 or self.vo.subtype == 34) then--副本扫荡卷 self.addNumComponent:InitData(1,has_num,1,1) else local num = self.cur_count or has_num self.addNumComponent:InitData(1,has_num,1,num) end end function GoodsBatchBuyView:ChangeCount(count) if self.vo and self.vo.type_id then self.awardItem:SetData(self.vo.type_id, count, nil, nil, nil, nil, nil, nil, nil, true) end end function GoodsBatchBuyView:Clear( ) if self.awardItem then self.awardItem:ReleaseObj() 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 function GoodsBatchBuyView:BtnCall( ) if not self.vo or not self.goods_id then return end local cur_num = self.addNumComponent:GetCurrCount()--self.buy_slider.value if cur_num==0 then Message.show("使用数量不能为0") return else if self.vo.type==38 and self.vo.subtype==7 then --离线挂机卡特殊判断 OffLineModel:getInstance():OnBuy(self.goods_id, cur_num) elseif self.vo.type==37 and self.vo.subtype==3 then FishModel:getInstance():OnBuy(self.goods_id, cur_num) else GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT, 15050, self.goods_id, self.vo.type_id, cur_num) end if self.vo.type == 16 and self.vo.subtype == 7 then -- 坐骑幻形 HorseModel:getInstance():UseItem(self.vo.type_id) end if self.vo.type == 20 and self.vo.subtype == 5 then -- 坐骑幻形 WingModel:getInstance():UseItem(self.vo.type_id) end end self:Close() end