PGRData/Resources/Scripts/XUi/XUiReport/XUiReport.lua
2022-12-26 14:06:01 +05:30

105 lines
No EOL
3.3 KiB
Lua

local XUiReport = XLuaUiManager.Register(XLuaUi, "UiReport")
function XUiReport:OnStart(playerId, playerName, playerLevel, chatContent, callback)
self.PlayerId = playerId
self.PlayerName = playerName
self.TxtReportName.text = playerName
self.PlayerLevel = playerLevel
self.ChatContent = chatContent
self.CallBack = callback
self.BtnClose.CallBack = function() self:OnBtnClose() end
self.BtnConfirm.CallBack = function() self:OnBtnConfirm() end
self.TimerId = XScheduleManager.ScheduleForever(function()
self.TxtCount.text = (self.InputField.textComponent.cachedTextGenerator.characterCount - 1) .. "/100"
end, 300)
self.MainTabs = {}
self.CurSelectMainIndex = 0
self.SubTabs = {}
self.CurSelectSubIndex = 0
self:UpdateTabs()
end
function XUiReport:OnDestroy()
self:RemoveTimer()
end
function XUiReport:RemoveTimer()
if self.TimerId then
XScheduleManager.UnSchedule(self.TimerId)
self.TimerId = nil
end
end
function XUiReport:UpdateTabs()
local data = XReportConfigs.GetReportCfg()
for k, v in pairs(data) do
if v.ParentId == 0 then
if not self.MainTabs[k] then
local tabObj = CS.UnityEngine.Object.Instantiate(self.UiObj:GetPrefab("BtnReportType"))
tabObj.transform:SetParent(self.PanelSelectGroup.transform, false)
local xUiButton = tabObj:GetComponent("XUiButton")
xUiButton:SetName(v.Name)
table.insert(self.MainTabs, k, xUiButton)
end
end
end
self.PanelSelectGroup:Init(self.MainTabs, function(index) self:OnMainTab(index) end)
end
function XUiReport:OnMainTab(index)
self.InputField.text = ""
self.CurSelectMainIndex = index
self:UpdateSubTabs(index)
end
function XUiReport:UpdateSubTabs(index)
--clean
for _, v in pairs(self.SubTabs) do
CS.UnityEngine.GameObject.Destroy(v.gameObject)
end
self.SubTabs = {}
local data = XReportConfigs.GetReportCfg()
local count = 1
for k, v in pairs(data) do
if v.ParentId == index then
local tabObj = CS.UnityEngine.Object.Instantiate(self.UiObj:GetPrefab("BtnReportSubType"))
tabObj.transform:SetParent(self.PanelSelectSubGroup.transform, false)
local xUiButton = tabObj:GetComponent("XUiButton")
xUiButton:SetName(v.Name)
self.SubTabs[k] = xUiButton
count = count + 1
end
end
self.PanelSelectSubGroup:Init(self.SubTabs, function(idx) self:OnSubTab(idx) end)
end
function XUiReport:OnBtnClose()
self:Close()
end
--玩法选择
function XUiReport:OnSubTab(index)
local data = XReportConfigs.GetReportCfg()
for _, v in pairs(data) do
if v.Id == index then
self.InputField.text = CS.XTextManager.GetText("ReportTemplate", tostring(v.Name))
end
end
self.CurSelectSubIndex = index
end
function XUiReport:OnBtnConfirm()
if self.CurSelectMainIndex == 0 then
XUiManager.TipText("ReportSelectTypeError")
return
end
XDataCenter.ReportManager.Report(self.PlayerId, self.PlayerName, self.CurSelectMainIndex, self.CurSelectSubIndex, self.InputField.text, self.PlayerLevel, self.ChatContent)
if self.CallBack then
self.CallBack()
end
self:Close()
end