WardrobeShopItem = WardrobeShopItem or BaseClass(BaseItem) local WardrobeShopItem = WardrobeShopItem function WardrobeShopItem:__init() self.base_file = "wardrobe" self.layout_file = "WardrobeShopItem" self.model = WardrobeModel:GetInstance() self.gray_mat = ShaderTools.gray_mat self:Load() end function WardrobeShopItem:Load_callback() self.nodes = { "price_con/price_text:tmp", "bg:imgex", "name_text:tmp", "tip_image:obj:img", "discount_text:tmp:obj", "limit_text:tmp", "discount_bg:obj", "price_con", "price_con/money_icon:img:obj", "item_con", "click_con:obj", } self:GetChildren(self.nodes) self.awardItem = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.item_con) self.awardItem:SetItemSize(62, 62) self.awardItem:SetEnableClick(false) self:AddEvents() if self.need_refreshData or self.need_refreshServerData then self:UpdateView() end end function WardrobeShopItem:AddEvents( ) local function on_click( ... ) self:OpenTipsView() end AddClickEvent(self.click_con_obj, on_click) end function WardrobeShopItem:UpdateView( ) local data = self.data if not data then return end local server_data = self.server_data local function call_back( ) self:SetVisible(true) end local goodsVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(data.goods_id) if not goodsVo then print("HWR:WardrobeShopItem [46]no goods id: ", data.goods_id) return end self.awardItem:SetData(data.goods_id, data.goods_num, nil, nil) lua_resM:setImageSprite(self, self.bg_imgex, "shopOut_asset", "shop_item_color"..goodsVo.color, false, call_back) local is_buy_out = false local left_num = data.limit_num if server_data then is_buy_out = data.limit_num <= server_data.num left_num = data.limit_num - server_data.num else end local limit_str = "终身限购 %s/%s" if data.limit_type > 0 then left_num = left_num > 0 and left_num or 0 local color_str = left_num > 0 and ColorUtil.GREEN_DARK or ColorUtil.RED_DARK if data.limit_type == 1 then limit_str = "每周限购 %s/%s" elseif data.limit_type == 2 then limit_str = "每日限购 %s/%s" elseif data.limit_type == 3 then limit_str = "终身限购 %s/%s" end self.limit_text_tmp.text = string.format(limit_str, HtmlColorTxt(left_num, color_str), data.limit_num) else self.limit_text_tmp.text = "" end local shop_price = round(data.price * data.discount / 100) self.price_text_tmp.text = shop_price SetSizeDeltaX(self.price_text, self.price_text_tmp.preferredWidth) self.discount_text_tmp.text = (data.discount / 10).."折" self.discount_bg_obj:SetActive(data.discount < 100) self.discount_text_obj:SetActive(data.discount < 100) self:SetItemGary(is_buy_out) end function WardrobeShopItem:SetData( data,index ) self.data = data self.index = index if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function WardrobeShopItem:SetServerData( data ) self.server_data = data if self.is_loaded then self.need_refreshServerData = false self:UpdateView() else self.need_refreshServerData = true end end function WardrobeShopItem:SetItemGary(bool) local mat = bool and self.gray_mat or nil local data = self.data if bool then self.price_text_tmp.text = "已售完" self.money_icon_obj:SetActive(false) else self.money_icon_obj:SetActive(true) end self:SetMoneyIcon() self.price_text_tmp.color = bool and ColorUtilValue.GRAY_DARK or ColorUtil:ConvertHexToRGBColor("#fdffc2") local goods_name = GoodsModel:getInstance():getGoodsName(data.goods_id, not bool) self.goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(data.goods_id) self.name_text_tmp.color = bool and ColorUtilValue.GRAY_DARK or ColorUtil:ConvertHexToRGBColor("#ffffff") self.name_text_tmp.text = goods_name self.bg_imgex.gray = bool self.awardItem:SetGray(bool) if bool then self.tip_image_obj:SetActive(true) lua_resM:setImageSprite(self, self.tip_image_img, "wardrobe_asset", "wardrobe_type0", true) else local tips = data.tag if tips >= 1 then lua_resM:setImageSprite(self, self.tip_image_img, "wardrobe_asset", "wardrobe_type"..tips, true) end self.tip_image_obj:SetActive(tips >= 1) end end -- 加载货币图标 function WardrobeShopItem:SetMoneyIcon() if not self.data or not self.data.money_type then return end local asset, source = WordManager:GetCommonMoneyIcon(self.data.money_type) self.money_icon.transform.sizeDelta = co.TableXY(25,25) lua_resM:setImageSprite(self, self.money_icon_img, asset, source) end function WardrobeShopItem:OpenTipsView( ) if self.goods_basic.type == GoodsModel.TYPE.EQUIP then --装备鉴定物 UIToolTipMgr:getInstance():AppendEquipTips(self.goods_basic.type_id, x, y,nil,nil,nil,nil,"shop_buy",self.data) else local data = { shop_data = self.data, } data.shop_data.quota_type = self.data.limit_type data.shop_data.quota_num = self.data.limit_num if self.server_data then data.shop_data.sold_out = self.server_data.num else data.shop_data.sold_out = 0 end data.shop_data.is_wardrobe_shop = true UIToolTipMgr:getInstance():AppendGoodsTips(self.goods_basic.type_id, x, y, nil, nil,data, true) end end function WardrobeShopItem:__delete( ) if self.awardItem then UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.awardItem) self.awardItem = nil end end