@teamix/pro 1.2.34 → 1.2.35
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 +301 -195
- package/dist/pro.min.css +1 -1
- package/dist/pro.min.js +1 -1
- package/es/form/Filter/index.js +185 -121
- package/es/form/Filter/useSpecialProps.d.ts +1 -1
- package/es/form/Filter/useSpecialProps.js +9 -9
- package/es/form/SchemaForm/index.js +2 -2
- package/es/form/SchemaForm/initializeDataSource.d.ts +1 -1
- package/es/form/SchemaForm/initializeDataSource.js +2 -2
- package/es/form/SchemaForm/reactions.d.ts +1 -1
- package/es/form/SchemaForm/reactions.js +28 -15
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/page-header/index.js +3 -3
- package/es/table/index.js +14 -9
- package/es/table/typing.d.ts +2 -0
- package/lib/form/Filter/index.js +184 -120
- package/lib/form/Filter/useSpecialProps.d.ts +1 -1
- package/lib/form/Filter/useSpecialProps.js +8 -8
- package/lib/form/SchemaForm/index.js +2 -2
- package/lib/form/SchemaForm/initializeDataSource.d.ts +1 -1
- package/lib/form/SchemaForm/initializeDataSource.js +2 -2
- package/lib/form/SchemaForm/reactions.d.ts +1 -1
- package/lib/form/SchemaForm/reactions.js +28 -15
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/page-header/index.js +2 -2
- package/lib/table/index.js +14 -9
- package/lib/table/typing.d.ts +2 -0
- package/package.json +1 -1
package/es/page-header/index.js
CHANGED
@@ -17,7 +17,7 @@ import { useHistory } from 'react-router-dom';
|
|
17
17
|
import classnames from 'classnames';
|
18
18
|
import TeamixIcon from '@teamix/icon';
|
19
19
|
import { Breadcrumb } from '@alicloudfe/components';
|
20
|
-
import { baseClass, goToLink, renderTags, isPresetColor, getColorClassName, getBackgroundColorClassName } from '@teamix/utils';
|
20
|
+
import { baseClass, goToLink, renderTags, isPresetColor, getColor, getColorClassName, getBackgroundColorClassName } from '@teamix/utils';
|
21
21
|
import { ProActionGroup } from '../actions';
|
22
22
|
import { ProSkeletonRaw } from '../skeleton';
|
23
23
|
import ProInfo from '../info';
|
@@ -69,8 +69,8 @@ var getColorAndStyle = function getColorAndStyle(color, backgroundColor, backgro
|
|
69
69
|
var isColorPresetColor = isPresetColor(color);
|
70
70
|
var isBgColorPresetColor = isPresetColor(backgroundColor);
|
71
71
|
var className = classnames((_classnames = {}, _defineProperty(_classnames, "".concat(getColorClassName(color)), isColorPresetColor), _defineProperty(_classnames, "".concat(getBackgroundColorClassName(backgroundColor)), isBgColorPresetColor), _defineProperty(_classnames, "".concat(cls("bg-type-".concat(backgroundType))), !!backgroundType), _classnames));
|
72
|
-
var styleColor = isColorPresetColor ?
|
73
|
-
var styleBgColor = isBgColorPresetColor ?
|
72
|
+
var styleColor = isColorPresetColor ? getColor(color) : color;
|
73
|
+
var styleBgColor = isBgColorPresetColor ? getColor(color) : backgroundColor;
|
74
74
|
var style = {
|
75
75
|
color: styleColor,
|
76
76
|
backgroundColor: styleBgColor
|
package/es/table/index.js
CHANGED
@@ -300,8 +300,8 @@ var ProTable = function ProTable(props) {
|
|
300
300
|
var normalDataFilterForm = normalDataFilterFormRef.current;
|
301
301
|
var fullscreenDataFilterForm = fullscreenDataFilterFormRef.current; // 传给 QueryFilter 的 formRef
|
302
302
|
|
303
|
-
var dataFilterFormRef = !fullscreenState ? normalDataFilterFormRef : fullscreenDataFilterFormRef;
|
304
|
-
|
303
|
+
var dataFilterFormRef = !fullscreenState ? normalDataFilterFormRef : fullscreenDataFilterFormRef; // let dataFilterForm = dataFilterFormRef.current;
|
304
|
+
// 整个内容区是否超过一屏。用于表格在非全屏模式下的吸底
|
305
305
|
|
306
306
|
var _useState29 = useState(false),
|
307
307
|
_useState30 = _slicedToArray(_useState29, 2),
|
@@ -510,12 +510,12 @@ var ProTable = function ProTable(props) {
|
|
510
510
|
_request(params);
|
511
511
|
},
|
512
512
|
reset: function reset() {
|
513
|
-
var _actionRef$current4, _actionRef$current4$s;
|
513
|
+
var _actionRef$current4, _actionRef$current4$s, _dataFilterFormRef$cu;
|
514
514
|
|
515
515
|
(propsDataFilter === null || propsDataFilter === void 0 ? void 0 : propsDataFilter.onReset) && (propsDataFilter === null || propsDataFilter === void 0 ? void 0 : propsDataFilter.onReset()); // 清空列过滤参数
|
516
516
|
|
517
517
|
(_actionRef$current4 = actionRef.current) === null || _actionRef$current4 === void 0 ? void 0 : (_actionRef$current4$s = _actionRef$current4.setFilterRules) === null || _actionRef$current4$s === void 0 ? void 0 : _actionRef$current4$s.call(_actionRef$current4, {});
|
518
|
-
|
518
|
+
(_dataFilterFormRef$cu = dataFilterFormRef.current) === null || _dataFilterFormRef$cu === void 0 ? void 0 : _dataFilterFormRef$cu.reset();
|
519
519
|
setCurrentPage(1);
|
520
520
|
|
521
521
|
_request(_defineProperty({}, targetPageKey, 1));
|
@@ -537,7 +537,8 @@ var ProTable = function ProTable(props) {
|
|
537
537
|
pageSize: pageSize
|
538
538
|
},
|
539
539
|
data: data,
|
540
|
-
dataFilterForm:
|
540
|
+
dataFilterForm: dataFilterFormRef.current,
|
541
|
+
dataFilterFormRef: dataFilterFormRef,
|
541
542
|
normalDataFilterForm: normalDataFilterForm,
|
542
543
|
fullscreenDataFilterForm: fullscreenDataFilterForm,
|
543
544
|
filterEnableRef: filterEnableRef,
|
@@ -630,7 +631,7 @@ var ProTable = function ProTable(props) {
|
|
630
631
|
}); // 请求函数
|
631
632
|
|
632
633
|
function _request(params, noLoading, filterParams) {
|
633
|
-
var _actionRef$current$ge, _actionRef$current5, _actionRef$current5$g, _objectSpread2;
|
634
|
+
var _dataFilterFormRef$cu2, _actionRef$current$ge, _actionRef$current5, _actionRef$current5$g, _objectSpread2;
|
634
635
|
|
635
636
|
// 如果没有传 url 且没有 customRequest,直接返回
|
636
637
|
if (!url && !customRequest) {
|
@@ -643,7 +644,7 @@ var ProTable = function ProTable(props) {
|
|
643
644
|
|
644
645
|
var sortParams = targetFormatSort(sort); // 筛选区请求参数
|
645
646
|
|
646
|
-
var dataFilterParams = filterParams !== null && filterParams !== void 0 ? filterParams :
|
647
|
+
var dataFilterParams = filterParams !== null && filterParams !== void 0 ? filterParams : (_dataFilterFormRef$cu2 = dataFilterFormRef.current) === null || _dataFilterFormRef$cu2 === void 0 ? void 0 : _dataFilterFormRef$cu2.values; // 列过滤请求参数
|
647
648
|
|
648
649
|
var columnsFilterParams = (_actionRef$current$ge = (_actionRef$current5 = actionRef.current) === null || _actionRef$current5 === void 0 ? void 0 : (_actionRef$current5$g = _actionRef$current5.getFilterRules) === null || _actionRef$current5$g === void 0 ? void 0 : _actionRef$current5$g.call(_actionRef$current5)) !== null && _actionRef$current$ge !== void 0 ? _actionRef$current$ge : {}; // 格式化后的请求参数
|
649
650
|
|
@@ -741,6 +742,7 @@ var ProTable = function ProTable(props) {
|
|
741
742
|
}, propsDataFilter), {}, {
|
742
743
|
onInit: function onInit(values) {
|
743
744
|
// 表单初始化请求处理
|
745
|
+
console.log('onInit');
|
744
746
|
(propsDataFilter === null || propsDataFilter === void 0 ? void 0 : propsDataFilter.onInit) && (propsDataFilter === null || propsDataFilter === void 0 ? void 0 : propsDataFilter.onInit(values));
|
745
747
|
!fullscreenState && _request({}, false, values);
|
746
748
|
return true;
|
@@ -748,7 +750,8 @@ var ProTable = function ProTable(props) {
|
|
748
750
|
onFilter: function onFilter(values) {
|
749
751
|
var _actionRef$current6, _actionRef$current6$c;
|
750
752
|
|
751
|
-
// 全屏状态,判断全屏表单onFilter是否禁用
|
753
|
+
console.log('onFilter'); // 全屏状态,判断全屏表单onFilter是否禁用
|
754
|
+
|
752
755
|
if (fullscreenState && !filterEnableRef.current.fullscreen) {
|
753
756
|
filterEnableRef.current.fullscreen = true;
|
754
757
|
return;
|
@@ -768,8 +771,10 @@ var ProTable = function ProTable(props) {
|
|
768
771
|
_request(_defineProperty({}, targetPageKey, 1), false, values);
|
769
772
|
},
|
770
773
|
onReset: function onReset(values) {
|
774
|
+
var _dataFilterFormRef$cu3;
|
775
|
+
|
771
776
|
(propsDataFilter === null || propsDataFilter === void 0 ? void 0 : propsDataFilter.onReset) && (propsDataFilter === null || propsDataFilter === void 0 ? void 0 : propsDataFilter.onReset());
|
772
|
-
|
777
|
+
(_dataFilterFormRef$cu3 = dataFilterFormRef.current) === null || _dataFilterFormRef$cu3 === void 0 ? void 0 : _dataFilterFormRef$cu3.reset();
|
773
778
|
setCurrentPage(1);
|
774
779
|
|
775
780
|
_request(_defineProperty({}, targetPageKey, 1), false, values);
|
package/es/table/typing.d.ts
CHANGED
@@ -190,6 +190,8 @@ export declare type ProTableActionType = {
|
|
190
190
|
resetPage?: () => void;
|
191
191
|
/** 获取数据过滤区表单实例 */
|
192
192
|
dataFilterForm?: FormType;
|
193
|
+
/** 用于在 mount 的时候获取到表单 ref */
|
194
|
+
dataFilterFormRef?: React.MutableRefObject<FormType>;
|
193
195
|
normalDataFilterForm?: FormType;
|
194
196
|
fullscreenDataFilterForm?: FormType;
|
195
197
|
filterEnableRef?: any;
|
package/lib/form/Filter/index.js
CHANGED
@@ -103,16 +103,43 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
103
103
|
onInit = props.onInit,
|
104
104
|
onReset = props.onReset,
|
105
105
|
onExpand = props.onExpand,
|
106
|
-
otherProps = _objectWithoutProperties(props, _excluded);
|
106
|
+
otherProps = _objectWithoutProperties(props, _excluded);
|
107
107
|
|
108
|
+
var _useSpecialProps = (0, _useSpecialProps2.default)(props),
|
109
|
+
hasDefault = _useSpecialProps.hasDefault,
|
110
|
+
hasChangeDefault = _useSpecialProps.hasChangeDefault,
|
111
|
+
hasRequired = _useSpecialProps.hasRequired;
|
112
|
+
|
113
|
+
var hasDefaultOrRequired = hasDefault || hasRequired;
|
114
|
+
|
115
|
+
var _useState = (0, _react.useState)(!!expand),
|
116
|
+
_useState2 = _slicedToArray(_useState, 2),
|
117
|
+
panelVisible = _useState2[0],
|
118
|
+
setPanelVisible = _useState2[1];
|
119
|
+
|
120
|
+
var _useState3 = (0, _react.useState)([]),
|
121
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
122
|
+
tagDataSource = _useState4[0],
|
123
|
+
setTagDataSource = _useState4[1];
|
124
|
+
|
125
|
+
var filterItem = (0, _react.useRef)([]);
|
126
|
+
var defaultForm = mode === 'panel' ? hasDefaultOrRequired || panelVisible ? 'advanced' : 'light' : 'simple';
|
127
|
+
var currentForm = (0, _react.useRef)(defaultForm);
|
128
|
+
var prefixCls = (0, _utils.usePrefixCls)('', {
|
129
|
+
prefix: 'teamix-pro-form-query-filter'
|
130
|
+
});
|
131
|
+
/**
|
132
|
+
* 处理onInit与onFilter事件的触发问题
|
133
|
+
*/
|
108
134
|
|
109
|
-
var
|
135
|
+
var filterEnable = (0, _react.useRef)('waiting');
|
136
|
+
|
137
|
+
var _onFormInit = function onFormInit(form, _ref) {
|
110
138
|
var initialRequest = _ref.initialRequest,
|
111
|
-
initialValues = _ref.initialValues
|
112
|
-
onInit = _ref.onInit;
|
139
|
+
initialValues = _ref.initialValues;
|
113
140
|
|
114
141
|
if (!form.mounted) {
|
115
|
-
// form
|
142
|
+
// 在form上自定义loading属性使用
|
116
143
|
form.setState({
|
117
144
|
loading: !!initialRequest || !!initialValues
|
118
145
|
});
|
@@ -120,32 +147,27 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
120
147
|
|
121
148
|
var loadingField = Object.values(form.fields).filter(function (field) {
|
122
149
|
return !!field.loading;
|
123
|
-
});
|
150
|
+
}); // 等待表单mounted + 字段loading结束 + form的loading结束 => 表单初始化完成
|
124
151
|
|
125
|
-
if (form.mounted) {
|
152
|
+
if (form.mounted && loadingField.length === 0 && !form.loading) {
|
126
153
|
if (loadingField.length === 0 && !form.loading) {
|
127
|
-
//
|
128
|
-
_onFormInit = function onFormInit() {};
|
154
|
+
_onFormInit = function onFormInit() {}; // init后销毁 isFormInit 方法
|
129
155
|
|
130
|
-
var onInitResult = onInit === null || onInit === void 0 ? void 0 : onInit((0, _reactive.toJS)(form.values));
|
131
156
|
|
132
|
-
|
133
|
-
// 根据onInit返回值,判断是否使用该事件执行筛选,使用过则添加筛选标签
|
134
|
-
configFilterItem === null || configFilterItem === void 0 ? void 0 : configFilterItem(form);
|
135
|
-
configTag();
|
136
|
-
} // 防止onInit前后的无效onFilter
|
157
|
+
var values = (0, _utils.getValidValues)(form.values);
|
137
158
|
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
159
|
+
if (!(0, _utils.isUsable)(values) || !hasChangeDefault) {
|
160
|
+
// 表单无默认值 或 无触发onChange的默认值配置,不会触发onFilter内的onInit,所以主动触发onInit
|
161
|
+
setTimeout(function () {
|
162
|
+
onInit === null || onInit === void 0 ? void 0 : onInit((0, _reactive.toJS)(form.values));
|
163
|
+
}, 0);
|
164
|
+
filterEnable.current = 'filter';
|
142
165
|
} else {
|
143
|
-
|
144
|
-
filterEnable.current = form.initialValues;
|
166
|
+
filterEnable.current = 'initialized';
|
145
167
|
}
|
146
168
|
}
|
147
169
|
}
|
148
|
-
}; //
|
170
|
+
}; // 配置当前激活的form实例
|
149
171
|
|
150
172
|
|
151
173
|
var setCurrentForm = function setCurrentForm(formName) {
|
@@ -167,7 +189,9 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
167
189
|
validateFirst: true,
|
168
190
|
effects: function effects() {
|
169
191
|
(0, _core.onFormReact)(function (form) {
|
170
|
-
|
192
|
+
if (defaultForm === 'simple') {
|
193
|
+
_onFormInit(form, props);
|
194
|
+
}
|
171
195
|
});
|
172
196
|
}
|
173
197
|
});
|
@@ -177,8 +201,13 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
177
201
|
return (0, _core.createForm)({
|
178
202
|
validateFirst: true,
|
179
203
|
effects: function effects() {
|
204
|
+
(0, _core.onFormReact)(function (form) {
|
205
|
+
if (defaultForm === 'light') {
|
206
|
+
_onFormInit(form, props);
|
207
|
+
}
|
208
|
+
});
|
180
209
|
(0, _core.onFormInputChange)(function () {
|
181
|
-
setCurrentForm('light');
|
210
|
+
setCurrentForm('light'); // 主动修改轻量筛选值
|
182
211
|
});
|
183
212
|
}
|
184
213
|
});
|
@@ -189,11 +218,12 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
189
218
|
validateFirst: true,
|
190
219
|
effects: function effects() {
|
191
220
|
(0, _core.onFormReact)(function (form) {
|
192
|
-
|
221
|
+
if (defaultForm === 'advanced') {
|
222
|
+
_onFormInit(form, props);
|
223
|
+
}
|
193
224
|
});
|
194
225
|
(0, _core.onFormInputChange)(function (form) {
|
195
|
-
// 主动修改高级筛选值
|
196
|
-
setCurrentForm('advanced');
|
226
|
+
setCurrentForm('advanced'); // 主动修改高级筛选值
|
197
227
|
});
|
198
228
|
}
|
199
229
|
});
|
@@ -202,35 +232,7 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
202
232
|
simple: simpleForm,
|
203
233
|
light: lightForm,
|
204
234
|
advanced: advancedForm
|
205
|
-
};
|
206
|
-
|
207
|
-
var _useSpecialProps = (0, _useSpecialProps2.default)(props),
|
208
|
-
hasDefault = _useSpecialProps.hasDefault,
|
209
|
-
hasAsyncDefault = _useSpecialProps.hasAsyncDefault,
|
210
|
-
hasRequired = _useSpecialProps.hasRequired;
|
211
|
-
|
212
|
-
var hasDefaultOrRequired = hasDefault || hasAsyncDefault || hasRequired;
|
213
|
-
|
214
|
-
var _useState = (0, _react.useState)(!!expand),
|
215
|
-
_useState2 = _slicedToArray(_useState, 2),
|
216
|
-
advancedFilterVisible = _useState2[0],
|
217
|
-
setAdvancedFilterVisible = _useState2[1];
|
218
|
-
|
219
|
-
var _useState3 = (0, _react.useState)([]),
|
220
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
221
|
-
tagDataSource = _useState4[0],
|
222
|
-
setTagDataSource = _useState4[1];
|
223
|
-
|
224
|
-
var filterItem = (0, _react.useRef)([]);
|
225
|
-
var currentForm = (0, _react.useRef)(mode === 'panel' ? advancedFilterVisible ? 'advanced' : 'light' : 'simple');
|
226
|
-
var filterEnable = (0, _react.useRef)(false);
|
227
|
-
var prefixCls = (0, _utils.usePrefixCls)('', {
|
228
|
-
prefix: 'teamix-pro-form-query-filter'
|
229
|
-
}); // 设置筛选数据
|
230
|
-
|
231
|
-
var configFilterItem = (0, _react.useCallback)(function (form) {
|
232
|
-
filterItem.current = getFilterDisplayValues(form);
|
233
|
-
}, []); // 获取筛选数据Label
|
235
|
+
}; // 获取筛选数据Label
|
234
236
|
|
235
237
|
var getFilterDisplayValues = (0, _react.useCallback)(function (form) {
|
236
238
|
var displayValues = (0, _useFormDisplayValues.getFormDisplayValues)(form);
|
@@ -258,7 +260,7 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
258
260
|
index: index
|
259
261
|
});
|
260
262
|
});
|
261
|
-
} else if ((0, _utils.
|
263
|
+
} else if ((0, _utils.isUsable)(value)) {
|
262
264
|
filterData.push({
|
263
265
|
key: key,
|
264
266
|
type: _fieldTypeMap.default[component] || 'text',
|
@@ -268,63 +270,58 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
268
270
|
}
|
269
271
|
});
|
270
272
|
return filterData;
|
273
|
+
}, []); // 设置筛选数据
|
274
|
+
|
275
|
+
var configFilterItem = (0, _react.useCallback)(function (form) {
|
276
|
+
filterItem.current = getFilterDisplayValues(form);
|
271
277
|
}, []); // 设置标签数据
|
272
278
|
|
273
279
|
var configTag = (0, _react.useCallback)(function () {
|
274
280
|
setTagDataSource(filterItem.current);
|
275
|
-
}, [
|
281
|
+
}, []); // 展开收起高级筛选
|
276
282
|
|
277
283
|
var toggleAdvancedFilter = (0, _react.useCallback)(function () {
|
278
|
-
var result = !
|
284
|
+
var result = !panelVisible;
|
279
285
|
|
280
286
|
if (result) {
|
281
287
|
// 展开高级筛选,Light回填Advanced
|
282
288
|
if (currentForm.current === 'light') {
|
283
|
-
|
289
|
+
Object.entries(lightForm.values || {}).map(function (_ref4) {
|
290
|
+
var _ref5 = _slicedToArray(_ref4, 2),
|
291
|
+
key = _ref5[0],
|
292
|
+
value = _ref5[1];
|
293
|
+
|
294
|
+
// 有效值值回填,防止全部值回填改变,触发不必要的 reactions
|
295
|
+
advancedForm.setValuesIn(key, value);
|
296
|
+
});
|
284
297
|
}
|
285
298
|
} else {
|
286
299
|
// 收起高级筛选,配置标签数据
|
287
300
|
configTag();
|
288
301
|
}
|
289
302
|
|
290
|
-
|
303
|
+
setPanelVisible(result);
|
291
304
|
onExpand === null || onExpand === void 0 ? void 0 : onExpand(result);
|
292
|
-
}, [
|
293
|
-
|
294
|
-
var enableFilter = function enableFilter(values) {
|
295
|
-
var initialValues = JSON.stringify((0, _utils.getValidValues)(filterEnable.current));
|
296
|
-
var changeValues = JSON.stringify((0, _utils.getValidValues)(values));
|
297
|
-
|
298
|
-
if (filterEnable.current === true) {
|
299
|
-
return true;
|
300
|
-
} else if (initialValues === changeValues) {
|
301
|
-
filterEnable.current = true;
|
302
|
-
return false;
|
303
|
-
}
|
304
|
-
|
305
|
-
return false;
|
306
|
-
}; // 简单搜索Filter
|
307
|
-
|
305
|
+
}, [panelVisible, configTag]); // 简单搜索Filter
|
308
306
|
|
309
307
|
var onSimpleFilter = (0, _react.useCallback)( /*#__PURE__*/function () {
|
310
|
-
var
|
308
|
+
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(values) {
|
311
309
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
312
310
|
while (1) {
|
313
311
|
switch (_context.prev = _context.next) {
|
314
312
|
case 0:
|
315
|
-
if (
|
316
|
-
_context.next =
|
313
|
+
if (!(currentForm.current === 'simple')) {
|
314
|
+
_context.next = 14;
|
317
315
|
break;
|
318
316
|
}
|
319
317
|
|
320
|
-
|
321
|
-
|
322
|
-
case 2:
|
323
|
-
if (!(currentForm.current === 'simple')) {
|
324
|
-
_context.next = 7;
|
318
|
+
if (!(filterEnable.current === 'initialized')) {
|
319
|
+
_context.next = 9;
|
325
320
|
break;
|
326
321
|
}
|
327
322
|
|
323
|
+
filterEnable.current = 'filter';
|
324
|
+
|
328
325
|
if (!hasRequired) {
|
329
326
|
_context.next = 6;
|
330
327
|
break;
|
@@ -334,9 +331,28 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
334
331
|
return simpleForm.validate();
|
335
332
|
|
336
333
|
case 6:
|
334
|
+
onInit === null || onInit === void 0 ? void 0 : onInit(values);
|
335
|
+
_context.next = 14;
|
336
|
+
break;
|
337
|
+
|
338
|
+
case 9:
|
339
|
+
if (!(filterEnable.current === 'filter')) {
|
340
|
+
_context.next = 14;
|
341
|
+
break;
|
342
|
+
}
|
343
|
+
|
344
|
+
if (!hasRequired) {
|
345
|
+
_context.next = 13;
|
346
|
+
break;
|
347
|
+
}
|
348
|
+
|
349
|
+
_context.next = 13;
|
350
|
+
return simpleForm.validate();
|
351
|
+
|
352
|
+
case 13:
|
337
353
|
onFilter === null || onFilter === void 0 ? void 0 : onFilter(values);
|
338
354
|
|
339
|
-
case
|
355
|
+
case 14:
|
340
356
|
case "end":
|
341
357
|
return _context.stop();
|
342
358
|
}
|
@@ -345,39 +361,49 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
345
361
|
}));
|
346
362
|
|
347
363
|
return function (_x) {
|
348
|
-
return
|
364
|
+
return _ref6.apply(this, arguments);
|
349
365
|
};
|
350
|
-
}(), [onFilter,
|
366
|
+
}(), [onFilter, hasRequired, onInit]); // 轻量搜索Filter
|
351
367
|
|
352
368
|
var onLightFilter = (0, _react.useCallback)( /*#__PURE__*/function () {
|
353
|
-
var
|
369
|
+
var _ref7 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(values) {
|
354
370
|
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
355
371
|
while (1) {
|
356
372
|
switch (_context2.prev = _context2.next) {
|
357
373
|
case 0:
|
358
|
-
if (
|
359
|
-
_context2.next =
|
374
|
+
if (!(currentForm.current === 'light')) {
|
375
|
+
_context2.next = 14;
|
360
376
|
break;
|
361
377
|
}
|
362
378
|
|
363
|
-
|
364
|
-
|
365
|
-
case 2:
|
366
|
-
if (!(currentForm.current === 'light')) {
|
379
|
+
if (!(filterEnable.current === 'initialized')) {
|
367
380
|
_context2.next = 8;
|
368
381
|
break;
|
369
382
|
}
|
370
383
|
|
384
|
+
filterEnable.current = 'filter';
|
385
|
+
onInit === null || onInit === void 0 ? void 0 : onInit(values);
|
386
|
+
configFilterItem(advancedForm);
|
387
|
+
configTag();
|
388
|
+
_context2.next = 14;
|
389
|
+
break;
|
390
|
+
|
391
|
+
case 8:
|
392
|
+
if (!(filterEnable.current === 'filter')) {
|
393
|
+
_context2.next = 14;
|
394
|
+
break;
|
395
|
+
}
|
396
|
+
|
371
397
|
onFilter === null || onFilter === void 0 ? void 0 : onFilter(values);
|
372
|
-
_context2.next =
|
398
|
+
_context2.next = 12;
|
373
399
|
return advancedForm.reset();
|
374
400
|
|
375
|
-
case
|
401
|
+
case 12:
|
376
402
|
// 不会触发高级筛选的onReset回调函数
|
377
403
|
configFilterItem(advancedForm);
|
378
404
|
configTag();
|
379
405
|
|
380
|
-
case
|
406
|
+
case 14:
|
381
407
|
case "end":
|
382
408
|
return _context2.stop();
|
383
409
|
}
|
@@ -386,33 +412,70 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
386
412
|
}));
|
387
413
|
|
388
414
|
return function (_x2) {
|
389
|
-
return
|
415
|
+
return _ref7.apply(this, arguments);
|
390
416
|
};
|
391
|
-
}(), [onFilter,
|
417
|
+
}(), [onFilter, onInit]); // 高级搜索Filter by Submit
|
392
418
|
|
393
419
|
var onAdvancedFilter = (0, _react.useCallback)(function (values) {
|
394
|
-
if (!enableFilter(values)) {
|
395
|
-
return;
|
396
|
-
}
|
397
|
-
|
398
420
|
setCurrentForm('advanced');
|
399
421
|
onFilter === null || onFilter === void 0 ? void 0 : onFilter(values);
|
400
422
|
configFilterItem(advancedForm);
|
401
423
|
lightForm.reset();
|
402
|
-
}, [onFilter
|
403
|
-
|
404
|
-
var onAdvancedChange = (0, _react.useCallback)(function (values) {
|
405
|
-
if (!enableFilter(values)) {
|
406
|
-
return;
|
407
|
-
}
|
408
|
-
}, [enableFilter]); // 高级搜索Reset
|
424
|
+
}, [onFilter]); // 高级搜索Reset
|
409
425
|
|
410
426
|
var onAdvancedReset = (0, _react.useCallback)(function () {
|
411
427
|
setCurrentForm('advanced');
|
412
428
|
onReset === null || onReset === void 0 ? void 0 : onReset((0, _reactive.toJS)(advancedForm.values));
|
413
429
|
configFilterItem(advancedForm);
|
414
430
|
lightForm.reset();
|
415
|
-
}, [onReset]); //
|
431
|
+
}, [onReset]); // 高级搜索Filter by Change
|
432
|
+
|
433
|
+
var onAdvancedChange = (0, _react.useCallback)( /*#__PURE__*/function () {
|
434
|
+
var _ref8 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(values) {
|
435
|
+
return regeneratorRuntime.wrap(function _callee3$(_context3) {
|
436
|
+
while (1) {
|
437
|
+
switch (_context3.prev = _context3.next) {
|
438
|
+
case 0:
|
439
|
+
if (!(currentForm.current === 'advanced')) {
|
440
|
+
_context3.next = 9;
|
441
|
+
break;
|
442
|
+
}
|
443
|
+
|
444
|
+
if (!(filterEnable.current === 'initialized')) {
|
445
|
+
_context3.next = 9;
|
446
|
+
break;
|
447
|
+
}
|
448
|
+
|
449
|
+
filterEnable.current = 'filter';
|
450
|
+
|
451
|
+
if (!hasRequired) {
|
452
|
+
_context3.next = 6;
|
453
|
+
break;
|
454
|
+
}
|
455
|
+
|
456
|
+
_context3.next = 6;
|
457
|
+
return advancedForm.validate();
|
458
|
+
|
459
|
+
case 6:
|
460
|
+
onInit === null || onInit === void 0 ? void 0 : onInit(values);
|
461
|
+
configFilterItem(advancedForm);
|
462
|
+
|
463
|
+
if (!panelVisible) {
|
464
|
+
configTag();
|
465
|
+
}
|
466
|
+
|
467
|
+
case 9:
|
468
|
+
case "end":
|
469
|
+
return _context3.stop();
|
470
|
+
}
|
471
|
+
}
|
472
|
+
}, _callee3);
|
473
|
+
}));
|
474
|
+
|
475
|
+
return function (_x3) {
|
476
|
+
return _ref8.apply(this, arguments);
|
477
|
+
};
|
478
|
+
}(), [hasRequired, onInit]); // 关闭标签清空表单字段值
|
416
479
|
|
417
480
|
var onTagClose = (0, _react.useCallback)(function (key, index) {
|
418
481
|
var newValue = undefined;
|
@@ -432,7 +495,8 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
432
495
|
form.setState({
|
433
496
|
loading: false
|
434
497
|
});
|
435
|
-
}, []);
|
498
|
+
}, []); // 组件挂载
|
499
|
+
|
436
500
|
(0, _react.useEffect)(function () {
|
437
501
|
setCurrentForm(currentForm.current);
|
438
502
|
}, []);
|
@@ -440,7 +504,7 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
440
504
|
className: (0, _classnames.default)(prefixCls, props.className),
|
441
505
|
addonBefore: addonBefore,
|
442
506
|
addonAfter: addonAfter,
|
443
|
-
expand:
|
507
|
+
expand: panelVisible,
|
444
508
|
onExpand: toggleAdvancedFilter,
|
445
509
|
count: tagDataSource.length,
|
446
510
|
inlineContent: mode === 'panel' ? /*#__PURE__*/_react.default.createElement("div", {
|
@@ -464,12 +528,12 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
464
528
|
onReset: onAdvancedReset,
|
465
529
|
onInitialComplete: onInitialComplete
|
466
530
|
})) : null
|
467
|
-
}, mode === 'panel' && !
|
468
|
-
var key =
|
469
|
-
label =
|
470
|
-
value =
|
471
|
-
type =
|
472
|
-
index =
|
531
|
+
}, mode === 'panel' && !panelVisible ? /*#__PURE__*/_react.default.createElement(_components.Tag.Group, null, tagDataSource.map(function (_ref9) {
|
532
|
+
var key = _ref9.key,
|
533
|
+
label = _ref9.label,
|
534
|
+
value = _ref9.value,
|
535
|
+
type = _ref9.type,
|
536
|
+
index = _ref9.index;
|
473
537
|
return /*#__PURE__*/_react.default.createElement(_components.Tag.Closeable, {
|
474
538
|
key: (0, _utils.isNum)(index) ? key + label : key,
|
475
539
|
afterClose: function afterClose() {
|
@@ -11,8 +11,9 @@ var _utils = require("@teamix/utils");
|
|
11
11
|
var useSpecialProps = function useSpecialProps(props) {
|
12
12
|
var initialValues = props.initialValues,
|
13
13
|
initialRequest = props.initialRequest;
|
14
|
-
var
|
15
|
-
|
14
|
+
var hasChangeDefault = !!initialValues || !!initialRequest; // 会触发onChange的默认值
|
15
|
+
|
16
|
+
var hasDefault = hasChangeDefault;
|
16
17
|
var hasRequired = false;
|
17
18
|
|
18
19
|
var hasDefaultOrRule = function hasDefaultOrRule(schema) {
|
@@ -20,13 +21,12 @@ var useSpecialProps = function useSpecialProps(props) {
|
|
20
21
|
var value = item.default,
|
21
22
|
required = item.required,
|
22
23
|
rules = item.rules,
|
23
|
-
request = item.request,
|
24
24
|
dataSource = item.dataSource,
|
25
|
-
children = item.children;
|
26
|
-
|
25
|
+
children = item.children; // 字符串变量配置default值会触发onChange
|
26
|
+
|
27
|
+
hasChangeDefault = hasChangeDefault || !!((0, _utils.isPureObj)(dataSource) && (0, _utils.isStr)(value) && value.indexOf('.dataSource'));
|
28
|
+
hasDefault = hasDefault || (0, _utils.isUsable)(value);
|
27
29
|
hasRequired = hasRequired || required || !!rules;
|
28
|
-
hasAsyncDefault = hasAsyncDefault || !!request || // 如果dataSource是异步且default取自dataSource
|
29
|
-
!!((0, _utils.isPlainObj)(dataSource) && (0, _utils.isStr)(value) && value.indexOf('.dataSource'));
|
30
30
|
|
31
31
|
if (children === null || children === void 0 ? void 0 : children.length) {
|
32
32
|
hasDefaultOrRule(children);
|
@@ -37,7 +37,7 @@ var useSpecialProps = function useSpecialProps(props) {
|
|
37
37
|
hasDefaultOrRule(props.schema);
|
38
38
|
return {
|
39
39
|
hasDefault: hasDefault,
|
40
|
-
|
40
|
+
hasChangeDefault: hasChangeDefault,
|
41
41
|
hasRequired: hasRequired
|
42
42
|
};
|
43
43
|
};
|
@@ -244,10 +244,10 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
|
|
244
244
|
|
245
245
|
var _initializeRequest = (0, _initializeRequest2.default)(request, "".concat(suffix, "r")),
|
246
246
|
requestReactions = _initializeRequest.reactions,
|
247
|
-
requestScope = _initializeRequest.scope; // 初始化dataSource
|
247
|
+
requestScope = _initializeRequest.scope; // 初始化dataSource,如果readPretty为字符串表达式将失去loading等状态,仍可配置dataSource
|
248
248
|
|
249
249
|
|
250
|
-
var _initializeDataSource = (0, _initializeDataSource2.default)(dataSource, "".concat(suffix, "d")),
|
250
|
+
var _initializeDataSource = (0, _initializeDataSource2.default)(dataSource, "".concat(suffix, "d"), newItem.readPretty),
|
251
251
|
defaultDataSource = _initializeDataSource.dataSource,
|
252
252
|
dataSourceReactions = _initializeDataSource.reactions,
|
253
253
|
dataSourceScope = _initializeDataSource.scope; // 初始化rules validator
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import type { ProFormRequestConfig } from '../typing';
|
2
2
|
interface IInitializeDataSource {
|
3
|
-
(requestConfig?: ProFormRequestConfig | any, suffix?: string): {
|
3
|
+
(requestConfig?: ProFormRequestConfig | any, suffix?: string, readPretty?: string | boolean): {
|
4
4
|
dataSource?: any[];
|
5
5
|
reactions: any[];
|
6
6
|
scope: {
|