@ant-design/pro-components 3.0.1-0 → 3.0.2-0

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.
Files changed (47) hide show
  1. package/dist/pro-components.min.js +1 -1
  2. package/es/card/components/Statistic/style.js +2 -6
  3. package/es/descriptions/index.js +2 -1
  4. package/es/field/ValueTypeToComponent.js +4 -4
  5. package/es/field/components/Checkbox/index.d.ts +1 -1
  6. package/es/field/components/Percent/util.d.ts +1 -1
  7. package/es/field/components/Select/index.d.ts +1 -1
  8. package/es/form/BaseForm/BaseForm.js +3 -2
  9. package/es/form/components/DatePicker/BaseDatePicker.js +20 -12
  10. package/es/form/components/DateRangePicker/BaseDateRanger.js +38 -13
  11. package/es/form/components/SchemaForm/index.js +1 -2
  12. package/es/form/components/UploadButton/index.d.ts +1 -1
  13. package/es/form/components/UploadButton/index.js +3 -3
  14. package/es/layout/components/SiderMenu/index.js +4 -2
  15. package/es/table/Table.js +52 -75
  16. package/es/table/components/ColumnSetting/index.js +12 -2
  17. package/es/table/typing.d.ts +29 -7
  18. package/es/table/utils/columnRender.d.ts +1 -1
  19. package/es/table/utils/genProColumnToColumn.d.ts +2 -2
  20. package/es/table/utils/genProColumnToColumn.js +5 -17
  21. package/es/table/utils/index.d.ts +58 -5
  22. package/es/table/utils/index.js +155 -18
  23. package/es/utils/conversionMomentValue/index.js +14 -2
  24. package/lib/card/components/Statistic/style.js +2 -6
  25. package/lib/descriptions/index.js +2 -1
  26. package/lib/field/ValueTypeToComponent.js +4 -4
  27. package/lib/field/components/ColorPicker/index.d.ts +1 -1
  28. package/lib/field/components/Percent/util.d.ts +1 -1
  29. package/lib/form/BaseForm/BaseForm.js +3 -2
  30. package/lib/form/components/DatePicker/BaseDatePicker.js +19 -11
  31. package/lib/form/components/DateRangePicker/BaseDateRanger.js +37 -12
  32. package/lib/form/components/Digit/DigitRange.d.ts +1 -1
  33. package/lib/form/components/SchemaForm/index.js +1 -2
  34. package/lib/form/components/UploadButton/index.d.ts +1 -1
  35. package/lib/form/components/UploadButton/index.js +3 -3
  36. package/lib/form/layouts/ProForm/index.d.ts +1 -1
  37. package/lib/layout/components/SiderMenu/index.js +4 -2
  38. package/lib/table/Table.js +69 -92
  39. package/lib/table/components/ColumnSetting/index.js +12 -2
  40. package/lib/table/typing.d.ts +29 -7
  41. package/lib/table/utils/columnRender.d.ts +1 -1
  42. package/lib/table/utils/genProColumnToColumn.d.ts +2 -2
  43. package/lib/table/utils/genProColumnToColumn.js +4 -16
  44. package/lib/table/utils/index.d.ts +58 -5
  45. package/lib/table/utils/index.js +157 -20
  46. package/lib/utils/conversionMomentValue/index.js +14 -2
  47. package/package.json +31 -31
@@ -4,7 +4,7 @@ import { Table } from 'antd';
4
4
  import { proFieldParsingValueEnumToArray } from "../../field";
5
5
  import { omitBoolean, omitUndefinedAndEmptyArr, runFunction } from "../../utils";
6
6
  import { columnRender, defaultOnFilter, renderColumnsTitle } from "./columnRender";
