@zat-design/sisyphus-react 3.10.3 → 3.10.4

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.
@@ -24,7 +24,7 @@ require("./index.less");
24
24
  var _excluded = ["dataSource", "defaultDisableValue", "useRequest", "fieldNames", "tooltip", "otherProps", "labelInValue", "filterInList", "scrollFollowParent", "defaultOne", "onSearch", "optionRender", "onChange", "updateDataSource", "transformResponse", "getValueProps", "isView"];
25
25
  var Option = _antd.Select.Option;
26
26
  var ProSelect = exports.ProSelect = function ProSelect(props, ref) {
27
- var _selectProps$showCode, _locale$ProSelect;
27
+ var _selectProps$showCode, _useRequest$options, _locale$ProSelect;
28
28
  var _ref = (0, _ProConfigProvider.useProConfig)('ProSelect') || {},
29
29
  _ref$fieldNames = _ref.fieldNames,
30
30
  proSelectFieldNames = _ref$fieldNames === void 0 ? {} : _ref$fieldNames,
@@ -88,6 +88,21 @@ var ProSelect = exports.ProSelect = function ProSelect(props, ref) {
88
88
  }
89
89
  setSelectList(data || []);
90
90
  };
91
+ var successTransformDataHandle = (0, _react.useCallback)(function (res) {
92
+ if (transformResponse && typeof transformResponse === 'function') {
93
+ return transformResponse(res);
94
+ }
95
+ var _ref3 = res || {},
96
+ _ref3$status = _ref3.status,
97
+ status = _ref3$status === void 0 ? 200 : _ref3$status,
98
+ msg = _ref3.message,
99
+ data = _ref3.data;
100
+ if (status !== 200) {
101
+ _antd.message.error(msg);
102
+ return;
103
+ }
104
+ return data;
105
+ }, []);
91
106
  var fetchFunction = (0, _ahooks.useRequest)(useRequest === null || useRequest === void 0 ? void 0 : useRequest.service, (0, _objectSpread2.default)({
92
107
  manual: true,
93
108
  onSuccess: function onSuccess(data) {
@@ -101,6 +116,7 @@ var ProSelect = exports.ProSelect = function ProSelect(props, ref) {
101
116
  },
102
117
  debounceWait: 300
103
118
  }, useRequest === null || useRequest === void 0 ? void 0 : useRequest.options));
119
+ var cacheList = (useRequest === null || useRequest === void 0 ? void 0 : (_useRequest$options = useRequest.options) === null || _useRequest$options === void 0 ? void 0 : _useRequest$options.cacheKey) ? successTransformDataHandle(fetchFunction === null || fetchFunction === void 0 ? void 0 : fetchFunction.data) : [];
104
120
  var getValueObject = function getValueObject(input) {
105
121
  if (Array.isArray(input) && input.length) {
106
122
  var resArr = [];
@@ -125,15 +141,24 @@ var ProSelect = exports.ProSelect = function ProSelect(props, ref) {
125
141
  (0, _ahooks.useDeepCompareEffect)(function () {
126
142
  setSelectList(dataSource);
127
143
  }, [dataSource]);
144
+ (0, _ahooks.useDeepCompareEffect)(function () {
145
+ var _useRequest$options2;
146
+ // 设置cacheKey后使用缓存的数据
147
+ if (!(selectList === null || selectList === void 0 ? void 0 : selectList.length) && (useRequest === null || useRequest === void 0 ? void 0 : (_useRequest$options2 = useRequest.options) === null || _useRequest$options2 === void 0 ? void 0 : _useRequest$options2.cacheKey)) {
148
+ if (cacheList === null || cacheList === void 0 ? void 0 : cacheList.length) {
149
+ setSelectList(cacheList);
150
+ }
151
+ }
152
+ }, [fetchFunction === null || fetchFunction === void 0 ? void 0 : fetchFunction.data]);
128
153
  (0, _ahooks.useDeepCompareEffect)(function () {
129
154
  // 默认disable值时,不查询接口
130
155
  if (defaultDisableValue || !useRequest) {
131
156
  return;
132
157
  }
133
- var _ref3 = (useRequest === null || useRequest === void 0 ? void 0 : useRequest.options) || {},
134
- defaultParams = _ref3.defaultParams,
135
- manual = _ref3.manual;
136
- if (manual) {
158
+ var _ref4 = (useRequest === null || useRequest === void 0 ? void 0 : useRequest.options) || {},
159
+ defaultParams = _ref4.defaultParams,
160
+ manual = _ref4.manual;
161
+ if (manual || (cacheList === null || cacheList === void 0 ? void 0 : cacheList.length)) {
137
162
  return;
138
163
  }
139
164
  fetchFunction.run(defaultParams);
@@ -31,6 +31,7 @@ var useDefaultOptions = function useDefaultOptions(options) {
31
31
  onPageChange: (options === null || options === void 0 ? void 0 : options.onPageChange) || onPageChange
32
32
  });
33
33
  };
34
+ var previousSearchValues = null;
34
35
  function useAntdTable(service, options, useRequestOptions) {
35
36
  var _locale$ProTable2, _locale$ProTable3, _locale$ProTable4, _locale$ProTable5;
36
37
  var _useSetState = (0, _ahooks.useSetState)({
@@ -39,7 +40,10 @@ function useAntdTable(service, options, useRequestOptions) {
39
40
  selectedRecords: [],
40
41
  selectedRowKeys: [],
41
42
  searchValues: undefined,
42
- extraFilter: undefined,
43
+ extraFilter: {
44
+ filters: undefined,
45
+ sorter: undefined
46
+ },
43
47
  allSelected: false
44
48
  }),
45
49
  _useSetState2 = (0, _slicedToArray2.default)(_useSetState, 2),
@@ -70,10 +74,10 @@ function useAntdTable(service, options, useRequestOptions) {
70
74
  transformResponse = _useDefaultOptions.transformResponse,
71
75
  disabled = _useDefaultOptions.disabled;
72
76
  var _ref = useRequestOptions || {},
73
- defaultParams = _ref.defaultParams,
74
- manual = _ref.manual;
77
+ defaultParams = _ref.defaultParams;
75
78
  var defaultParam = Array.isArray(defaultParams) ? defaultParams === null || defaultParams === void 0 ? void 0 : defaultParams[0] : defaultParams || {};
76
79
  var initPage = (options === null || options === void 0 ? void 0 : options.page) || _index.defaultPage;
80
+ var previousPage = (0, _ahooks.usePrevious)(page || _index.defaultPage);
77
81
  var getTransformParams = (0, _react.useCallback)(function (params) {
78
82
  var _pickBy;
79
83
  var realParams = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, defaultParam), extraParams), params);
@@ -112,9 +116,17 @@ function useAntdTable(service, options, useRequestOptions) {
112
116
  page: page
113
117
  }, newQueryBean));
114
118
  }, [page, searchValues, extraFilter]);
119
+ var curService = (0, _react.useMemo)(function () {
120
+ return service.toString();
121
+ }, [service]);
122
+ var curExtraParams = (0, _react.useMemo)(function () {
123
+ return extraParams ? JSON.stringify(extraParams) : extraParams;
124
+ }, [extraParams]);
115
125
  // 调接口
116
- var result = (0, _ahooks.useRequest)(service, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, useRequestOptions), {}, {
117
- debounceWait: 50,
126
+ var result = (0, _ahooks.useRequest)(service, (0, _objectSpread2.default)((0, _objectSpread2.default)({
127
+ debounceWait: 300,
128
+ refreshDeps: [curService, curExtraParams]
129
+ }, useRequestOptions), {}, {
118
130
  defaultParams: [getTransformParams()],
119
131
  onSuccess: function onSuccess(res, params) {
120
132
  var transformResult = transformResponse ? transformResponse(res) : res || {};
@@ -138,9 +150,6 @@ function useAntdTable(service, options, useRequestOptions) {
138
150
  }));
139
151
  var run = result.run,
140
152
  refreshAsync = result.refreshAsync;
141
- var curService = (0, _react.useMemo)(function () {
142
- return service.toString();
143
- }, [service]);
144
153
  // service变化时触发 (禁止掉防止service变更时导致的死循环)
145
154
  var clearSelected = (0, _react.useCallback)(function () {
146
155
  setState({
@@ -179,6 +188,12 @@ function useAntdTable(service, options, useRequestOptions) {
179
188
  setState(nextObject);
180
189
  }
181
190
  }, [allSelected, data]);
191
+ // 释放
192
+ (0, _react.useEffect)(function () {
193
+ return function () {
194
+ previousSearchValues = null;
195
+ };
196
+ }, []);
182
197
  // 分页变更
183
198
  var handlePageChange = (0, _react.useCallback)(function (current, pageSize) {
184
199
  var page = {
@@ -220,26 +235,32 @@ function useAntdTable(service, options, useRequestOptions) {
220
235
  filters: filters,
221
236
  sorter: sorter
222
237
  })));
223
- }, [allSelected, searchValues, run, getTransformParams]);
238
+ }, [allSelected, searchValues, getTransformParams]);
224
239
  var onSearch = (0, _react.useCallback)(function (values) {
225
240
  var newPage = {
226
241
  pageNum: 1,
227
242
  pageSize: page.pageSize
228
243
  };
229
244
  var _values = (0, _utils.removeEmptyKeys)(values);
230
- onPageChange(newPage);
231
- setState({
232
- searchValues: _values,
233
- allSelected: false,
234
- selectedRecords: [],
235
- selectedRowKeys: []
236
- });
245
+ // 如果 previousPage 存在且与 page 不相等,则触发页面变化
246
+ if (previousPage && !(0, _lodash.isEqual)(previousPage, page)) {
247
+ onPageChange(newPage);
248
+ }
249
+ // 减少查询按钮的渲染,只有需要重置值时才需要调用
250
+ if ((selectedRecords === null || selectedRecords === void 0 ? void 0 : selectedRecords.length) || (0, _utils.isNonEmptyObject)(_values) && !(0, _lodash.isEqual)(previousSearchValues, _values)) {
251
+ previousSearchValues = _values;
252
+ setState({
253
+ searchValues: _values,
254
+ allSelected: false,
255
+ selectedRecords: [],
256
+ selectedRowKeys: []
257
+ });
258
+ }
237
259
  run(getTransformParams((0, _objectSpread2.default)((0, _objectSpread2.default)({
238
260
  page: newPage
239
261
  }, extraFilter), _values)));
240
- }, [extraFilter, page.pageSize, run, getTransformParams]);
241
- var resetParams = (0, _react.useCallback)(function () {
242
- var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initPage;
262
+ }, [extraFilter, page.pageSize, previousPage, getTransformParams]);
263
+ var resetParams = (0, _react.useCallback)(function (page) {
243
264
  setState({
244
265
  searchValues: undefined,
245
266
  allSelected: false,
@@ -309,28 +330,6 @@ function useAntdTable(service, options, useRequestOptions) {
309
330
  return _ref4.apply(this, arguments);
310
331
  };
311
332
  }();
312
- (0, _ahooks.useDeepCompareEffect)(function () {
313
- if (!manual && curService) {
314
- // service改变时重新请求
315
- resetParams();
316
- onPageChange(initPage);
317
- run(getTransformParams());
318
- }
319
- }, [curService]);
320
- (0, _ahooks.useDeepCompareEffect)(function () {
321
- // extraParams改变时重新请求
322
- if (!manual && extraParams) {
323
- var newPage = {
324
- pageNum: 1,
325
- pageSize: page.pageSize
326
- };
327
- onPageChange(newPage);
328
- resetParams(newPage);
329
- run(getTransformParams({
330
- page: newPage
331
- }));
332
- }
333
- }, [extraParams]);
334
333
  var _rowSelection = {
335
334
  fixed: true,
336
335
  type: rowSelectType,
@@ -456,8 +455,8 @@ function useAntdTable(service, options, useRequestOptions) {
456
455
  });
457
456
  }
458
457
  }
459
- var selectedTip = allSelected || selectedRowKeys.length ? (0, _locale.formatMessage)(_locale.default === null || _locale.default === void 0 ? void 0 : (_locale$ProTable5 = _locale.default.ProTable) === null || _locale$ProTable5 === void 0 ? void 0 : _locale$ProTable5.selectAll, {
460
- selectedNum: allSelected ? total : selectedRowKeys === null || selectedRowKeys === void 0 ? void 0 : selectedRowKeys.length
458
+ var selectedTip = allSelected && selectedRowKeys.length ? (0, _locale.formatMessage)(_locale.default === null || _locale.default === void 0 ? void 0 : (_locale$ProTable5 = _locale.default.ProTable) === null || _locale$ProTable5 === void 0 ? void 0 : _locale$ProTable5.selectAll, {
459
+ total: allSelected ? total : selectedRowKeys === null || selectedRowKeys === void 0 ? void 0 : selectedRowKeys.length
461
460
  }) : null;
462
461
  var pagination = {
463
462
  current: page.pageNum,
@@ -585,7 +585,9 @@
585
585
 
586
586
  .@{ant-prefix}-table-summary {
587
587
  background-color: var(--zaui-table-header-bg, #f2f3f5);
588
-
588
+ td{
589
+ padding:calc(4px + var(--zaui-size)* 8px);
590
+ }
589
591
  .@{ant-prefix}-table-cell {
590
592
  font-weight: 500;
591
593
  background-color: var(--zaui-table-header-bg, #f2f3f5);
@@ -39,3 +39,5 @@ export declare const getPadding: (el: HTMLElement) => {
39
39
  pTop: number;
40
40
  pBottom: number;
41
41
  };
42
+ /** 判断是有值的对象 */
43
+ export declare const isNonEmptyObject: (obj: any) => obj is Record<string, any>;
@@ -4,7 +4,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.removeEmptyKeys = exports.isListResult = exports.getRowKey = exports.getPadding = exports.getOriginalValue = exports.getDecimalDigits = exports.getColumnDataIndex = void 0;
7
+ exports.removeEmptyKeys = exports.isNonEmptyObject = exports.isListResult = exports.getRowKey = exports.getPadding = exports.getOriginalValue = exports.getDecimalDigits = exports.getColumnDataIndex = void 0;
8
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
8
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
10
  var _lodash = require("lodash");
10
11
  var _utils = require("@zat-design/utils");
@@ -106,4 +107,8 @@ var getPadding = exports.getPadding = function getPadding(el) {
106
107
  pTop: paddingTop,
107
108
  pBottom: paddingBottom
108
109
  };
110
+ };
111
+ /** 判断是有值的对象 */
112
+ var isNonEmptyObject = exports.isNonEmptyObject = function isNonEmptyObject(obj) {
113
+ return obj !== null && (0, _typeof2.default)(obj) === 'object' && !Array.isArray(obj) && Object.keys(obj).length > 0;
109
114
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zat-design/sisyphus-react",
3
- "version": "3.10.3",
3
+ "version": "3.10.4",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",