4040 </table >
4141 </div >
4242 </div >
43- <div class =" sidebar" >
44- <div class =" sidebar-block" v-if = " searchData?.page_count > 1 " >
43+ <div class =" sidebar" v-if = " searchData?.page_count > 1 " >
44+ <div class =" sidebar-block" >
4545 <pagination :page =" searchData.page" :limit =" searchData.limit" :count =" searchData.count" />
4646 </div >
47+ <div class =" pagination-wrap" >
48+ <simple-pagination
49+ v-model =" currentPage"
50+ :pages =" pages"
51+ :range-size =" 1"
52+ @update:modelValue =" pageResults"
53+ />
54+ </div >
4755 </div >
4856</template >
4957
5058<script >
51- import { reactive , toRefs , nextTick } from ' vue'
59+ import { reactive , toRefs , nextTick , computed } from ' vue'
5260import { usersApi } from ' @/api'
5361import Pagination from ' @/components/layout/Pagination.vue'
5462import { useRoute , useRouter } from ' vue-router'
5563import humanDate from ' @/composables/filters/humanDate'
64+ import SimplePagination from ' @/components/layout/SimplePagination.vue'
5665
5766export default {
5867 name: ' MemberSearch' ,
59- components: { Pagination },
68+ components: { Pagination, SimplePagination },
6069 beforeRouteEnter (to , from , next ) {
6170 const query = {
6271 limit: 10 ,
@@ -79,6 +88,13 @@ export default {
7988 next ()
8089 },
8190 setup () {
91+ const pageResults = page => {
92+ let query = { ... $route .query , page: page }
93+ if (query .page === 1 || ! query .page ) delete query .page
94+ if ($route .query .page !== v .currentPage )
95+ $router .replace ({ name: $route .name , params: $route .params , query: query })
96+ }
97+
8298 const searchUsers = () => {
8399 let query = { ... $route .query , search: v .search }
84100 delete query .field
@@ -135,6 +151,7 @@ export default {
135151
136152 const v = reactive ({
137153 currentPage: Number ($route .query .page ) || 1 ,
154+ pages: computed (() => Math .ceil (v .searchData ? .count / v .searchData ? .limit )),
138155 searchData: null ,
139156 search: $route .query .search ,
140157 searchInput: null ,
@@ -144,7 +161,7 @@ export default {
144161
145162 nextTick (() => v .searchInput .focus ())
146163
147- return { ... toRefs (v), searchUsers, clearSearch, setSortField, getSortClass, humanDate }
164+ return { ... toRefs (v), pageResults, searchUsers, clearSearch, setSortField, getSortClass, humanDate }
148165 }
149166}
150167< / script>
@@ -159,17 +176,30 @@ export default {
159176 " sidebar sidebar" ;
160177 }
161178}
162- .user-search { grid-area : main; }
179+ .user - search { grid- area: main; width : 100 % ; }
163180.sidebar {
164181 grid- area: sidebar;
165-
166182 .sidebar - block {
167183 display: block;
168184 position: sticky;
169185 top: $header- offset;
170186 }
187+ .pagination - wrap { display: none; }
188+ @include break - mobile- sm {
189+ border- top: 1px solid $border- color;
190+ position: fixed;
191+ bottom: 0 ;
192+ right: 0 ;
193+ left: 0 ;
194+ background: $base- background- color;
195+ padding: 0 .75rem ;
196+ z- index: 1000 ;
197+ margin: 0 auto;
198+ width: 100vw ;
199+ .sidebar - block { display: none; }
200+ .pagination - wrap { display: block; }
201+ }
171202}
172-
173203.members td {
174204 height: 6 .25rem ;
175205 padding- left: 0 ;
0 commit comments