@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.
- package/dist/pro-components.min.js +1 -1
- package/es/card/components/Statistic/style.js +2 -6
- package/es/descriptions/index.js +2 -1
- package/es/field/ValueTypeToComponent.js +4 -4
- package/es/field/components/Checkbox/index.d.ts +1 -1
- package/es/field/components/Percent/util.d.ts +1 -1
- package/es/field/components/Select/index.d.ts +1 -1
- package/es/form/BaseForm/BaseForm.js +3 -2
- package/es/form/components/DatePicker/BaseDatePicker.js +20 -12
- package/es/form/components/DateRangePicker/BaseDateRanger.js +38 -13
- package/es/form/components/SchemaForm/index.js +1 -2
- package/es/form/components/UploadButton/index.d.ts +1 -1
- package/es/form/components/UploadButton/index.js +3 -3
- package/es/layout/components/SiderMenu/index.js +4 -2
- package/es/table/Table.js +52 -75
- package/es/table/components/ColumnSetting/index.js +12 -2
- package/es/table/typing.d.ts +29 -7
- package/es/table/utils/columnRender.d.ts +1 -1
- package/es/table/utils/genProColumnToColumn.d.ts +2 -2
- package/es/table/utils/genProColumnToColumn.js +5 -17
- package/es/table/utils/index.d.ts +58 -5
- package/es/table/utils/index.js +155 -18
- package/es/utils/conversionMomentValue/index.js +14 -2
- package/lib/card/components/Statistic/style.js +2 -6
- package/lib/descriptions/index.js +2 -1
- package/lib/field/ValueTypeToComponent.js +4 -4
- package/lib/field/components/ColorPicker/index.d.ts +1 -1
- package/lib/field/components/Percent/util.d.ts +1 -1
- package/lib/form/BaseForm/BaseForm.js +3 -2
- package/lib/form/components/DatePicker/BaseDatePicker.js +19 -11
- package/lib/form/components/DateRangePicker/BaseDateRanger.js +37 -12
- package/lib/form/components/Digit/DigitRange.d.ts +1 -1
- package/lib/form/components/SchemaForm/index.js +1 -2
- package/lib/form/components/UploadButton/index.d.ts +1 -1
- package/lib/form/components/UploadButton/index.js +3 -3
- package/lib/form/layouts/ProForm/index.d.ts +1 -1
- package/lib/layout/components/SiderMenu/index.js +4 -2
- package/lib/table/Table.js +69 -92
- package/lib/table/components/ColumnSetting/index.js +12 -2
- package/lib/table/typing.d.ts +29 -7
- package/lib/table/utils/columnRender.d.ts +1 -1
- package/lib/table/utils/genProColumnToColumn.d.ts +2 -2
- package/lib/table/utils/genProColumnToColumn.js +4 -16
- package/lib/table/utils/index.d.ts +58 -5
- package/lib/table/utils/index.js +157 -20
- package/lib/utils/conversionMomentValue/index.js +14 -2
- 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
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
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
|
|
99
|
+
export declare const parseServerDefaultColumnConfig: <T, Value>(columns: ProColumns<T, Value>[]) => {
|
|
61
100
|
sort: Record<string, SortOrder>;
|
|
62
|
-
filter: Record<string,
|
|
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 {};
|
package/es/table/utils/index.js
CHANGED
|
@@ -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
|
-
*
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
if (
|
|
230
|
-
|
|
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
|
-
|
|
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,
|
|
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':
|
|
43
|
+
'&-content': {
|
|
44
44
|
width: '100%'
|
|
45
|
-
},
|
|
46
|
-
'&-value-int': {
|
|
47
|
-
fontSize: token.fontSizeHeading3
|
|
48
|
-
}
|
|
49
|
-
}),
|
|
45
|
+
},
|
|
50
46
|
'&-description': {
|
|
51
47
|
width: '100%'
|
|
52
48
|
}
|
|
@@ -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, "
|
|
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 */): "#
|
|
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 ?
|
|
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 ?
|
|
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:
|
|
33
|
-
|
|
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
|
-
},
|
|
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:
|
|
29
|
-
|
|
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
|
-
},
|
|
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,
|
|
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>, "
|
|
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.
|
|
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
|
|
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(
|
|
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
|
}
|