+
+ <%= link_to url_for(page: 1, region: params[:region], country: params[:country], sort: params[:sort]),
+ class: "join-item btn #{collection.first_page? ? 'btn-disabled' : 'btn-ghost'}" do %>
+
+
+
+ <% end %>
+
+
+ <%= link_to url_for(page: collection.prev_page || 1, region: params[:region], country: params[:country], sort: params[:sort]),
+ class: "join-item btn #{collection.first_page? ? 'btn-disabled' : 'btn-ghost'}" do %>
+
+
+
+ <% end %>
+
+
+ <% page_window = 2 # 当前页面前后显示的页码数 %>
+ <% start_page = [1, collection.current_page - page_window].max %>
+ <% end_page = [collection.total_pages, collection.current_page + page_window].min %>
+
+ <% if start_page > 1 %>
+ <%= link_to 1, url_for(page: 1, region: params[:region], country: params[:country], sort: params[:sort]),
+ class: "join-item btn btn-ghost hover:bg-primary/5" %>
+ <% if start_page > 2 %>
+
...
+ <% end %>
+ <% end %>
+
+ <% (start_page..end_page).each do |page| %>
+ <% if page == collection.current_page %>
+
+ <%= page %>
+
+ <% else %>
+ <%= link_to page, url_for(page: page, region: params[:region], country: params[:country], sort: params[:sort]),
+ class: "join-item btn btn-ghost hover:bg-primary/5" %>
+ <% end %>
+ <% end %>
+
+ <% if end_page < collection.total_pages %>
+ <% if end_page < collection.total_pages - 1 %>
+
...
+ <% end %>
+ <%= link_to collection.total_pages,
+ url_for(page: collection.total_pages, region: params[:region], country: params[:country], sort: params[:sort]),
+ class: "join-item btn btn-ghost hover:bg-primary/5" %>
+ <% end %>
+
+
+ <%= link_to url_for(page: collection.next_page || collection.total_pages, region: params[:region], country: params[:country], sort: params[:sort]),
+ class: "join-item btn #{collection.last_page? ? 'btn-disabled' : 'btn-ghost'}" do %>
+
+
+
+ <% end %>
+
+
+ <%= link_to url_for(page: collection.total_pages, region: params[:region], country: params[:country], sort: params[:sort]),
+ class: "join-item btn #{collection.last_page? ? 'btn-disabled' : 'btn-ghost'}" do %>
+
+
+
+ <% end %>
+
+ Showing <%= collection.offset_value + 1 %> to
+ <%= collection.last_page? ? collection.total_count : collection.offset_value + collection.limit_value %>
+ of <%= collection.total_count %> <%= collection_name || 'items' %>
+