ro-table/Asstes/Resources/Script/FrameWork/GUI/view/Auction/AuctionSignUpDetailView.txt
2025-06-04 05:02:57 +08:00

119 lines
3.3 KiB
Plaintext

AuctionSignUpDetailView = class("AuctionSignUpDetailView", ContainerView)
AuctionSignUpDetailView.ViewType = UIViewType.PopUpLayer
local iteminfo = {}
function AuctionSignUpDetailView:OnExit()
if self.itemTipCell then
self.itemTipCell:Exit()
end
if self.timeTick then
TimeTickManager.Me():ClearTick(self)
self.timeTick = nil
end
AuctionSignUpDetailView.super.OnExit(self)
end
function AuctionSignUpDetailView:Init()
self:FindObjs()
self:AddEvts()
self:AddViewEvts()
self:InitShow()
end
function AuctionSignUpDetailView:FindObjs()
self.ownInfo = self:FindGO("OwnInfo"):GetComponent(UILabel)
self.money = self:FindGO("Money"):GetComponent(UILabel)
self.countdown = self:FindGO("Countdown"):GetComponent(UILabel)
self.rate = self:FindGO("Rate"):GetComponent(UILabel)
end
function AuctionSignUpDetailView:AddEvts()
local confirmBtn = self:FindGO("ConfirmBtn")
self:AddClickEvent(confirmBtn, function ()
self:Confirm()
end)
end
function AuctionSignUpDetailView:AddViewEvts()
self:AddListenEvt(ServiceEvent.RecordTradeReqServerPriceRecordTradeCmd, self.HandlePrice)
end
function AuctionSignUpDetailView:InitShow()
local data = self.viewdata.viewdata
if data then
self.itemTipCell = ItemTipBaseCell.new(self.gameObject)
self.itemTipCell:SetData(data.itemdata)
self.itemid = data.itemdata.staticData.id
local own = BagProxy.Instance:GetItemNumByStaticID(self.itemid)
self.ownInfo.text = own or 0
if data.price ~= nil then
self:UpdatePrice(data.price)
else
FunctionItemTrade.Me():GetTradePrice(data.itemdata, true, false)
end
self.rate.text = string.format(ZhString.Auction_Rate, GameConfig.Auction.Rate * 100)
if self.timeTick == nil then
self.timeTick = TimeTickManager.Me():CreateTick(0, 1000, self.UpdateCountdown, self)
end
end
end
function AuctionSignUpDetailView:Confirm()
local data = self.viewdata.viewdata
if data then
MsgManager.ConfirmMsgByID(9501, function ()
local equipInfo = data.itemdata.equipInfo
if equipInfo and equipInfo.equiplv > 0 then
local cost = GameConfig.EquipRecover.Upgrade[equipInfo.equiplv] or 0
MsgManager.ConfirmMsgByID(10302, function ()
ServiceItemProxy.Instance:CallRestoreEquipItemCmd(data.itemdata.id , false , nil , false, true)
end, nil, nil, cost)
else
TableUtility.TableClear(iteminfo)
iteminfo.itemid = self.itemid
helplog("CallSignUpItemCCmd", self.itemid, data.itemdata.id)
ServiceAuctionCCmdProxy.Instance:CallSignUpItemCCmd(iteminfo, nil , data.itemdata.id)
end
self:CloseSelf()
end)
end
end
function AuctionSignUpDetailView:UpdatePrice(price)
if price ~= nil then
self.money.text = StringUtil.NumThousandFormat(price)
end
end
function AuctionSignUpDetailView: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)
self.countdown.text = string.format(ZhString.Auction_Countdown, day, hour, min, sec)
return
end
end
self.countdown.gameObject:SetActive(false)
end
function AuctionSignUpDetailView:HandlePrice(note)
local data = note.body
if data ~= nil then
if data.itemData.base.id == self.itemid then
local price = data.price * GameConfig.Auction.TradePriceDiscount / 100
self:UpdatePrice(price)
end
end
end