7
- import { genColumnKey } from "./index";
7
+ import { genColumnKey, parseProFilteredValue, parseProSortOrder } from "./index";
8
8
  /**
9
9
  * 转化 columns 到 pro 的格式 主要是 render 方法的自行实现
10
10
  *
@@ -24,8 +24,7 @@ export function genProColumnToColumn(params, parents) {
24
24
  rowKey = _params$rowKey === void 0 ? 'id' : _params$rowKey,
25
25
  _params$childrenColum = params.childrenColumnName,
26
26
  childrenColumnName = _params$childrenColum === void 0 ? 'children' : _params$childrenColum,
27
- _params$proFilter = params.proFilter,
28
- proFilter = _params$proFilter === void 0 ? {} : _params$proFilter,
27
+ proFilter = params.proFilter,
29
28
  proSort = params.proSort;
30
29
  var subNameRecord = new Map();
31
30
  return columns === null || columns === void 0 || (_columns$map = columns.map(function (columnProps, columnsIndex) {
@@ -40,9 +39,7 @@ export function genProColumnToColumn(params, parents) {
40
39
  children = _ref.children,
41
40
  onFilter = _ref.onFilter,
42
41
  _ref$filters = _ref.filters,
43
- filters = _ref$filters === void 0 ? [] : _ref$filters,
44
- sorter = _ref.sorter,
45
- columnFilteredValue = _ref.filteredValue;
42
+ filters = _ref$filters === void 0 ? [] : _ref$filters;
46
43
  var columnKey = genColumnKey(key || (dataIndex === null || dataIndex === void 0 ? void 0 : dataIndex.toString()), [parents === null || parents === void 0 ? void 0 : parents.key, columnsIndex].filter(Boolean).join('-'));
47
44
  // 这些都没有,说明是普通的表格不需要 pro 管理
48
45
  var noNeedPro = !valueEnum && !valueType && !children;
@@ -62,11 +59,6 @@ export function genProColumnToColumn(params, parents) {
62
59
  }
63
60
  return omitBoolean(onFilter);
64
61
  };
65
-
66
- // 对应筛选值,用作双向绑定
67
- var filteredValue = columnKey && (proFilter === null || proFilter === void 0 ? void 0 : proFilter[columnKey]) !== undefined ? proFilter === null || proFilter === void 0 ? void 0 : proFilter[columnKey] : null;
68
- // 对应排序值,用作双向绑定
69
- var sortOrder = columnKey && proSort[columnKey] !== undefined ? proSort[columnKey] : null;
70
62
  var keyName = rowKey;
71
63
  var tempColumns = _objectSpread(_objectSpread({
72
64
  index: columnsIndex,
@@ -78,12 +70,8 @@ export function genProColumnToColumn(params, parents) {
78
70
  return valueItem && valueItem.value !== 'all';
79
71
  }) : filters,
80
72
  onFilter: genOnFilter(),
81
- filteredValue:
82
- // 优先使用用户明确设置的 filteredValue
83
- columnFilteredValue !== undefined ? columnFilteredValue :
84
- // 否则,只有在服务端筛选时才使用计算的 filteredValue
85
- filters && genOnFilter() == null && filteredValue !== null ? filteredValue : undefined,
86
- sortOrder: sorter === true ? sortOrder : undefined,
73
+ filteredValue: parseProFilteredValue(proFilter, columnProps),
74
+ sortOrder: parseProSortOrder(proSort, columnProps),
87
75
  fixed: config.fixed,
88
76
  width: columnProps.width || (columnProps.fixed ? 200 : undefined),
89
77
  children: columnProps.children ? genProColumnToColumn(_objectSpread(_objectSpread({}, params), {}, {
@@ -1,10 +1,10 @@
1
1
  import type { TablePaginationConfig } from 'antd';
2
- import type { SortOrder } from 'antd/lib/table/interface';
2
+ import type { FilterValue as AntFilterValue, SorterResult, SortOrder } from 'antd/lib/table/interface';
3
3
  import type React from 'react';
4
4
  import { Key } from 'react';
5
5
  import type { IntlType } from '../../provider';
6
6
  import type { UseEditableUtilType } from '../../utils';
7
- import type { ActionType, Bordered, BorderedType, ProColumns, UseFetchDataAction } from '../typing';
7
+ import type { ActionType, Bordered, BorderedType, FilterValue, ProColumns, ProColumnType, ProSorter, UseFetchDataAction } from '../typing';
8
8
  /**
9
9
  * 检查值是否存在 为了 避开 0 和 false
10
10
  *
@@ -33,6 +33,8 @@ export declare function useActionType<T>(ref: React.MutableRefObject<ActionType
33
33
  onCleanSelected: () => void;
34
34
  resetAll: () => void;
35
35
  editableUtils: UseEditableUtilType;
36
+ /** 透传给 ActionType 的滚动能力 */
37
+ scrollTo?: ActionType['scrollTo'];
36
38
  }): void;
37
39
  type PostDataType<T> = (data: T) => T;
38
40
  /**
@@ -53,12 +55,63 @@ export declare const isMergeCell: (dom: any) => any;
53
55
  */
54
56
  export declare const genColumnKey: (key?: string | number | Key, index?: number | string) => string;
