2025-06-04 05:12:01 +08:00

146 lines
4.2 KiB
Plaintext

autoImport("AuctionSignUpCell")
AuctionSignUpView = class("AuctionSignUpView", ContainerView)
AuctionSignUpView.ViewType = UIViewType.NormalLayer
local bgName = "auction_bg_background"
local function Sort(l, r)
local lCanSignUp = l:CanSignUp()
local rCanSignUp = r:CanSignUp()
if lCanSignUp == rCanSignUp then
local lequip = Table_Equip[l.itemid]
local requip = Table_Equip[r.itemid]
if lequip ~= nil and requip ~= nil then
local lcard = Table_Card[l.itemid]
local rcard = Table_Card[r.itemid]
if lcard ~= nil and rcard ~= nil then
return l.itemid < r.itemid
else
return lcard ~= nil
end
else
return lequip ~= nil
end
else
return lCanSignUp
end
end
function AuctionSignUpView:OnEnter()
AuctionSignUpView.super.OnEnter(self)
ServiceAuctionCCmdProxy.Instance:CallOpenAuctionPanelCCmd(true)
end
function AuctionSignUpView:OnExit()
if self.timeTick then
TimeTickManager.Me():ClearTick(self)
self.timeTick = nil
end
ServiceAuctionCCmdProxy.Instance:CallOpenAuctionPanelCCmd(false)
local _PictureManager = PictureManager.Instance
_PictureManager:UnLoadAuction(bgName, self.bg)
_PictureManager:UnLoadAuction(bgName, self.bg1)
AuctionSignUpView.super.OnExit(self)
end
function AuctionSignUpView:Init()
self:FindObjs()
self:AddEvts()
self:AddViewEvts()
self:InitShow()
end
function AuctionSignUpView:FindObjs()
self.bg = self:FindGO("Background"):GetComponent(UITexture)
self.bg1 = self:FindGO("Background1"):GetComponent(UITexture)
self.countdown = self:FindGO("Countdown"):GetComponent(UILabel)
self.recordBtn = self:FindGO("RecordBtn")
end
function AuctionSignUpView:AddEvts()
local lastAuctionBtn = self:FindGO("LastAuctionBtn")
self:AddClickEvent(lastAuctionBtn, function ()
self:LastAuction()
end)
self:AddClickEvent(self.recordBtn, function ()
self:Record()
end)
end
function AuctionSignUpView:AddViewEvts()
self:AddListenEvt(ServiceEvent.AuctionCCmdNtfAuctionStateCCmd, self.UpdateItem)
self:AddListenEvt(ServiceEvent.AuctionCCmdNtfSignUpInfoCCmd, self.UpdateItem)
self:AddListenEvt(ServiceEvent.AuctionCCmdNtfMySignUpInfoCCmd, self.UpdateItem)
self:AddListenEvt(ServiceEvent.AuctionCCmdSignUpItemCCmd, self.UpdateItem)
self:AddListenEvt(ItemEvent.ItemUpdate, self.UpdateItem)
end
function AuctionSignUpView:InitShow()
self.tipData = {}
self.tipData.funcConfig = {}
local _PictureManager = PictureManager.Instance
_PictureManager:SetAuction(bgName, self.bg)
_PictureManager:SetAuction(bgName, self.bg1)
self:RegisterRedTipCheck(SceneTip_pb.EREDSYS_AUCTION_RECORD, self.recordBtn, 3, {-5,-5})
local contentContainer = self:FindGO("ContentContainer")
local wrapConfig = {
wrapObj = contentContainer,
pfbNum = 6,
cellName = "AuctionSignUpCell",
control = AuctionSignUpCell,
dir = 1,
}
self.itemWrapHelper = WrapCellHelper.new(wrapConfig)
self.itemWrapHelper:AddEventListener(MouseEvent.MouseClick, self.HandleSelect, self)
self:UpdateItem()
if self.timeTick == nil then
self.timeTick = TimeTickManager.Me():CreateTick(0, 1000, self.UpdateCountdown, self)
end
end
function AuctionSignUpView:UpdateItem()
local data = AuctionProxy.Instance:GetSignUpList()
if data then
table.sort(data, Sort)
self.itemWrapHelper:ResetDatas(data)
end
end
function AuctionSignUpView:UpdateCountdown()
local auctionTime = AuctionProxy.Instance:GetAuctionTime()
if auctionTime then
local totalSec = auctionTime - ServerTime.CurServerTime()/1000
if totalSec > 0 then
local day,hour,min,sec = ClientTimeUtil.FormatTimeBySec(totalSec)
if AuctionProxy.Instance:GetDelay() then
self.countdown.text = string.format(ZhString.Auction_DelayCountdown, day, hour, min, sec)
else
self.countdown.text = string.format(ZhString.Auction_Countdown, day, hour, min, sec)
end
end
end
end
function AuctionSignUpView:LastAuction()
ServiceAuctionCCmdProxy.Instance:CallReqLastAuctionInfoCCmd()
end
function AuctionSignUpView:Record()
self:sendNotification(UIEvent.JumpPanel, {view = PanelConfig.AuctionRecordView})
end
function AuctionSignUpView:HandleSelect(cell)
local data = cell.data
if data then
self.tipData.itemdata = data.itemData
self:ShowItemTip(self.tipData, cell.icon, NGUIUtil.AnchorSide.Left, {-220,0})
end
end