local PotentialPreselectionItemCtrl = class("PotentialPreselectionItemCtrl", BaseCtrl)
PotentialPreselectionItemCtrl._mapNodeConfig = {
	img_SelectPreference = {},
	txtBuildName = {sComponentName = "TMP_Text"},
	imgLike = {},
	imgCharIcon = {nCount = 3, sComponentName = "Image"},
	imgCharFrame = {nCount = 3, sComponentName = "Image"},
	txtLeaderCn = {
		sComponentName = "TMP_Text",
		sLanguageId = "Build_Leader"
	},
	txtSubCn = {
		nCount = 2,
		sComponentName = "TMP_Text",
		sLanguageId = "Build_Sub"
	},
	txtPotentialCount = {nCount = 3, sComponentName = "TMP_Text"},
	imgCharElement = {nCount = 3, sComponentName = "Image"},
	btnDelete = {
		sComponentName = "UIButton",
		callback = "OnBtnClick_Delete"
	},
	imgSelect = {},
	txtSelect = {
		sComponentName = "TMP_Text",
		sLanguageId = "Potential_Preselection_Select"
	},
	goMask = {},
	txtMask = {sComponentName = "TMP_Text"}
}
PotentialPreselectionItemCtrl._mapEventConfig = {}
PotentialPreselectionItemCtrl._mapRedDotConfig = {}
function PotentialPreselectionItemCtrl:RefreshItem(mapData, bCharDiff, bSelect)
	self.mapData = mapData
	self:ShowDelete(false)
	self:SetSelect(bSelect)
	NovaAPI.SetTMPText(self._mapNode.txtBuildName, mapData.sName)
	self._mapNode.imgLike.gameObject:SetActive(mapData.bPreference)
	local bCharLock = false
	for k, v in ipairs(mapData.tbCharPotential) do
		local nCharId = v.nCharId
		local mapCharData = PlayerData.Char:GetCharDataById(nCharId)
		if mapCharData == nil or next(mapCharData) == nil then
			bCharLock = true
		end
		local mapCharCfg = ConfigTable.GetData_Character(nCharId)
		if mapCharCfg ~= nil then
			local nSkinId = PlayerData.Char:GetCharSkinId(nCharId)
			local mapCharSkin = ConfigTable.GetData_CharacterSkin(nSkinId)
			local sFrame = AllEnum.FrameType_New.BoardFrame .. AllEnum.BoardFrameColor[mapCharCfg.Grade]
			self:SetPngSprite(self._mapNode.imgCharIcon[k], mapCharSkin.Icon .. AllEnum.CharHeadIconSurfix.XXL)
			self:SetAtlasSprite(self._mapNode.imgCharFrame[k], "12_rare", sFrame)
			self:SetAtlasSprite(self._mapNode.imgCharElement[k], "12_rare", AllEnum.Char_Element[mapCharCfg.EET].icon)
		end
		local tbPotential = v.tbPotential
		local nCount = 0
		for _, potential in ipairs(tbPotential) do
			nCount = nCount + potential.nLevel
		end
		NovaAPI.SetTMPText(self._mapNode.txtPotentialCount[k], nCount)
	end
	self._mapNode.goMask.gameObject:SetActive(bCharDiff or bCharLock)
	if bCharLock then
		NovaAPI.SetTMPText(self._mapNode.txtMask, ConfigTable.GetUIText("Potential_Preselection_Item_Char_Lock"))
	elseif bCharDiff then
		NovaAPI.SetTMPText(self._mapNode.txtMask, ConfigTable.GetUIText("Potential_Preselection_Item_Char_Diff"))
	end
end
function PotentialPreselectionItemCtrl:ShowDelete(bShow)
	if self.mapData ~= nil and not self.mapData.bPreference then
		self._mapNode.btnDelete.gameObject:SetActive(bShow)
	else
		self._mapNode.btnDelete.gameObject:SetActive(false)
	end
end
function PotentialPreselectionItemCtrl:SetSelect(bSelect)
	self._mapNode.img_SelectPreference.gameObject:SetActive(bSelect)
	self._mapNode.imgSelect.gameObject:SetActive(bSelect)
end
function PotentialPreselectionItemCtrl:Awake()
end
function PotentialPreselectionItemCtrl:OnEnable()
end
function PotentialPreselectionItemCtrl:OnDisable()
end
function PotentialPreselectionItemCtrl:OnDestroy()
end
function PotentialPreselectionItemCtrl:OnBtnClick_Delete()
	if self.mapData ~= nil then
		local callback = function()
			EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Potential_Preselection_Delete_Suc"))
		end
		local tbDelete = {
			self.mapData.nId
		}
		PlayerData.PotentialPreselection:SendDeletePreselection(tbDelete, callback)
	end
end
return PotentialPreselectionItemCtrl