55
57
  /**
56
- * ProColumns 数组中取出默认的排序和筛选数据
58
+ * ProTable - column - dataIndex 转为字符串形式
57
59
  *
60
+ * @param dataIndex Column 中的 dataIndex
61
+ */
62
+ export declare const parseDataIndex: (dataIndex: ProColumnType['dataIndex']) => string | undefined;
63
+ /**
64
+ * 平铺所有columns, 用于判断是用的是本地筛选/排序
65
+ * @param data 列配置
66
+ * @returns 平铺后的列配置
67
+ */
68
+ export declare const flattenColumns: (data: any[]) => any[];
69
+ /**
70
+ * 判断是否为本地筛选
71
+ * @param filters 筛选配置
72
+ * @param onFilter 筛选函数
73
+ * @returns 是否为本地筛选
74
+ */
75
+ export declare const isLocaleFilter: <T>(filters: ProColumnType<T>['filters'], onFilter: ProColumnType<T>['onFilter']) => boolean;
76
+ /**
77
+ * 判断是否为本地排序
78
+ * @param sorter 排序配置
79
+ * @returns 是否为本地排序
80
+ */
81
+ export declare const isLocaleSorter: <T>(sorter: ProSorter<T>) => boolean;
82
+ /**
83
+ * 获取服务端筛选数据
84
+ * @param filters 筛选数据
85
+ * @param columns 列配置
86
+ * @returns 服务端筛选数据
87
+ */
88
+ export declare const getServerFilterResult: <T>(filters: Record<string, AntFilterValue | null>, columns: ProColumnType<T>[]) => Record<string, FilterValue>;
89
+ /**
90
+ * 获取服务端排序数据
91
+ * @param sorterResult 排序数据
92
+ * @returns 服务端排序数据
93
+ */
94
+ export declare const getServerSorterResult: <T>(sorterResult: SorterResult<T> | SorterResult<T>[]) => Record<string, SortOrder | undefined>;
95
+ /**
96
+ * 从 ProColumns 数组中取出默认的服务端排序和筛选数据
58
97
  * @param columns ProColumns
59
98
  */
60
- export declare function parseDefaultColumnConfig<T, Value>(columns: ProColumns<T, Value>[]): {
99
+ export declare const parseServerDefaultColumnConfig: <T, Value>(columns: ProColumns<T, Value>[]) => {
61
100
  sort: Record<string, SortOrder>;
62
- filter: Record<string, (string | number)[] | null>;
101
+ filter: Record<string, FilterValue>;
63
102
  };
103
+ /**
104
+ * 解析对应排序值,用作双向绑定
105
+ * @param proSort 排序配置
106
+ * @param columnProps 列配置
107
+ * @returns 排序值
108
+ */
109
+ export declare const parseProSortOrder: <T>(proSort: Record<string, SortOrder>, columnProps: ProColumnType<T>) => SortOrder | undefined;
110
+ /**
111
+ * 解析对应筛选值,用作双向绑定
112
+ * @param proFilter 筛选配置
113
+ * @param columnProps 列配置
114
+ * @returns 筛选值
115
+ */
116
+ export declare const parseProFilteredValue: <T>(proFilter: Record<string, FilterValue>, columnProps: ProColumnType<T>) => FilterValue | undefined;
64
117
  export {};
@@ -1,3 +1,5 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
1
3
  import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
4
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
5
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
@@ -147,7 +149,9 @@ export function useActionType(ref, action, props) {
147
149
  },
148
150
  setPageInfo: function setPageInfo(rest) {
149
151
  return action.setPageInfo(rest);
150
- }
152
+ },
153
+ // 透出 scrollTo(如上层提供)
154
+ scrollTo: props.scrollTo
151
155
  });
152
156
  // eslint-disable-next-line no-param-reassign
153
157
  ref.current = userAction;
