105 lines
No EOL
3.3 KiB
Lua
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 |