S2 icon indicating copy to clipboard operation
S2 copied to clipboard

🙏 分页支持数据在服务端分页

Open zeyongTsai opened this issue 2 years ago • 7 comments

🖋 Description

通过目前的源码分析,分页是全部数据给到 S2 ,然后在前端实现的分页。但是在服务端实现分页也是一个比较常见的情况,要增加这个特性的话,原则上只需要一个标志告知组件内部是否采用服务端分页方式,如果采用服务端分页,则对 total 的更新采用 props 传入,S2 也不在调用 updatePagination

🏞 What problem does this feature solve

支持数据在服务端分页,分页组件采用 S2-react 或 S2-Vue 的分页组件

🧐 Suggest the API

pagination = {
  current: Number,
  pageSize: Number,
  total: Number //feat
}
showPagination = {
  onChange: Function,
  onShowSizeChange: Function,
  serverSide: Boolean // feat
}
name type default description
pagination.total Number 0 数据总条数
showPagination .serverSide Boolean false 是否服务端分页

zeyongTsai avatar Jun 15 '22 06:06 zeyongTsai

你要找的是不是 (You may look for issues):

  1. 57% #1150
  2. 57% #1138
  3. 50% #1151
  4. 50% #745
  5. 50% #678

🤖 By issues-similarity-analysis

github-actions[bot] avatar Jun 15 '22 06:06 github-actions[bot]

感觉你的描述已经很清晰了, 直接来个 PR? 😸

lijinke666 avatar Jun 15 '22 08:06 lijinke666

@lijinke666 我日常用 Vue,所以我写了一个 Vue 的,你有空的话麻烦帮我看看思路对不对。s2-vue

目前碰到的问题是:

  1. pagination 放到 s2Options 中,服务端分页的时候,需要将 pagination 透传到分页组件,分页组件抛出事件会改变 pagination这个 prop。这里就导致 wach s2Options 的时候分不清是否应该调用 changeSheetSize(默认都调用)useSheetUpdate.ts
  2. 项目的 eslint 依赖了 es-abstract^1.19,这个版本发布的文件似乎不齐全(github源码齐全),影响 lint
    Error: Failed to load plugin 'react' declared in '.eslintrc.js': Cannot find module 'es-abstract/2021/AddEntriesFromIterable'
    

zeyongTsai avatar Jun 16 '22 09:06 zeyongTsai

要不你先提交下PR, 我们来 Review?

lijinke666 avatar Jun 20 '22 09:06 lijinke666

我也有这个需求,从服务端得到的记录总数无法更新到分页组件的total里,哪怕只支持明细表也行,我用react

wangwufan avatar Feb 09 '23 01:02 wangwufan

现在这个问题解决了吗?是不是还是不行呀?

yuanAIhan avatar Sep 07 '23 09:09 yuanAIhan

mark

wozien avatar Nov 17 '23 07:11 wozien