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