@teamix/pro 1.3.11 → 1.3.14
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 +1380 -1086
- package/dist/pro.min.css +1 -1
- package/dist/pro.min.js +1 -1
- package/es/actions/index.js +40 -4
- package/es/form/Filter/LightFilter.js +7 -5
- package/es/form/Filter/index.js +94 -174
- package/es/form/ProForm/index.d.ts +2 -3
- package/es/form/ProForm/index.js +78 -29
- package/es/form/ProForm/index.scss +7 -0
- package/es/form/ProForm/useFieldSchema.d.ts +7 -0
- package/es/form/ProForm/useFieldSchema.js +88 -0
- package/es/form/SchemaForm/index.js +2 -38
- package/es/form/SchemaForm/initializeSelectTable.js +80 -6
- package/es/form/typing.d.ts +5 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/table/components/ToolBar/Fullscreen.d.ts +1 -1
- package/es/table/index.js +5 -3
- package/es/table/utils/pureColumnRender.d.ts +9 -0
- package/es/table/utils/pureColumnRender.js +201 -0
- package/es/table/utils/pureGenProColumnToColumn.d.ts +7 -0
- package/es/table/utils/pureGenProColumnToColumn.js +36 -0
- package/es/timeline/ProTimeLineItem/index.js +8 -5
- package/es/timeline/typing.d.ts +5 -0
- package/lib/actions/index.js +40 -4
- package/lib/form/Filter/LightFilter.js +7 -6
- package/lib/form/Filter/index.js +93 -173
- package/lib/form/ProForm/index.d.ts +2 -3
- package/lib/form/ProForm/index.js +82 -26
- package/lib/form/ProForm/index.scss +7 -0
- package/lib/form/ProForm/useFieldSchema.d.ts +7 -0
- package/lib/form/ProForm/useFieldSchema.js +97 -0
- package/lib/form/SchemaForm/index.js +2 -45
- package/lib/form/SchemaForm/initializeSelectTable.js +85 -6
- package/lib/form/typing.d.ts +5 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/table/components/ToolBar/Fullscreen.d.ts +1 -1
- package/lib/table/index.js +5 -3
- package/lib/table/utils/pureColumnRender.d.ts +9 -0
- package/lib/table/utils/pureColumnRender.js +215 -0
- package/lib/table/utils/pureGenProColumnToColumn.d.ts +7 -0
- package/lib/table/utils/pureGenProColumnToColumn.js +43 -0
- package/lib/timeline/ProTimeLineItem/index.js +8 -5
- package/lib/timeline/typing.d.ts +5 -0
- package/package.json +1 -1
package/es/actions/index.js
CHANGED
@@ -193,8 +193,18 @@ export var ProActionButton = function ProActionButton(props) {
|
|
193
193
|
}, tooltipProps);
|
194
194
|
|
195
195
|
if (tooltip || disabledTooltip) {
|
196
|
-
|
197
|
-
|
196
|
+
if (tooltip && !disabledTooltip) {
|
197
|
+
if (!disabled) {
|
198
|
+
content = /*#__PURE__*/React.createElement(Balloon.Tooltip, _objectSpread({}, baseToolTipProps), tooltip);
|
199
|
+
}
|
200
|
+
} else if (!tooltip && disabledTooltip) {
|
201
|
+
if (disabled) {
|
202
|
+
content = /*#__PURE__*/React.createElement(Balloon.Tooltip, _objectSpread({}, baseToolTipProps), disabledTooltip);
|
203
|
+
}
|
204
|
+
} else if (tooltip && disabledTooltip) {
|
205
|
+
var showToolTip = disabled ? disabledTooltip : tooltip;
|
206
|
+
content = /*#__PURE__*/React.createElement(Balloon.Tooltip, _objectSpread({}, baseToolTipProps), showToolTip);
|
207
|
+
}
|
198
208
|
}
|
199
209
|
|
200
210
|
return content;
|
@@ -208,7 +218,10 @@ var ProActionMenuButtonItem = function ProActionMenuButtonItem(props) {
|
|
208
218
|
_onClick2 = action.onClick,
|
209
219
|
children = action.children,
|
210
220
|
icon = action.icon,
|
211
|
-
disabled = action.disabled
|
221
|
+
disabled = action.disabled,
|
222
|
+
tooltip = action.tooltip,
|
223
|
+
disabledTooltip = action.disabledTooltip,
|
224
|
+
tooltipProps = action.tooltipProps;
|
212
225
|
var menuItemActionConfig = Object.assign({}, config, {
|
213
226
|
trigger: 'onClick'
|
214
227
|
});
|
@@ -222,9 +235,32 @@ var ProActionMenuButtonItem = function ProActionMenuButtonItem(props) {
|
|
222
235
|
return _onClick2(e, context);
|
223
236
|
}
|
224
237
|
}) : _objectSpread({}, menuItemProps);
|
238
|
+
var content = buttonContent(children, icon, undefined, context);
|
239
|
+
|
240
|
+
var baseToolTipProps = _objectSpread({
|
241
|
+
triggerType: 'hover',
|
242
|
+
align: 't',
|
243
|
+
trigger: content
|
244
|
+
}, tooltipProps);
|
245
|
+
|
246
|
+
if (tooltip || disabledTooltip) {
|
247
|
+
if (tooltip && !disabledTooltip) {
|
248
|
+
if (!disabled) {
|
249
|
+
content = /*#__PURE__*/React.createElement(Balloon.Tooltip, _objectSpread({}, baseToolTipProps), tooltip);
|
250
|
+
}
|
251
|
+
} else if (!tooltip && disabledTooltip) {
|
252
|
+
if (disabled) {
|
253
|
+
content = /*#__PURE__*/React.createElement(Balloon.Tooltip, _objectSpread({}, baseToolTipProps), disabledTooltip);
|
254
|
+
}
|
255
|
+
} else if (tooltip && disabledTooltip) {
|
256
|
+
var showToolTip = disabled ? disabledTooltip : tooltip;
|
257
|
+
content = /*#__PURE__*/React.createElement(Balloon.Tooltip, _objectSpread({}, baseToolTipProps), showToolTip);
|
258
|
+
}
|
259
|
+
}
|
260
|
+
|
225
261
|
return /*#__PURE__*/React.createElement("div", _objectSpread({
|
226
262
|
className: cls('teamix-pro-action-menu-item', "".concat(usePrefixCls(), "menu-item"), _defineProperty({}, "".concat(usePrefixCls(), "disabled"), disabled))
|
227
|
-
}, buttonProps),
|
263
|
+
}, buttonProps), content);
|
228
264
|
};
|
229
265
|
|
230
266
|
function renderCommonActionButtonMenuItem(action, key, context) {
|
@@ -15,9 +15,6 @@ import cls from 'classnames';
|
|
15
15
|
import { observable } from '@formily/reactive';
|
16
16
|
import { usePrefixCls } from '@teamix/utils';
|
17
17
|
import ProForm from '../ProForm';
|
18
|
-
var lightFilterObs = observable({
|
19
|
-
onFilter: function onFilter() {}
|
20
|
-
});
|
21
18
|
/**
|
22
19
|
* 轻量筛选
|
23
20
|
*/
|
@@ -34,10 +31,15 @@ var LightFilter = /*#__PURE__*/memo(function (props) {
|
|
34
31
|
activeFilterValueRef = props.activeFilterValueRef,
|
35
32
|
otherProps = _objectWithoutProperties(props, _excluded);
|
36
33
|
|
37
|
-
var filterValue = useRef(defaultFilterValue || ((_schema$ = schema[0]) === null || _schema$ === void 0 ? void 0 : _schema$.name));
|
34
|
+
var filterValue = useRef(defaultFilterValue || (schema === null || schema === void 0 ? void 0 : (_schema$ = schema[0]) === null || _schema$ === void 0 ? void 0 : _schema$.name));
|
38
35
|
var prefixCls = usePrefixCls('', {
|
39
36
|
prefix: 'teamix-pro-form-query-filter-light'
|
40
37
|
});
|
38
|
+
var lightFilterObs = useMemo(function () {
|
39
|
+
return observable({
|
40
|
+
onFilter: function onFilter() {}
|
41
|
+
});
|
42
|
+
}, []);
|
41
43
|
useEffect(function () {
|
42
44
|
if (activeFilterValueRef) {
|
43
45
|
activeFilterValueRef.current = filterValue.current;
|
@@ -88,7 +90,7 @@ var LightFilter = /*#__PURE__*/memo(function (props) {
|
|
88
90
|
}, [schema, onFilterChange, defaultFilterValue]);
|
89
91
|
useEffect(function () {
|
90
92
|
lightFilterObs.onFilter = onFilter;
|
91
|
-
}, [
|
93
|
+
}, [onFilter]);
|
92
94
|
return /*#__PURE__*/React.createElement(ProForm, _objectSpread(_objectSpread({}, otherProps), {}, {
|
93
95
|
scope: _objectSpread(_objectSpread({}, otherProps === null || otherProps === void 0 ? void 0 : otherProps.scope), {}, {
|
94
96
|
lightFilterObs: lightFilterObs
|
package/es/form/Filter/index.js
CHANGED
@@ -40,7 +40,7 @@ import debounce from 'lodash.debounce';
|
|
40
40
|
import { Tag } from '@alicloudfe/components';
|
41
41
|
import { createForm, onFormReact, onFormInputChange } from '@formily/core';
|
42
42
|
import { toJS } from '@formily/reactive';
|
43
|
-
import { usePrefixCls, isUsable, isNum
|
43
|
+
import { usePrefixCls, isUsable, isNum } from '@teamix/utils';
|
44
44
|
import ProField from '../../field/index';
|
45
45
|
import fieldTypeMap from '../fieldTypeMap';
|
46
46
|
import { getFormDisplayValues } from '../ProForm/useFormDisplayValues';
|
@@ -72,7 +72,6 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
72
72
|
otherProps = _objectWithoutProperties(props, _excluded);
|
73
73
|
|
74
74
|
var _useSpecialProps = useSpecialProps(props),
|
75
|
-
hasChangeDefault = _useSpecialProps.hasChangeDefault,
|
76
75
|
hasRequired = _useSpecialProps.hasRequired;
|
77
76
|
|
78
77
|
var _useState = useState(!!expand),
|
@@ -92,56 +91,66 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
92
91
|
var prefixCls = usePrefixCls('', {
|
93
92
|
prefix: 'teamix-pro-form-query-filter'
|
94
93
|
});
|
95
|
-
|
96
|
-
|
97
|
-
|
94
|
+
var debounceFun = debounce(function (fun, props) {
|
95
|
+
return fun(props);
|
96
|
+
}, filterDebounce); // onInit
|
98
97
|
|
98
|
+
var initialRequestRef = useRef(!!(props === null || props === void 0 ? void 0 : props.initialRequest));
|
99
99
|
var filterEnable = useRef('waiting');
|
100
100
|
|
101
|
-
var
|
102
|
-
var
|
103
|
-
|
101
|
+
var onFormInit = /*#__PURE__*/function () {
|
102
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(form) {
|
103
|
+
var loadingField;
|
104
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
105
|
+
while (1) {
|
106
|
+
switch (_context.prev = _context.next) {
|
107
|
+
case 0:
|
108
|
+
form.setState({
|
109
|
+
loading: initialRequestRef.current
|
110
|
+
}); // 借用 form.loading 触发 onFormReact
|
104
111
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
loading: !!initialRequest || !!initialValues
|
109
|
-
});
|
110
|
-
}
|
112
|
+
loadingField = Object.values(form.fields).filter(function (field) {
|
113
|
+
return !!field.loading;
|
114
|
+
}); // 等待mounted + 字段loading结束 + initialRequest结束 => 表单默认值初始化完成
|
111
115
|
|
112
|
-
|
113
|
-
|
114
|
-
|
116
|
+
if (!(form.mounted && !loadingField.length && !form.loading)) {
|
117
|
+
_context.next = 10;
|
118
|
+
break;
|
119
|
+
}
|
120
|
+
|
121
|
+
onFormInit = function onFormInit() {}; // init后销毁 isFormInit 方法
|
115
122
|
|
116
|
-
if (form.mounted && !loadingField.length && !form.loading) {
|
117
|
-
_onFormInit = function onFormInit() {}; // init后销毁 isFormInit 方法
|
118
123
|
|
124
|
+
filterEnable.current = 'filter';
|
125
|
+
|
126
|
+
if (!onInit) {
|
127
|
+
_context.next = 10;
|
128
|
+
break;
|
129
|
+
}
|
119
130
|
|
120
|
-
|
131
|
+
_context.next = 8;
|
132
|
+
return form.validate();
|
121
133
|
|
122
|
-
|
123
|
-
|
124
|
-
filterEnable.current = 'filter';
|
125
|
-
setTimeout(function () {
|
126
|
-
onInit === null || onInit === void 0 ? void 0 : onInit(toJS(form.values));
|
127
|
-
}, 0);
|
134
|
+
case 8:
|
135
|
+
onInit === null || onInit === void 0 ? void 0 : onInit(toJS(form.values)); // 设置Tag
|
128
136
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
137
|
+
if (mode === 'panel') {
|
138
|
+
configFilterItem(advancedForm);
|
139
|
+
!panelVisible && configTag();
|
140
|
+
}
|
133
141
|
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
}, 0);
|
142
|
+
case 10:
|
143
|
+
case "end":
|
144
|
+
return _context.stop();
|
138
145
|
}
|
139
146
|
}
|
140
|
-
}
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
147
|
+
}, _callee);
|
148
|
+
}));
|
149
|
+
|
150
|
+
return function onFormInit(_x) {
|
151
|
+
return _ref.apply(this, arguments);
|
152
|
+
};
|
153
|
+
}(); // 配置当前激活的form实例
|
145
154
|
|
146
155
|
|
147
156
|
var setCurrentForm = function setCurrentForm(formName) {
|
@@ -167,7 +176,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
167
176
|
effects: function effects() {
|
168
177
|
onFormReact(function (form) {
|
169
178
|
if (mode === 'inline') {
|
170
|
-
|
179
|
+
onFormInit(form);
|
171
180
|
}
|
172
181
|
});
|
173
182
|
}
|
@@ -191,7 +200,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
191
200
|
effects: function effects() {
|
192
201
|
onFormReact(function (form) {
|
193
202
|
if (mode === 'panel') {
|
194
|
-
|
203
|
+
onFormInit(form);
|
195
204
|
}
|
196
205
|
});
|
197
206
|
onFormInputChange(function (form) {
|
@@ -272,95 +281,64 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
272
281
|
}, [panelVisible, configTag]); // 简单搜索Filter
|
273
282
|
|
274
283
|
var onSimpleFilter = useCallback( /*#__PURE__*/function () {
|
275
|
-
var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
276
|
-
return regeneratorRuntime.wrap(function
|
284
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(values) {
|
285
|
+
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
277
286
|
while (1) {
|
278
|
-
switch (
|
287
|
+
switch (_context2.prev = _context2.next) {
|
279
288
|
case 0:
|
280
|
-
|
281
|
-
_context.next = 14;
|
282
|
-
break;
|
283
|
-
}
|
284
|
-
|
285
|
-
if (!(filterEnable.current === 'initialized')) {
|
286
|
-
_context.next = 9;
|
287
|
-
break;
|
288
|
-
}
|
289
|
-
|
290
|
-
filterEnable.current = 'filter';
|
291
|
-
|
292
|
-
if (!hasRequired) {
|
293
|
-
_context.next = 6;
|
294
|
-
break;
|
295
|
-
}
|
296
|
-
|
297
|
-
_context.next = 6;
|
298
|
-
return simpleForm.validate();
|
299
|
-
|
300
|
-
case 6:
|
301
|
-
onInit === null || onInit === void 0 ? void 0 : onInit(values);
|
302
|
-
_context.next = 14;
|
303
|
-
break;
|
304
|
-
|
305
|
-
case 9:
|
306
|
-
if (!(filterEnable.current === 'filter')) {
|
307
|
-
_context.next = 14;
|
308
|
-
break;
|
309
|
-
}
|
310
|
-
|
311
|
-
if (!hasRequired) {
|
312
|
-
_context.next = 13;
|
313
|
-
break;
|
314
|
-
}
|
315
|
-
|
316
|
-
_context.next = 13;
|
289
|
+
_context2.next = 2;
|
317
290
|
return simpleForm.validate();
|
318
291
|
|
319
|
-
case
|
292
|
+
case 2:
|
320
293
|
onFilter === null || onFilter === void 0 ? void 0 : onFilter(values);
|
321
294
|
|
322
|
-
case
|
295
|
+
case 3:
|
323
296
|
case "end":
|
324
|
-
return
|
297
|
+
return _context2.stop();
|
325
298
|
}
|
326
299
|
}
|
327
|
-
},
|
300
|
+
}, _callee2);
|
328
301
|
}));
|
329
302
|
|
330
|
-
return function (
|
303
|
+
return function (_x2) {
|
331
304
|
return _ref4.apply(this, arguments);
|
332
305
|
};
|
333
|
-
}(), [onFilter
|
306
|
+
}(), [onFilter]); // 简单搜索Change
|
334
307
|
|
335
308
|
var onSimpleChange = useCallback(function (values, fieldValue, fieldName) {
|
336
309
|
if (currentForm.current === 'simple') {
|
337
310
|
onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
|
311
|
+
|
312
|
+
if (filterEnable.current === 'filter') {
|
313
|
+
debounceFun(onSimpleFilter, values);
|
314
|
+
}
|
338
315
|
}
|
339
|
-
}, [onChange]); // 轻量搜索Filter
|
316
|
+
}, [onChange, onSimpleFilter]); // 轻量搜索Filter
|
340
317
|
|
341
318
|
var onLightFilter = useCallback(function (values) {
|
342
|
-
|
343
|
-
if (filterEnable.current === 'filter') {
|
344
|
-
var _Object$keys;
|
319
|
+
var _Object$keys;
|
345
320
|
|
346
|
-
|
321
|
+
onFilter === null || onFilter === void 0 ? void 0 : onFilter(values); // 清空advancedForm的值
|
347
322
|
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
}
|
323
|
+
var clearKeys = {};
|
324
|
+
(_Object$keys = Object.keys(advancedForm.values)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.forEach(function (key) {
|
325
|
+
clearKeys[key] = undefined;
|
326
|
+
});
|
327
|
+
advancedForm.setValues(clearKeys); // 配置Tag
|
328
|
+
|
329
|
+
configFilterItem(advancedForm);
|
330
|
+
configTag();
|
357
331
|
}, [onFilter]); // 轻量搜索Change
|
358
332
|
|
359
333
|
var onLightChange = useCallback(function (values, fieldValue, fieldName) {
|
360
334
|
if (currentForm.current === 'light') {
|
361
335
|
onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
|
336
|
+
|
337
|
+
if (filterEnable.current === 'filter') {
|
338
|
+
debounceFun(onLightFilter, values);
|
339
|
+
}
|
362
340
|
}
|
363
|
-
}, [onChange]); // 高级搜索Filter
|
341
|
+
}, [onChange, onLightFilter]); // 高级搜索Filter
|
364
342
|
|
365
343
|
var onAdvancedFilter = useCallback(function (values) {
|
366
344
|
setCurrentForm('advanced');
|
@@ -380,54 +358,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
380
358
|
lightForm.reset('*', {
|
381
359
|
forceClear: true
|
382
360
|
});
|
383
|
-
}, [onReset]); // 高级搜索
|
384
|
-
|
385
|
-
var onAdvancedInit = useCallback( /*#__PURE__*/function () {
|
386
|
-
var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(values) {
|
387
|
-
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
388
|
-
while (1) {
|
389
|
-
switch (_context2.prev = _context2.next) {
|
390
|
-
case 0:
|
391
|
-
if (!(currentForm.current === 'advanced')) {
|
392
|
-
_context2.next = 9;
|
393
|
-
break;
|
394
|
-
}
|
395
|
-
|
396
|
-
if (!(filterEnable.current === 'initialized')) {
|
397
|
-
_context2.next = 9;
|
398
|
-
break;
|
399
|
-
}
|
400
|
-
|
401
|
-
filterEnable.current = 'filter';
|
402
|
-
|
403
|
-
if (!hasRequired) {
|
404
|
-
_context2.next = 6;
|
405
|
-
break;
|
406
|
-
}
|
407
|
-
|
408
|
-
_context2.next = 6;
|
409
|
-
return advancedForm.validate();
|
410
|
-
|
411
|
-
case 6:
|
412
|
-
onInit === null || onInit === void 0 ? void 0 : onInit(values);
|
413
|
-
configFilterItem(advancedForm);
|
414
|
-
|
415
|
-
if (!panelVisible) {
|
416
|
-
configTag();
|
417
|
-
}
|
418
|
-
|
419
|
-
case 9:
|
420
|
-
case "end":
|
421
|
-
return _context2.stop();
|
422
|
-
}
|
423
|
-
}
|
424
|
-
}, _callee2);
|
425
|
-
}));
|
426
|
-
|
427
|
-
return function (_x2) {
|
428
|
-
return _ref5.apply(this, arguments);
|
429
|
-
};
|
430
|
-
}(), [hasRequired, onInit]); // 高级搜索Change
|
361
|
+
}, [onReset]); // 高级搜索Change
|
431
362
|
|
432
363
|
var onAdvancedChange = useCallback(function (values, fieldValue, fieldName) {
|
433
364
|
if (currentForm.current === 'advanced') {
|
@@ -447,16 +378,14 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
447
378
|
configFilterItem(advancedForm);
|
448
379
|
configTag();
|
449
380
|
onFilter === null || onFilter === void 0 ? void 0 : onFilter(toJS(advancedForm.values));
|
450
|
-
}, [onFilter]); //
|
381
|
+
}, [onFilter]); // initialRequest 的回调
|
451
382
|
|
452
383
|
var onInitialComplete = useCallback(function (form) {
|
384
|
+
initialRequestRef.current = false;
|
453
385
|
form.setState({
|
454
|
-
loading:
|
386
|
+
loading: initialRequestRef.current
|
455
387
|
});
|
456
|
-
}, []);
|
457
|
-
var debounceFun = debounce(function (fun, props) {
|
458
|
-
return fun(props);
|
459
|
-
}, filterDebounce); // 组件挂载
|
388
|
+
}, []); // 组件挂载
|
460
389
|
|
461
390
|
useEffect(function () {
|
462
391
|
setCurrentForm(currentForm.current);
|
@@ -475,37 +404,28 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
475
404
|
filterValues: filterValues,
|
476
405
|
activeFilterValueRef: activeFilterValueRef,
|
477
406
|
form: lightForm,
|
478
|
-
onChange:
|
479
|
-
debounceFun(onLightFilter, values);
|
480
|
-
onLightChange(values, fieldValue, fieldName);
|
481
|
-
}
|
407
|
+
onChange: onLightChange
|
482
408
|
}))) : /*#__PURE__*/React.createElement("div", {
|
483
409
|
className: "".concat(prefixCls, "-inline")
|
484
410
|
}, /*#__PURE__*/React.createElement(SimpleFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
|
485
411
|
form: simpleForm,
|
486
|
-
onChange:
|
487
|
-
debounceFun(onSimpleFilter, values);
|
488
|
-
onSimpleChange(values, fieldValue, fieldName);
|
489
|
-
},
|
412
|
+
onChange: onSimpleChange,
|
490
413
|
onSubmit: onSimpleFilter,
|
491
414
|
onInitialComplete: onInitialComplete
|
492
415
|
}))),
|
493
416
|
panelContent: mode === 'panel' ? /*#__PURE__*/React.createElement(AdvancedFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
|
494
417
|
form: advancedForm,
|
495
|
-
onChange:
|
496
|
-
debounceFun(onAdvancedInit, values);
|
497
|
-
onAdvancedChange(values, fieldValue, fieldName);
|
498
|
-
},
|
418
|
+
onChange: onAdvancedChange,
|
499
419
|
onSubmit: onAdvancedFilter,
|
500
420
|
onReset: onAdvancedReset,
|
501
421
|
onInitialComplete: onInitialComplete
|
502
422
|
})) : null
|
503
|
-
}, mode === 'panel' && !panelVisible ? /*#__PURE__*/React.createElement(Tag.Group, null, tagDataSource.map(function (
|
504
|
-
var key =
|
505
|
-
label =
|
506
|
-
value =
|
507
|
-
type =
|
508
|
-
index =
|
423
|
+
}, mode === 'panel' && !panelVisible ? /*#__PURE__*/React.createElement(Tag.Group, null, tagDataSource.map(function (_ref5) {
|
424
|
+
var key = _ref5.key,
|
425
|
+
label = _ref5.label,
|
426
|
+
value = _ref5.value,
|
427
|
+
type = _ref5.type,
|
428
|
+
index = _ref5.index;
|
509
429
|
return /*#__PURE__*/React.createElement(Tag.Closeable, {
|
510
430
|
key: isNum(index) ? key + label : key,
|
511
431
|
afterClose: function afterClose() {
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import
|
2
|
-
import type { ProFormProps } from '../typing';
|
1
|
+
import type { ComposedProForm } from '../typing';
|
3
2
|
import './index.scss';
|
4
|
-
declare const ProForm:
|
3
|
+
declare const ProForm: ComposedProForm;
|
5
4
|
export default ProForm;
|
package/es/form/ProForm/index.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
var _excluded = ["form", "initialValues", "initialRequest", "
|
1
|
+
var _excluded = ["form", "initialValues", "initialRequest", "scope", "context", "components", "layout", "labelAlign", "wrapperAlign", "labelCol", "wrapperCol", "breakpoints", "onChange", "onChangeType", "onSubmit", "onSubmitFailed", "onInitialComplete", "className", "validateFirst"];
|
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
|
|
@@ -10,28 +10,61 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
|
|
10
10
|
|
11
11
|
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; }
|
12
12
|
|
13
|
-
import React, { memo,
|
13
|
+
import React, { memo, useMemo } from 'react';
|
14
14
|
import cls from 'classnames';
|
15
|
-
import { createForm, onFieldValueChange, registerValidateLocale, setValidateLanguage } from '@formily/core';
|
16
|
-
import { toJS } from '@formily/reactive';
|
17
|
-
import { Form } from '@teamix/formily';
|
18
15
|
import { usePrefixCls, getLanguage, getGlobalConfig } from '@teamix/utils';
|
16
|
+
import { createForm, onFieldValueChange, onFormValuesChange, registerValidateLocale, setValidateLanguage } from '@formily/core';
|
17
|
+
import { toJS } from '@formily/reactive';
|
18
|
+
import { Form, Upload, SelectTable, FormLayout, FormItem, ArrayCollapse, ArrayCards, ArrayItems, ArrayTable, Space, FormGrid, FormTab, FormCollapse, FormStep, Editable, FormDialog, FormDrawer, FormButtonGroup, Submit, Reset } from '@teamix/formily';
|
19
|
+
import { Affix } from '@alicloudfe/components';
|
20
|
+
import ProFieldComponents from '../Components/ProField';
|
21
|
+
import { EditableDialog, EditableDrawer, EditablePopover } from '../Components/Editable';
|
22
|
+
import FormGroup from '../Components/FormGroup';
|
23
|
+
import LightFilter from '../Components/LightFilter';
|
24
|
+
import Text from '../Components/Text/index';
|
19
25
|
import SchemaForm from '../SchemaForm';
|
20
26
|
import { mergeArrayValue } from '../utils';
|
21
27
|
import useAutoSubmit from './useAutoSubmit';
|
22
28
|
import useInitialRequest from './useInitialRequest';
|
29
|
+
import useFieldSchema from './useFieldSchema';
|
23
30
|
import validateLocale from '../locales/validate';
|
24
31
|
import './index.scss';
|
25
32
|
registerValidateLocale(validateLocale);
|
33
|
+
var formilyComponents = {
|
34
|
+
FormLayout: FormLayout,
|
35
|
+
FormItem: FormItem,
|
36
|
+
ArrayCollapse: ArrayCollapse,
|
37
|
+
ArrayCards: ArrayCards,
|
38
|
+
ArrayItems: ArrayItems,
|
39
|
+
ArrayTable: ArrayTable,
|
40
|
+
Space: Space,
|
41
|
+
FormGrid: FormGrid,
|
42
|
+
FormTab: FormTab,
|
43
|
+
FormCollapse: FormCollapse,
|
44
|
+
FormStep: FormStep,
|
45
|
+
Editable: Editable,
|
46
|
+
FormDialogFooter: FormDialog.Footer,
|
47
|
+
FormDrawerFooter: FormDrawer.Footer,
|
48
|
+
FormButtonGroup: FormButtonGroup,
|
49
|
+
Submit: Submit,
|
50
|
+
Reset: Reset,
|
51
|
+
EditableDialog: EditableDialog,
|
52
|
+
EditableDrawer: EditableDrawer,
|
53
|
+
EditablePopover: EditablePopover,
|
54
|
+
FormGroup: FormGroup,
|
55
|
+
Upload: Upload,
|
56
|
+
SelectTable: SelectTable,
|
57
|
+
Affix: Affix,
|
58
|
+
LightFilter: LightFilter,
|
59
|
+
Text: Text
|
60
|
+
};
|
26
61
|
var ProForm = /*#__PURE__*/memo(function (_ref) {
|
27
62
|
var outerForm = _ref.form,
|
28
63
|
initialValues = _ref.initialValues,
|
29
64
|
initialRequest = _ref.initialRequest,
|
30
|
-
schema = _ref.schema,
|
31
65
|
scope = _ref.scope,
|
32
66
|
context = _ref.context,
|
33
67
|
components = _ref.components,
|
34
|
-
children = _ref.children,
|
35
68
|
layout = _ref.layout,
|
36
69
|
labelAlign = _ref.labelAlign,
|
37
70
|
wrapperAlign = _ref.wrapperAlign,
|
@@ -39,6 +72,7 @@ var ProForm = /*#__PURE__*/memo(function (_ref) {
|
|
39
72
|
wrapperCol = _ref.wrapperCol,
|
40
73
|
breakpoints = _ref.breakpoints,
|
41
74
|
onChange = _ref.onChange,
|
75
|
+
onChangeType = _ref.onChangeType,
|
42
76
|
onSubmit = _ref.onSubmit,
|
43
77
|
onSubmitFailed = _ref.onSubmitFailed,
|
44
78
|
onInitialComplete = _ref.onInitialComplete,
|
@@ -65,7 +99,7 @@ var ProForm = /*#__PURE__*/memo(function (_ref) {
|
|
65
99
|
}); // context需要实名不能解构
|
66
100
|
|
67
101
|
|
68
|
-
var mergedComponents = _objectSpread(_objectSpread({}, globalComponents), components);
|
102
|
+
var mergedComponents = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, globalComponents), components), formilyComponents), ProFieldComponents);
|
69
103
|
|
70
104
|
var onAutoSubmit = useAutoSubmit(onSubmit); // todo 需要formily支持断点下的属性更新
|
71
105
|
|
@@ -85,47 +119,62 @@ var ProForm = /*#__PURE__*/memo(function (_ref) {
|
|
85
119
|
labelCol: mergeArrayValue([24], labelCol),
|
86
120
|
wrapperCol: mergeArrayValue([24], wrapperCol)
|
87
121
|
};
|
88
|
-
}, [breakpoints, layout, labelAlign, wrapperAlign, labelCol, wrapperCol]);
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
form.addEffects('onFieldValueChange', function () {
|
93
|
-
onFieldValueChange('*', function (field, form) {
|
94
|
-
var _field$props;
|
95
|
-
|
96
|
-
onChange && onChange(toJS(form.values), toJS(field.value), (_field$props = field.props) === null || _field$props === void 0 ? void 0 : _field$props.name);
|
97
|
-
});
|
98
|
-
});
|
99
|
-
}, [form, onChange]); // 配置表单默认值
|
100
|
-
|
101
|
-
useEffect(function () {
|
122
|
+
}, [breakpoints, layout, labelAlign, wrapperAlign, labelCol, wrapperCol]);
|
123
|
+
var schema = useFieldSchema(otherProps);
|
124
|
+
useMemo(function () {
|
125
|
+
// 配置表单默认值
|
102
126
|
if (initialValues) {
|
103
127
|
form.setInitialValues(initialValues);
|
104
|
-
onInitialComplete === null || onInitialComplete === void 0 ? void 0 : onInitialComplete(form);
|
105
128
|
} else if (initialRequest) {
|
106
129
|
useInitialRequest(initialRequest).then(function (values) {
|
107
130
|
form.setInitialValues(values);
|
108
131
|
}).finally(function () {
|
109
132
|
onInitialComplete === null || onInitialComplete === void 0 ? void 0 : onInitialComplete(form);
|
110
133
|
});
|
111
|
-
}
|
112
|
-
|
134
|
+
} // 配置国际化
|
135
|
+
|
113
136
|
|
114
|
-
useEffect(function () {
|
115
137
|
setValidateLanguage(getLanguage() || 'zh-cn');
|
116
|
-
}, []);
|
138
|
+
}, []); // 添加 onChange 事件
|
139
|
+
|
140
|
+
useMemo(function () {
|
141
|
+
if (onChangeType === 'form') {
|
142
|
+
// 使用 onFormValuesChange 无法监听具体变化字段
|
143
|
+
form.removeEffects('onChangeByFormValuesChange');
|
144
|
+
form.addEffects('onChangeByFormValuesChange', function () {
|
145
|
+
onFormValuesChange(function (form) {
|
146
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(toJS(form.values));
|
147
|
+
});
|
148
|
+
});
|
149
|
+
} else {
|
150
|
+
// 使用 onFieldValueChange 无法监听数组类型值的增删
|
151
|
+
form.removeEffects('onChangeByFieldValueChange');
|
152
|
+
form.addEffects('onChangeByFieldValueChange', function () {
|
153
|
+
onFieldValueChange('*', function (field, form) {
|
154
|
+
var _field$props;
|
155
|
+
|
156
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(toJS(form.values), toJS(field.value), (_field$props = field.props) === null || _field$props === void 0 ? void 0 : _field$props.name);
|
157
|
+
});
|
158
|
+
});
|
159
|
+
}
|
160
|
+
}, [onChange]);
|
117
161
|
return /*#__PURE__*/React.createElement(Form, _objectSpread(_objectSpread(_objectSpread({
|
118
162
|
className: cls(prefixCls, className)
|
119
163
|
}, otherProps), getTeamixLayout), {}, {
|
120
164
|
form: form,
|
121
165
|
onAutoSubmit: onAutoSubmit,
|
122
166
|
onAutoSubmitFailed: onSubmitFailed
|
123
|
-
}), /*#__PURE__*/React.createElement(SchemaForm, {
|
167
|
+
}), schema ? /*#__PURE__*/React.createElement(SchemaForm, {
|
124
168
|
schema: schema,
|
125
169
|
scope: mergedScope,
|
126
170
|
components: mergedComponents
|
127
|
-
}), children);
|
171
|
+
}) : null, otherProps === null || otherProps === void 0 ? void 0 : otherProps.children);
|
128
172
|
});
|
173
|
+
|
174
|
+
ProForm.Field = function () {
|
175
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
176
|
+
};
|
177
|
+
|
129
178
|
ProForm.defaultProps = {
|
130
179
|
colon: false,
|
131
180
|
labelAlign: 'left',
|