@@ -202,41 +206,174 @@ export var genColumnKey = function genColumnKey(key, index) {
202
206
  *
203
207
  * @param dataIndex Column 中的 dataIndex
204
208
  */
205
- function parseDataIndex(dataIndex) {
209
+ export var parseDataIndex = function parseDataIndex(dataIndex) {
206
210
  if (Array.isArray(dataIndex)) {
207
211
  return dataIndex.join(',');
208
212
  }
209
213
  return dataIndex === null || dataIndex === void 0 ? void 0 : dataIndex.toString();
210
- }
214
+ };
211
215
 
212
216
  /**
213
- * ProColumns 数组中取出默认的排序和筛选数据
214
- *
217
+ * 平铺所有columns, 用于判断是用的是本地筛选/排序
218
+ * @param data 列配置
219
+ * @returns 平铺后的列配置
220
+ */
221
+ export var flattenColumns = function flattenColumns(data) {
222
+ var _columns = [];
223
+ for (var i = 0; i < data.length; i++) {
224
+ var _curItem = data[i];
225
+ if (_curItem.children) {
226
+ _columns.push.apply(_columns, _toConsumableArray(flattenColumns(_curItem.children)));
227
+ } else {
228
+ _columns.push(_curItem);
229
+ }
230
+ }
231
+ return _columns;
232
+ };
233
+
234
+ /**
235
+ * 判断是否为本地筛选
236
+ * @param filters 筛选配置
237
+ * @param onFilter 筛选函数
238
+ * @returns 是否为本地筛选
239
+ */
240
+ export var isLocaleFilter = function isLocaleFilter(filters, onFilter) {
241
+ return !!filters && !!onFilter;
242
+ };
243
+
244
+ /**
245
+ * 判断是否为本地排序
246
+ * @param sorter 排序配置
247
+ * @returns 是否为本地排序
248
+ */
249
+ export var isLocaleSorter = function isLocaleSorter(sorter) {
250
+ return typeof sorter === 'function' || _typeof(sorter) === 'object' && typeof sorter.compare === 'function';
251
+ };
252
+
253
+ /**
254
+ * 获取服务端筛选数据
255
+ * @param filters 筛选数据
256
+ * @param columns 列配置
257
+ * @returns 服务端筛选数据
258
+ */
259
+ export var getServerFilterResult = function getServerFilterResult(filters, columns) {
260
+ // 过滤掉本地筛选的列
261
+ return Object.entries(filters).reduce(function (acc, _ref2) {
262
+ var _ref3 = _slicedToArray(_ref2, 2),
263
+ key = _ref3[0],
264
+ value = _ref3[1];
265
+ var column = columns.find(function (column) {
266
+ return parseDataIndex(column.dataIndex) === key;
267
+ });
268
+ if (column != null && !isLocaleFilter(column.filters, column.onFilter)) acc[key] = value;
269
+ return acc;
270
+ }, {});
271
+ };
272
+
273
+ /**
274
+ * 获取服务端排序数据
275
+ * @param sorterResult 排序数据
276
+ * @returns 服务端排序数据
277
+ */
278
+ export var getServerSorterResult = function getServerSorterResult(sorterResult) {
279
+ var result = Array.isArray(sorterResult) ? sorterResult : [sorterResult];
280
+ var serverSorter = result.reduce(function (acc, item) {
281
+ var _item$column, _item$column2;
282
+ var sorter = (_item$column = item.column) === null || _item$column === void 0 ? void 0 : _item$column.sorter;
283
+ if (sorter != null && isLocaleSorter(sorter)) return acc;
284
+ var sortKey = typeof sorter === 'string' ? sorter : parseDataIndex((_item$column2 = item.column) === null || _item$column2 === void 0 ? void 0 : _item$column2.dataIndex);
285
+ if (sortKey != null) acc[sortKey] = item.order;
286
+ return acc;
287
+ }, {});
288
+ return serverSorter;
289
+ };
290
+
291
+ /**
292
+ * 从 ProColumns 数组中取出默认的服务端排序和筛选数据
215
293
  * @param columns ProColumns
216
294
  */
217
- export function parseDefaultColumnConfig(columns) {
295
+ export var parseServerDefaultColumnConfig = function parseServerDefaultColumnConfig(columns) {
218
296
  var filter = {};
219
297
  var sort = {};
220
298
  columns.forEach(function (column) {
221
299
  // 转换 dataIndex
222
300
  var dataIndex = parseDataIndex(column.dataIndex);
223
- if (!dataIndex) {
224
- return;
301
+ if (!dataIndex) return; // 没有 dataIndex 的列不参与服务端排序/筛选
302
+
303
+ // 当 column 启用服务端 filters 功能时,取出默认的筛选值
304
+ if (column.filters && !isLocaleFilter(column.filters, column.onFilter)) {
305
+ var _ref4;
306
+ filter[dataIndex] = (_ref4 = column.defaultFilteredValue) !== null && _ref4 !== void 0 ? _ref4 : null;
225
307
  }
226
- // 当 column 启用 filters 功能时,取出默认的筛选值
227
- if (column.filters) {
228
- var defaultFilteredValue = column.defaultFilteredValue;
229
- if (defaultFilteredValue !== undefined) {
230
- filter[dataIndex] = column.defaultFilteredValue;
308
+
309
+ // column 启用服务端 sorter 功能时,取出默认的排序值
310
+ if (column.sorter && !isLocaleSorter(column.sorter)) {
311
+ if (typeof column.sorter === 'string') {
312
+ var _column$defaultSortOr;
313
+ sort[column.sorter] = (_column$defaultSortOr = column.defaultSortOrder) !== null && _column$defaultSortOr !== void 0 ? _column$defaultSortOr : null;
314
+ } else {
315
+ var _column$defaultSortOr2;
316
+ sort[dataIndex] = (_column$defaultSortOr2 = column.defaultSortOrder) !== null && _column$defaultSortOr2 !== void 0 ? _column$defaultSortOr2 : null;
231
317
  }
232
318
  }
233
- // 当 column 启用 sorter 功能时,取出默认的排序值
234
- if (column.sorter && column.defaultSortOrder) {
235
- sort[dataIndex] = column.defaultSortOrder;
236
- }
237
319
  });
238
320
  return {
239
321
  sort: sort,
240
322
  filter: filter
241
323
  };
242
- }
324
+ };
325
+
326
+ /**
327
+ * 解析对应排序值,用作双向绑定
328
+ * @param proSort 排序配置
329
+ * @param columnProps 列配置
330
+ * @returns 排序值
331
+ */
332
+ export var parseProSortOrder = function parseProSortOrder(proSort, columnProps) {
333
+ var sorter = columnProps.sorter,
334
+ columnSortOrder = columnProps.sortOrder,
335
+ dataIndex = columnProps.dataIndex;
336
+
337
+ // 优先使用用户明确设置的 sortOrder
338
+ if (columnSortOrder !== undefined) return columnSortOrder;
339
+
340
+ // 如果没有排序器配置,直接返回 undefined
341
+ if (sorter == null) return undefined;
342
+
343
+ // 如果是本地排序,不使用 proSort 中的值
344
+ if (isLocaleSorter(sorter)) return undefined;
345
+
346
+ // 服务端排序:确定排序键
347
+ var sortKey = typeof sorter === 'string' ? sorter : parseDataIndex(dataIndex);
348
+
349
+ // 返回对应的排序值
350
+ return sortKey ? proSort[sortKey] : undefined;
351
+ };
352
+
353
+ /**
354
+ * 解析对应筛选值,用作双向绑定
355
+ * @param proFilter 筛选配置
356
+ * @param columnProps 列配置
357
+ * @returns 筛选值
358
+ */
359
+ export var parseProFilteredValue = function parseProFilteredValue(proFilter, columnProps) {
360
+ var filters = columnProps.filters,
361
+ onFilter = columnProps.onFilter,
362
+ columnFilteredValue = columnProps.filteredValue,
363
+ dataIndex = columnProps.dataIndex;
364
+
365
+ // 优先使用用户设置的 filteredValue
366
+ if (columnFilteredValue !== undefined) return columnFilteredValue;
367
+
368
+ // 如果没有筛选配置,直接返回 undefined
369
+ if (filters == null) return undefined;
370
+
371
+ // 如果是本地筛选,不使用 proFilter 中的值
372
+ if (isLocaleFilter(filters, onFilter)) return undefined;
373
+
374
+ // 服务端排序:获取筛选键
375
+ var filterKey = parseDataIndex(dataIndex);
376
+
377
+ // 返回对应的筛选值
378
+ return filterKey ? proFilter[filterKey] : undefined;
379
+ };
@@ -132,17 +132,29 @@ export var conversionMomentValue = function conversionMomentValue(value, dateFor
132
132
  tmpValue[valueKey] = conversionMomentValue(itemValue, dateFormatter, valueTypeMap, omitNil, namePath);
133
133
  return;
134
134
  }
135
+ var currentDateFormatter = dateFormatter !== null && dateFormatter !== void 0 ? dateFormatter : 'string';
136
+ var finalDateFormatter;
137
+ if (currentDateFormatter === 'number' || currentDateFormatter === false || typeof currentDateFormatter === 'function') {
138
+ finalDateFormatter = currentDateFormatter;
139
+ } else if (currentDateFormatter === 'string') {
140
+ finalDateFormatter = dateFormat || dateFormatterMap[valueType];
141
+ } else {
142
+ // Custom format string
143
+ finalDateFormatter = currentDateFormatter;
144
+ }
135
145
  // 处理 FormList 的 value
136
146
  if (Array.isArray(itemValue)) {
137
147
  tmpValue[valueKey] = itemValue.map(function (arrayValue, index) {
138
148
  if (dayjs.isDayjs(arrayValue) || isMoment(arrayValue)) {
139
- return convertMoment(arrayValue, dateFormat || dateFormatter, valueType);
149
+ // For arrays, if no format is defined and dateFormatter is 'string', use 'string' with default format
150
+ var arrayDateFormatter = finalDateFormatter === undefined && currentDateFormatter === 'string' ? 'string' : finalDateFormatter;
151
+ return convertMoment(arrayValue, arrayDateFormatter, valueType);
140
152
  }
141
153
  return conversionMomentValue(arrayValue, dateFormatter, valueTypeMap, omitNil, [valueKey, "".concat(index)].flat(1));
142
154
  });
143
155
  return;
144
156
  }
145
- tmpValue[valueKey] = convertMoment(itemValue, dateFormat || (dateFormatter === 'string' ? dateFormatterMap[valueType] : dateFormatter), valueType);
157
+ tmpValue[valueKey] = convertMoment(itemValue, finalDateFormatter, valueType);
146
158
  });
147
159
  return tmpValue;
148
160
  };
@@ -40,13 +40,9 @@ var genProStyle = function genProStyle(token) {
40
40
  transform: 'rotate(180deg)'
41
41
  }
42
42
  },
