|
|
-
- 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
|