-
- {availableTags.map((tag) => (
-
- ))}
+ {/* 英雄多选下拉框 */}
+
+
setIsDropdownOpen(!isDropdownOpen)}
+ >
+
+ {selectedHeroes.length > 0 ? (
+ selectedHeroes.map((hero) => (
+
+ {hero.heroName}
+
+
+ ))
+ ) : (
+
选择防守英雄(最多3个)
+ )}
+
+
+ ▼
+
+
+ {isDropdownOpen && (
+
+
+ setSearchInput(e.target.value)}
+ placeholder="输入英雄名称或昵称搜索..."
+ className="w-full px-3 py-2 bg-[#1A1412] text-[#E6B17E] border border-[#C17F59]/30 rounded-md focus:outline-none focus:border-[#C17F59]"
+ onClick={(e) => e.stopPropagation()}
+ />
+
+ {filteredHeroes.map((hero) => (
+
h.id === hero.id)
+ ? "bg-[#2A211E] text-[#E6B17E]"
+ : "text-[#E6B17E] hover:bg-[#2A211E]"
+ } ${selectedHeroes.length >= 3 && !selectedHeroes.find(h => h.id === hero.id) ? "opacity-50 cursor-not-allowed" : ""}`}
+ onClick={() => {
+ if (selectedHeroes.length < 3 || selectedHeroes.find(h => h.id === hero.id)) {
+ handleHeroSelect(hero);
+ }
+ }}
+ >
+
+

+
{hero.heroName}
+ {hero.nickName && (
+
({hero.nickName})
+ )}
+
+
+ ))}
+
+ )}
{/* 加载状态 */}
{loading && (
)}
@@ -161,15 +214,13 @@ const Lineup: React.FC = () => {
防守阵容
{lineup.defenseHeroInfos.map((hero, index) => (
-
+

-
@@ -182,15 +233,13 @@ const Lineup: React.FC = () => {
进攻阵容
{lineup.attackHeroInfos.map((hero, index) => (
-
+

-