---@class KLShowStallGoodsItem:UIKmlLuaPanelBase ---@field view KLShowStallGoodsItemView local KLShowStallGoodsItem = class(UIKmlLuaPanelBase) local this = KLShowStallGoodsItem ---创建时调用一次 function this:Init() end ---注册UI事件和服务器消息 function this:RegistEvents() GUI:AddOnClickEvent(self.view.btn_goods_item, self, self.ItemOnClick) end function this:ItemOnClick() --SL:OpenTips(nil,self.itemData.itemcfgid) -- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_ShowStall_GOODS_INFO, {self.itemData.itemid, self.itemData.ownid }) -- GUI:UIPanel_Open("dev/outui/ShowStall/Panel/KLShowStallBuy/KLShowStallBuyPanel", nil, nil, self.itemData) -- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_TRADE_GOODS_INFO, {self.itemData.itemid, self.itemData.ownid }) -- GUI:UIPanel_Open("dev/outui/Trade/Panel/KLTradeBuy/KLTradeBuyPanel", nil, nil, self.itemData) end ---创建或者刷新界面数据时调用 function this:Refresh() end ---@class KLShowStallGoodsItemData ---@field timename string ---@field itemname string ---@field count number ---@field price number ---@field itemcfgid number ---@field cointype number ---@field time number ---@field preordercount number @预订数量 ---@field publicity string 公示区时为1 ---@field itemid number ---@field type number ---@field entrysize number 词条数量 ---@param itemData KLShowStallGoodsItemData function this:UpdateData(itemData) self.itemData = itemData GUI:Text_setString(self.view.txt_item_name, itemData.itemname) GUI:Item_setItemId(self.view.item, itemData.itemcfgid) if itemData.itemcfgid == EMonthType.MonthCardTime then --GUI:Item_UpdataData(self.view.item, { itemcount = 1 }) GUI:Text_setString(self.view.itemCount, "") GUI:SetActive(self.view.monthCardText,true) GUI:Text_setString(self.view.monthCardText,itemData.count.."天") else GUI:SetActive(self.view.monthCardText,false) --GUI:Item_UpdataData(self.view.item, { itemcount = itemData.count }) local numStr = "" if itemData.count > 1 then numStr = tostring(itemData.count) end GUI:Text_setString(self.view.itemCount, numStr) end GUI:Image_loadTexture(self.view.img_coin_type,self:GetCoinIcon(tonumber(itemData.cointype)),"Atlas/UIBagPanel.spriteatlas") local totalPrice = itemData.totalprice local ownCount = SL:GetBagItemCount(tonumber(itemData.cointype)) GUI:Text_setTextColor(self.view.txt_price,ownCount >= totalPrice and "#1ADD1F" or "#FF2323") GUI:Text_setString(self.view.txt_price,tostring(totalPrice)) GUI:Image_loadTexture(self.view.img_coin_type, self:GetCoinIcon(tonumber(itemData.cointype)), "Atlas/UIBagPanel.spriteatlas") GUI:Text_setString(self.view.txt_price, tostring(totalPrice)) if itemData.publicity == 1 then GUI:SetActive(self.view.img_favor_count, true) if table.count(itemData.peroreder) > 0 then GUI:Text_setString(self.view.txt_favor_count, tostring(table.count(itemData.peroreder))) GUI:Image_loadTexture(self.view.img_favor_count,"star","Atlas/KLTradePanel.spriteatlas") else GUI:Text_setString(self.view.txt_favor_count, "") GUI:Image_loadTexture(self.view.img_favor_count,"star_kong","Atlas/KLTradePanel.spriteatlas") end else GUI:SetActive(self.view.img_favor_count, false) end self:Tick() self:ShowQualityUI() end function this:ShowQualityUI() if self.qualityItem then self.qualityItem:SetData(self.itemData.itemcfgid, self.itemData.entrysize) else if not GUI:IsWebGLAsync() then self.qualityItem = GUI:UIPanel_Open("dev/ui/Common/Item/KLEquipQualityEntry/KLEquipQualityEntryItem", self.view.root, self, { cfgId = self.itemData.itemcfgid, entryCount = self.itemData.entrysize }, true) else GUI:UIPanel_Open("dev/ui/Common/Item/KLEquipQualityEntry/KLEquipQualityEntryItem", self.view.root, self, { cfgId = self.itemData.itemcfgid, entryCount = self.itemData.entrysize }, true, function ( tempUI ) self.qualityItem = tempUI end) end end end function this:GetCoinIcon(coinType) if coinType == 10010001 then return "img_bag_01" elseif coinType == 10020001 then return "img_bag_02" elseif coinType == 10030001 then return "img_bag_03" elseif coinType == 10040001 then return "img_bag_04" end end function this:Close() if self.qualityItem then GUI:UIPanel_Close(nil, self.qualityItem) self.qualityItem = nil end end function this:Tick() if not self.itemData or not self.itemData.time then return false end self.itemData.time = self.itemData.time - 1 if self.itemData.time <= 0 then GUI:Text_setString(self.view.txt_count_down, "") return true else if self.itemData.time <= 3*60*60 or self.itemData.publicity == "1" then local timeInfo = SL:SecondToHMS(math.floor(self.itemData.time)) local timeStr = string.format("%02s:%02s:%02s",timeInfo.h,timeInfo.m,timeInfo.s) GUI:Text_setString(self.view.txt_count_down, self.itemData.timename .. " " .. timeStr) else GUI:Text_setString(self.view.txt_count_down, "") end end end return this