5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
106 lines
3.0 KiB
Lua
106 lines
3.0 KiB
Lua
local FriendRecommendCtrl = class("FriendRecommendCtrl", BaseCtrl)
|
|
FriendRecommendCtrl._mapNodeConfig = {
|
|
txtWindowTitle = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Friend_RecommendTitle"
|
|
},
|
|
srRecommend = {
|
|
sComponentName = "LoopScrollView"
|
|
},
|
|
btnClose = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Cancel"
|
|
},
|
|
btnRefresh = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Research"
|
|
},
|
|
txtBtnRefresh = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Friend_Btn_Refresh"
|
|
}
|
|
}
|
|
FriendRecommendCtrl._mapEventConfig = {}
|
|
function FriendRecommendCtrl:Open(mapData)
|
|
self:Refresh(mapData)
|
|
self:PlayInAni()
|
|
end
|
|
function FriendRecommendCtrl:Refresh(mapData)
|
|
for nInstanceId, objCtrl in pairs(self.tbGridCtrl) do
|
|
self:UnbindCtrlByNode(objCtrl)
|
|
self.tbGridCtrl[nInstanceId] = nil
|
|
end
|
|
self._panel.tbAddCache = {}
|
|
self.tbFriendSearch = mapData
|
|
local nNum = #self.tbFriendSearch
|
|
self._mapNode.srRecommend:Init(nNum, self, self.OnGridRefresh)
|
|
end
|
|
function FriendRecommendCtrl:OnGridRefresh(goGrid, gridIndex)
|
|
local nIndex = gridIndex + 1
|
|
local mapFriend = self.tbFriendSearch[nIndex]
|
|
local nInstanceID = goGrid:GetInstanceID()
|
|
if not self.tbGridCtrl[nInstanceID] then
|
|
self.tbGridCtrl[nInstanceID] = self:BindCtrlByNode(goGrid, "Game.UI.FriendEx.FriendGridCtrl")
|
|
self.tbGridCtrl[nInstanceID]:SetType(3)
|
|
end
|
|
self.tbGridCtrl[nInstanceID]:Refresh(mapFriend)
|
|
end
|
|
function FriendRecommendCtrl:PlayInAni()
|
|
self.gameObject:SetActive(true)
|
|
self.ani:Play("t_window_04_t_in")
|
|
EventManager.Hit(EventId.TemporaryBlockInput, 0.3)
|
|
end
|
|
function FriendRecommendCtrl:PlayOutAni()
|
|
self.ani:Play("t_window_04_t_out")
|
|
self:AddTimer(1, 0.2, "Close", true, true, true)
|
|
end
|
|
function FriendRecommendCtrl:Close()
|
|
self.gameObject:SetActive(false)
|
|
EventManager.Hit("FriendClearSearch")
|
|
end
|
|
function FriendRecommendCtrl:SetTimer()
|
|
self.bCd = true
|
|
if self.timer ~= nil then
|
|
self.timer:Cancel(false)
|
|
self.timer = nil
|
|
end
|
|
self.timer = self:AddTimer(1, 5, function()
|
|
self.bCd = false
|
|
end, true, true, false)
|
|
end
|
|
function FriendRecommendCtrl:Awake()
|
|
self.ani = self.gameObject.transform:GetComponent("Animator")
|
|
self.tbGridCtrl = {}
|
|
end
|
|
function FriendRecommendCtrl:OnEnable()
|
|
end
|
|
function FriendRecommendCtrl:OnDisable()
|
|
for nInstanceId, objCtrl in pairs(self.tbGridCtrl) do
|
|
self:UnbindCtrlByNode(objCtrl)
|
|
self.tbGridCtrl[nInstanceId] = nil
|
|
end
|
|
self.tbGridCtrl = {}
|
|
end
|
|
function FriendRecommendCtrl:OnDestroy()
|
|
end
|
|
function FriendRecommendCtrl:OnBtnClick_Cancel(btn)
|
|
EventManager.Hit("FriendClosePop")
|
|
end
|
|
function FriendRecommendCtrl:OnBtnClick_Research(btn)
|
|
if self.bCd then
|
|
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Friend_RefreshLimit"))
|
|
return
|
|
end
|
|
local callback = function(mapData)
|
|
EventManager.Hit(EventId.OpenMessageBox, {
|
|
nType = AllEnum.MessageBox.Tips,
|
|
bPositive = true,
|
|
sContent = ConfigTable.GetUIText("Friend_RefreshSuc")
|
|
})
|
|
self:Refresh(mapData)
|
|
self:SetTimer()
|
|
end
|
|
PlayerData.Friend:SendFriendRecommendationGetReq(callback)
|
|
end
|
|
return FriendRecommendCtrl
|