描述:日期每隔3个前后翻页
效果如下:
代码实现:
<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 = 3const 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>