ChatDressCosumeItem = ChatDressCosumeItem or BaseClass(BaseItem)
|
|
|
|
function ChatDressCosumeItem:__init(parent)
|
|
self.base_file = "chatDress"
|
|
self.layout_file = "ChatDressCosumeItem"
|
|
-- self.use_local_view = true
|
|
self.type_id = 0
|
|
self.have_num = 0
|
|
self.use_num = 0
|
|
self.model = ChatDressModel:getInstance()
|
|
|
|
self:Load()
|
|
end
|
|
|
|
function ChatDressCosumeItem:Load_callback()
|
|
self.icon = self:GetChild("icon")
|
|
|
|
self.select
|
|
= GetChildGameObjects(self.transform, {
|
|
"select"
|
|
})
|
|
self.item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.icon)
|
|
self.item.ClickCallFun = function ()
|
|
self:SelectAll(not self.select.activeSelf)
|
|
end
|
|
if self.need_refreshData then
|
|
self:SetData(self.vo,self.select_all)
|
|
end
|
|
if self.select_cache then
|
|
self.select_cache = false
|
|
self:SelectAll(self.select_state)
|
|
end
|
|
self:InitEvent()
|
|
end
|
|
|
|
function ChatDressCosumeItem:InitEvent()
|
|
|
|
local function onBagChange()
|
|
self.have_num = GoodsModel:getInstance():GetTypeGoodsNum(self.type_id)
|
|
if self.have_num <= 0 then
|
|
self:SetVisible(false)
|
|
end
|
|
if self.select.activeSelf then
|
|
self.model:Fire(ChatDressEvent.ADD_COSUME_ITEM, self.type_id, self.have_num)
|
|
end
|
|
end
|
|
self.change_bag_event_id = GoodsModel:getInstance():Bind(GoodsModel.CHANGE_BAGLIST, onBagChange)
|
|
end
|
|
|
|
function ChatDressCosumeItem:SetData(vo,select_all)
|
|
self.vo = vo
|
|
self.select_all = select_all
|
|
self.have_num = vo.goods_num
|
|
self.use_num = 0
|
|
self.type_id = vo.type_id
|
|
|
|
if self.is_loaded then
|
|
self.item:SetData(self.type_id, self.have_num)
|
|
if self.select.activeSelf then
|
|
self.model:Fire(ChatDressEvent.ADD_COSUME_ITEM, self.type_id, self.use_num)
|
|
end
|
|
if select_all then
|
|
self:SelectAll(true)
|
|
end
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
end
|
|
|
|
function ChatDressCosumeItem:SelectAll(bool)
|
|
self.select_state = bool
|
|
if self.is_loaded then
|
|
if bool then
|
|
self.use_num = self.have_num
|
|
else
|
|
self.use_num = 0
|
|
end
|
|
self.select:SetActive(bool)
|
|
self.model:Fire(ChatDressEvent.ADD_COSUME_ITEM, self.type_id, self.use_num)
|
|
else
|
|
self.select_cache = true
|
|
end
|
|
|
|
end
|
|
|
|
function ChatDressCosumeItem:__delete()
|
|
if self.item then
|
|
self.item:ReleaseObj()
|
|
self.item = nil
|
|
end
|
|
|
|
if self.change_bag_event_id then
|
|
GoodsModel:getInstance():UnBind(self.change_bag_event_id)
|
|
self.change_bag_event_id = nil
|
|
end
|
|
end
|