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