@teamix/pro 1.3.0 → 1.3.3
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.css +1 -1
- package/dist/pro.js +1207 -266
- package/dist/pro.min.css +1 -1
- package/dist/pro.min.js +1 -1
- package/es/actions/dialog-form.d.ts +9 -4
- package/es/actions/dialog-form.js +16 -9
- package/es/form/Components/LightFilter/index.d.ts +1 -0
- package/es/form/Components/LightFilter/index.js +9 -6
- package/es/form/Components/ProField/mapDateFormat.d.ts +3 -0
- package/es/form/Components/ProField/mapDateFormat.js +113 -0
- package/es/form/Filter/LightFilter.js +13 -3
- package/es/form/Filter/SimpleFilter.js +1 -1
- package/es/form/Filter/index.js +44 -10
- package/es/form/ProForm/customComponent.js +2 -1
- package/es/form/SchemaForm/adapterDecorator.js +1 -1
- package/es/form/SchemaForm/adapterType.js +2 -5
- package/es/form/SchemaForm/index.js +26 -12
- package/es/form/SchemaForm/initializeDataSource.d.ts +1 -1
- package/es/form/SchemaForm/initializeDataSource.js +2 -2
- package/es/form/SchemaForm/initializeSelectTable.d.ts +3 -0
- package/es/form/SchemaForm/initializeSelectTable.js +38 -0
- package/es/form/SchemaForm/reactions.d.ts +1 -1
- package/es/form/SchemaForm/reactions.js +28 -33
- package/es/form/fieldTypeMap.d.ts +3 -0
- package/es/form/fieldTypeMap.js +3 -0
- package/es/form/typing.d.ts +9 -1
- package/es/form/utils.js +11 -4
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/info/components/baseInfo/index.scss +3 -0
- package/es/page-header/index.d.ts +3 -1
- package/es/page-header/index.js +17 -4
- package/es/table/components/ToolBar/DensityIcon.js +5 -3
- package/es/table/components/ToolBar/FilterColumnIcon.js +12 -3
- package/es/table/components/ToolBar/index.scss +3 -3
- package/es/table/index.js +27 -12
- package/es/table/index.scss +16 -0
- package/es/table/typing.d.ts +12 -7
- package/es/table/utils/columnRender.js +6 -0
- package/lib/actions/dialog-form.d.ts +9 -4
- package/lib/actions/dialog-form.js +16 -9
- package/lib/form/Components/LightFilter/index.d.ts +1 -0
- package/lib/form/Components/LightFilter/index.js +9 -6
- package/lib/form/Components/ProField/mapDateFormat.d.ts +3 -0
- package/lib/form/Components/ProField/mapDateFormat.js +125 -0
- package/lib/form/Filter/LightFilter.js +13 -3
- package/lib/form/Filter/SimpleFilter.js +1 -1
- package/lib/form/Filter/index.js +44 -10
- package/lib/form/ProForm/customComponent.js +3 -1
- package/lib/form/SchemaForm/adapterDecorator.js +1 -1
- package/lib/form/SchemaForm/adapterType.js +2 -5
- package/lib/form/SchemaForm/index.js +27 -11
- package/lib/form/SchemaForm/initializeDataSource.d.ts +1 -1
- package/lib/form/SchemaForm/initializeDataSource.js +2 -2
- package/lib/form/SchemaForm/initializeSelectTable.d.ts +3 -0
- package/lib/form/SchemaForm/initializeSelectTable.js +45 -0
- package/lib/form/SchemaForm/reactions.d.ts +1 -1
- package/lib/form/SchemaForm/reactions.js +28 -33
- package/lib/form/fieldTypeMap.d.ts +3 -0
- package/lib/form/fieldTypeMap.js +5 -1
- package/lib/form/typing.d.ts +9 -1
- package/lib/form/utils.js +11 -4
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/info/components/baseInfo/index.scss +3 -0
- package/lib/page-header/index.d.ts +3 -1
- package/lib/page-header/index.js +16 -3
- package/lib/table/components/ToolBar/DensityIcon.js +5 -3
- package/lib/table/components/ToolBar/FilterColumnIcon.js +11 -2
- package/lib/table/components/ToolBar/index.scss +3 -3
- package/lib/table/index.js +27 -12
- package/lib/table/index.scss +16 -0
- package/lib/table/typing.d.ts +12 -7
- package/lib/table/utils/columnRender.js +6 -0
- package/package.json +4 -4
@@ -1,5 +1,5 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
import { ProFormProps, ProFormSchema } from '../form';
|
2
|
+
import { ProFormProps, ProFormSchema, ProFormType } from '../form';
|
3
3
|
import { RequestAction } from './request';
|
4
4
|
import { DialogAction } from './dialog';
|
5
5
|
export interface DialogFormAction extends DialogAction {
|
@@ -12,9 +12,14 @@ export interface DialogFormAction extends DialogAction {
|
|
12
12
|
/**
|
13
13
|
* @deprecated 建议使用 schema 配置 ProFormProps 代替
|
14
14
|
*/
|
15
|
-
formProps?: Omit<ProFormProps, 'schema'>;
|
16
|
-
/**
|
17
|
-
|
15
|
+
formProps?: Omit<ProFormProps, 'schema' | 'form'>;
|
16
|
+
/** 同时支持两种配置方式:
|
17
|
+
* 如果想完整定制表单,可使用完整的表单配置项 ProFormProps,但不可以传 form 字段,可以通过 formRef 获取内部 form 实例。
|
18
|
+
* 否则可以只配置 ProFormSchema
|
19
|
+
*/
|
20
|
+
schema: ProFormSchema | Omit<ProFormProps, 'form'>;
|
21
|
+
/** 外部传来的 formRef,用于获取内置 form 实例 */
|
22
|
+
formRef?: React.MutableRefObject<ProFormType | undefined>;
|
18
23
|
}
|
19
24
|
export declare function useDialogFormAction(action: DialogFormAction, context?: any): {
|
20
25
|
[x: string]: (e: React.MouseEvent<HTMLElement, MouseEvent>) => Promise<void>;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
var _excluded = ["schema"],
|
2
|
-
_excluded2 = ["schema", "useFieldValuesForRequest", "initialValues", "initialRequest", "formProps", "size", "onFinish", "beforeRequest"];
|
2
|
+
_excluded2 = ["schema", "useFieldValuesForRequest", "initialValues", "initialRequest", "formProps", "size", "onFinish", "beforeRequest", "formRef"];
|
3
3
|
|
4
4
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
5
5
|
|
@@ -89,7 +89,8 @@ var DialogForm = function DialogForm(props) {
|
|
89
89
|
schema = props.schema,
|
90
90
|
formProps = props.formProps,
|
91
91
|
context = props.context,
|
92
|
-
formRef = props.formRef
|
92
|
+
formRef = props.formRef,
|
93
|
+
innerFormRef = props.innerFormRef;
|
93
94
|
|
94
95
|
var _getSchemaAndFormProp = getSchemaAndFormProps(schema, formProps),
|
95
96
|
formSchema = _getSchemaAndFormProp.schema,
|
@@ -106,7 +107,11 @@ var DialogForm = function DialogForm(props) {
|
|
106
107
|
|
107
108
|
var history = useHistory();
|
108
109
|
useEffect(function () {
|
109
|
-
formRef
|
110
|
+
if (formRef) {
|
111
|
+
formRef.current = form;
|
112
|
+
}
|
113
|
+
|
114
|
+
innerFormRef.current = form;
|
110
115
|
|
111
116
|
if (initialRequest) {
|
112
117
|
setLoading(true);
|
@@ -141,9 +146,10 @@ export function useDialogFormAction(action, context) {
|
|
141
146
|
size = _action$size === void 0 ? 'small' : _action$size,
|
142
147
|
_onFinish = action.onFinish,
|
143
148
|
propsBeforeRequest = action.beforeRequest,
|
149
|
+
propsFormRef = action.formRef,
|
144
150
|
others = _objectWithoutProperties(action, _excluded2);
|
145
151
|
|
146
|
-
var
|
152
|
+
var innerFormRef = /*#__PURE__*/createRef();
|
147
153
|
return useDialogAction(Object.assign({
|
148
154
|
size: size,
|
149
155
|
closeable: true,
|
@@ -157,13 +163,14 @@ export function useDialogFormAction(action, context) {
|
|
157
163
|
context: contentContext
|
158
164
|
};
|
159
165
|
return /*#__PURE__*/React.createElement(DialogForm, _objectSpread({
|
160
|
-
|
166
|
+
innerFormRef: innerFormRef,
|
167
|
+
formRef: propsFormRef
|
161
168
|
}, dialogFormProps));
|
162
169
|
},
|
163
170
|
extendParams: useFieldValuesForRequest ? '{{fields}}' : undefined,
|
164
171
|
beforeRequest: function beforeRequest(context) {
|
165
172
|
return new Promise(function (resolve, reject) {
|
166
|
-
|
173
|
+
innerFormRef.current.validate().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
167
174
|
var beforeRequestContext, requestContext;
|
168
175
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
169
176
|
while (1) {
|
@@ -199,7 +206,7 @@ export function useDialogFormAction(action, context) {
|
|
199
206
|
|
200
207
|
case 13:
|
201
208
|
requestContext = Object.assign({
|
202
|
-
fields:
|
209
|
+
fields: innerFormRef.current.values
|
203
210
|
}, _typeof(beforeRequestContext) === 'object' ? beforeRequestContext : {});
|
204
211
|
resolve(requestContext);
|
205
212
|
|
@@ -215,9 +222,9 @@ export function useDialogFormAction(action, context) {
|
|
215
222
|
});
|
216
223
|
},
|
217
224
|
onFinish: function onFinish() {
|
218
|
-
var
|
225
|
+
var _innerFormRef$current;
|
219
226
|
|
220
|
-
_onFinish && _onFinish((
|
227
|
+
_onFinish && _onFinish((_innerFormRef$current = innerFormRef.current) === null || _innerFormRef$current === void 0 ? void 0 : _innerFormRef$current.values);
|
221
228
|
}
|
222
229
|
}, others), context);
|
223
230
|
}
|
@@ -56,14 +56,16 @@ var useMain = function useMain(active) {
|
|
56
56
|
}; // 筛选项数据
|
57
57
|
|
58
58
|
|
59
|
-
var useFilterItems = function useFilterItems() {
|
59
|
+
var useFilterItems = function useFilterItems(filterValues) {
|
60
60
|
var schema = useFieldSchema();
|
61
61
|
var filterItems = [];
|
62
62
|
schema.mapProperties(function (schema, name) {
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
63
|
+
if (!filterValues || filterValues && filterValues.includes(schema.name)) {
|
64
|
+
filterItems.push({
|
65
|
+
label: schema.title,
|
66
|
+
value: schema.name
|
67
|
+
});
|
68
|
+
}
|
67
69
|
});
|
68
70
|
return filterItems;
|
69
71
|
}; // 是否输入框类型的组件
|
@@ -77,12 +79,13 @@ var isInputCategory = function isInputCategory(currentSchema) {
|
|
77
79
|
var LightFilter = observer(function (props) {
|
78
80
|
var _filterItems$, _main$;
|
79
81
|
|
80
|
-
var filterItems = useFilterItems();
|
81
82
|
var size = props.size,
|
82
83
|
defaultFilterValue = props.defaultFilterValue,
|
84
|
+
filterValues = props.filterValues,
|
83
85
|
onFilterChange = props.onFilterChange,
|
84
86
|
filterProps = props.filterProps,
|
85
87
|
buttonProps = props.buttonProps;
|
88
|
+
var filterItems = useFilterItems(filterValues);
|
86
89
|
|
87
90
|
var _useState = useState(defaultFilterValue || ((_filterItems$ = filterItems[0]) === null || _filterItems$ === void 0 ? void 0 : _filterItems$.value)),
|
88
91
|
_useState2 = _slicedToArray(_useState, 2),
|
@@ -0,0 +1,113 @@
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
2
|
+
|
3
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
4
|
+
|
5
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
6
|
+
|
7
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
8
|
+
|
9
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
10
|
+
|
11
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
12
|
+
|
13
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
14
|
+
|
15
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
16
|
+
|
17
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
18
|
+
|
19
|
+
import { isEmpty } from '@formily/shared';
|
20
|
+
import { isArr, isFn } from '@teamix/utils';
|
21
|
+
import Moment from 'moment';
|
22
|
+
|
23
|
+
var moment = function moment(date, format) {
|
24
|
+
return Moment((date === null || date === void 0 ? void 0 : date.toDate) ? date.toDate() : date, format);
|
25
|
+
};
|
26
|
+
|
27
|
+
var momentable = function momentable(value, format) {
|
28
|
+
return Array.isArray(value) ? value.map(function (val) {
|
29
|
+
return moment(val, format);
|
30
|
+
}) : value ? moment(value, format) : value;
|
31
|
+
};
|
32
|
+
|
33
|
+
var formatMomentValue = function formatMomentValue(value, format, placeholder) {
|
34
|
+
var formatDate = function formatDate(date, format) {
|
35
|
+
var i = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
36
|
+
if (!date) return placeholder;
|
37
|
+
|
38
|
+
if (isArr(format)) {
|
39
|
+
var _format = format[i];
|
40
|
+
|
41
|
+
if (isFn(_format)) {
|
42
|
+
return _format(date);
|
43
|
+
}
|
44
|
+
|
45
|
+
if (isEmpty(_format)) {
|
46
|
+
return date;
|
47
|
+
}
|
48
|
+
|
49
|
+
return moment(date).format(_format);
|
50
|
+
} else {
|
51
|
+
if (isFn(format)) {
|
52
|
+
return format(date);
|
53
|
+
}
|
54
|
+
|
55
|
+
if (isEmpty(format)) {
|
56
|
+
return date;
|
57
|
+
}
|
58
|
+
|
59
|
+
return moment(date).format(format);
|
60
|
+
}
|
61
|
+
};
|
62
|
+
|
63
|
+
if (isArr(value)) {
|
64
|
+
return value.map(function (val, index) {
|
65
|
+
return formatDate(val, format, index);
|
66
|
+
});
|
67
|
+
} else {
|
68
|
+
return value ? formatDate(value, format) : value || placeholder;
|
69
|
+
}
|
70
|
+
};
|
71
|
+
|
72
|
+
var mapDateFormatDatePicker2 = function mapDateFormatDatePicker2(type) {
|
73
|
+
var getDefaultFormat = function getDefaultFormat(props) {
|
74
|
+
var _type = props['type'] || type;
|
75
|
+
|
76
|
+
if (_type === 'month') {
|
77
|
+
return 'YYYY-MM';
|
78
|
+
} else if (_type === 'quarter') {
|
79
|
+
return 'YYYY-\\QQ';
|
80
|
+
} else if (_type === 'year') {
|
81
|
+
return 'YYYY';
|
82
|
+
} else if (_type === 'week') {
|
83
|
+
return 'YYYY-wo';
|
84
|
+
}
|
85
|
+
|
86
|
+
return props['showTime'] ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD';
|
87
|
+
};
|
88
|
+
|
89
|
+
return function (props) {
|
90
|
+
var format = props['format'] || getDefaultFormat(props);
|
91
|
+
var _onChange = props.onChange;
|
92
|
+
return _objectSpread(_objectSpread({}, props), {}, {
|
93
|
+
format: format === 'YYYY-MM-DD HH:mm:ss' ? 'YYYY-MM-DD' : format,
|
94
|
+
value: momentable(props.value, format === 'YYYY-wo' ? 'YYYY-w' : format),
|
95
|
+
onChange: function onChange(value) {
|
96
|
+
if (_onChange) {
|
97
|
+
_onChange(formatMomentValue(value, format));
|
98
|
+
}
|
99
|
+
}
|
100
|
+
});
|
101
|
+
};
|
102
|
+
};
|
103
|
+
|
104
|
+
var mapDateFormat = function mapDateFormat(props, field) {
|
105
|
+
var _ref = field.component || [],
|
106
|
+
_ref2 = _slicedToArray(_ref, 1),
|
107
|
+
component = _ref2[0];
|
108
|
+
|
109
|
+
console.log(component);
|
110
|
+
return {};
|
111
|
+
};
|
112
|
+
|
113
|
+
export default mapDateFormat;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
var _excluded = ["form", "schema", "onSubmit", "onChange", "defaultFilterValue", "activeFilterValueRef"];
|
1
|
+
var _excluded = ["form", "schema", "onSubmit", "onChange", "defaultFilterValue", "filterValues", "activeFilterValueRef"];
|
2
2
|
|
3
3
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
4
4
|
|
@@ -26,6 +26,7 @@ var LightFilter = /*#__PURE__*/memo(function (props) {
|
|
26
26
|
onSubmit = props.onSubmit,
|
27
27
|
onChange = props.onChange,
|
28
28
|
defaultFilterValue = props.defaultFilterValue,
|
29
|
+
filterValues = props.filterValues,
|
29
30
|
activeFilterValueRef = props.activeFilterValueRef,
|
30
31
|
otherProps = _objectWithoutProperties(props, _excluded);
|
31
32
|
|
@@ -48,15 +49,24 @@ var LightFilter = /*#__PURE__*/memo(function (props) {
|
|
48
49
|
}, [form]); // 实际输出onFilter
|
49
50
|
|
50
51
|
var onFilter = useCallback(function () {
|
52
|
+
var _Object$keys;
|
53
|
+
|
51
54
|
var key = filterValue.current;
|
52
|
-
var value = form.values[key];
|
53
|
-
|
55
|
+
var value = form.values[key]; // 删除旧值
|
56
|
+
|
57
|
+
(_Object$keys = Object.keys(form.values)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.forEach(function (item) {
|
58
|
+
if (item !== key) {
|
59
|
+
form.setValuesIn(item, undefined);
|
60
|
+
}
|
61
|
+
});
|
62
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(_defineProperty({}, key, value), value, key);
|
54
63
|
}, [onChange]);
|
55
64
|
var LightSchema = useMemo(function () {
|
56
65
|
return [{
|
57
66
|
component: 'LightFilter',
|
58
67
|
props: {
|
59
68
|
defaultFilterValue: defaultFilterValue,
|
69
|
+
filterValues: filterValues,
|
60
70
|
onFilterChange: onFilterChange,
|
61
71
|
buttonProps: {
|
62
72
|
onClick: onFilter
|
@@ -84,7 +84,7 @@ var SimpleFilter = /*#__PURE__*/memo(function (props) {
|
|
84
84
|
} else {
|
85
85
|
onChange === null || onChange === void 0 ? void 0 : onChange(values, name, value);
|
86
86
|
}
|
87
|
-
}, [searchName, searchValue.current]);
|
87
|
+
}, [onChange, searchName, searchValue.current]);
|
88
88
|
useEffect(function () {
|
89
89
|
var _props$form$initialVa, _props$form$initialVa2;
|
90
90
|
|
package/es/form/Filter/index.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
var _excluded = ["addonAfter", "addonBefore", "mode", "purePanel", "expand", "formRef", "defaultFilterValue", "filterDebounce", "onFilter", "onInit", "onReset", "onExpand"];
|
1
|
+
var _excluded = ["addonAfter", "addonBefore", "mode", "purePanel", "expand", "formRef", "defaultFilterValue", "filterValues", "filterDebounce", "onFilter", "onInit", "onReset", "onExpand", "onChange"];
|
2
2
|
|
3
3
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
4
4
|
|
@@ -62,11 +62,13 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
62
62
|
expand = props.expand,
|
63
63
|
formRef = props.formRef,
|
64
64
|
defaultFilterValue = props.defaultFilterValue,
|
65
|
+
filterValues = props.filterValues,
|
65
66
|
filterDebounce = props.filterDebounce,
|
66
67
|
onFilter = props.onFilter,
|
67
68
|
onInit = props.onInit,
|
68
69
|
onReset = props.onReset,
|
69
70
|
onExpand = props.onExpand,
|
71
|
+
onChange = props.onChange,
|
70
72
|
otherProps = _objectWithoutProperties(props, _excluded);
|
71
73
|
|
72
74
|
var _useSpecialProps = useSpecialProps(props),
|
@@ -152,6 +154,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
152
154
|
if (!formRef.current.updateTags) {
|
153
155
|
formRef.current.updateTags = function () {
|
154
156
|
configFilterItem(form);
|
157
|
+
configTag();
|
155
158
|
};
|
156
159
|
}
|
157
160
|
}
|
@@ -327,7 +330,13 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
327
330
|
return function (_x) {
|
328
331
|
return _ref4.apply(this, arguments);
|
329
332
|
};
|
330
|
-
}(), [onFilter, hasRequired, onInit]); //
|
333
|
+
}(), [onFilter, hasRequired, onInit]); // 简单搜索Change
|
334
|
+
|
335
|
+
var onSimpleChange = useCallback(function (values, fieldValue, fieldName) {
|
336
|
+
if (currentForm.current === 'simple') {
|
337
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
|
338
|
+
}
|
339
|
+
}, [onChange]); // 轻量搜索Filter
|
331
340
|
|
332
341
|
var onLightFilter = useCallback(function (values) {
|
333
342
|
if (currentForm.current === 'light') {
|
@@ -345,7 +354,13 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
345
354
|
configTag();
|
346
355
|
}
|
347
356
|
}
|
348
|
-
}, [onFilter]); //
|
357
|
+
}, [onFilter]); // 轻量搜索Change
|
358
|
+
|
359
|
+
var onLightChange = useCallback(function (values, fieldValue, fieldName) {
|
360
|
+
if (currentForm.current === 'light') {
|
361
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
|
362
|
+
}
|
363
|
+
}, [onChange]); // 高级搜索Filter
|
349
364
|
|
350
365
|
var onAdvancedFilter = useCallback(function (values) {
|
351
366
|
setCurrentForm('advanced');
|
@@ -365,9 +380,9 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
365
380
|
lightForm.reset('*', {
|
366
381
|
forceClear: true
|
367
382
|
});
|
368
|
-
}, [onReset]); // 高级搜索
|
383
|
+
}, [onReset]); // 高级搜索Init
|
369
384
|
|
370
|
-
var
|
385
|
+
var onAdvancedInit = useCallback( /*#__PURE__*/function () {
|
371
386
|
var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(values) {
|
372
387
|
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
373
388
|
while (1) {
|
@@ -412,7 +427,13 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
412
427
|
return function (_x2) {
|
413
428
|
return _ref5.apply(this, arguments);
|
414
429
|
};
|
415
|
-
}(), [hasRequired, onInit]); //
|
430
|
+
}(), [hasRequired, onInit]); // 高级搜索Change
|
431
|
+
|
432
|
+
var onAdvancedChange = useCallback(function (values, fieldValue, fieldName) {
|
433
|
+
if (currentForm.current === 'advanced') {
|
434
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
|
435
|
+
}
|
436
|
+
}, [onChange]); // 关闭标签清空表单字段值
|
416
437
|
|
417
438
|
var onTagClose = useCallback(function (key, index) {
|
418
439
|
var newValue = undefined;
|
@@ -432,7 +453,10 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
432
453
|
form.setState({
|
433
454
|
loading: false
|
434
455
|
});
|
435
|
-
}, []);
|
456
|
+
}, []);
|
457
|
+
var debounceFun = debounce(function (fun, props) {
|
458
|
+
return fun(props);
|
459
|
+
}, filterDebounce); // 组件挂载
|
436
460
|
|
437
461
|
useEffect(function () {
|
438
462
|
setCurrentForm(currentForm.current);
|
@@ -448,20 +472,30 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
448
472
|
className: cls("".concat(prefixCls, "-inline"), purePanel || hasRequired ? "".concat(prefixCls, "-inline-hidden") : '')
|
449
473
|
}, /*#__PURE__*/React.createElement(LightFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
|
450
474
|
defaultFilterValue: defaultFilterValue,
|
475
|
+
filterValues: filterValues,
|
451
476
|
activeFilterValueRef: activeFilterValueRef,
|
452
477
|
form: lightForm,
|
453
|
-
onChange:
|
478
|
+
onChange: function onChange(values, fieldValue, fieldName) {
|
479
|
+
debounceFun(onLightFilter, values);
|
480
|
+
onLightChange(values, fieldValue, fieldName);
|
481
|
+
}
|
454
482
|
}))) : /*#__PURE__*/React.createElement("div", {
|
455
483
|
className: "".concat(prefixCls, "-inline")
|
456
484
|
}, /*#__PURE__*/React.createElement(SimpleFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
|
457
485
|
form: simpleForm,
|
458
|
-
onChange:
|
486
|
+
onChange: function onChange(values, fieldValue, fieldName) {
|
487
|
+
debounceFun(onSimpleFilter, values);
|
488
|
+
onSimpleChange(values, fieldValue, fieldName);
|
489
|
+
},
|
459
490
|
onSubmit: onSimpleFilter,
|
460
491
|
onInitialComplete: onInitialComplete
|
461
492
|
}))),
|
462
493
|
panelContent: mode === 'panel' ? /*#__PURE__*/React.createElement(AdvancedFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
|
463
494
|
form: advancedForm,
|
464
|
-
onChange:
|
495
|
+
onChange: function onChange(values, fieldValue, fieldName) {
|
496
|
+
debounceFun(onAdvancedInit, values);
|
497
|
+
onAdvancedChange(values, fieldValue, fieldName);
|
498
|
+
},
|
465
499
|
onSubmit: onAdvancedFilter,
|
466
500
|
onReset: onAdvancedReset,
|
467
501
|
onInitialComplete: onInitialComplete
|
@@ -6,6 +6,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
6
6
|
|
7
7
|
import { connect, mapProps } from '@formily/react';
|
8
8
|
import { toJS } from '@formily/reactive';
|
9
|
+
import { mapSize, mapStatus, mapDataSource } from '../utils';
|
9
10
|
|
10
11
|
var customComponent = function customComponent(component) {
|
11
12
|
return connect(component, mapProps(function (props, field) {
|
@@ -14,7 +15,7 @@ var customComponent = function customComponent(component) {
|
|
14
15
|
form: field.form,
|
15
16
|
values: toJS(field.form.values)
|
16
17
|
});
|
17
|
-
}));
|
18
|
+
}, mapSize, mapStatus, mapDataSource));
|
18
19
|
};
|
19
20
|
|
20
21
|
export { customComponent };
|
@@ -20,7 +20,7 @@ export default (function (decorator, component) {
|
|
20
20
|
return decorator;
|
21
21
|
}
|
22
22
|
|
23
|
-
if ([].concat(_toConsumableArray(Object.keys(fieldTypeMap)), ['Upload', 'ArrayCards', 'ArrayCollapse', 'ArrayTable', 'ArrayItems']).includes(component)) {
|
23
|
+
if ([].concat(_toConsumableArray(Object.keys(fieldTypeMap)), ['Upload', 'SelectTable', 'ArrayCards', 'ArrayCollapse', 'ArrayTable', 'ArrayItems']).includes(component)) {
|
24
24
|
return 'FormItem';
|
25
25
|
}
|
26
26
|
|
@@ -47,11 +47,8 @@ var typeMap = (_typeMap = {
|
|
47
47
|
Range: 'string',
|
48
48
|
Search: 'array',
|
49
49
|
SelectGroup: 'array',
|
50
|
-
|
51
|
-
|
52
|
-
ArrayTable: 'array',
|
53
|
-
ArrayItems: 'array'
|
54
|
-
}, _defineProperty(_typeMap, 'Editable.Popover', 'object'), _defineProperty(_typeMap, 'Editable.Dialog', 'object'), _defineProperty(_typeMap, 'Editable.Drawer', 'object'), _typeMap);
|
50
|
+
SelectTable: 'array'
|
51
|
+
}, _defineProperty(_typeMap, 'SelectTable.Column', 'string'), _defineProperty(_typeMap, "ArrayCollapse", 'array'), _defineProperty(_typeMap, "ArrayCards", 'array'), _defineProperty(_typeMap, "ArrayTable", 'array'), _defineProperty(_typeMap, "ArrayItems", 'array'), _defineProperty(_typeMap, 'Editable.Popover', 'object'), _defineProperty(_typeMap, 'Editable.Dialog', 'object'), _defineProperty(_typeMap, 'Editable.Drawer', 'object'), _typeMap);
|
55
52
|
export default (function (type, component) {
|
56
53
|
return type || typeMap[component] || 'void';
|
57
54
|
});
|
@@ -33,7 +33,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
33
33
|
import React, { memo, useCallback, useMemo } from 'react';
|
34
34
|
import { createSchemaField } from '@formily/react';
|
35
35
|
import { Affix } from '@alicloudfe/components';
|
36
|
-
import { Upload, FormLayout, FormItem, ArrayCollapse, ArrayCards, ArrayItems, ArrayTable, Space, FormGrid, FormTab, FormCollapse, FormStep, Editable, FormDialog, FormDrawer, FormButtonGroup, Submit, Reset } from '@teamix/formily';
|
36
|
+
import { Upload, SelectTable, FormLayout, FormItem, ArrayCollapse, ArrayCards, ArrayItems, ArrayTable, Space, FormGrid, FormTab, FormCollapse, FormStep, Editable, FormDialog, FormDrawer, FormButtonGroup, Submit, Reset } from '@teamix/formily';
|
37
37
|
import ProFieldComponents from '../Components/ProField';
|
38
38
|
import { EditableDialog, EditableDrawer, EditablePopover } from '../Components/Editable';
|
39
39
|
import FormGroup from '../Components/FormGroup';
|
@@ -55,18 +55,26 @@ import initializeFormGroup from './initializeFormGroup';
|
|
55
55
|
import initializeFormStep from './initializeFormStep';
|
56
56
|
import initializeFormTab from './initializeFormTab';
|
57
57
|
import initializeFormCollapse from './initializeFormCollapse';
|
58
|
+
import initializeSelectTable from './initializeSelectTable';
|
58
59
|
import { $request, $common, $dataSource, $validator } from './reactions';
|
59
60
|
import fieldTypeMap from '../fieldTypeMap';
|
60
61
|
import { getFieldName, mapSchemaName } from '../utils';
|
62
|
+
import { getGlobalConfig } from '@teamix/utils';
|
61
63
|
import warning from '../warning';
|
62
64
|
export default /*#__PURE__*/memo(function (_ref) {
|
63
65
|
var schema = _ref.schema,
|
64
66
|
scope = _ref.scope,
|
65
67
|
components = _ref.components;
|
66
|
-
|
68
|
+
|
69
|
+
// 获取全局配置
|
70
|
+
var _ref2 = getGlobalConfig('ProForm') || {},
|
71
|
+
globalComponents = _ref2.components,
|
72
|
+
globalScope = _ref2.scope; // 创建 SchemaField
|
73
|
+
|
74
|
+
|
67
75
|
var SchemaField = useMemo(function () {
|
68
76
|
return createSchemaField({
|
69
|
-
components: _objectSpread(_objectSpread({}, ProFieldComponents), {}, {
|
77
|
+
components: _objectSpread(_objectSpread(_objectSpread({}, globalComponents), ProFieldComponents), {}, {
|
70
78
|
FormLayout: FormLayout,
|
71
79
|
FormItem: FormItem,
|
72
80
|
ArrayCollapse: ArrayCollapse,
|
@@ -89,6 +97,7 @@ export default /*#__PURE__*/memo(function (_ref) {
|
|
89
97
|
EditablePopover: EditablePopover,
|
90
98
|
FormGroup: FormGroup,
|
91
99
|
Upload: Upload,
|
100
|
+
SelectTable: SelectTable,
|
92
101
|
Affix: Affix,
|
93
102
|
LightFilter: LightFilter,
|
94
103
|
Text: Text
|
@@ -97,7 +106,7 @@ export default /*#__PURE__*/memo(function (_ref) {
|
|
97
106
|
}, []); // 合并 schema 中 request 的 scope
|
98
107
|
|
99
108
|
var mergedScope = useMemo(function () {
|
100
|
-
return _objectSpread(_objectSpread({}, scope), {}, {
|
109
|
+
return _objectSpread(_objectSpread(_objectSpread({}, globalScope), scope), {}, {
|
101
110
|
$request: $request,
|
102
111
|
$common: $common,
|
103
112
|
$dataSource: $dataSource,
|
@@ -106,10 +115,10 @@ export default /*#__PURE__*/memo(function (_ref) {
|
|
106
115
|
}, [scope]); // 格式化 schema
|
107
116
|
|
108
117
|
var formatSchema = useCallback(function (schema) {
|
109
|
-
var
|
118
|
+
var parentSuffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
110
119
|
var schemaProperties = {};
|
111
120
|
schema === null || schema === void 0 ? void 0 : schema.forEach(function (item, index) {
|
112
|
-
suffix = "".concat(
|
121
|
+
var suffix = "".concat(parentSuffix).concat(index);
|
113
122
|
var newItem = warning(item);
|
114
123
|
var _newItem = newItem,
|
115
124
|
originalComponent = _newItem.component; // 根据component的不同,初始化为内置的item
|
@@ -166,6 +175,11 @@ export default /*#__PURE__*/memo(function (_ref) {
|
|
166
175
|
|
167
176
|
if (['FormCollapse'].includes(originalComponent)) {
|
168
177
|
newItem = initializeFormCollapse(newItem);
|
178
|
+
} // 初始化选择表格 - SelectTable
|
179
|
+
|
180
|
+
|
181
|
+
if (['SelectTable'].includes(originalComponent)) {
|
182
|
+
newItem = initializeSelectTable(newItem);
|
169
183
|
}
|
170
184
|
}
|
171
185
|
|
@@ -200,10 +214,10 @@ export default /*#__PURE__*/memo(function (_ref) {
|
|
200
214
|
|
201
215
|
var _initializeRequest = initializeRequest(request, "".concat(suffix, "r")),
|
202
216
|
requestReactions = _initializeRequest.reactions,
|
203
|
-
requestScope = _initializeRequest.scope; // 初始化dataSource
|
217
|
+
requestScope = _initializeRequest.scope; // 初始化dataSource
|
204
218
|
|
205
219
|
|
206
|
-
var _initializeDataSource = initializeDataSource(dataSource, "".concat(suffix, "d")
|
220
|
+
var _initializeDataSource = initializeDataSource(dataSource, "".concat(suffix, "d")),
|
207
221
|
defaultDataSource = _initializeDataSource.dataSource,
|
208
222
|
dataSourceReactions = _initializeDataSource.reactions,
|
209
223
|
dataSourceScope = _initializeDataSource.scope; // 初始化rules validator
|
@@ -216,10 +230,10 @@ export default /*#__PURE__*/memo(function (_ref) {
|
|
216
230
|
|
217
231
|
var defaultReactions = initializeReactions(reactions, [].concat(_toConsumableArray(requestReactions), _toConsumableArray(dataSourceReactions))); // 合并scope
|
218
232
|
|
219
|
-
Object.entries(_objectSpread(_objectSpread(_objectSpread({}, requestScope), dataSourceScope), rulesScope)).map(function (
|
220
|
-
var
|
221
|
-
k =
|
222
|
-
v =
|
233
|
+
Object.entries(_objectSpread(_objectSpread(_objectSpread({}, requestScope), dataSourceScope), rulesScope)).map(function (_ref3) {
|
234
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
235
|
+
k = _ref4[0],
|
236
|
+
v = _ref4[1];
|
223
237
|
|
224
238
|
mergedScope[k] = v;
|
225
239
|
});
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import type { ProFormRequestConfig } from '../typing';
|
2
2
|
interface IInitializeDataSource {
|
3
|
-
(requestConfig?: ProFormRequestConfig | any, suffix?: string
|
3
|
+
(requestConfig?: ProFormRequestConfig | any, suffix?: string): {
|
4
4
|
dataSource?: any[];
|
5
5
|
reactions: any[];
|
6
6
|
scope: {
|
@@ -2,12 +2,12 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
2
2
|
|
3
3
|
import { isPlainObj } from '@teamix/utils';
|
4
4
|
|
5
|
-
var initializeDataSource = function initializeDataSource(dataSource, suffix
|
5
|
+
var initializeDataSource = function initializeDataSource(dataSource, suffix) {
|
6
6
|
if (isPlainObj(dataSource)) {
|
7
7
|
var requestConfig = dataSource;
|
8
8
|
var requestConfigName = "$requestConfig_".concat(suffix);
|
9
9
|
return {
|
10
|
-
reactions: ["{{$dataSource($request,".concat(requestConfigName, ",context
|
10
|
+
reactions: ["{{$dataSource($request,".concat(requestConfigName, ",context)}}")],
|
11
11
|
scope: _defineProperty({}, requestConfigName, requestConfig)
|
12
12
|
};
|
13
13
|
}
|