forked from endernon/PGRData
114 lines
No EOL
3.7 KiB
Lua
114 lines
No EOL
3.7 KiB
Lua
XUiPanelDetailEquipItem = XClass(nil, "XUiPanelDetailEquipItem")
|
||
|
||
function XUiPanelDetailEquipItem:Ctor(ui)
|
||
self.GameObject = ui.gameObject
|
||
self.Transform = ui.transform
|
||
self:InitAutoScript()
|
||
|
||
self.GridItem = {
|
||
[1] = self.GridItem1,
|
||
[2] = self.GridItem2,
|
||
[3] = self.GridItem3,
|
||
[4] = self.GridItem4,
|
||
[5] = self.GridItem5,
|
||
[6] = self.GridItem6,
|
||
}
|
||
|
||
self.voteId = nil
|
||
|
||
self.GridItems = {}
|
||
end
|
||
|
||
-- auto
|
||
-- Automatic generation of code, forbid to edit
|
||
function XUiPanelDetailEquipItem:InitAutoScript()
|
||
self:AutoInitUi()
|
||
self:AutoAddListener()
|
||
end
|
||
|
||
function XUiPanelDetailEquipItem:AutoInitUi()
|
||
self.TxtVoteNum = self.Transform:Find("TxtVoteNum"):GetComponent("Text")
|
||
self.GridItem3 = self.Transform:Find("RootPanelLayout/GridItem3")
|
||
self.GridItem2 = self.Transform:Find("RootPanelLayout/GridItem2")
|
||
self.GridItem1 = self.Transform:Find("RootPanelLayout/GridItem1")
|
||
self.Panel = self.Transform:Find("RootPanelWeapon/Panel")
|
||
self.GridEquipItem = self.Transform:Find("RootPanelWeapon/Panel/GridEquipItem")
|
||
self.TxtRank = self.Transform:Find("RootPanelRank/TxtRank"):GetComponent("Text")
|
||
self.GridItem4 = self.Transform:Find("RootPanelLayout/GridItem4")
|
||
self.GridItem5 = self.Transform:Find("RootPanelLayout/GridItem5")
|
||
self.GridItem6 = self.Transform:Find("RootPanelLayout/GridItem6")
|
||
self.BtnVote = self.Transform:Find("RootPanelBtn/BtnVote"):GetComponent("Button")
|
||
self.PanelImgVoted = self.Transform:Find("RootPanelBtn/PanelImgVoted")
|
||
end
|
||
|
||
function XUiPanelDetailEquipItem:RegisterClickEvent(uiNode, func)
|
||
if func == nil then
|
||
XLog.Error("XUiPanelDetailEquipItem:RegisterClickEvent函数参数错误:参数func不能为空")
|
||
return
|
||
end
|
||
|
||
if type(func) ~= "function" then
|
||
XLog.Error("XUiPanelDetailEquipItem:RegisterClickEvent函数错误, 参数func需要是function类型, func的类型是" .. type(func))
|
||
end
|
||
|
||
local listener = function(...)
|
||
func(self, ...)
|
||
end
|
||
|
||
CsXUiHelper.RegisterClickEvent(uiNode, listener)
|
||
end
|
||
|
||
function XUiPanelDetailEquipItem:AutoAddListener()
|
||
self:RegisterClickEvent(self.BtnVote, self.OnBtnVoteClick)
|
||
end
|
||
-- auto
|
||
function XUiPanelDetailEquipItem:Init(rootUi)
|
||
self.RootUi = rootUi
|
||
end
|
||
|
||
function XUiPanelDetailEquipItem:UpdateView(recommendConfig, rank)
|
||
self.VoteId = recommendConfig.Id
|
||
self.TxtRank.text = rank
|
||
|
||
local template = XCharacterConfigs.GetCharDetailEquipTemplate(self.VoteId)
|
||
if not template then
|
||
return
|
||
end
|
||
|
||
--刷新装备
|
||
self.GridEquip = self.GridEquip or XUiGridCommon.New(self.RootUi, self.GridEquipItem)
|
||
self.GridEquip:Refresh(template.EquipRecomend)
|
||
|
||
--刷新意识
|
||
local chipList = template.ChipRecomend
|
||
|
||
for i = 1, 6 do
|
||
if self.GridItem[i] then
|
||
local gridItem = self.GridItems[i]
|
||
if not gridItem then
|
||
gridItem = XUiGridCommon.New(self.RootUi, self.GridItem[i])
|
||
self.GridItems[i] = gridItem
|
||
end
|
||
gridItem:Refresh(chipList[i])
|
||
end
|
||
end
|
||
|
||
self:UpdateVoteView()
|
||
end
|
||
|
||
function XUiPanelDetailEquipItem:UpdateVoteView()
|
||
local voteMo = XDataCenter.VoteManager.GetVote(self.VoteId)
|
||
local isGroupVoted = XDataCenter.VoteManager.IsGroupVoted(voteMo.GroupId)
|
||
local isVoteSelected = XDataCenter.VoteManager.IsVoteSelected(voteMo.GroupId, self.VoteId)
|
||
|
||
self.BtnVote.gameObject:SetActive(not isGroupVoted)
|
||
self.PanelImgVoted.gameObject:SetActive(isGroupVoted and isVoteSelected)
|
||
self.TxtVoteNum.text = tostring(voteMo.VoteNum)
|
||
end
|
||
|
||
function XUiPanelDetailEquipItem:OnBtnVoteClick()
|
||
XUiHelper.StopAnimation()
|
||
XDataCenter.VoteManager.AddVote(self.VoteId)
|
||
end
|
||
|
||
return XUiPanelDetailEquipItem |