@teamix/pro 1.2.19 → 1.2.23
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/212.js +49 -49
- package/dist/pro.css +1 -1
- package/dist/pro.js +3400 -880
- package/dist/pro.min.css +1 -1
- package/dist/pro.min.js +1 -1
- package/es/actions/dialog.js +10 -24
- package/es/actions/index.d.ts +10 -0
- package/es/actions/index.js +11 -16
- package/es/form/Components/LightFilter/componentMap.js +2 -1
- package/es/form/Components/LightFilter/index.js +16 -4
- package/es/form/Components/LightFilter/index.scss +1 -1
- package/es/form/Components/SelectTable/index.d.ts +24 -0
- package/es/form/Components/SelectTable/index.js +135 -0
- package/es/form/Components/SelectTable/index.scss +28 -0
- package/es/form/Components/SelectTable/table.d.ts +6 -0
- package/es/form/Components/SelectTable/table.js +64 -0
- package/es/form/Filter/AdvancedFilter.d.ts +7 -0
- package/es/form/Filter/AdvancedFilter.js +114 -0
- package/es/form/Filter/LightFilter.d.ts +7 -0
- package/es/form/Filter/LightFilter.js +79 -0
- package/es/form/Filter/SimpleFilter.d.ts +7 -0
- package/es/form/Filter/SimpleFilter.js +74 -0
- package/es/form/Filter/index2.js +203 -257
- package/es/form/ProForm/index.js +12 -9
- package/es/form/ProForm/index.scss +40 -6
- package/es/form/ProForm/useFormDisplayValues.js +4 -2
- package/es/form/SchemaForm/index.js +16 -10
- package/es/form/SchemaForm/initializeDataSource.d.ts +2 -2
- package/es/form/SchemaForm/initializeDataSource.js +4 -9
- package/es/form/SchemaForm/initializeRequest.d.ts +2 -2
- package/es/form/SchemaForm/initializeRequest.js +4 -10
- package/es/form/SchemaForm/initializeRules.d.ts +7 -1
- package/es/form/SchemaForm/initializeRules.js +9 -13
- package/es/form/SchemaForm/reactions.d.ts +5 -5
- package/es/form/SchemaForm/reactions.js +27 -29
- package/es/form/global.scss +1 -0
- package/es/form/typing.d.ts +7 -3
- package/es/form/utils.d.ts +8 -7
- package/es/form/utils.js +5 -4
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/table/components/Filter/index.js +1 -0
- package/es/table/components/Layout/index.js +22 -12
- package/es/table/components/Pagination/index.d.ts +7 -0
- package/es/table/components/Pagination/index.js +245 -0
- package/es/table/components/Pagination/index.scss +50 -0
- package/es/table/components/ToolBar/FilterColumnIcon.js +41 -7
- package/es/table/components/ToolBar/index.scss +17 -6
- package/es/table/index.js +96 -37
- package/es/table/index.scss +7 -1
- package/es/table/typing.d.ts +9 -2
- package/es/table/utils/columnRender.js +2 -1
- package/es/table/utils/index.d.ts +7 -0
- package/es/table/utils/index.js +38 -4
- package/lib/actions/dialog.js +9 -23
- package/lib/actions/index.d.ts +10 -0
- package/lib/actions/index.js +11 -16
- package/lib/form/Components/LightFilter/componentMap.js +2 -1
- package/lib/form/Components/LightFilter/index.js +15 -4
- package/lib/form/Components/LightFilter/index.scss +1 -1
- package/lib/form/Components/SelectTable/index.d.ts +24 -0
- package/lib/form/Components/SelectTable/index.js +157 -0
- package/lib/form/Components/SelectTable/index.scss +28 -0
- package/lib/form/Components/SelectTable/table.d.ts +6 -0
- package/lib/form/Components/SelectTable/table.js +76 -0
- package/lib/form/Filter/AdvancedFilter.d.ts +7 -0
- package/lib/form/Filter/AdvancedFilter.js +134 -0
- package/lib/form/Filter/LightFilter.d.ts +7 -0
- package/lib/form/Filter/LightFilter.js +99 -0
- package/lib/form/Filter/SimpleFilter.d.ts +7 -0
- package/lib/form/Filter/SimpleFilter.js +93 -0
- package/lib/form/Filter/index2.js +207 -258
- package/lib/form/ProForm/index.js +11 -9
- package/lib/form/ProForm/index.scss +40 -6
- package/lib/form/ProForm/useFormDisplayValues.js +3 -1
- package/lib/form/SchemaForm/index.js +16 -9
- package/lib/form/SchemaForm/initializeDataSource.d.ts +2 -2
- package/lib/form/SchemaForm/initializeDataSource.js +4 -11
- package/lib/form/SchemaForm/initializeRequest.d.ts +2 -2
- package/lib/form/SchemaForm/initializeRequest.js +4 -11
- package/lib/form/SchemaForm/initializeRules.d.ts +7 -1
- package/lib/form/SchemaForm/initializeRules.js +9 -16
- package/lib/form/SchemaForm/reactions.d.ts +5 -5
- package/lib/form/SchemaForm/reactions.js +29 -31
- package/lib/form/global.scss +1 -0
- package/lib/form/typing.d.ts +7 -3
- package/lib/form/utils.d.ts +8 -7
- package/lib/form/utils.js +6 -5
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/table/components/Layout/index.js +21 -11
- package/lib/table/components/Pagination/index.d.ts +7 -0
- package/lib/table/components/Pagination/index.js +265 -0
- package/lib/table/components/Pagination/index.scss +50 -0
- package/lib/table/components/ToolBar/FilterColumnIcon.js +40 -6
- package/lib/table/components/ToolBar/index.scss +17 -6
- package/lib/table/index.js +96 -36
- package/lib/table/index.scss +7 -1
- package/lib/table/typing.d.ts +9 -2
- package/lib/table/utils/columnRender.js +2 -1
- package/lib/table/utils/index.d.ts +7 -0
- package/lib/table/utils/index.js +46 -4
- package/package.json +2 -2
package/es/form/Filter/index2.js
CHANGED
@@ -1,7 +1,10 @@
|
|
1
|
-
var _excluded = ["
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
var _excluded = ["addonAfter", "addonBefore", "onFilter", "onInit", "onReset", "mode", "expand", "formRef", "defaultFilterValue"];
|
2
|
+
|
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
|
+
|
5
|
+
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; }
|
6
|
+
|
7
|
+
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; }
|
5
8
|
|
6
9
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
7
10
|
|
@@ -11,211 +14,33 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
|
|
11
14
|
|
12
15
|
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."); }
|
13
16
|
|
14
|
-
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; }
|
15
|
-
|
16
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
17
|
-
|
18
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
19
|
-
|
20
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
21
|
-
|
22
17
|
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); }
|
23
18
|
|
24
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
25
|
-
|
26
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
27
|
-
|
28
19
|
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; }
|
29
20
|
|
30
|
-
function
|
31
|
-
|
32
|
-
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; }
|
21
|
+
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; }
|
33
22
|
|
34
|
-
function
|
23
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
35
24
|
|
36
25
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
37
26
|
|
38
27
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
39
28
|
|
40
|
-
import React, { memo, useCallback, useMemo, useState, useEffect } from 'react';
|
29
|
+
import React, { memo, useCallback, useMemo, useState, useRef, useEffect } from 'react';
|
41
30
|
import cls from 'classnames';
|
42
31
|
import { Tag, Button, Badge } from '@alicloudfe/components';
|
43
32
|
import TeamixIcon from '@teamix/icon';
|
44
|
-
import { createForm } from '@formily/core';
|
33
|
+
import { createForm, onFormReact, onFormInputChange } from '@formily/core';
|
45
34
|
import { toJS } from '@formily/reactive';
|
46
35
|
import { usePrefixCls, getMessage, isSignificative, isStr, isPlainObj } from '@teamix/utils';
|
47
36
|
import ProField from '../../field/index';
|
48
|
-
import ProForm from '../ProForm';
|
49
37
|
import fieldTypeMap from '../fieldTypeMap';
|
50
38
|
import { getFormDisplayValues } from '../ProForm/useFormDisplayValues';
|
51
|
-
import
|
52
|
-
import './
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
var SimpleFilter = /*#__PURE__*/memo(function (props) {
|
58
|
-
var schema = props.schema,
|
59
|
-
onChange = props.onChange,
|
60
|
-
onSubmit = props.onSubmit,
|
61
|
-
otherProps = _objectWithoutProperties(props, _excluded);
|
62
|
-
|
63
|
-
var prefixCls = usePrefixCls('', {
|
64
|
-
prefix: 'teamix-pro-form-query-filter-simple'
|
65
|
-
});
|
66
|
-
var simpleSchema = useMemo(function () {
|
67
|
-
return [{
|
68
|
-
component: 'FormFlex',
|
69
|
-
props: {
|
70
|
-
size: 8
|
71
|
-
},
|
72
|
-
children: schema
|
73
|
-
}, {
|
74
|
-
component: 'Submit',
|
75
|
-
props: {
|
76
|
-
style: {
|
77
|
-
display: 'none'
|
78
|
-
}
|
79
|
-
}
|
80
|
-
}];
|
81
|
-
}, [schema]);
|
82
|
-
return /*#__PURE__*/React.createElement(ProForm, _objectSpread(_objectSpread({}, otherProps), {}, {
|
83
|
-
className: cls(prefixCls, props.className),
|
84
|
-
schema: simpleSchema,
|
85
|
-
feedbackLayout: "popover",
|
86
|
-
breakpoints: [],
|
87
|
-
inset: true,
|
88
|
-
onSubmit: onSubmit,
|
89
|
-
onChange: onChange
|
90
|
-
}));
|
91
|
-
});
|
92
|
-
/**
|
93
|
-
* 轻量筛选
|
94
|
-
*/
|
95
|
-
|
96
|
-
var LightFilter = /*#__PURE__*/memo(function (props) {
|
97
|
-
var form = props.form,
|
98
|
-
schema = props.schema,
|
99
|
-
onSubmit = props.onSubmit,
|
100
|
-
onChange = props.onChange,
|
101
|
-
otherProps = _objectWithoutProperties(props, _excluded2);
|
102
|
-
|
103
|
-
var prefixCls = usePrefixCls('', {
|
104
|
-
prefix: 'teamix-pro-form-query-filter-light'
|
105
|
-
});
|
106
|
-
var onBtnClick = useCallback(function () {
|
107
|
-
onChange && onChange(toJS(form.values));
|
108
|
-
}, [form]);
|
109
|
-
var LightSchema = useMemo(function () {
|
110
|
-
return [{
|
111
|
-
component: 'LightFilter',
|
112
|
-
props: {
|
113
|
-
buttonProps: {
|
114
|
-
onClick: onBtnClick
|
115
|
-
}
|
116
|
-
},
|
117
|
-
children: schema
|
118
|
-
}, {
|
119
|
-
component: 'Submit',
|
120
|
-
props: {
|
121
|
-
style: {
|
122
|
-
display: 'none'
|
123
|
-
}
|
124
|
-
}
|
125
|
-
}];
|
126
|
-
}, [schema, onBtnClick]);
|
127
|
-
return /*#__PURE__*/React.createElement(ProForm, _objectSpread(_objectSpread({}, otherProps), {}, {
|
128
|
-
form: form,
|
129
|
-
className: cls(prefixCls, props.className),
|
130
|
-
schema: LightSchema,
|
131
|
-
feedbackLayout: "none",
|
132
|
-
breakpoints: [],
|
133
|
-
bordered: false,
|
134
|
-
onSubmit: onSubmit,
|
135
|
-
onChange: onChange
|
136
|
-
}));
|
137
|
-
});
|
138
|
-
/**
|
139
|
-
* 高级筛选
|
140
|
-
*/
|
141
|
-
|
142
|
-
var AdvancedFilter = /*#__PURE__*/memo(function (props) {
|
143
|
-
var schema = props.schema,
|
144
|
-
onSubmit = props.onSubmit,
|
145
|
-
onReset = props.onReset,
|
146
|
-
layout = props.layout,
|
147
|
-
labelAlign = props.labelAlign,
|
148
|
-
wrapperAlign = props.wrapperAlign,
|
149
|
-
labelCol = props.labelCol,
|
150
|
-
wrapperCol = props.wrapperCol,
|
151
|
-
otherProps = _objectWithoutProperties(props, _excluded3);
|
152
|
-
|
153
|
-
var prefixCls = usePrefixCls('', {
|
154
|
-
prefix: 'teamix-pro-form-query-filter-advanced'
|
155
|
-
});
|
156
|
-
var gridSchema = useMemo(function () {
|
157
|
-
return [{
|
158
|
-
name: 'FormGrid',
|
159
|
-
component: 'FormGrid',
|
160
|
-
props: {
|
161
|
-
breakpoints: [480, 720, 990, 1200, Infinity],
|
162
|
-
maxColumns: [1, 2, 3, 3, 4],
|
163
|
-
columnGap: 16,
|
164
|
-
rowGap: 12
|
165
|
-
},
|
166
|
-
children: [].concat(_toConsumableArray(schema), [{
|
167
|
-
component: 'FormGrid.GridColumn',
|
168
|
-
props: {
|
169
|
-
gridSpan: -1
|
170
|
-
},
|
171
|
-
children: [{
|
172
|
-
component: 'FormButtonGroup',
|
173
|
-
props: {
|
174
|
-
align: 'right'
|
175
|
-
},
|
176
|
-
children: [{
|
177
|
-
component: 'Reset',
|
178
|
-
props: {
|
179
|
-
onResetValidateSuccess: onReset,
|
180
|
-
children: getMessage('reset')
|
181
|
-
}
|
182
|
-
}, {
|
183
|
-
component: 'Submit',
|
184
|
-
props: {
|
185
|
-
style: {
|
186
|
-
marginRight: -8
|
187
|
-
},
|
188
|
-
children: getMessage('search')
|
189
|
-
}
|
190
|
-
}]
|
191
|
-
}]
|
192
|
-
}])
|
193
|
-
}];
|
194
|
-
}, [schema, onReset]);
|
195
|
-
var getTeamixLayout = useMemo(function () {
|
196
|
-
return {
|
197
|
-
breakpoints: [990],
|
198
|
-
layout: mergeArrayValue(['vertical'], layout),
|
199
|
-
labelAlign: mergeArrayValue(['left'], labelAlign),
|
200
|
-
wrapperAlign: mergeArrayValue(['left'], wrapperAlign),
|
201
|
-
labelCol: mergeArrayValue([24], labelCol),
|
202
|
-
wrapperCol: mergeArrayValue([24], wrapperCol)
|
203
|
-
};
|
204
|
-
}, [layout, labelAlign, wrapperAlign, labelCol, wrapperCol]);
|
205
|
-
return /*#__PURE__*/React.createElement(ProForm, _objectSpread(_objectSpread(_objectSpread({
|
206
|
-
className: cls(prefixCls, props.className),
|
207
|
-
schema: gridSchema,
|
208
|
-
feedbackLayout: "popover"
|
209
|
-
}, otherProps), getTeamixLayout), {}, {
|
210
|
-
onSubmit: onSubmit
|
211
|
-
}));
|
212
|
-
});
|
213
|
-
AdvancedFilter.defaultProps = {
|
214
|
-
layout: 'horizontal',
|
215
|
-
labelAlign: 'right',
|
216
|
-
labelCol: 6,
|
217
|
-
wrapperCol: 18
|
218
|
-
};
|
39
|
+
import SimpleFilter from './SimpleFilter';
|
40
|
+
import LightFilter from './LightFilter';
|
41
|
+
import AdvancedFilter from './AdvancedFilter';
|
42
|
+
import debounce from 'lodash.debounce';
|
43
|
+
import './index2.scss'; // 获取Schema是否包含默认值、异步默认值、必选校验等
|
219
44
|
|
220
45
|
var getSpecialProps = function getSpecialProps(props) {
|
221
46
|
var initialValues = props.initialValues,
|
@@ -263,23 +88,93 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
263
88
|
onReset = props.onReset,
|
264
89
|
mode = props.mode,
|
265
90
|
expand = props.expand,
|
266
|
-
|
91
|
+
formRef = props.formRef,
|
92
|
+
defaultFilterValue = props.defaultFilterValue,
|
93
|
+
otherProps = _objectWithoutProperties(props, _excluded); // 表单默认值初始化回调
|
94
|
+
|
95
|
+
|
96
|
+
var _onFormInit = function onFormInit(form, _ref, configFilterItem) {
|
97
|
+
var initialRequest = _ref.initialRequest,
|
98
|
+
onInit = _ref.onInit;
|
99
|
+
|
100
|
+
if (!form.mounted) {
|
101
|
+
form.loading = !!initialRequest;
|
102
|
+
}
|
103
|
+
|
104
|
+
var loadingField = Object.values(form.fields).filter(function (field) {
|
105
|
+
return !!field.loading;
|
106
|
+
});
|
107
|
+
|
108
|
+
if (form.mounted) {
|
109
|
+
if (loadingField.length === 0 && !form.loading) {
|
110
|
+
var onInitResult = onInit && onInit(toJS(form.values));
|
111
|
+
|
112
|
+
if (onInitResult) {
|
113
|
+
// 根据onInit返回值,判断是否使用该事件执行筛选,使用过则添加筛选标签
|
114
|
+
configFilterItem && configFilterItem(form);
|
115
|
+
}
|
116
|
+
|
117
|
+
_onFormInit = function onFormInit() {};
|
118
|
+
}
|
119
|
+
}
|
120
|
+
}; // 设置当前form
|
121
|
+
|
122
|
+
|
123
|
+
var setCurrentForm = function setCurrentForm(formName) {
|
124
|
+
currentForm.current = formName;
|
125
|
+
|
126
|
+
if (formRef) {
|
127
|
+
var form = formMap[formName];
|
128
|
+
formRef.current = form;
|
129
|
+
|
130
|
+
formRef.current.updateTags = function () {
|
131
|
+
configFilterItem(form);
|
132
|
+
};
|
133
|
+
}
|
134
|
+
}; // 创建简单筛选表单实例
|
135
|
+
|
267
136
|
|
268
137
|
var simpleForm = useMemo(function () {
|
269
138
|
return createForm({
|
270
|
-
validateFirst: true
|
139
|
+
validateFirst: true,
|
140
|
+
effects: function effects() {
|
141
|
+
onFormReact(function (form) {
|
142
|
+
_onFormInit(form, props);
|
143
|
+
});
|
144
|
+
}
|
271
145
|
});
|
272
|
-
}, []);
|
146
|
+
}, []); // 创建轻量筛选表单实例
|
147
|
+
|
273
148
|
var lightForm = useMemo(function () {
|
274
149
|
return createForm({
|
275
|
-
validateFirst: true
|
150
|
+
validateFirst: true,
|
151
|
+
effects: function effects() {
|
152
|
+
onFormInputChange(function () {
|
153
|
+
setCurrentForm('light');
|
154
|
+
});
|
155
|
+
}
|
276
156
|
});
|
277
|
-
}, []);
|
157
|
+
}, []); // 创建高级筛选表单实例
|
158
|
+
|
278
159
|
var advancedForm = useMemo(function () {
|
279
160
|
return createForm({
|
280
|
-
validateFirst: true
|
161
|
+
validateFirst: true,
|
162
|
+
effects: function effects() {
|
163
|
+
onFormReact(function (form) {
|
164
|
+
_onFormInit(form, props, configFilterItem);
|
165
|
+
});
|
166
|
+
onFormInputChange(function (form) {
|
167
|
+
// 主动修改高级筛选值
|
168
|
+
setCurrentForm('advanced');
|
169
|
+
});
|
170
|
+
}
|
281
171
|
});
|
282
172
|
}, []);
|
173
|
+
var formMap = {
|
174
|
+
simple: simpleForm,
|
175
|
+
light: lightForm,
|
176
|
+
advanced: advancedForm
|
177
|
+
};
|
283
178
|
|
284
179
|
var _getSpecialProps = getSpecialProps(props),
|
285
180
|
hasDefault = _getSpecialProps.hasDefault,
|
@@ -298,25 +193,24 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
298
193
|
tagDataSource = _useState4[0],
|
299
194
|
setTagDataSource = _useState4[1];
|
300
195
|
|
196
|
+
var filterItem = useRef([]);
|
197
|
+
var currentForm = useRef(mode === 'panel' ? advancedFilterVisible ? 'advanced' : 'light' : 'simple');
|
301
198
|
var prefixCls = usePrefixCls('', {
|
302
199
|
prefix: 'teamix-pro-form-query-filter'
|
303
|
-
});
|
304
|
-
var currentForm = mode === 'panel' ? advancedFilterVisible ? 'advanced' : 'light' : 'simple'; // 展开收起高级筛选
|
200
|
+
}); // 设置筛选数据
|
305
201
|
|
306
|
-
var
|
307
|
-
|
308
|
-
|
309
|
-
});
|
310
|
-
}, []); // 获取标签数据
|
202
|
+
var configFilterItem = useCallback(function (form) {
|
203
|
+
filterItem.current = getFilterDisplayValues(form);
|
204
|
+
}, []); // 获取筛选数据Label
|
311
205
|
|
312
|
-
var
|
206
|
+
var getFilterDisplayValues = useCallback(function (form) {
|
313
207
|
var displayValues = getFormDisplayValues(form);
|
314
|
-
return Object.entries(displayValues).map(function (
|
208
|
+
return Object.entries(displayValues).map(function (_ref2) {
|
315
209
|
var _data$displayValue;
|
316
210
|
|
317
|
-
var
|
318
|
-
key =
|
319
|
-
data =
|
211
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
212
|
+
key = _ref3[0],
|
213
|
+
data = _ref3[1];
|
320
214
|
|
321
215
|
return {
|
322
216
|
key: key,
|
@@ -330,32 +224,46 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
330
224
|
}, []); // 设置标签数据
|
331
225
|
|
332
226
|
var configTag = useCallback(function () {
|
333
|
-
setTagDataSource(
|
334
|
-
}, []); //
|
227
|
+
setTagDataSource(filterItem.current);
|
228
|
+
}, [filterItem.current]); // 展开收起高级筛选
|
335
229
|
|
336
|
-
var
|
337
|
-
|
338
|
-
|
230
|
+
var toggleAdvancedFilter = useCallback(function () {
|
231
|
+
var result = !advancedFilterVisible;
|
232
|
+
|
233
|
+
if (result) {
|
234
|
+
// 展开高级筛选,Light回填Advanced
|
235
|
+
if (currentForm.current === 'light') {
|
236
|
+
advancedForm.setValues(lightForm.values);
|
237
|
+
}
|
238
|
+
} else {
|
239
|
+
// 收起高级筛选,配置标签数据
|
240
|
+
configTag();
|
339
241
|
}
|
340
|
-
}, [onFilter, currentForm]); // 轻量搜索Filter
|
341
242
|
|
342
|
-
|
343
|
-
|
243
|
+
setAdvancedFilterVisible(result);
|
244
|
+
}, [advancedFilterVisible, configTag, currentForm.current]); // 简单搜索Filter
|
245
|
+
|
246
|
+
var onSimpleFilter = useCallback( /*#__PURE__*/function () {
|
247
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(values) {
|
344
248
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
345
249
|
while (1) {
|
346
250
|
switch (_context.prev = _context.next) {
|
347
251
|
case 0:
|
348
|
-
if (!(currentForm === '
|
252
|
+
if (!(currentForm.current === 'simple')) {
|
349
253
|
_context.next = 5;
|
350
254
|
break;
|
351
255
|
}
|
352
256
|
|
353
|
-
|
257
|
+
if (!hasRequired) {
|
258
|
+
_context.next = 4;
|
259
|
+
break;
|
260
|
+
}
|
261
|
+
|
354
262
|
_context.next = 4;
|
355
|
-
return
|
263
|
+
return simpleForm.validate();
|
356
264
|
|
357
265
|
case 4:
|
358
|
-
|
266
|
+
onFilter && onFilter(values);
|
359
267
|
|
360
268
|
case 5:
|
361
269
|
case "end":
|
@@ -366,39 +274,73 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
366
274
|
}));
|
367
275
|
|
368
276
|
return function (_x) {
|
369
|
-
return
|
277
|
+
return _ref4.apply(this, arguments);
|
278
|
+
};
|
279
|
+
}(), [onFilter, currentForm.current, hasRequired]); // 轻量搜索Filter
|
280
|
+
|
281
|
+
var onLightFilter = useCallback( /*#__PURE__*/function () {
|
282
|
+
var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(values) {
|
283
|
+
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
284
|
+
while (1) {
|
285
|
+
switch (_context2.prev = _context2.next) {
|
286
|
+
case 0:
|
287
|
+
if (!(currentForm.current === 'light')) {
|
288
|
+
_context2.next = 6;
|
289
|
+
break;
|
290
|
+
}
|
291
|
+
|
292
|
+
onFilter && onFilter(values);
|
293
|
+
_context2.next = 4;
|
294
|
+
return advancedForm.reset();
|
295
|
+
|
296
|
+
case 4:
|
297
|
+
// 不会触发高级筛选的onReset回调函数
|
298
|
+
configFilterItem(advancedForm);
|
299
|
+
configTag();
|
300
|
+
|
301
|
+
case 6:
|
302
|
+
case "end":
|
303
|
+
return _context2.stop();
|
304
|
+
}
|
305
|
+
}
|
306
|
+
}, _callee2);
|
307
|
+
}));
|
308
|
+
|
309
|
+
return function (_x2) {
|
310
|
+
return _ref5.apply(this, arguments);
|
370
311
|
};
|
371
|
-
}(), [onFilter, currentForm]); // 高级搜索Filter
|
312
|
+
}(), [onFilter, currentForm.current]); // 高级搜索Filter
|
372
313
|
|
373
314
|
var onAdvancedFilter = useCallback(function (values) {
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
315
|
+
setCurrentForm('advanced');
|
316
|
+
onFilter && onFilter(values);
|
317
|
+
configFilterItem(advancedForm);
|
318
|
+
lightForm.reset();
|
319
|
+
}, [onFilter, currentForm.current]); // 高级搜索Reset
|
320
|
+
|
321
|
+
var onAdvancedReset = useCallback(function () {
|
322
|
+
setCurrentForm('advanced');
|
323
|
+
onReset && onReset(toJS(advancedForm.values));
|
324
|
+
configFilterItem(advancedForm);
|
325
|
+
lightForm.reset();
|
326
|
+
}, [onReset]); // 关闭标签清空表单字段值
|
380
327
|
|
381
328
|
var onTagClose = useCallback(function (key) {
|
382
329
|
advancedForm.setValuesIn(key, undefined);
|
383
|
-
|
384
|
-
|
385
|
-
|
330
|
+
configFilterItem(advancedForm);
|
331
|
+
configTag();
|
332
|
+
onFilter && onFilter(toJS(advancedForm.values));
|
333
|
+
}, []); // 异步默认值回调,设置form的loading状态为false
|
334
|
+
|
335
|
+
var onInitialRequestComplete = useCallback(function (_, __, _ref6) {
|
336
|
+
var form = _ref6.form;
|
337
|
+
form.setState({
|
338
|
+
loading: false
|
339
|
+
});
|
340
|
+
}, []);
|
386
341
|
useEffect(function () {
|
387
|
-
|
388
|
-
}, [
|
389
|
-
|
390
|
-
useEffect(function () {// onInit
|
391
|
-
// if (mode === 'panel') {
|
392
|
-
// if (expand) {
|
393
|
-
// onInit && onInit(toJS(advancedForm.values));
|
394
|
-
// } else {
|
395
|
-
// onInit && onInit(toJS(lightForm.values));
|
396
|
-
// }
|
397
|
-
// configTag();
|
398
|
-
// } else {
|
399
|
-
// onInit && onInit(toJS(simpleForm.values));
|
400
|
-
// }
|
401
|
-
}, [mode]);
|
342
|
+
setCurrentForm(currentForm.current);
|
343
|
+
}, []);
|
402
344
|
return /*#__PURE__*/React.createElement("div", {
|
403
345
|
className: cls(prefixCls, props.className)
|
404
346
|
}, /*#__PURE__*/React.createElement("div", {
|
@@ -408,11 +350,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
408
350
|
}, addonBefore ? /*#__PURE__*/React.createElement("div", {
|
409
351
|
className: "".concat(prefixCls, "-addonBefore")
|
410
352
|
}, addonBefore) : null, mode === 'panel' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
411
|
-
className: cls("".concat(prefixCls, "-inline-form"),
|
353
|
+
className: cls("".concat(prefixCls, "-inline-form"), hasDefaultOrRequired ? "".concat(prefixCls, "-inline-form-hidden") : '')
|
412
354
|
}, /*#__PURE__*/React.createElement(LightFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
|
355
|
+
defaultFilterValue: defaultFilterValue,
|
413
356
|
form: lightForm,
|
414
|
-
onChange: onLightFilter,
|
415
|
-
onSubmit: onLightFilter
|
357
|
+
onChange: debounce(onLightFilter, 300)
|
416
358
|
}))), /*#__PURE__*/React.createElement("div", {
|
417
359
|
className: "".concat(prefixCls, "-toggle")
|
418
360
|
}, /*#__PURE__*/React.createElement(Badge, {
|
@@ -433,7 +375,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
433
375
|
className: "".concat(prefixCls, "-inline-form")
|
434
376
|
}, /*#__PURE__*/React.createElement(SimpleFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
|
435
377
|
form: simpleForm,
|
436
|
-
onChange: onSimpleFilter,
|
378
|
+
onChange: debounce(onSimpleFilter, 300),
|
437
379
|
onSubmit: onSimpleFilter
|
438
380
|
})))), addonAfter ? /*#__PURE__*/React.createElement("div", {
|
439
381
|
className: "".concat(prefixCls, "-addonAfter")
|
@@ -441,11 +383,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
441
383
|
className: "".concat(prefixCls, "-panel")
|
442
384
|
}, /*#__PURE__*/React.createElement("div", {
|
443
385
|
className: cls("".concat(prefixCls, "-tag"), advancedFilterVisible ? "".concat(prefixCls, "-tag-hidden") : '')
|
444
|
-
}, /*#__PURE__*/React.createElement(Tag.Group, null, tagDataSource.map(function (
|
445
|
-
var key =
|
446
|
-
label =
|
447
|
-
value =
|
448
|
-
type =
|
386
|
+
}, /*#__PURE__*/React.createElement(Tag.Group, null, tagDataSource.map(function (_ref7) {
|
387
|
+
var key = _ref7.key,
|
388
|
+
label = _ref7.label,
|
389
|
+
value = _ref7.value,
|
390
|
+
type = _ref7.type;
|
449
391
|
return /*#__PURE__*/React.createElement(Tag.Closeable, {
|
450
392
|
key: key,
|
451
393
|
afterClose: function afterClose() {
|
@@ -462,8 +404,12 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
462
404
|
}))), /*#__PURE__*/React.createElement("div", {
|
463
405
|
className: cls("".concat(prefixCls, "-advanced-wrap"), !advancedFilterVisible ? "".concat(prefixCls, "-advanced-wrap-hidden") : '')
|
464
406
|
}, /*#__PURE__*/React.createElement(AdvancedFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
|
407
|
+
initialRequest: otherProps.initialRequest ? _objectSpread(_objectSpread({}, otherProps.initialRequest), {}, {
|
408
|
+
onComplete: onInitialRequestComplete
|
409
|
+
}) : undefined,
|
465
410
|
form: advancedForm,
|
466
|
-
onSubmit: onAdvancedFilter
|
411
|
+
onSubmit: onAdvancedFilter,
|
412
|
+
onReset: onAdvancedReset
|
467
413
|
})))) : null);
|
468
414
|
});
|
469
415
|
QueryFilter.defaultProps = {
|
package/es/form/ProForm/index.js
CHANGED
@@ -12,7 +12,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
|
|
12
12
|
|
13
13
|
import React, { memo, useEffect, useMemo } from 'react';
|
14
14
|
import cls from 'classnames';
|
15
|
-
import { createForm,
|
15
|
+
import { createForm, onFieldValueChange, registerValidateLocale, setValidateLanguage } from '@formily/core';
|
16
16
|
import { toJS } from '@formily/reactive';
|
17
17
|
import { Form } from '@teamix/formily';
|
18
18
|
import { usePrefixCls, getLanguage } from '@teamix/utils';
|
@@ -21,7 +21,6 @@ import { mergeArrayValue } from '../utils';
|
|
21
21
|
import useAutoSubmit from './useAutoSubmit';
|
22
22
|
import useInitialRequest from './useInitialRequest';
|
23
23
|
import validateLocale from '../locales/validate';
|
24
|
-
import debounce from 'lodash.debounce';
|
25
24
|
import './index.scss';
|
26
25
|
registerValidateLocale(validateLocale);
|
27
26
|
var ProForm = /*#__PURE__*/memo(function (_ref) {
|
@@ -79,13 +78,13 @@ var ProForm = /*#__PURE__*/memo(function (_ref) {
|
|
79
78
|
}, [breakpoints, layout, labelAlign, wrapperAlign, labelCol, wrapperCol]); // 添加onChange
|
80
79
|
|
81
80
|
useEffect(function () {
|
82
|
-
form.removeEffects('
|
83
|
-
form.addEffects('
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
}
|
81
|
+
form.removeEffects('onFieldValueChange');
|
82
|
+
form.addEffects('onFieldValueChange', function () {
|
83
|
+
onFieldValueChange('*', function (field, form) {
|
84
|
+
var _field$props;
|
85
|
+
|
86
|
+
onChange && onChange(toJS(form.values), toJS(field.value), (_field$props = field.props) === null || _field$props === void 0 ? void 0 : _field$props.name);
|
87
|
+
});
|
89
88
|
});
|
90
89
|
}, [form, onChange]); // 配置表单默认值
|
91
90
|
|
@@ -95,6 +94,10 @@ var ProForm = /*#__PURE__*/memo(function (_ref) {
|
|
95
94
|
} else if (initialRequest) {
|
96
95
|
useInitialRequest(initialRequest).then(function (values) {
|
97
96
|
form.setInitialValues(values);
|
97
|
+
}).finally(function () {
|
98
|
+
initialRequest.onComplete && initialRequest.onComplete(undefined, undefined, {
|
99
|
+
form: form
|
100
|
+
});
|
98
101
|
});
|
99
102
|
}
|
100
103
|
}, []); // 配置国际化
|