ZBLOG

要在数据为空的情况下保持分页组件正常显示,你需要确保 a-table 组件的 pagination 属性有正确配置。即使数据为空,pagination 部分应该仍然被渲染并且可以进行操作。

以下是一些步骤和修改建议,以确保分页在数据为空时正常展示:

  1. 确保设置 total 属性:当你的 data 数组为空时,可以给分页传递一个 total 值。通常这个值应为请求到的数据总数。在空数据情况下,可以设定它为你希望的值,例如0。

  2. 修改 <a-table> 的属性:在模板中调整 :pagination 的实现方式,特别是加入一个条件判断以支持无数据状态下的分页。

  3. 处理查询函数:在获取数据之后,要更新总数,这样可以控制分页。

以下是调整后的代码示例:

<template>
  <div class="HistoricalReminder">
    <a-table
      :columns="columns"
      :data-source="data"
      :scroll="{ x: 'max-content' }"
      :pagination="{
        current: currentPage,
        pageSize: pageSize,
        total: totalRecords,
        showSizeChanger: true,
        pageSizeOptions: ['5', '10', '20'],
        onShowSizeChange: handlePageSizeChange,
        showQuickJumper: true,
        showTotal: (total, range) => `显示 ${range[0]}~${range[1]}条记录,共 ${total} 条记录`
      }"
      :rowClassName="(record, index) => (index % 2 === 0 ? 'red-row' : '')"
    ></a-table>
  </div>
</template>

<script setup>
import { ref, reactive } from 'vue'
import { CollectionRecord } from '../../utils'

const columns = []

const data = ref([])
const totalRecords = ref(0) // 用于保存总记录数
const currentPage = ref(1) // 当前页码
const pageSize = ref(5)
const formState = reactive({
  date: '',
  dateEnd: '',
  importDate: '',
  importDateEnd: ''
})

const handlePageSizeChange = (current, size) => {
  console.log(`每页条数变化为:${size}`)
  pageSize.value = size
}

const queryTable = () => {
  const params = {
    draw: 1,
    length: pageSize.value,
    order: [1],
    searchParams:{
      custId: 'A10101',
      date: formState.date,
      dateEnd: formState.dateEnd,
      importDate: formState.importDate,
      importDateEnd: formState.importDateEnd
    },
    start: (currentPage.value - 1) * pageSize.value // 根据当前页计算起始位置
  }

  CollectionRecord(params)
    .then((response) => {
      data.value = response.data || [] // 确保返回的是数组
      totalRecords.value = response.total || 0; // 更新总记录数,假设 API 返回了这个字段 
    })
    .catch((error) => {
      console.error('请求失败:', error)
    })
}

const reset = () => {
  console.log(formState)
  formState.date = ''
  formState.dateEnd = ''
  formState.importDate = ''
  formState.importDateEnd = ''
}
</script>

<style scoped>
.red-row {
   background-color: #ffcccc; /* 或其他样式 */
}
</style>

修改说明:

  • 添加了 totalRecordscurrentPage 两个响应式变量。
  • 在调用 API 后更新 totalRecords.value 为后端返回的总记录数。
  • 在设置查询参数时,增加了对当前页码的计算,以便于翻页功能正常工作。
  • 确保即使没有数据也能维护分页逻辑。这样就算结果集为空,表格依然会展示分页信息。


    内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=19839

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?