vue3中删除列表中数据,总数存在,当前页码无数据时,页码自动减1

vue3中删除列表中数据,总数存在,当前页码无数据时,页码自动减1

const reqTaskList = () => {
	loading.value = true
	const params = {
		current: pagination.current,
		size: pagination.pageSize
	}
	getTaskList(params)
		.then((res) => {
			const { data } = res
			dataSource.value = data?.records
			pagination.total = data.total
			if (pagination.total > 0 && dataSource.value.length === 0 && pagination.current > 1) {
				--pagination.current
				reqTaskList()
			}
		})
		.finally(() => {
			loading.value = false
		})
}

当前页返回数组为空时,且数据总数不为0时,说明该列表是有数据的,只是当前页数据不存在,此时页码减去1,请求上一页的数据即可

### 回答1: 在 Ant Design Vue ,您可以通过设置 "showTotal" 和 "total" 属性来限制分页器的最大页数。 "showTotal" 属性用于自定义分页器显示的文字,而 "total" 属性则表示数据的总条数,通过设置 "total" 属性,您可以限制分页器的最大页数。 下面是一个示例代码: ``` <a-pagination :showTotal="showTotal" :total="100" @change="handlePageChange" /> ... methods: { showTotal(total) { return `总共 ${total} 条数据`; }, handlePageChange(page) { console.log(page); }, } ``` 在上面的代码,我们将 "total" 属性设置为 100,并通过 "showTotal" 方法在分页器上方显示 "总共 100 条数据" 的字样,同通过 "handlePageChange" 方法监听分页器的 "change" 事件。 ### 回答2: 在Ant Design Vue,可以通过设置Pagination组件的total属性来指定数据总数。同,可以设置pageSize属性来指定每页显示的数据条数。结合这两个属性,可以计算出总页数(以total除以pageSize并向上取整)。为了限制最大页码数,可以创建一个变量来存储总页数,并在渲染Pagination组件设置showLessItems属性,将页码显示的最大数量限制在指定的值上。如下所示: ```vue <template> <div> <!-- 数据列表 --> <!-- ... --> <!-- 分页组件 --> <a-pagination :total="total" :defaultPageSize="pageSize" :showLessItems="maxPageNum" @change="handlePageChange" /> </div> </template> <script> export default { data() { return { total: 1000, // 总数据条数 pageSize: 10, // 每页显示的数据条数 currentPage: 1, // 当前页码 maxPageNum: 5, // 最大页码数 pageCount: 0 // 总页数 }; }, computed: { // 计算总页数 pageCount() { return Math.ceil(this.total / this.pageSize); } }, methods: { // 当页码改变触发的方法 handlePageChange(newPage) { this.currentPage = newPage; // 请求数据并更新列表 // ... } }, created() { this.total = 1000; // 可以通过请求后端接口获取数据总数 // 计算总页数 this.pageCount = Math.ceil(this.total / this.pageSize); this.maxPageNum = Math.min(this.maxPageNum, this.pageCount); } } </script> ``` 在上述示例代码,使用了total、pageSize和maxPageNum这三个变量。total指定了数据总条数,pageSize指定了每页显示的数据条数,maxPageNum指定了页码的最大显示数量。通过计算得到了pageCount来获取总页数,然后将maxPageNum与pageCount进行比较,取较小的值作为实际的最大页码数。这样,在渲染Pagination组件就可以通过设置showLessItems属性来限制页码的最大显示数量。 ### 回答3: 在Ant Design Vue,可以通过设置Pagination组件的`showLessItems`属性来控制Pagination的最大页码数。 默认情况下,当总页数超过5页,Pagination组件会以省略号的形式显示部分页码,用户需要通过点击省略号来查看更多的页码。但是,我们可以通过设置`showLessItems`属性为true来禁用这个功能,让Pagination始终显示所有的页码。 下面是一个示例代码: ```vue <template> <div> <a-pagination :total="totalPage" :current="currentPage" :showLessItems="false" @change="handleChange" /> </div> </template> <script> export default { data() { return { totalPage: 10, // 总页数 currentPage: 1, // 当前页码 }; }, methods: { handleChange(currentPage) { this.currentPage = currentPage; }, }, }; </script> ``` 在上面的代码,Pagination组件的`showLessItems`属性被设置为`false`,这样就可以显示所有的页码,而不会自动省略一部分页码。 通过设置具体的总页数和当前页码,可以实现分页功能,并且根据实际情况可以灵活地设置Pagination的最大页码数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值