43
- '&-content': (0, _defineProperty2.default)({
43
+ '&-content': {
44
44
  width: '100%'
45
- }, "".concat(token.antCls, "-statistic-content"), {
46
- '&-value-int': {
47
- fontSize: token.fontSizeHeading3
48
- }
49
- }),
45
+ },
50
46
  '&-description': {
51
47
  width: '100%'
52
48
  }
@@ -174,7 +174,8 @@ var FieldRender = exports.FieldRender = function FieldRender(props) {
174
174
  marginTop: -5,
175
175
  marginBottom: -5,
176
176
  marginLeft: 0,
177
- marginRight: 0
177
+ marginRight: 0,
178
+ width: '100%'
178
179
  },
179
180
  children: renderDom()
180
181
  });
@@ -762,22 +762,22 @@ var ValueTypeToComponentMap = {
762
762
  render: function render(text, props) {
763
763
  var fieldProps = (0, _utils.pickProProps)(props.fieldProps);
764
764
  var placeholder = typeof props.placeholder === 'string' ? props.placeholder : undefined;
765
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Cascader.default, {
765
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Cascader.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
766
766
  mode: props.mode,
767
767
  text: text,
768
768
  placeholder: placeholder,
769
769
  fieldProps: fieldProps
770
- });
770
+ }));
771
771
  },
