40 lines
784 B
Vue
40 lines
784 B
Vue
<script setup lang="ts">
|
|
// Components
|
|
import PaginationView from '~/components/pub/my-ui/pagination/pagination-view.vue'
|
|
|
|
// Types
|
|
import type { PaginationMeta } from '~/components/pub/my-ui/pagination/pagination.type'
|
|
|
|
// Configs
|
|
import { config } from './list.cfg'
|
|
|
|
interface Props {
|
|
data: any[]
|
|
paginationMeta: PaginationMeta
|
|
}
|
|
|
|
defineProps<Props>()
|
|
|
|
const emit = defineEmits<{
|
|
pageChange: [page: number]
|
|
}>()
|
|
|
|
function handlePageChange(page: number) {
|
|
emit('pageChange', page)
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<div class="space-y-4">
|
|
<PubMyUiDataTable
|
|
v-bind="config"
|
|
:rows="data"
|
|
:skeleton-size="paginationMeta?.pageSize"
|
|
/>
|
|
<PaginationView
|
|
:pagination-meta="paginationMeta"
|
|
@page-change="handlePageChange"
|
|
/>
|
|
</div>
|
|
</template>
|