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