772
772
  formItemRender: function formItemRender(text, props) {
773
773
  var fieldProps = (0, _utils.pickProProps)(props.fieldProps);
774
774
  var placeholder = typeof props.placeholder === 'string' ? props.placeholder : undefined;
775
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Cascader.default, {
775
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Cascader.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
776
776
  mode: props.mode,
777
777
  text: text,
778
778
  placeholder: placeholder,
779
779
  fieldProps: fieldProps
780
- });
780
+ }));
781
781
  }
782
782
  },
783
783
  treeSelect: {
@@ -3,5 +3,5 @@ import React from 'react';
3
3
  declare const _default: React.ForwardRefExoticComponent<import("src/provider").BaseProFieldFC & import("src/provider").ProRenderFieldPropsType & {
4
4
  text: string;
5
5
  mode?: "update" | "read" | "edit" | undefined;
6
- } & Partial<Omit<ColorPickerProps, "value" | "mode">> & React.RefAttributes<any>>;
6
+ } & Partial<Omit<ColorPickerProps, "mode" | "value">> & React.RefAttributes<any>>;
7
7
  export default _default;
@@ -1,7 +1,7 @@
1
1
  /** 获取展示符号 */
2
2
  export declare function getSymbolByRealValue(realValue: number): "-" | "+" | null;
3
3
  /** 获取颜色 */
4
- export declare function getColorByRealValue(realValue: number /** ,color: string */): "#52c41a" | "#595959" | "#ff4d4f";
4
+ export declare function getColorByRealValue(realValue: number /** ,color: string */): "#595959" | "#52c41a" | "#ff4d4f";
5
5
  /** 获取到最后展示的数字 */
6
6
  export declare function getRealTextWithPrecision(realValue: number, precision?: number): string | number;
7
7
  /**
@@ -54,6 +54,7 @@ var covertFormName = function covertFormName(name) {
54
54
  if (Array.isArray(name)) return name;
55
55
  return [name];
56
56
  };
57
+ var defaultExtraUrlParams = {};
57
58
  function BaseFormComponents(props) {
58
59
  var _ConfigProvider$useCo;
59
60
  var children = props.children,
@@ -69,7 +70,7 @@ function BaseFormComponents(props) {
69
70
  loading = props.loading,
70
71
  formComponentType = props.formComponentType,
71
72
  _props$extraUrlParams = props.extraUrlParams,
72
- extraUrlParams = _props$extraUrlParams === void 0 ? {} : _props$extraUrlParams,
73
+ extraUrlParams = _props$extraUrlParams === void 0 ? defaultExtraUrlParams : _props$extraUrlParams,
73
74
  syncToUrl = props.syncToUrl,
74
75
  onUrlSearchChange = props.onUrlSearchChange,
75
76
  _onReset = props.onReset,
@@ -405,7 +406,7 @@ function BaseFormComponents(props) {
405
406
  var requestFormCacheId = 0;
406
407
  function BaseForm(props) {
407
408
  var _props$extraUrlParams2 = props.extraUrlParams,
408
- extraUrlParams = _props$extraUrlParams2 === void 0 ? {} : _props$extraUrlParams2,
409
+ extraUrlParams = _props$extraUrlParams2 === void 0 ? defaultExtraUrlParams : _props$extraUrlParams2,
409
410
  syncToUrl = props.syncToUrl,
410
411
  isKeyPressSubmit = props.isKeyPressSubmit,
411
412
  _props$syncToUrlAsImp = props.syncToUrlAsImportant,
@@ -27,24 +27,32 @@ var BaseDatePicker = exports.BaseDatePicker = /*#__PURE__*/_react.default.forwar
27
27
  valueType = _ref.valueType,
