删除 miniprogram2 目录及其所有文件,包括项目配置、样式、图标和自定义组件,简化项目结构,专注于 miniprogram 目录的开发和维护。

This commit is contained in:
Alex-larget
2026-02-25 16:26:13 +08:00
parent 44f995a5a3
commit 04abcb2a87
171 changed files with 3703 additions and 21333 deletions

View File

@@ -0,0 +1,81 @@
interface PaginationProps {
page: number
totalPages: number
total: number
pageSize: number
onPageChange: (page: number) => void
onPageSizeChange?: (pageSize: number) => void
pageSizeOptions?: number[]
}
export function Pagination({
page,
totalPages,
total,
pageSize,
onPageChange,
onPageSizeChange,
pageSizeOptions = [10, 20, 50, 100],
}: PaginationProps) {
if (totalPages <= 1 && !onPageSizeChange) return null
return (
<div className="flex items-center justify-between gap-4 py-4 px-5 border-t border-gray-700/50">
<div className="flex items-center gap-2 text-sm text-gray-400">
<span> {total} </span>
{onPageSizeChange && (
<select
value={pageSize}
onChange={(e) => onPageSizeChange(Number(e.target.value))}
className="bg-[#0f2137] border border-gray-600 rounded px-2 py-1 text-gray-300 text-sm"
>
{pageSizeOptions.map((n) => (
<option key={n} value={n}>
{n} /
</option>
))}
</select>
)}
</div>
{totalPages > 1 && (
<div className="flex items-center gap-2">
<button
type="button"
onClick={() => onPageChange(1)}
disabled={page <= 1}
className="px-2 py-1 rounded border border-gray-600 text-gray-400 hover:bg-gray-700/50 disabled:opacity-40 text-sm"
>
</button>
<button
type="button"
onClick={() => onPageChange(page - 1)}
disabled={page <= 1}
className="px-3 py-1 rounded border border-gray-600 text-gray-400 hover:bg-gray-700/50 disabled:opacity-40 text-sm"
>
</button>
<span className="px-3 py-1 text-gray-400 text-sm">
{page} / {totalPages}
</span>
<button
type="button"
onClick={() => onPageChange(page + 1)}
disabled={page >= totalPages}
className="px-3 py-1 rounded border border-gray-600 text-gray-400 hover:bg-gray-700/50 disabled:opacity-40 text-sm"
>
</button>
<button
type="button"
onClick={() => onPageChange(totalPages)}
disabled={page >= totalPages}
className="px-2 py-1 rounded border border-gray-600 text-gray-400 hover:bg-gray-700/50 disabled:opacity-40 text-sm"
>
</button>
</div>
)}
</div>
)
}