@hzab/list-render 1.10.18 → 1.10.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ # @hzab/list-render@1.10.19
2
+
3
+ fix: 修复 PaginationRender 的 pageSizeOptions 取值
4
+ feat: 分页支持全部选项
5
+
1
6
  # @hzab/list-render@1.10.18
2
7
 
3
8
  fix: isCancel 兼容 data-model 新老版本
package/README.md CHANGED
@@ -255,9 +255,11 @@ const Slots = {
255
255
 
256
256
  - 默认参数参考 antd pagination 组件
257
257
 
258
- | 属性名称 | 属性类型 | 必须 | 默认值 | 描述 |
259
- | --------------- | -------- | ---- | ----------------- | ------------------ |
260
- | pageSizeOptions | Array | 否 | [10, 20, 50, 100] | 可选 pageSize 数组 |
258
+ | 属性名称 | 属性类型 | 必须 | 默认值 | 描述 |
259
+ | --------------- | -------- | ---- | ----------------- | ------------------------------------------- |
260
+ | pageSizeOptions | Array | 否 | [10, 20, 50, 100] | 可选 pageSize 数组 |
261
+ | isAllSelect | boolean | 否 | false | 是否使用全部 |
262
+ | isAllSelectKey | string | 否 | "isAllSelect" | 选中全部时告知后端的字段名称,实际值为 true |
261
263
 
262
264
  #### getFieldListOpt
263
265
 
@@ -566,7 +568,6 @@ async function test() {
566
568
  ## 命令
567
569
 
568
570
  - Mac 执行该命令,设置 pre-commit 为可执行文件
569
-
570
571
  - npm run mac-chmod
571
572
  - chmod +x .husky && chmod +x .husky/pre-commit
572
573
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hzab/list-render",
3
- "version": "1.10.18",
3
+ "version": "1.10.19",
4
4
  "description": "",
5
5
  "main": "src",
6
6
  "scripts": {
@@ -61,6 +61,8 @@ const ListRender = forwardRef(function (props, parentRef) {
61
61
  * */
62
62
  appendUrlQueryKey = URL_PARAM_NAME,
63
63
  } = props;
64
+ const { isAllSelect = false, isAllSelectKey = "isAllSelect" } = props.paginationConf || {};
65
+
64
66
  const pageSizeOptions = props.paginationConf?.pageSizeOptions || pageSizeOptionMap[props.layout] || [10, 20, 50, 100];
65
67
  // const [pageSizeOptions, setPageSizeOptions] = useState(
66
68
  // props.paginationConf?.pageSizeOptions || pageSizeOptionMap[props.layout] || [10, 20, 50, 100],
@@ -179,9 +181,16 @@ const ListRender = forwardRef(function (props, parentRef) {
179
181
  // 重新获取 source
180
182
  getListSourceRef.current = getCancelTokenSource();
181
183
 
184
+ //处理分页特殊情况 - 全部
185
+ const getListSource = cloneDeep(mergedQueries);
186
+ if (isAllSelect && getListSource.pageSize === Infinity) {
187
+ getListSource[isAllSelectKey] = true;
188
+ getListSource.pageSize = undefined;
189
+ }
190
+
182
191
  return model
183
192
  ?.getList(
184
- cloneDeep(mergedQueries),
193
+ getListSource,
185
194
  {},
186
195
  {
187
196
  cancelToken: getListSourceRef.current?.token,
@@ -1,51 +1,53 @@
1
- import { useEffect, useState } from "react";
2
- import { Pagination } from "antd";
3
-
4
- import "./index.less";
5
-
6
- function PaginationRender(props) {
7
- const [pageSize, setPageSize] = useState(props.query?.pageSize || pageSizeOptions[0]);
8
- const [pageNum, setPageNumber] = useState(props.query?.pageNum || 1);
9
-
10
- useEffect(() => {
11
- const { query } = props;
12
- if (!query) {
13
- return;
14
- }
15
- if (query.pageSize && query.pageSize !== pageSize) {
16
- setPageSize(query.pageSize);
17
- }
18
- if (query.pageNum && query.pageNum !== pageNum) {
19
- setPageNumber(query.pageNum);
20
- }
21
- }, [props.query?.pageNum, props.query?.pageSize]);
22
-
23
- function onChange(page, size) {
24
- let _size = size;
25
- let _page = page;
26
- if (pageSize !== size) {
27
- _page = 1;
28
- }
29
- setPageSize(_size);
30
- setPageNumber(_page);
31
- props.onChange && props.onChange(_page, _size);
32
- }
33
-
34
- return (
35
- <div className="pagination-render-wrap">
36
- <Pagination
37
- {...(props.config || {})}
38
- className="pagination-render"
39
- current={pageNum}
40
- pageSize={pageSize}
41
- onChange={onChange}
42
- pageSizeOptions={props.pageSizeOptions}
43
- total={props.total}
44
- showTotal={(total) => `总条数 ${total} 条`}
45
- showSizeChanger
46
- />
47
- </div>
48
- );
49
- }
50
-
51
- export default PaginationRender;
1
+ import { useEffect, useState } from "react";
2
+ import { Pagination } from "antd";
3
+
4
+ import "./index.less";
5
+
6
+ function PaginationRender(props) {
7
+ const { config } = props;
8
+ const { isAllSelect = false } = config || {};
9
+ const [pageSize, setPageSize] = useState(props.query?.pageSize || props.pageSizeOptions[0]);
10
+ const [pageNum, setPageNumber] = useState(props.query?.pageNum || 1);
11
+
12
+ useEffect(() => {
13
+ const { query } = props;
14
+ if (!query) {
15
+ return;
16
+ }
17
+ if (query.pageSize && query.pageSize !== pageSize) {
18
+ setPageSize(query.pageSize);
19
+ }
20
+ if (query.pageNum && query.pageNum !== pageNum) {
21
+ setPageNumber(query.pageNum);
22
+ }
23
+ }, [props.query?.pageNum, props.query?.pageSize]);
24
+
25
+ function onChange(page, size) {
26
+ let _size = size;
27
+ let _page = page;
28
+ if (pageSize !== size) {
29
+ _page = 1;
30
+ }
31
+ setPageSize(_size);
32
+ setPageNumber(_page);
33
+ props.onChange && props.onChange(_page, _size);
34
+ }
35
+
36
+ return (
37
+ <div className="pagination-render-wrap">
38
+ <Pagination
39
+ {...(props.config || {})}
40
+ className={`pagination-render ${isAllSelect ? "pagination-infinity" : null} ${pageSize == Infinity ? "pagination-infinity-checked" : ""}`}
41
+ current={pageNum}
42
+ pageSize={pageSize}
43
+ onChange={onChange}
44
+ pageSizeOptions={isAllSelect ? [...props.pageSizeOptions, Infinity] : props.pageSizeOptions}
45
+ total={props.total}
46
+ showTotal={(total) => `总条数 ${total} 条`}
47
+ showSizeChanger
48
+ />
49
+ </div>
50
+ );
51
+ }
52
+
53
+ export default PaginationRender;