28
28
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
29
29
  var context = (0, _react.useContext)(_FieldContext.default);
30
+ var mergedFieldProps = (0, _react.useMemo)(function () {
31
+ var nextFieldProps = fieldProps ? (0, _objectSpread2.default)({}, fieldProps) : {};
32
+ if (valueType === 'dateTime' && nextFieldProps.showTime === undefined) {
33
+ nextFieldProps.showTime = true;
34
+ }
35
+ return nextFieldProps;
36
+ }, [fieldProps, valueType]);
37
+ var renderFieldDatePicker = (0, _react.useCallback)(function (text, props) {
38
+ var _ref2, _fieldPropsFromContex;
39
+ var fieldPropsFromContext = (_ref2 = props.fieldProps) !== null && _ref2 !== void 0 ? _ref2 : mergedFieldProps;
40
+ var format = valueType === 'dateTime' ? (_fieldPropsFromContex = fieldPropsFromContext === null || fieldPropsFromContext === void 0 ? void 0 : fieldPropsFromContext.format) !== null && _fieldPropsFromContex !== void 0 ? _fieldPropsFromContex : 'YYYY-MM-DD HH:mm:ss' : fieldPropsFromContext === null || fieldPropsFromContext === void 0 ? void 0 : fieldPropsFromContext.format;
41
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_field.FieldDatePicker, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
42
+ format: format,
43
+ text: text
44
+ }));
45
+ }, [mergedFieldProps, valueType]);
30
46
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_provider.ProConfigProvider, {
31
47
  valueTypeMap: (0, _defineProperty2.default)({}, valueType, {
32
- render: function render(text, props) {
33
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_field.FieldDatePicker, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
34
- text: text
35
- }));
36
- },
37
- formItemRender: function formItemRender(text, props) {
38
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_field.FieldDatePicker, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
39
- text: text
40
- }));
41
- }
48
+ render: renderFieldDatePicker,
49
+ formItemRender: renderFieldDatePicker
42
50
  }),
43
51
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({
44
52
  valueType: valueType,
45
53
  fieldProps: (0, _objectSpread2.default)({
46
54
  getPopupContainer: context.getPopupContainer
47
- }, fieldProps),
55
+ }, mergedFieldProps),
48
56
  proFieldProps: proFieldProps,
49
57
  fieldConfig: {
50
58
  valueType: valueType,
@@ -23,30 +23,55 @@ var BaseDateRanger = exports.BaseDateRanger = /*#__PURE__*/_react.default.forwar
23
23
  valueType = _ref.valueType,
24
24
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
25
25
  var context = (0, _react.useContext)(_FieldContext.default);
26
+ var mergedFieldProps = (0, _react.useMemo)(function () {
27
+ var nextFieldProps = fieldProps ? (0, _objectSpread2.default)({}, fieldProps) : {};
28
+ if (valueType === 'dateTimeRange' && nextFieldProps.showTime === undefined) {
29
+ nextFieldProps.showTime = true;
30
+ }
31
+ return nextFieldProps;
32
+ }, [fieldProps, valueType]);
33
+ var lightFilterFormat = (0, _react.useMemo)(function () {
34
+ if (mergedFieldProps.format) return mergedFieldProps.format;
35
+ switch (valueType) {
36
+ case 'dateTimeRange':
37
+ return 'YYYY-MM-DD HH:mm:ss';
38
+ case 'dateWeekRange':
39
+ return 'YYYY-wo';
40
+ case 'dateMonthRange':
41
+ return 'YYYY-MM';
42
+ case 'dateQuarterRange':
43
+ return 'YYYY-[Q]Q';
44
+ case 'dateYearRange':
45
+ return 'YYYY';
46
+ default:
47
+ return 'YYYY-MM-DD';
48
+ }
49
+ }, [mergedFieldProps.format, valueType]);
50
+ var renderFieldRangePicker = (0, _react.useCallback)(function (text, props) {
51
+ var _ref2, _fieldPropsFromContex;
52
+ var fieldPropsFromContext = (_ref2 = props.fieldProps) !== null && _ref2 !== void 0 ? _ref2 : mergedFieldProps;
53
+ var format = valueType === 'dateTimeRange' ? (_fieldPropsFromContex = fieldPropsFromContext === null || fieldPropsFromContext === void 0 ? void 0 : fieldPropsFromContext.format) !== null && _fieldPropsFromContex !== void 0 ? _fieldPropsFromContex : 'YYYY-MM-DD HH:mm:ss' : fieldPropsFromContext === null || fieldPropsFromContext === void 0 ? void 0 : fieldPropsFromContext.format;
54
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_field.FieldRangePicker, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
55
+ format: format,
56
+ text: text
57
+ }));
58
+ }, [mergedFieldProps, valueType]);
26
59
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_provider.ProConfigProvider, {
27
60
  valueTypeMap: (0, _defineProperty2.default)({}, valueType, {
28
- render: function render(text, props) {
29
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_field.FieldRangePicker, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
30
- text: text
31
- }));
32
- },
33
- formItemRender: function formItemRender(text, props) {
34
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_field.FieldRangePicker, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
35
- text: text
36
- }));
37
- }
61
+ render: renderFieldRangePicker,
62
+ formItemRender: renderFieldRangePicker
38
63
  }),
