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