+
+
+ 对战阵容推荐
+
+
+
+ {/* 搜索和筛选组件 */}
+
+
+ setSearchTerm(e.target.value)}
+ />
+
+
+ {/* 难度筛选 */}
+
+
+
+ {difficulties.map((difficulty) => (
+
+ ))}
+
+
+
+ {/* 标签筛选 */}
+
+
+ {availableTags.map((tag) => (
+
+ ))}
+
+
+
+
+ {/* 加载状态 */}
+ {loading && (
+
+ )}
+
+ {/* 错误提示 */}
+ {error && (
+
+ {error}
+
+ )}
+
+ {/* 阵容列表 - 列表格式 */}
+ {!loading && (
+
+ {filteredLineups.map((lineup) => (
+
handleLineupClick(lineup.id)}
+ >
+
+
+
+
阵容 #{lineup.id}
+
{lineup.battleStrategy}
+
+
+ 创建时间:
+ {lineup.createTime}
+
+
+
+
+ {/* 防守阵容 */}
+
+
防守阵容
+
+ {lineup.defenseHeroes.map((hero: string, index: number) => (
+
+ {hero}
+
+ ))}
+
+
+
+ {/* 进攻阵容 */}
+
+
进攻阵容
+
+ {lineup.attackHeroes.map((hero: string, index: number) => (
+
+ {hero}
+
+ ))}
+
+
+
+
+
+ {/* 装备信息 */}
+
+
装备信息
+
{lineup.equipmentInfo}
+
+
+ {/* 神器信息 */}
+
+
神器信息
+
{lineup.artifacts}
+
+
+
+
+ {/* 前置条件 */}
+
+
前置条件
+
{lineup.prerequisites}
+
+
+ {/* 重要提示 */}
+
+
重要提示
+
{lineup.importantNotes}
+
+
+
+
+ ))}
+
+ )}
+
+ {/* 分页控件 */}
+ {!loading && total > 0 && (
+
+
+
+
+ {Array.from({ length: Math.ceil(total / pageSize) }, (_, i) => i + 1)
+ .filter(page =>
+ page === 1 ||
+ page === Math.ceil(total / pageSize) ||
+ (page >= pageNum - 1 && page <= pageNum + 1)
+ )
+ .map((page, index, array) => {
+ // Add ellipsis if there's a gap
+ if (index > 0 && page - array[index - 1] > 1) {
+ return (
+
+ ...
+
+
+ );
+ }
+
+ return (
+
+ );
+ })}
+
+
+
+
+
+ 每页显示:
+
+
+
+ )}
+