ZBLOG

从您提供的代码来看,问题出在如何设置 totalRecords 变量。您的 queryTable 函数中这样处理了响应的数据:

CollectionRecord(params)
    .then((response) => {
      data.value = response.data
      totalRecords.value = response.data.length || 0 // 设置总记录数
    })

如果 response.data 是一个空数组(即没有数据),则 response.data.length 会返回 0,而通过逻辑或运算符 (||) 的方式确保总记录数为 0 是没问题的。

但是在 Ant Design Vue 的表格组件中,它通常需要用到数据的总记录数来正确显示分页信息。因此,如果后端 API 返回的数据为空时,您应该确保也更新这个值。

如果在分页信息上仍然显示“1-1条记录,共一条记录”,而不是“0”,可能是因为前端组件并不完全理解当前没有数据的状态。这可能和初始化状态有关。

要解决这个问题,可以考虑以下步骤:

  1. 确保在请求数据之前,先将 data.valuetotalRecords.value 初始化为合适的值:

    const queryTable = () => {
     // 初始化数据和总数
     data.value = []
     totalRecords.value = 0
    
    
     const params = {
       draw: 1,
       length: pageSize.value,
       order: [1],
       search: { regex: false, value: '' },
       searchParams: {
         custId: 'A10101',
         date: formState.date,
         dateEnd: formState.dateEnd,
         importDate: formState.importDate,
         importDateEnd: formState.importDateEnd
       },
       start: 0
     }
    
    
     CollectionRecord(params)
       .then((response) => {
         data.value = response.data || []
         totalRecords.value = response.totalCount || 0 // 应该根据后端返回的总数来设置
       })
       .catch((error) => {
         console.error('请求失败:', error)
         data.value = [] // 请求失败时也清空数据数组
         totalRecords.value = 0 // 并确保总记录数为0
       })
    }
    
  2. 确保你的 API 返回的数据格式包含用于表示总记录数的信息。如果只返回了当前页的数据,那么你可能还需要另一个字段来提供所有可用数据的数量,以便于支持分页。然后使用这个字段来赋值给 totalRecords.

  3. 确保每次查询的时候都能够重新拉取最新的数据,并更新到表格。

通过这些步骤,应当可以正常处理没有数据时分页显示的问题。


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?