|
|
BagOneKeySellView = BagOneKeySellView or BaseClass(BaseView)
|
|
|
|
function BagOneKeySellView:__init()
|
|
self.base_file = "bag"
|
|
self.layout_file = "BagOneKeySellView"
|
|
self.layer_name = "UI"
|
|
self.destroy_imm = true
|
|
self:AddPreLoadList("bag",{"BagItem"})
|
|
self.append_to_ctl_queue = false
|
|
self.item_list = {}
|
|
self.data_list = {}
|
|
self.column_num = 5 --一行多少个图标
|
|
--self.use_local_view = true
|
|
self.load_callback = function ()
|
|
self:LoadSuccess()
|
|
self:InitEvent()
|
|
end
|
|
self.open_callback = function ()
|
|
self:InitItems()
|
|
self:GetDataList()
|
|
self:UpdateItems()
|
|
end
|
|
self.close_callback = function ()
|
|
GlobalEventSystem:Fire(EventName.CLOSE_GUIDE_PROMPT_VIEW)
|
|
end
|
|
self.destroy_callback = function ()
|
|
self:Clear()
|
|
end
|
|
end
|
|
|
|
function BagOneKeySellView:Open()
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function BagOneKeySellView:Clear()
|
|
for i,item in pairs(self.item_list) do
|
|
item:DeleteMe()
|
|
end
|
|
self.item_list = {}
|
|
|
|
if self.event_id then
|
|
GoodsModel:getInstance():UnBind(self.event_id)
|
|
self.event_id = nil
|
|
end
|
|
end
|
|
|
|
function BagOneKeySellView:Close()
|
|
BaseView.Close(self)
|
|
end
|
|
|
|
function BagOneKeySellView:LoadSuccess()
|
|
self.scroll_content = self:GetChild("ScrollView/Viewport/Content")
|
|
self.num = self:GetChild("num"):GetComponent("Text")
|
|
self.outeSelete_toggle = self:GetChild("Toggle"):GetComponent("Toggle")
|
|
|
|
self.close_btn,self.sellBtn,self.outeSelete_btn,
|
|
self.tip_image,self.scrollView,self.tip
|
|
= GetChildGameObjects (self.transform,
|
|
{
|
|
"Window/windowCloseBtn","Button","Toggle",
|
|
"TipImage","ScrollView","Tip"
|
|
})
|
|
end
|
|
|
|
|
|
function BagOneKeySellView:InitEvent()
|
|
local function onBtnClickHandler(target)
|
|
if target == self.close_btn then
|
|
self:Close()
|
|
elseif target == self.sellBtn then
|
|
self:SellCall()
|
|
elseif target == self.outeSelete_btn then
|
|
if self.outeSelete_toggle.isOn then
|
|
self.scrollView.gameObject:SetActive(true)
|
|
self.tip.gameObject:SetActive(false)
|
|
|
|
self:GetDataList(true)
|
|
else
|
|
self.scrollView.gameObject:SetActive(false)
|
|
self.tip.gameObject:SetActive(true)
|
|
self.data_list = {}
|
|
end
|
|
end
|
|
end
|
|
AddClickEvent(self.close_btn,onBtnClickHandler)
|
|
AddClickEvent(self.sellBtn,onBtnClickHandler)
|
|
AddClickEvent(self.outeSelete_btn,onBtnClickHandler)
|
|
|
|
local function onChangeBagListHandler()
|
|
if self._use_delete_method then return end
|
|
self:GetDataList(false)
|
|
self:UpdateItems()
|
|
end
|
|
self.event_id = GoodsModel:getInstance():Bind(GoodsModel.CHANGE_BAGLIST,onChangeBagListHandler)
|
|
end
|
|
|
|
function BagOneKeySellView:GetDataList(flagOf0)
|
|
self.data_list = {}
|
|
local list = GoodsModel:getInstance().bag_goods_list
|
|
|
|
for k,vo in pairs(list) do
|
|
if vo.color == 0 and vo.type == GoodsModel.TYPE.EQUIP then
|
|
if flagOf0 then
|
|
if vo.goods_num > 0 then
|
|
table.insert(self.data_list,vo)
|
|
end
|
|
else
|
|
table.insert(self.data_list,vo)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function BagOneKeySellView:InitItems( )
|
|
local info = GoodsModel:getInstance().slot_info_pos_2
|
|
local slot_num = info.slot_num or 0
|
|
for k = 1,slot_num do
|
|
item = self.item_list[k]
|
|
if item == nil then
|
|
item = BagItem.New(self.scroll_content,nil)
|
|
self.item_list[k] = item
|
|
end
|
|
item:SetVoid()
|
|
item:SetVisible(true)
|
|
item:SetPosition((k - 1) % self.column_num * 94 ,math.floor((k - 1) / self.column_num) * -92 )
|
|
end
|
|
self.scroll_content.sizeDelta = Vector2(424,math.ceil((slot_num) / self.column_num) * 92)
|
|
end
|
|
|
|
--设置捐献信息
|
|
function BagOneKeySellView:UpdateItems()
|
|
for k,item in pairs(self.item_list) do
|
|
item:SetVoid()
|
|
end
|
|
local item = nil
|
|
local total_coin = 0
|
|
|
|
for k,v in ipairs(self.data_list) do
|
|
item = self.item_list[k]
|
|
if item == nil then
|
|
item = BagItem.New(self.scroll_content,nil)
|
|
self.item_list[k] = item
|
|
end
|
|
item:SetSellState(true)
|
|
item:SetData(v)
|
|
item:SetVisible(true)
|
|
item:SetPosition((k - 1) % self.column_num * 94,math.floor((k - 1) / self.column_num) * -92)
|
|
if v.goods_num > 0 then
|
|
total_coin = total_coin + GoodsModel:getInstance():GetSellPriceByTypeId(v.type_id)
|
|
end
|
|
end
|
|
self.num.text = total_coin
|
|
end
|
|
|
|
function BagOneKeySellView:SellCall( )
|
|
self:GetDataList(true)
|
|
if #self.data_list <= 0 or not self.outeSelete_toggle.isOn then
|
|
Message.show("无可出售物品")
|
|
else
|
|
UserMsgAdapter.WriteBegin(15021)
|
|
UserMsgAdapter.WriteFMT("h",#self.data_list)
|
|
for k,v in pairs(self.data_list) do
|
|
UserMsgAdapter.WriteFMT("l",v.goods_id)
|
|
UserMsgAdapter.WriteFMT("i",v.goods_num)
|
|
end
|
|
UserMsgAdapter.SendToGame()
|
|
end
|
|
end
|