源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

159 lines
4.9 KiB

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 = "<color="..WordManager.GetGoodsColor(self.vo.color)..">" .. Trim(self.vo.goods_name).."</color>"
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