2023-07-15 02:35:33 +07:00
|
|
|
|
local XUiDialog = XLuaUiManager.Register(XLuaUi, "UiDialog")
|
|
|
|
|
|
|
|
|
|
function XUiDialog:OnAwake()
|
2024-09-01 22:49:41 +02:00
|
|
|
|
self.LastOperationType = CS.XInputManager.CurOperationType
|
2023-07-15 02:35:33 +07:00
|
|
|
|
self:AutoAddListener()
|
|
|
|
|
end
|
|
|
|
|
|
2024-09-01 22:49:41 +02:00
|
|
|
|
function XUiDialog:OnStart(title, content, dialogType, closeCallback, sureCallback, data, cancelCallBack)
|
2023-07-15 02:35:33 +07:00
|
|
|
|
---- 处理额外参数 -----
|
|
|
|
|
local ItemIds, sureText, closeText
|
2024-09-01 22:49:41 +02:00
|
|
|
|
local content2, content3 --content2存在时用TxtInfo2替换TxtInfoNormal显示
|
2023-07-15 02:35:33 +07:00
|
|
|
|
if data then
|
2024-09-01 22:49:41 +02:00
|
|
|
|
ItemIds = { data.ItemId1, data.ItemId2, data.ItemId3 }
|
2023-07-15 02:35:33 +07:00
|
|
|
|
sureText = data.sureText
|
|
|
|
|
closeText = data.closeText
|
2024-09-01 22:49:41 +02:00
|
|
|
|
content2 = data.Content2
|
|
|
|
|
content3 = data.Content3
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if content2 then
|
|
|
|
|
self.TxtInfoNormal.gameObject:SetActiveEx(false)
|
|
|
|
|
self.TxtInfo2.text = string.gsub(content2, "\\n", "\n")
|
|
|
|
|
self.TxtInfo2.gameObject:SetActiveEx(true)
|
|
|
|
|
else
|
|
|
|
|
self.TxtInfo2.gameObject:SetActiveEx(false)
|
2023-07-15 02:35:33 +07:00
|
|
|
|
end
|
2024-09-01 22:49:41 +02:00
|
|
|
|
|
|
|
|
|
if content3 then
|
|
|
|
|
self.TxtInfo3.text = string.gsub(content3, "\\n", "\n")
|
|
|
|
|
self.TxtInfo3.gameObject:SetActiveEx(true)
|
|
|
|
|
else
|
|
|
|
|
self.TxtInfo3.gameObject:SetActiveEx(false)
|
|
|
|
|
end
|
|
|
|
|
|
2023-07-15 02:35:33 +07:00
|
|
|
|
if ItemIds and #ItemIds > 0 then
|
|
|
|
|
self.PanelActivityAsset.gameObject:SetActive(true)
|
|
|
|
|
XUiPanelAsset.New(self, self.PanelActivityAsset, ItemIds[1], ItemIds[2], ItemIds[3])
|
|
|
|
|
else
|
|
|
|
|
self.PanelActivityAsset.gameObject:SetActive(false)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if sureText then
|
|
|
|
|
self.BtnConfirm:SetNameByGroup(0, sureText)
|
|
|
|
|
self.BtnConfirmB:SetNameByGroup(0, sureText)
|
|
|
|
|
end
|
2024-09-01 22:49:41 +02:00
|
|
|
|
|
2023-07-15 02:35:33 +07:00
|
|
|
|
if closeText then
|
|
|
|
|
self.BtnClose:SetNameByGroup(0, closeText)
|
|
|
|
|
self.BtnCloseA:SetNameByGroup(0, closeText)
|
|
|
|
|
end
|
|
|
|
|
---- end -----
|
2024-09-01 22:49:41 +02:00
|
|
|
|
|
2023-07-15 02:35:33 +07:00
|
|
|
|
self:HideDialogLayer()
|
|
|
|
|
if title then
|
|
|
|
|
self.TxtTitle.text = title
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if dialogType == XUiManager.DialogType.Normal then
|
|
|
|
|
self.PanelDialog.gameObject:SetActive(true)
|
|
|
|
|
self.TxtInfoNormal.text = string.gsub(content, "\\n", "\n")
|
|
|
|
|
self.EnableAnimation = "DialogEnable"
|
|
|
|
|
elseif dialogType == XUiManager.DialogType.OnlySure then
|
|
|
|
|
self.PanelSureDialog.gameObject:SetActive(true)
|
|
|
|
|
self.TxtInfoSure.text = string.gsub(content, "\\n", "\n")
|
|
|
|
|
self.EnableAnimation = "SureDialogEnable"
|
|
|
|
|
elseif dialogType == XUiManager.DialogType.OnlyClose then
|
|
|
|
|
self.PanelCloseDialog.gameObject:SetActive(true)
|
|
|
|
|
self.TxtInfoClose.text = string.gsub(content, "\\n", "\n")
|
|
|
|
|
self.EnableAnimation = "CloseDialogEnable"
|
|
|
|
|
elseif dialogType == XUiManager.DialogType.NoBtn then
|
|
|
|
|
self.PanelDialog.gameObject:SetActive(true)
|
|
|
|
|
self.BtnConfirm.gameObject:SetActive(false)
|
|
|
|
|
self.BtnClose.gameObject:SetActive(false)
|
|
|
|
|
self.TxtInfoNormal.text = string.gsub(content, "\\n", "\n")
|
|
|
|
|
self.EnableAnimation = "DialogEnable"
|
|
|
|
|
elseif dialogType == XUiManager.DialogType.NormalAndNoBtnTanchuangClose then
|
|
|
|
|
self.BtnTanchuangClose.gameObject:SetActive(false)
|
|
|
|
|
self.PanelDialog.gameObject:SetActive(true)
|
|
|
|
|
self.TxtInfoNormal.text = string.gsub(content, "\\n", "\n")
|
|
|
|
|
self.EnableAnimation = "DialogEnable"
|
|
|
|
|
elseif dialogType == XUiManager.DialogType.Passport then
|
|
|
|
|
self.PanelDialog.gameObject:SetActive(true)
|
|
|
|
|
self.TxtInfoNormal.text = string.gsub(content, "\\n", "\n")
|
|
|
|
|
self.EnableAnimation = "DialogEnable"
|
|
|
|
|
self:ShowSpecialRegulationForJP()
|
|
|
|
|
end
|
|
|
|
|
self.OkCallBack = sureCallback
|
2024-09-01 22:49:41 +02:00
|
|
|
|
self.CloseCallBack = closeCallback
|
|
|
|
|
self.CancelCallBack = cancelCallBack
|
|
|
|
|
self.DialogType = dialogType
|
2023-07-15 02:35:33 +07:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XUiDialog:OnEnable()
|
|
|
|
|
self.LastOperationType = CS.XInputManager.CurOperationType
|
|
|
|
|
if CS.XInputManager.CurOperationType ~= CS.XOperationType.System then
|
|
|
|
|
CS.XInputManager.SetCurOperationType(CS.XOperationType.System)
|
|
|
|
|
end
|
|
|
|
|
if self.EnableAnimation then
|
|
|
|
|
self:PlayAnimation(self.EnableAnimation)
|
|
|
|
|
end
|
2024-09-01 22:49:41 +02:00
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XUiDialog:OnDisable()
|
|
|
|
|
|
2023-07-15 02:35:33 +07:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XUiDialog:RegisterClickEvent(uiNode, func)
|
|
|
|
|
if func == nil then
|
|
|
|
|
XLog.Error("XUiGridArenaStage:RegisterClickEvent函数参数错误:参数func不能为空")
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if type(func) ~= "function" then
|
|
|
|
|
XLog.Error("XUiGridArenaStage:RegisterClickEvent函数错误, 参数func需要是function类型, func的类型是" .. type(func))
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local listener = function(...)
|
|
|
|
|
func(self, ...)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
CsXUiHelper.RegisterClickEvent(uiNode, listener)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XUiDialog:AutoAddListener()
|
|
|
|
|
self:RegisterClickEvent(self.BtnConfirmB, self.OnBtnConfirmBClick)
|
|
|
|
|
self:RegisterClickEvent(self.BtnCloseA, self.OnBtnCloseAClick)
|
|
|
|
|
self:RegisterClickEvent(self.BtnConfirm, self.OnBtnConfirmClick)
|
2024-09-01 22:49:41 +02:00
|
|
|
|
self:RegisterClickEvent(self.BtnClose, self.OnBtnCancelClick)
|
2023-07-15 02:35:33 +07:00
|
|
|
|
self:RegisterClickEvent(self.BtnTanchuangClose, self.OnBtnCloseClick)
|
|
|
|
|
if XDataCenter.InputManagerPc then
|
|
|
|
|
self.LastInputLevel = XDataCenter.InputManagerPc.GetCurrentLevel()
|
|
|
|
|
XDataCenter.InputManagerPc.SetCurrentLevel(5000)
|
|
|
|
|
end
|
2024-09-01 22:49:41 +02:00
|
|
|
|
XDataCenter.InputManagerPc.RegisterFunc(CS.XUiPc.XUiPcCustomKeyEnum.DialogCancel, function() self:CancelBtnClick() end)
|
2023-07-15 02:35:33 +07:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XUiDialog:HideDialogLayer()
|
|
|
|
|
self.PanelDialog.gameObject:SetActive(false)
|
|
|
|
|
self.PanelCloseDialog.gameObject:SetActive(false)
|
|
|
|
|
self.PanelSureDialog.gameObject:SetActive(false)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XUiDialog:OnBtnCloseAClick()
|
|
|
|
|
self:CancelBtnClick()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XUiDialog:OnBtnConfirmBClick()
|
|
|
|
|
self:OkBtnClick()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XUiDialog:OnBtnConfirmClick()
|
|
|
|
|
self:OkBtnClick()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XUiDialog:OnBtnCloseClick()
|
|
|
|
|
self:CancelBtnClick()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XUiDialog:OkBtnClick()
|
|
|
|
|
self:EmitSignal("Close", true)
|
|
|
|
|
CsXUiManager.Instance:Close(self.Name)
|
|
|
|
|
if self.OkCallBack then
|
|
|
|
|
self.OkCallBack()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
self.OkCallBack = nil
|
2024-09-01 22:49:41 +02:00
|
|
|
|
self.CloseCallBack = nil
|
2023-07-15 02:35:33 +07:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XUiDialog:CancelBtnClick()
|
2024-09-01 22:49:41 +02:00
|
|
|
|
self:EmitSignal("Close", false)
|
|
|
|
|
CsXUiManager.Instance:Close(self.Name)
|
|
|
|
|
if self.CloseCallBack then
|
|
|
|
|
self.CloseCallBack()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
self.OkCallBack = nil
|
|
|
|
|
self.CloseCallBack = nil
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--PC端响应返回键关闭界面
|
|
|
|
|
function XUiDialog:PcClose()
|
|
|
|
|
if self.DialogType == XUiManager.DialogType.OnlySure then
|
|
|
|
|
self:OkBtnClick()
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
self:CancelBtnClick()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XUiDialog:OnDestroy()
|
|
|
|
|
self:AutoRemoveListener()
|
|
|
|
|
CS.XInputManager.SetCurOperationType(self.LastOperationType)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XUiDialog:AutoRemoveListener()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- 区分取消和关闭弹窗
|
|
|
|
|
function XUiDialog:OnBtnCancelClick()
|
2023-07-15 02:35:33 +07:00
|
|
|
|
self:EmitSignal("Close", false)
|
|
|
|
|
CsXUiManager.Instance:Close(self.Name)
|
|
|
|
|
if self.CancelCallBack then
|
|
|
|
|
self.CancelCallBack()
|
2024-09-01 22:49:41 +02:00
|
|
|
|
elseif self.CloseCallBack then
|
|
|
|
|
self.CloseCallBack()
|
2023-07-15 02:35:33 +07:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
self.OkCallBack = nil
|
2024-09-01 22:49:41 +02:00
|
|
|
|
self.CloseCallBack = nil
|
2023-07-15 02:35:33 +07:00
|
|
|
|
self.CancelCallBack = nil
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XUiDialog:ShowSpecialRegulationForJP() --海外修改
|
|
|
|
|
local isShow = CS.XGame.ClientConfig:GetInt("ShowRegulationEnable")
|
|
|
|
|
if isShow and isShow == 1 then
|
|
|
|
|
local url = CS.XGame.ClientConfig:GetString("RegulationPrefabUrl")
|
|
|
|
|
if url then
|
|
|
|
|
local obj = self.TxtInfoNormal.transform:LoadPrefab(url)
|
|
|
|
|
local data = {type = 4,consumeId = 1}
|
|
|
|
|
local timeId = XPassportConfigs.GetPassportActivityTimeId()
|
|
|
|
|
local startTime, endTime = XFunctionManager.GetTimeByTimeId(timeId)
|
|
|
|
|
local startTimeStr = XTime.TimestampToGameDateTimeString(startTime,"yyyy/MM/dd HH:mm")
|
|
|
|
|
local endTimeStr = XTime.TimestampToGameDateTimeString(endTime-86400,"yyyy/MM/dd HH:mm")
|
|
|
|
|
data.content = string.format("%s-%s", startTimeStr, endTimeStr)
|
|
|
|
|
self.ShowSpecialRegBtn = obj.transform:GetComponent("XHtmlText")
|
|
|
|
|
self.ShowSpecialRegBtn.text = CS.XTextManager.GetText("JPBusinessLawsDetailsEnter")
|
|
|
|
|
self.ShowSpecialRegBtn.HrefUnderLineColor = CS.UnityEngine.Color(1, 45 / 255, 45 / 255, 1)
|
|
|
|
|
self.ShowSpecialRegBtn.transform.localPosition = CS.UnityEngine.Vector3(-220, -136, 0)
|
|
|
|
|
self.ShowSpecialRegBtn.HrefListener = function(link)
|
|
|
|
|
XLuaUiManager.Open("UiSpecialRegulationShow",data)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XUiDialog:OnDestroy()
|
|
|
|
|
self:AutoRemoveListener()
|
|
|
|
|
CS.XInputManager.SetCurOperationType(self.LastOperationType)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XUiDialog:AutoRemoveListener()
|
|
|
|
|
if XDataCenter.InputManagerPc then
|
|
|
|
|
XDataCenter.InputManagerPc.SetCurrentLevel(self.LastInputLevel)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return XUiDialog
|