2025-06-04 05:02:57 +08:00

228 lines
6.2 KiB
Plaintext

QuotaCardView = class("QuotaCardView",ContainerView)
autoImport("QuotaLogCell")
autoImport("QuotaDetailCell")
QuotaCardView.ViewType = UIViewType.NormalLayer
QuotaCardView.moneyID=149
local textureName = "auction_bg_card"
function QuotaCardView:Init()
self:FindObjs()
self:AddEvts()
self:InitUIView()
self:MapListenEvt()
self.pageMap = {};
self.pageDetailMap = {};
end
function QuotaCardView:FindObjs()
self.goBtn = self:FindGO("goBtn")
self.desc = self:FindGO("desc"):GetComponent(UILabel)
self.accountLab = self:FindGO("accountLab"):GetComponent(UILabel)
self.lock = self:FindGO("Lock"):GetComponent(UILabel)
self.pointLimitDate = self:FindGO("pointLimitDate")
self.desc2 = self:FindGO("desc2"):GetComponent(UILabel)
self.quotaDetail=self:FindGO("quotaDetail")
self.icon=self:FindGO("icon"):GetComponent(UISprite)
self.texture=self:FindGO("Texture"):GetComponent(UITexture)
self.accountLine = self:FindGO("AccountLine"):GetComponent(UISprite)
end
function QuotaCardView:AddEvts()
self:AddClickEvent(self.goBtn,function (g)
self:OnClickGoBtn()
end)
self:AddClickEvent(self.pointLimitDate,function (g)
self:OnClickPointLimitDate()
end)
end
function QuotaCardView:InitUIView()
PictureManager.Instance:SetQuota(textureName, self.texture)
self.desc.text=ZhString.QuotaCard_Desc
local _MyselfProxy = MyselfProxy.Instance
local quota = _MyselfProxy:GetQuota()
local lockQuota = _MyselfProxy:GetQuotaLock()
self.accountLab.text= string.format(ZhString.QuotaCard_QuotaTitle, quota)
self.lock.text = string.format(ZhString.QuotaCard_LockTitle, lockQuota)
self.accountLine.fillAmount = quota / (quota + lockQuota)
local iconName=Table_Item[QuotaCardView.moneyID] and Table_Item[QuotaCardView.moneyID].Icon or "item_100"
IconManager:SetItemIcon(iconName, self.icon);
self.desc2.text=ZhString.QuotaCard_Desc2
local logWrap = self:FindGO("LogWrapContent");
local wrapConfig = {
wrapObj = logWrap,
cellName = "QuotaLogCell",
control = QuotaLogCell,
};
self.logCtl = WrapCellHelper.new(wrapConfig);
local logWrap = self:FindGO("detailWrapContent");
local wrapConfig = {
wrapObj = logWrap,
cellName = "QuotaDetailCell",
control = QuotaDetailCell,
};
self.detailCtl = WrapCellHelper.new(wrapConfig);
local logScroll = self:FindComponent("logScroll", UIScrollView);
logScroll.momentumAmount = 100;
NGUIUtil.HelpChangePageByDrag(logScroll, function ()
self:GetPreLogPage();
end, function ()
self:GetNextLogPage();
end, 120)
local detailScroll = self:FindComponent("detailScroll", UIScrollView);
detailScroll.momentumAmount = 100;
NGUIUtil.HelpChangePageByDrag(detailScroll, function ()
self:GetPreDetailPage();
end, function ()
self:GetNextDetailPage();
end, 120)
end
function QuotaCardView:OnClickGoBtn()
GameFacade.Instance:sendNotification(UIEvent.JumpPanel,{view = PanelConfig.ZenyShop});
end
function QuotaCardView:OnClickPointLimitDate()
self:Show(self.quotaDetail)
self:QueryDetailList(1)
end
function QuotaCardView:GetPreLogPage()
if(self.nowLogPage)then
local page = math.max(self.nowLogPage - 1, 1);
self:QueryLogList(page);
end
end
function QuotaCardView:GetPreDetailPage()
if(self.nowDetailPage)then
local page = math.max(self.nowDetailPage - 1, 1);
self:QueryDetailList(page);
end
end
function QuotaCardView:GetNextLogPage()
if(self.nowLogPage)then
local page = self.nowLogPage + 1;
if(self.maxPage)then
page = math.min(self.maxPage, page);
end
self:QueryLogList(page);
end
end
function QuotaCardView:GetNextDetailPage()
if(self.nowDetailPage)then
local page = self.nowDetailPage + 1;
if(self.maxDetailPage)then
page = math.min(self.maxDetailPage, page);
end
self:QueryDetailList(page);
end
end
function QuotaCardView:QueryLogList(page)
if(GameConfig.SystemForbid.Limit)then
self:CloseSelf()
return
end
self.preLogPage = self.nowLogPage;
self.nowLogPage = page or 0;
if(not self.pageMap[self.nowLogPage])then
self.pageMap[self.nowLogPage] = 1;
ServiceItemProxy.Instance:CallReqQuotaLogCmd(self.nowLogPage)
end
end
function QuotaCardView:QueryDetailList(page)
self.preDetailPage = self.nowDetailPage;
self.nowDetailPage = page or 0;
if(not self.pageDetailMap[self.nowDetailPage])then
self.pageDetailMap[self.nowDetailPage] = 1;
ServiceItemProxy.Instance:CallReqQuotaDetailCmd(self.nowDetailPage)
end
end
function QuotaCardView:MapListenEvt()
self:AddListenEvt(ServiceEvent.ItemReqQuotaDetailCmd, self.HandleQuotaDetailList);
self:AddListenEvt(ServiceEvent.ItemReqQuotaLogCmd, self.HandleQuotaLogList);
end
function QuotaCardView:HandleQuotaDetailList(note)
local datas = QuotaCardProxy.Instance:GetDetailData();
if(self.preDetailPage)then
if(#datas > 0)then
if(self.nowDetailPage > 1)then
MsgManager.FloatMsg(nil, ZhString.QuotaCard_Loading);
end
if(self.nowDetailPage < self.preDetailPage)then
for i=#datas, 1, -1 do
self.detailCtl:InsertData(datas[i], 1);
end
elseif(self.preDetailPage < self.nowDetailPage)then
for i=1,#datas do
self.detailCtl:InsertData(datas[i]);
end
end
else
MsgManager.FloatMsg(nil, ZhString.QuotaCard_End);
self.nowDetailPage = self.preDetailPage;
self.maxDetailPage = self.nowDetailPage;
end
elseif(self.nowDetailPage)then
self.detailCtl:ResetDatas(datas);
end
local alldatas = self.detailCtl:GetDatas();
-- helplog("detailCtl alldatas count : ",#alldatas)
end
function QuotaCardView:HandleQuotaLogList(note)
local datas = QuotaCardProxy.Instance:GetLogData();
if(self.preLogPage)then
if(#datas > 0)then
if(self.nowLogPage > 1)then
MsgManager.FloatMsg(nil, ZhString.QuotaCard_Loading);
end
if(self.nowLogPage < self.preLogPage)then
for i=#datas, 1, -1 do
self.logCtl:InsertData(datas[i], 1);
end
elseif(self.preLogPage < self.nowLogPage)then
for i=1,#datas do
self.logCtl:InsertData(datas[i]);
end
end
else
MsgManager.FloatMsg(nil, ZhString.QuotaCard_End);
self.nowLogPage = self.preLogPage;
self.maxPage = self.nowLogPage;
end
elseif(self.nowLogPage)then
self.logCtl:ResetDatas(datas);
end
end
function QuotaCardView:OnEnter()
QuotaCardProxy.Instance:Init()
QuotaCardView.super.OnEnter(self);
self:QueryLogList(1);
end
function QuotaCardView:OnExit()
PictureManager.Instance:UnLoadQuota()
QuotaCardView.super.OnExit(self);
end