39
64
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({
40
65
  fieldProps: (0, _objectSpread2.default)({
41
66
  getPopupContainer: context.getPopupContainer
42
- }, fieldProps),
67
+ }, mergedFieldProps),
43
68
  valueType: valueType,
44
69
  proFieldProps: proFieldProps,
45
70
  fieldConfig: {
46
71
  valueType: valueType,
47
72
  customLightMode: true,
48
73
  lightFilterLabelFormatter: function lightFilterLabelFormatter(value) {
49
- return (0, _utils.dateArrayFormatter)(value, (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.format) || 'YYYY-MM');
74
+ return (0, _utils.dateArrayFormatter)(value, lightFilterFormat);
50
75
  }
51
76
  }
52
77
  }, rest), {}, {
@@ -13,7 +13,7 @@ export type ProFormDigitRangeProps = ProFormFieldItemProps<RangeInputNumberProps
13
13
  separatorWidth?: number;
14
14
  };
15
15
  declare const ForwardRefProFormDigit: React.ForwardRefExoticComponent<{
16
- fieldProps?: Partial<import("../../typing").FieldProps<any> & Omit<InputNumberProps<number>, "defaultValue" | "onChange" | "placeholder" | "value"> & {
16
+ fieldProps?: Partial<import("../../typing").FieldProps<any> & Omit<InputNumberProps<number>, "value" | "defaultValue" | "onChange" | "placeholder"> & {
17
17
  value?: ValuePair | undefined;
18
18
  defaultValue?: ValuePair | undefined;
19
19
  onChange?: ((value?: ValuePair) => void) | undefined;
@@ -160,12 +160,11 @@ function BetaSchemaForm(props) {
160
160
  propsOnValuesChange === null || propsOnValuesChange === void 0 || propsOnValuesChange(changedValues, values);
161
161
  }, [propsRef, shouldUpdate]);
162
162
  var formChildrenDoms = (0, _utils.useDeepCompareMemo)(function () {
163
- if (!formRef.current) return;
164
163
  // like StepsForm's columns but not only for StepsForm
165
164
  if (columns.length && Array.isArray(columns[0])) return;
166
165
  return genItems(columns);
167
166
  // eslint-disable-next-line react-hooks/exhaustive-deps
168
- }, [columns, restProps === null || restProps === void 0 ? void 0 : restProps.open, action, type, formDomsDeps]);
167
+ }, [columns, restProps === null || restProps === void 0 ? void 0 : restProps.open, action, type, formDomsDeps, formRef.current]);
169
168
 
170
169
  /**
171
170
  * Append layoutType component specific props
@@ -48,5 +48,5 @@ export type ProFormUploadButtonProps = ProFormFieldItemProps<UploadProps<any>, H
48
48
  */
49
49
  imageProps?: Omit<ImageProps, 'src'>;
50
50
  } & PickUploadProps;
51
- declare const ProFormUploadButton: React.ForwardRefRenderFunction<any, ProFormUploadButtonProps>;
51
+ declare const ProFormUploadButton: React.FC<ProFormUploadButtonProps>;
52
52
  export default ProFormUploadButton;
@@ -36,7 +36,7 @@ var getBase64 = function getBase64(file) {
36
36
  *
37
37
  * @param
38
38
  */
39
- var BaseProFormUploadButton = function BaseProFormUploadButton(_ref, ref) {
39
+ var BaseProFormUploadButton = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
40
40
  var _fieldProps$name;
41
41
  var fieldProps = _ref.fieldProps,
42
42
  action = _ref.action,
@@ -134,8 +134,8 @@ var BaseProFormUploadButton = function BaseProFormUploadButton(_ref, ref) {
134
134
  src: previewImage
135
135
  }))]
136
136
  });
137
- };
138
- var ProFormUploadButton = (_ref3 = _warpField.default) === null || _ref3 === void 0 ? void 0 : _ref3( /*#__PURE__*/_react.default.forwardRef(BaseProFormUploadButton), {
137
+ });
138
+ var ProFormUploadButton = (_ref3 = _warpField.default) === null || _ref3 === void 0 ? void 0 : _ref3(BaseProFormUploadButton, {
139
139
  getValueFromEvent: function getValueFromEvent(value) {
140
140
  return value.fileList;
141
141
  }