@teamix/pro 1.3.13 → 1.3.16
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 +5531 -720
- package/dist/pro.min.css +1 -1
- package/dist/pro.min.js +1 -1
- package/es/actions/index.js +40 -4
- package/es/actions/index.scss +13 -0
- package/es/form/Filter/LightFilter.js +7 -5
- package/es/form/Filter/index.js +171 -55
- package/es/form/Filter/layout.scss +4 -0
- package/es/form/Filter/useBindUrl.d.ts +2 -0
- package/es/form/Filter/useBindUrl.js +118 -0
- package/es/form/ProForm/index.d.ts +2 -3
- package/es/form/ProForm/index.js +51 -10
- package/es/form/ProForm/index.scss +7 -0
- package/es/form/ProForm/useFieldSchema.d.ts +7 -0
- package/es/form/ProForm/useFieldSchema.js +109 -0
- package/es/form/SchemaForm/index.js +2 -38
- package/es/form/SchemaForm/initializeDataSource.d.ts +1 -2
- package/es/form/SchemaForm/initializeDataSource.js +14 -19
- package/es/form/SchemaForm/initializeRequest.js +25 -26
- package/es/form/SchemaForm/initializeRules.d.ts +2 -2
- package/es/form/SchemaForm/initializeRules.js +30 -23
- package/es/form/SchemaForm/initializeSelectTable.js +80 -6
- package/es/form/SchemaForm/reactions.d.ts +4 -4
- package/es/form/SchemaForm/reactions.js +30 -23
- package/es/form/typing.d.ts +16 -6
- package/es/form/utils.d.ts +16 -1
- package/es/form/utils.js +21 -2
- package/es/global.scss +45 -0
- package/es/index.d.ts +2 -1
- package/es/index.js +3 -2
- package/es/page-header/index.d.ts +2 -0
- package/es/page-header/index.js +13 -3
- package/es/page-header/index.scss +8 -0
- package/es/table/components/Layout/index.scss +5 -5
- package/es/table/components/ToolBar/Fullscreen.d.ts +1 -1
- 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/actions/index.scss +13 -0
- package/lib/form/Filter/LightFilter.js +7 -6
- package/lib/form/Filter/index.js +172 -55
- package/lib/form/Filter/layout.scss +4 -0
- package/lib/form/Filter/useBindUrl.d.ts +2 -0
- package/lib/form/Filter/useBindUrl.js +129 -0
- package/lib/form/ProForm/index.d.ts +2 -3
- package/lib/form/ProForm/index.js +57 -9
- package/lib/form/ProForm/index.scss +7 -0
- package/lib/form/ProForm/useFieldSchema.d.ts +7 -0
- package/lib/form/ProForm/useFieldSchema.js +118 -0
- package/lib/form/SchemaForm/index.js +2 -45
- package/lib/form/SchemaForm/initializeDataSource.d.ts +1 -2
- package/lib/form/SchemaForm/initializeDataSource.js +14 -19
- package/lib/form/SchemaForm/initializeRequest.js +26 -26
- package/lib/form/SchemaForm/initializeRules.d.ts +2 -2
- package/lib/form/SchemaForm/initializeRules.js +30 -22
- package/lib/form/SchemaForm/initializeSelectTable.js +85 -6
- package/lib/form/SchemaForm/reactions.d.ts +4 -4
- package/lib/form/SchemaForm/reactions.js +30 -23
- package/lib/form/typing.d.ts +16 -6
- package/lib/form/utils.d.ts +16 -1
- package/lib/form/utils.js +23 -2
- package/lib/global.scss +45 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +3 -1
- package/lib/page-header/index.d.ts +2 -0
- package/lib/page-header/index.js +12 -2
- package/lib/page-header/index.scss +8 -0
- package/lib/table/components/Layout/index.scss +5 -5
- package/lib/table/components/ToolBar/Fullscreen.d.ts +1 -1
- 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) {
|
package/es/actions/index.scss
CHANGED
@@ -121,3 +121,16 @@
|
|
121
121
|
}
|
122
122
|
}
|
123
123
|
}
|
124
|
+
|
125
|
+
// 针对弹层内的 table 在暗色模式下适配
|
126
|
+
.next-dialog-body {
|
127
|
+
.teamix-pro-table, .next-table-empty {
|
128
|
+
background: var(--dialog-bg);
|
129
|
+
}
|
130
|
+
}
|
131
|
+
|
132
|
+
.next-drawer-body {
|
133
|
+
.teamix-pro-table, .next-table-empty {
|
134
|
+
background: var(--drawer-bg);
|
135
|
+
}
|
136
|
+
}
|
@@ -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
@@ -1,4 +1,4 @@
|
|
1
|
-
var _excluded = ["addonAfter", "addonBefore", "mode", "purePanel", "expand", "formRef", "defaultFilterValue", "filterValues", "filterDebounce", "onFilter", "onInit", "onReset", "onExpand", "onChange"];
|
1
|
+
var _excluded = ["addonAfter", "addonBefore", "mode", "purePanel", "expand", "formRef", "defaultFilterValue", "filterValues", "filterDebounce", "bindUrl", "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
|
|
@@ -49,6 +49,7 @@ import LightFilter from './LightFilter';
|
|
49
49
|
import AdvancedFilter from './AdvancedFilter';
|
50
50
|
import { QueryFilterLayout } from './Layout';
|
51
51
|
import useSpecialProps from './useSpecialProps';
|
52
|
+
import useBindUrl from './useBindUrl';
|
52
53
|
import './index.scss';
|
53
54
|
/**
|
54
55
|
* 查询筛选
|
@@ -64,9 +65,10 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
64
65
|
defaultFilterValue = props.defaultFilterValue,
|
65
66
|
filterValues = props.filterValues,
|
66
67
|
filterDebounce = props.filterDebounce,
|
67
|
-
|
68
|
-
|
69
|
-
|
68
|
+
bindUrl = props.bindUrl,
|
69
|
+
outerFilter = props.onFilter,
|
70
|
+
outerInit = props.onInit,
|
71
|
+
outerReset = props.onReset,
|
70
72
|
onExpand = props.onExpand,
|
71
73
|
onChange = props.onChange,
|
72
74
|
otherProps = _objectWithoutProperties(props, _excluded);
|
@@ -85,15 +87,27 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
85
87
|
setTagDataSource = _useState4[1];
|
86
88
|
|
87
89
|
var filterItem = useRef([]);
|
88
|
-
var
|
89
|
-
var
|
90
|
+
var defaultFormName = mode === 'panel' ? 'advanced' : 'simple';
|
91
|
+
var currentFormName = useRef(defaultFormName);
|
92
|
+
var currentForm = useRef();
|
90
93
|
var activeFilterValueRef = useRef();
|
91
94
|
var prefixCls = usePrefixCls('', {
|
92
95
|
prefix: 'teamix-pro-form-query-filter'
|
93
96
|
});
|
94
97
|
var debounceFun = debounce(function (fun, props) {
|
95
98
|
return fun(props);
|
96
|
-
}, filterDebounce); //
|
99
|
+
}, filterDebounce); // 绑定URL
|
100
|
+
|
101
|
+
var _useBindUrl = useBindUrl(bindUrl, {
|
102
|
+
onInit: outerInit,
|
103
|
+
onFilter: outerFilter,
|
104
|
+
onReset: outerReset
|
105
|
+
}, currentForm),
|
106
|
+
setValuesByUrlState = _useBindUrl.setValuesByUrlState,
|
107
|
+
onInit = _useBindUrl.onInit,
|
108
|
+
onFilter = _useBindUrl.onFilter,
|
109
|
+
onReset = _useBindUrl.onReset; // onInit
|
110
|
+
|
97
111
|
|
98
112
|
var initialRequestRef = useRef(!!(props === null || props === void 0 ? void 0 : props.initialRequest));
|
99
113
|
var filterEnable = useRef('waiting');
|
@@ -118,12 +132,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
118
132
|
break;
|
119
133
|
}
|
120
134
|
|
121
|
-
onFormInit =
|
135
|
+
onFormInit = undefined; // init后销毁 isFormInit 方法
|
122
136
|
|
137
|
+
setValuesByUrlState(form); // 配置URL参数到表单
|
123
138
|
|
124
|
-
|
125
|
-
|
126
|
-
if (!onInit) {
|
139
|
+
if (!outerInit) {
|
127
140
|
_context.next = 10;
|
128
141
|
break;
|
129
142
|
}
|
@@ -132,7 +145,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
132
145
|
return form.validate();
|
133
146
|
|
134
147
|
case 8:
|
135
|
-
onInit
|
148
|
+
onInit(toJS(form.values)); // 设置Tag
|
136
149
|
|
137
150
|
if (mode === 'panel') {
|
138
151
|
configFilterItem(advancedForm);
|
@@ -154,17 +167,110 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
154
167
|
|
155
168
|
|
156
169
|
var setCurrentForm = function setCurrentForm(formName) {
|
157
|
-
|
170
|
+
currentFormName.current = formName;
|
171
|
+
currentForm.current = formMap[formName];
|
172
|
+
var form = currentForm.current;
|
158
173
|
|
159
174
|
if (formRef) {
|
160
|
-
|
161
|
-
formRef.current = form;
|
175
|
+
formRef.current = form; // 自定义updateTags方法
|
162
176
|
|
163
177
|
if (!formRef.current.updateTags) {
|
164
178
|
formRef.current.updateTags = function () {
|
165
|
-
|
166
|
-
configTag();
|
179
|
+
updateTags(form);
|
167
180
|
};
|
181
|
+
} // 自定义setAsyncValues方法
|
182
|
+
|
183
|
+
|
184
|
+
if (!formRef.current.setAsyncValues) {
|
185
|
+
formRef.current.setAsyncValues = /*#__PURE__*/function () {
|
186
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(values) {
|
187
|
+
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
188
|
+
while (1) {
|
189
|
+
switch (_context2.prev = _context2.next) {
|
190
|
+
case 0:
|
191
|
+
form.setValues(values);
|
192
|
+
|
193
|
+
if (!(filterEnable.current === 'filter' && formName === 'advanced')) {
|
194
|
+
_context2.next = 6;
|
195
|
+
break;
|
196
|
+
}
|
197
|
+
|
198
|
+
_context2.next = 4;
|
199
|
+
return form.validate();
|
200
|
+
|
201
|
+
case 4:
|
202
|
+
onFilter(toJS(form.values));
|
203
|
+
updateTags(form);
|
204
|
+
|
205
|
+
case 6:
|
206
|
+
case "end":
|
207
|
+
return _context2.stop();
|
208
|
+
}
|
209
|
+
}
|
210
|
+
}, _callee2);
|
211
|
+
}));
|
212
|
+
|
213
|
+
return function (_x2) {
|
214
|
+
return _ref2.apply(this, arguments);
|
215
|
+
};
|
216
|
+
}();
|
217
|
+
} // 自定义triggerFilter方法
|
218
|
+
|
219
|
+
|
220
|
+
if (!formRef.current.triggerFilter) {
|
221
|
+
formRef.current.triggerFilter = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
|
222
|
+
return regeneratorRuntime.wrap(function _callee3$(_context3) {
|
223
|
+
while (1) {
|
224
|
+
switch (_context3.prev = _context3.next) {
|
225
|
+
case 0:
|
226
|
+
_context3.next = 2;
|
227
|
+
return form.validate();
|
228
|
+
|
229
|
+
case 2:
|
230
|
+
onFilter(toJS(form.values));
|
231
|
+
|
232
|
+
if (formName === 'advanced') {
|
233
|
+
updateTags(form);
|
234
|
+
}
|
235
|
+
|
236
|
+
case 4:
|
237
|
+
case "end":
|
238
|
+
return _context3.stop();
|
239
|
+
}
|
240
|
+
}
|
241
|
+
}, _callee3);
|
242
|
+
}));
|
243
|
+
} // 自定义triggerReset方法
|
244
|
+
|
245
|
+
|
246
|
+
if (!formRef.current.triggerReset) {
|
247
|
+
formRef.current.triggerReset = /*#__PURE__*/function () {
|
248
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(config) {
|
249
|
+
return regeneratorRuntime.wrap(function _callee4$(_context4) {
|
250
|
+
while (1) {
|
251
|
+
switch (_context4.prev = _context4.next) {
|
252
|
+
case 0:
|
253
|
+
simpleForm.reset('*', config);
|
254
|
+
lightForm.reset('*', config);
|
255
|
+
advancedForm.reset('*', config);
|
256
|
+
|
257
|
+
if (formName === 'advanced') {
|
258
|
+
onReset(toJS(advancedForm.values));
|
259
|
+
updateTags(form);
|
260
|
+
}
|
261
|
+
|
262
|
+
case 4:
|
263
|
+
case "end":
|
264
|
+
return _context4.stop();
|
265
|
+
}
|
266
|
+
}
|
267
|
+
}, _callee4);
|
268
|
+
}));
|
269
|
+
|
270
|
+
return function (_x3) {
|
271
|
+
return _ref4.apply(this, arguments);
|
272
|
+
};
|
273
|
+
}();
|
168
274
|
}
|
169
275
|
}
|
170
276
|
}; // 创建简单筛选表单实例
|
@@ -176,7 +282,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
176
282
|
effects: function effects() {
|
177
283
|
onFormReact(function (form) {
|
178
284
|
if (mode === 'inline') {
|
179
|
-
|
285
|
+
var _onFormInit;
|
286
|
+
|
287
|
+
(_onFormInit = onFormInit) === null || _onFormInit === void 0 ? void 0 : _onFormInit(form).finally(function () {
|
288
|
+
return filterEnable.current = 'filter';
|
289
|
+
});
|
180
290
|
}
|
181
291
|
});
|
182
292
|
}
|
@@ -200,7 +310,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
200
310
|
effects: function effects() {
|
201
311
|
onFormReact(function (form) {
|
202
312
|
if (mode === 'panel') {
|
203
|
-
|
313
|
+
var _onFormInit2;
|
314
|
+
|
315
|
+
(_onFormInit2 = onFormInit) === null || _onFormInit2 === void 0 ? void 0 : _onFormInit2(form).finally(function () {
|
316
|
+
return filterEnable.current = 'filter';
|
317
|
+
});
|
204
318
|
}
|
205
319
|
});
|
206
320
|
onFormInputChange(function (form) {
|
@@ -219,12 +333,12 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
219
333
|
var displayValues = getFormDisplayValues(form);
|
220
334
|
var originalData = Object.entries(displayValues);
|
221
335
|
var filterData = [];
|
222
|
-
originalData.forEach(function (
|
336
|
+
originalData.forEach(function (_ref5) {
|
223
337
|
var _data$displayValue;
|
224
338
|
|
225
|
-
var
|
226
|
-
key =
|
227
|
-
data =
|
339
|
+
var _ref6 = _slicedToArray(_ref5, 2),
|
340
|
+
key = _ref6[0],
|
341
|
+
data = _ref6[1];
|
228
342
|
|
229
343
|
var value = (_data$displayValue = data.displayValue) !== null && _data$displayValue !== void 0 ? _data$displayValue : data.value;
|
230
344
|
var component = data.component;
|
@@ -259,6 +373,11 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
259
373
|
|
260
374
|
var configTag = useCallback(function () {
|
261
375
|
setTagDataSource(filterItem.current);
|
376
|
+
}, []); // 更新标签数据
|
377
|
+
|
378
|
+
var updateTags = useCallback(function (form) {
|
379
|
+
configFilterItem(form);
|
380
|
+
configTag();
|
262
381
|
}, []); // 展开收起高级筛选
|
263
382
|
|
264
383
|
var toggleAdvancedFilter = useCallback(function () {
|
@@ -266,7 +385,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
266
385
|
|
267
386
|
if (result) {
|
268
387
|
// 展开高级筛选,Light回填Advanced
|
269
|
-
if (
|
388
|
+
if (currentFormName.current === 'light') {
|
270
389
|
var key = activeFilterValueRef.current;
|
271
390
|
var value = lightForm.values[key];
|
272
391
|
advancedForm.setValuesIn(key, value);
|
@@ -281,68 +400,66 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
281
400
|
}, [panelVisible, configTag]); // 简单搜索Filter
|
282
401
|
|
283
402
|
var onSimpleFilter = useCallback( /*#__PURE__*/function () {
|
284
|
-
var
|
285
|
-
return regeneratorRuntime.wrap(function
|
403
|
+
var _ref7 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(values) {
|
404
|
+
return regeneratorRuntime.wrap(function _callee5$(_context5) {
|
286
405
|
while (1) {
|
287
|
-
switch (
|
406
|
+
switch (_context5.prev = _context5.next) {
|
288
407
|
case 0:
|
289
|
-
|
408
|
+
_context5.next = 2;
|
290
409
|
return simpleForm.validate();
|
291
410
|
|
292
411
|
case 2:
|
293
|
-
onFilter
|
412
|
+
onFilter(values);
|
294
413
|
|
295
414
|
case 3:
|
296
415
|
case "end":
|
297
|
-
return
|
416
|
+
return _context5.stop();
|
298
417
|
}
|
299
418
|
}
|
300
|
-
},
|
419
|
+
}, _callee5);
|
301
420
|
}));
|
302
421
|
|
303
|
-
return function (
|
304
|
-
return
|
422
|
+
return function (_x4) {
|
423
|
+
return _ref7.apply(this, arguments);
|
305
424
|
};
|
306
425
|
}(), [onFilter]); // 简单搜索Change
|
307
426
|
|
308
427
|
var onSimpleChange = useCallback(function (values, fieldValue, fieldName) {
|
309
|
-
if (
|
428
|
+
if (currentFormName.current === 'simple') {
|
310
429
|
onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
|
311
430
|
|
312
431
|
if (filterEnable.current === 'filter') {
|
313
432
|
debounceFun(onSimpleFilter, values);
|
314
433
|
}
|
315
434
|
}
|
316
|
-
}, [onChange]); // 轻量搜索Filter
|
435
|
+
}, [onChange, onSimpleFilter]); // 轻量搜索Filter
|
317
436
|
|
318
437
|
var onLightFilter = useCallback(function (values) {
|
319
438
|
var _Object$keys;
|
320
439
|
|
321
|
-
onFilter
|
440
|
+
onFilter(values); // 清空advancedForm的值
|
322
441
|
|
323
442
|
var clearKeys = {};
|
324
443
|
(_Object$keys = Object.keys(advancedForm.values)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.forEach(function (key) {
|
325
444
|
clearKeys[key] = undefined;
|
326
445
|
});
|
327
|
-
advancedForm.setValues(clearKeys);
|
328
|
-
|
329
|
-
configFilterItem(advancedForm);
|
330
|
-
configTag();
|
446
|
+
advancedForm.setValues(clearKeys);
|
447
|
+
updateTags(advancedForm);
|
331
448
|
}, [onFilter]); // 轻量搜索Change
|
332
449
|
|
333
450
|
var onLightChange = useCallback(function (values, fieldValue, fieldName) {
|
334
|
-
if (
|
451
|
+
if (currentFormName.current === 'light') {
|
335
452
|
onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
|
336
453
|
|
337
454
|
if (filterEnable.current === 'filter') {
|
338
455
|
debounceFun(onLightFilter, values);
|
339
456
|
}
|
340
457
|
}
|
341
|
-
}, [onChange]); // 高级搜索Filter
|
458
|
+
}, [onChange, onLightFilter]); // 高级搜索Filter
|
342
459
|
|
343
460
|
var onAdvancedFilter = useCallback(function (values) {
|
344
461
|
setCurrentForm('advanced');
|
345
|
-
onFilter
|
462
|
+
onFilter(values);
|
346
463
|
configFilterItem(advancedForm); // 清空lightForm的值
|
347
464
|
|
348
465
|
lightForm.reset('*', {
|
@@ -352,7 +469,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
352
469
|
|
353
470
|
var onAdvancedReset = useCallback(function () {
|
354
471
|
setCurrentForm('advanced');
|
355
|
-
onReset
|
472
|
+
onReset(toJS(advancedForm.values));
|
356
473
|
configFilterItem(advancedForm); // 清空lightForm的值
|
357
474
|
|
358
475
|
lightForm.reset('*', {
|
@@ -361,7 +478,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
361
478
|
}, [onReset]); // 高级搜索Change
|
362
479
|
|
363
480
|
var onAdvancedChange = useCallback(function (values, fieldValue, fieldName) {
|
364
|
-
if (
|
481
|
+
if (currentFormName.current === 'advanced') {
|
365
482
|
onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
|
366
483
|
}
|
367
484
|
}, [onChange]); // 关闭标签清空表单字段值
|
@@ -375,9 +492,8 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
375
492
|
}
|
376
493
|
|
377
494
|
advancedForm.setValuesIn(key, newValue);
|
378
|
-
|
379
|
-
|
380
|
-
onFilter === null || onFilter === void 0 ? void 0 : onFilter(toJS(advancedForm.values));
|
495
|
+
updateTags(advancedForm);
|
496
|
+
onFilter(toJS(advancedForm.values));
|
381
497
|
}, [onFilter]); // initialRequest 的回调
|
382
498
|
|
383
499
|
var onInitialComplete = useCallback(function (form) {
|
@@ -388,7 +504,7 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
388
504
|
}, []); // 组件挂载
|
389
505
|
|
390
506
|
useEffect(function () {
|
391
|
-
setCurrentForm(
|
507
|
+
setCurrentForm(currentFormName.current);
|
392
508
|
}, []);
|
393
509
|
return /*#__PURE__*/React.createElement(QueryFilterLayout, {
|
394
510
|
className: cls(prefixCls, props.className),
|
@@ -420,12 +536,12 @@ var QueryFilter = /*#__PURE__*/memo(function (props) {
|
|
420
536
|
onReset: onAdvancedReset,
|
421
537
|
onInitialComplete: onInitialComplete
|
422
538
|
})) : null
|
423
|
-
}, mode === 'panel' && !panelVisible ? /*#__PURE__*/React.createElement(Tag.Group, null, tagDataSource.map(function (
|
424
|
-
var key =
|
425
|
-
label =
|
426
|
-
value =
|
427
|
-
type =
|
428
|
-
index =
|
539
|
+
}, mode === 'panel' && !panelVisible ? /*#__PURE__*/React.createElement(Tag.Group, null, tagDataSource.map(function (_ref8) {
|
540
|
+
var key = _ref8.key,
|
541
|
+
label = _ref8.label,
|
542
|
+
value = _ref8.value,
|
543
|
+
type = _ref8.type,
|
544
|
+
index = _ref8.index;
|
429
545
|
return /*#__PURE__*/React.createElement(Tag.Closeable, {
|
430
546
|
key: isNum(index) ? key + label : key,
|
431
547
|
afterClose: function afterClose() {
|
@@ -0,0 +1,118 @@
|
|
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 { useUrlState } from '@teamix/hooks';
|
20
|
+
import { isUsable } from '@teamix/utils';
|
21
|
+
export default (function (bindUrl, functions, formRef) {
|
22
|
+
// 预处理 bindUrl 参数(主要兼容 SelectGroup 组件)
|
23
|
+
var initializeBindUrl = function initializeBindUrl(options) {
|
24
|
+
return options ? _objectSpread(_objectSpread({}, options), {}, {
|
25
|
+
beforeStringify: function beforeStringify(values) {
|
26
|
+
var _Object$entries;
|
27
|
+
|
28
|
+
var beforeStringify = options.beforeStringify;
|
29
|
+
|
30
|
+
var newValues = _objectSpread({}, values);
|
31
|
+
|
32
|
+
(_Object$entries = Object.entries(values)) === null || _Object$entries === void 0 ? void 0 : _Object$entries.forEach(function (_ref) {
|
33
|
+
var _form$query;
|
34
|
+
|
35
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
36
|
+
key = _ref2[0],
|
37
|
+
value = _ref2[1];
|
38
|
+
|
39
|
+
var form = formRef.current;
|
40
|
+
var field = (_form$query = form.query(key)) === null || _form$query === void 0 ? void 0 : _form$query.take();
|
41
|
+
|
42
|
+
if ((field === null || field === void 0 ? void 0 : field.component[0]) === 'SelectGroup') {
|
43
|
+
newValues[key] = value.map(function (_ref3) {
|
44
|
+
var key = _ref3.key,
|
45
|
+
value = _ref3.value;
|
46
|
+
return key && value ? "".concat(key, "||").concat(value === null || value === void 0 ? void 0 : value.join('|')) : '';
|
47
|
+
});
|
48
|
+
}
|
49
|
+
});
|
50
|
+
return beforeStringify ? beforeStringify(newValues) : newValues;
|
51
|
+
}
|
52
|
+
}) : options;
|
53
|
+
}; // 通过 useUrlState 获取 url 上的参数和 url 配置方法
|
54
|
+
|
55
|
+
|
56
|
+
var _useUrlState = useUrlState(undefined, initializeBindUrl(bindUrl)),
|
57
|
+
_useUrlState2 = _slicedToArray(_useUrlState, 2),
|
58
|
+
urlState = _useUrlState2[0],
|
59
|
+
setUrlState = _useUrlState2[1]; // 输出配置url参数的函数
|
60
|
+
|
61
|
+
|
62
|
+
var initializedFunctions = Object.entries(functions).reduce(function (prev, _ref4) {
|
63
|
+
var _ref5 = _slicedToArray(_ref4, 2),
|
64
|
+
key = _ref5[0],
|
65
|
+
fun = _ref5[1];
|
66
|
+
|
67
|
+
prev[key] = function (values) {
|
68
|
+
fun === null || fun === void 0 ? void 0 : fun(values);
|
69
|
+
setUrlState(values);
|
70
|
+
};
|
71
|
+
|
72
|
+
return prev;
|
73
|
+
}, {}); // 使用 url 参数配置 QueryFilter 默认值(移除非表单值,兼容数组数据,兼容 SelectGroup 组件)
|
74
|
+
|
75
|
+
var setValuesByUrlState = function setValuesByUrlState(form) {
|
76
|
+
if (urlState) {
|
77
|
+
var _Object$entries2;
|
78
|
+
|
79
|
+
(_Object$entries2 = Object.entries(urlState)) === null || _Object$entries2 === void 0 ? void 0 : _Object$entries2.forEach(function (_ref6) {
|
80
|
+
var _form$query2;
|
81
|
+
|
82
|
+
var _ref7 = _slicedToArray(_ref6, 2),
|
83
|
+
key = _ref7[0],
|
84
|
+
value = _ref7[1];
|
85
|
+
|
86
|
+
var field = (_form$query2 = form.query(key)) === null || _form$query2 === void 0 ? void 0 : _form$query2.take();
|
87
|
+
|
88
|
+
if (field) {
|
89
|
+
var newValue = value;
|
90
|
+
|
91
|
+
if (field.displayName === 'ArrayField') {
|
92
|
+
newValue = [].concat(isUsable(newValue) ? newValue : []);
|
93
|
+
}
|
94
|
+
|
95
|
+
if (field.component[0] === 'SelectGroup') {
|
96
|
+
newValue = newValue.map(function (item) {
|
97
|
+
var _item$split = item === null || item === void 0 ? void 0 : item.split('||'),
|
98
|
+
_item$split2 = _slicedToArray(_item$split, 2),
|
99
|
+
key = _item$split2[0],
|
100
|
+
value = _item$split2[1];
|
101
|
+
|
102
|
+
return {
|
103
|
+
key: key,
|
104
|
+
value: value === null || value === void 0 ? void 0 : value.split('|')
|
105
|
+
};
|
106
|
+
});
|
107
|
+
}
|
108
|
+
|
109
|
+
form.setValuesIn(key, newValue);
|
110
|
+
}
|
111
|
+
});
|
112
|
+
}
|
113
|
+
};
|
114
|
+
|
115
|
+
return _objectSpread({
|
116
|
+
setValuesByUrlState: setValuesByUrlState
|
117
|
+
}, initializedFunctions);
|
118
|
+
});
|
@@ -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;
|