描述:日期每隔3个前后翻页
效果如下:
代码实现:
javascript
<template>
<div class="flex">
<button @click="prev">前一页</button>
<div class="box flex flex-1">
<div class="box-item" v-for="(item, index) in mockTableFormate" :key="index">
{{ item }}
</div>
</div>
<button @click="next">后一页</button>
</div>
</template>
<script setup>
import { computed, ref } from 'vue'
const mockTable = [
'2024-12-1',
'2024-12-2',
'2024-12-3',
'2024-12-4',
'2024-12-5',
'2024-12-6',
'2024-12-7',
'2024-12-8',
'2024-12-9',
'2024-12-10',
'2024-12-11'
]
const total = mockTable.length
const currentIndex = ref(total)
const step = 3
const mockTableFormate = computed(() => {
if (currentIndex.value >= step) {
return mockTable.slice(currentIndex.value - step, currentIndex.value)
} else {
return mockTable.slice(0, currentIndex.value)
}
})
function prev() {
if (currentIndex.value - step > 0) {
currentIndex.value = Math.max(currentIndex.value - step, 0)
}
}
function next() {
currentIndex.value = Math.min(currentIndex.value + step, total)
}
</script>
<style lang="scss" scoped>
.box {
margin: 0 10px;
width: 300px;
.box-item {
border: 1px solid red;
border-radius: 4px;
}
}
.flex {
display: flex;
justify-content: space-around;
}
</style>