127 lines
No EOL
4.1 KiB
Lua
127 lines
No EOL
4.1 KiB
Lua
XUiPanelFavorabilityMessage = XClass(nil, "XUiPanelFavorabilityMessage")
|
||
|
||
function XUiPanelFavorabilityMessage:Ctor(ui, uiRoot, parent)
|
||
self.GameObject = ui.gameObject
|
||
self.Transform = ui.transform
|
||
self.UiRoot = uiRoot
|
||
self.Parent = parent
|
||
self:InitAutoScript()
|
||
end
|
||
|
||
-- auto
|
||
-- Automatic generation of code, forbid to edit
|
||
function XUiPanelFavorabilityMessage:InitAutoScript()
|
||
self:AutoInitUi()
|
||
self:AutoAddListener()
|
||
end
|
||
|
||
function XUiPanelFavorabilityMessage:AutoInitUi()
|
||
self.PanelDataList = self.Transform:Find("PanelDataList")
|
||
self.GridLikeMessageItem = self.Transform:Find("PanelDataList/Viewport/GridLikeMessageItem")
|
||
self.ScrollbarVertical = self.Transform:Find("PanelDataList/ScrollbarVertical"):GetComponent("Scrollbar")
|
||
end
|
||
|
||
function XUiPanelFavorabilityMessage:RegisterClickEvent(uiNode, func)
|
||
if func == nil then
|
||
XLog.Error("XUiPanelFavorabilityMessage:RegisterClickEvent函数参数错误:参数func不能为空")
|
||
return
|
||
end
|
||
|
||
if type(func) ~= "function" then
|
||
XLog.Error("XUiPanelFavorabilityMessage:RegisterClickEvent函数错误, 参数func需要是function类型, func的类型是" .. type(func))
|
||
end
|
||
|
||
local listener = function(...)
|
||
func(self, ...)
|
||
end
|
||
|
||
CsXUiHelper.RegisterClickEvent(uiNode, listener)
|
||
end
|
||
|
||
function XUiPanelFavorabilityMessage:AutoAddListener()
|
||
end
|
||
-- auto
|
||
function XUiPanelFavorabilityMessage:OnRefresh()
|
||
self:RefreshDatas()
|
||
end
|
||
|
||
function XUiPanelFavorabilityMessage:RefreshDatas()
|
||
local characterId = self.UiRoot:GetCurrFavorabilityCharacter()
|
||
local informations = XFavorabilityConfigs.GetCharacterInformationById(characterId)
|
||
self:UpdateDataList(informations, 1)
|
||
self.Parent:CheckDataReddot()
|
||
end
|
||
|
||
function XUiPanelFavorabilityMessage:GetProxyType()
|
||
return "XUiGridLikeMessageItem"
|
||
end
|
||
|
||
function XUiPanelFavorabilityMessage:UpdateDataList(dataList, selectIdx)
|
||
|
||
if not dataList then
|
||
XLog.Warning("XUiPanelFavorabilityMessage:UpdateDataList error: dataList is nil")
|
||
return
|
||
end
|
||
|
||
self.DataList = dataList
|
||
self.CurData = self.DataList[selectIdx]
|
||
|
||
if not self.DynamicTableData then
|
||
self.DynamicTableData = XDynamicTableIrregular.New(self.PanelDataList)
|
||
self.DynamicTableData:SetProxy("XUiGridLikeMessageItem", XUiGridLikeMessageItem, self.GridLikeMessageItem.gameObject)
|
||
self.DynamicTableData:SetDelegate(self)
|
||
end
|
||
|
||
self.DynamicTableData:SetDataSource(self.DataList)
|
||
self.DynamicTableData:ReloadDataASync(selectIdx)
|
||
|
||
end
|
||
|
||
-- [监听动态列表事件]
|
||
function XUiPanelFavorabilityMessage:OnDynamicTableEvent(event, index, grid)
|
||
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_INIT then
|
||
grid:Init(self.UiRoot)
|
||
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
|
||
local data = self.DataList[index]
|
||
if data ~= nil then
|
||
grid:OnRefresh(self.DataList[index], index)
|
||
end
|
||
|
||
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_TOUCHED then
|
||
self.CurData = self.DataList[index]
|
||
self:OnDataClick(index, grid)
|
||
end
|
||
end
|
||
|
||
-- [策划想要打开一个item,关闭其他打开中的item效果]
|
||
function XUiPanelFavorabilityMessage:ResetOtherItems(index)
|
||
for k, v in pairs(self.DataList) do
|
||
if index ~= k then
|
||
v.IsToggle = false
|
||
end
|
||
end
|
||
end
|
||
|
||
-- [点击资料]
|
||
function XUiPanelFavorabilityMessage:OnDataClick(index, grid)
|
||
local characterId = self.UiRoot:GetCurrFavorabilityCharacter()
|
||
local isUnlock = XDataCenter.FavorabilityManager.IsInformationUnlock(characterId, self.CurData.Id)
|
||
local canUnlock = XDataCenter.FavorabilityManager.CanInformationUnlock(characterId, self.CurData.Id)
|
||
if isUnlock then
|
||
self:ResetOtherItems(index)
|
||
grid:OnToggle()
|
||
self.DynamicTableData:ReloadDataASync(1)
|
||
else
|
||
if canUnlock then
|
||
XDataCenter.FavorabilityManager.OnUnlockCharacterInfomatin(characterId, self.CurData.Id, function()
|
||
self:RefreshDatas()
|
||
end, self.CurData.Title)
|
||
else
|
||
-- 提示解锁条件
|
||
XUiManager.TipMsg(self.CurData.ConditionDescript)
|
||
end
|
||
end
|
||
end
|
||
|
||
|
||
return XUiPanelFavorabilityMessage |