fan-standard-comp 4.1.7 → 4.1.9
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/fan-standard-comp.min.js +1 -1
- package/es/FormComp/RenderItemGroup/CustomFormList.d.ts +3 -0
- package/es/FormComp/RenderItemGroup/CustomFormList.js +70 -0
- package/es/FormComp/RenderItemGroup/index.d.ts +1 -1
- package/es/FormComp/RenderItemGroup/index.js +7 -2
- package/es/StandardFilter/index.js +72 -45
- package/es/StandardFilter/oldIndexUseRef.d.ts +29 -0
- package/es/StandardFilter/oldIndexUseRef.js +452 -0
- package/es/StandardFilter/refactorDDDD.d.ts +29 -0
- package/es/StandardFilter/refactorDDDD.js +487 -0
- package/es/StandardModal/index.d.ts +1 -0
- package/es/StandardModal/index.js +10 -3
- package/lib/FormComp/RenderItemGroup/CustomFormList.d.ts +3 -0
- package/lib/FormComp/RenderItemGroup/CustomFormList.js +77 -0
- package/lib/FormComp/RenderItemGroup/index.d.ts +1 -1
- package/lib/FormComp/RenderItemGroup/index.js +7 -3
- package/lib/StandardFilter/index.js +71 -44
- package/lib/StandardFilter/oldIndexUseRef.d.ts +29 -0
- package/lib/StandardFilter/oldIndexUseRef.js +460 -0
- package/lib/StandardFilter/refactorDDDD.d.ts +29 -0
- package/lib/StandardFilter/refactorDDDD.js +495 -0
- package/lib/StandardModal/index.d.ts +1 -0
- package/lib/StandardModal/index.js +10 -3
- package/package.json +1 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
var _excluded = ["key", "name"];
|
|
2
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
3
|
+
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; }
|
|
4
|
+
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; }
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { Form, Space, Button } from 'antd';
|
|
7
|
+
import { MinusCircleOutlined } from '@ant-design/icons';
|
|
8
|
+
import Field from "../FieldComponent";
|
|
9
|
+
var CustomFormList = function CustomFormList(props) {
|
|
10
|
+
var filedName = props.filedName,
|
|
11
|
+
fieldName = props.fieldName,
|
|
12
|
+
rules = props.rules;
|
|
13
|
+
return /*#__PURE__*/React.createElement(Form.List, {
|
|
14
|
+
name: filedName || fieldName,
|
|
15
|
+
rules: rules
|
|
16
|
+
}, function (fields, _ref, _ref2) {
|
|
17
|
+
var add = _ref.add,
|
|
18
|
+
remove = _ref.remove;
|
|
19
|
+
var errors = _ref2.errors;
|
|
20
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, fields.map(function (_ref3) {
|
|
21
|
+
var key = _ref3.key,
|
|
22
|
+
name = _ref3.name,
|
|
23
|
+
restField = _objectWithoutProperties(_ref3, _excluded);
|
|
24
|
+
return /*#__PURE__*/React.createElement(Space, {
|
|
25
|
+
key: key,
|
|
26
|
+
align: "baseline"
|
|
27
|
+
}, /*#__PURE__*/React.createElement(Form.Item, _extends({}, restField, {
|
|
28
|
+
label: "\u9009\u9879\u503C",
|
|
29
|
+
name: [name, 'optionValue'],
|
|
30
|
+
rules: [{
|
|
31
|
+
required: true,
|
|
32
|
+
message: '请输入'
|
|
33
|
+
}]
|
|
34
|
+
}), /*#__PURE__*/React.createElement(Field, {
|
|
35
|
+
type: 'input'
|
|
36
|
+
})), /*#__PURE__*/React.createElement(Form.Item, _extends({}, restField, {
|
|
37
|
+
label: "\u9009\u9879\u540D\u79F0",
|
|
38
|
+
name: [name, 'optionName'],
|
|
39
|
+
rules: [{
|
|
40
|
+
required: true,
|
|
41
|
+
message: '请输入'
|
|
42
|
+
}]
|
|
43
|
+
}), /*#__PURE__*/React.createElement(Field, {
|
|
44
|
+
type: 'input'
|
|
45
|
+
})), /*#__PURE__*/React.createElement(Form.Item, _extends({}, restField, {
|
|
46
|
+
label: "\u5916\u90E8\u9009\u9879\u503C",
|
|
47
|
+
name: [name, 'optionValueExtend'],
|
|
48
|
+
rules: [{
|
|
49
|
+
required: true,
|
|
50
|
+
message: '请输入'
|
|
51
|
+
}]
|
|
52
|
+
}), /*#__PURE__*/React.createElement(Field, {
|
|
53
|
+
type: 'input'
|
|
54
|
+
})), /*#__PURE__*/React.createElement(MinusCircleOutlined, {
|
|
55
|
+
onClick: function onClick() {
|
|
56
|
+
return remove(name);
|
|
57
|
+
}
|
|
58
|
+
}));
|
|
59
|
+
}), /*#__PURE__*/React.createElement(Button, {
|
|
60
|
+
type: "dashed",
|
|
61
|
+
onClick: function onClick() {
|
|
62
|
+
return add();
|
|
63
|
+
},
|
|
64
|
+
block: true
|
|
65
|
+
}, "+ \u6DFB\u52A0\u9009\u9879"), /*#__PURE__*/React.createElement(Form.ErrorList, {
|
|
66
|
+
errors: errors
|
|
67
|
+
}));
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
export default CustomFormList;
|
|
@@ -16,6 +16,7 @@ import React, { useEffect, useCallback } from "react";
|
|
|
16
16
|
import { Row, Col, Tooltip, Form, Space } from "antd";
|
|
17
17
|
import { general } from "../../data";
|
|
18
18
|
import Field from "../FieldComponent";
|
|
19
|
+
// import CustomFormList from './CustomFormList';
|
|
19
20
|
import SpecIcon from "../../SpecIcon";
|
|
20
21
|
import useStyle from "./style";
|
|
21
22
|
import classNames from "classnames";
|
|
@@ -239,7 +240,9 @@ var RenderItemGroup = function RenderItemGroup(props) {
|
|
|
239
240
|
required: item.rules && item.rules.filter(function (rItem) {
|
|
240
241
|
return rItem.required;
|
|
241
242
|
}).length > 0
|
|
242
|
-
}, formLayout, item.protoFormItem),
|
|
243
|
+
}, formLayout, item.protoFormItem),
|
|
244
|
+
// type === 'custom' && customRender ? customRender(form, { ...item }, fieldStatus) : type === 'FormList' ? <CustomFormList name={filedName || fieldName} {...item}/> : renderFormField({ ...item })
|
|
245
|
+
type === 'custom' && customRender ? customRender(form, _objectSpread({}, item), fieldStatus) : renderFormField(_objectSpread({}, item))));
|
|
243
246
|
} else {
|
|
244
247
|
return /*#__PURE__*/React.createElement(FormItem, _extends({
|
|
245
248
|
key: index,
|
|
@@ -251,7 +254,9 @@ var RenderItemGroup = function RenderItemGroup(props) {
|
|
|
251
254
|
name: "info"
|
|
252
255
|
}))) : label,
|
|
253
256
|
rules: item.rules || (item.fieldOptions ? item.fieldOptions.rules : [])
|
|
254
|
-
}, formLayout, item.protoFormItem),
|
|
257
|
+
}, formLayout, item.protoFormItem),
|
|
258
|
+
// type === 'custom' && customRender ? customRender(form, { ...item }, fieldStatus) : type === 'FormList' ? <CustomFormList name={filedName || fieldName} {...item}/> : renderFormField({ ...item })
|
|
259
|
+
type === 'custom' && customRender ? customRender(form, _objectSpread({}, item), fieldStatus) : renderFormField(_objectSpread({}, item)));
|
|
255
260
|
}
|
|
256
261
|
};
|
|
257
262
|
|
|
@@ -12,7 +12,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
12
12
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
13
13
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
14
14
|
// @ts-nocheck
|
|
15
|
-
import React, { useContext, useEffect,
|
|
15
|
+
import React, { useContext, useEffect, useState, useMemo, useImperativeHandle } from 'react';
|
|
16
16
|
import { Form, Button } from 'antd';
|
|
17
17
|
import RenderItemGroup from "../FormComp/RenderItemGroup";
|
|
18
18
|
import { UtilValueFormat } from "../utils";
|
|
@@ -25,7 +25,6 @@ import useStyle from "./style/FilterStyle";
|
|
|
25
25
|
import SpecIcon from "../SpecIcon";
|
|
26
26
|
var FormItem = Form.Item;
|
|
27
27
|
var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
28
|
-
var _filterFormRef$curren4;
|
|
29
28
|
var InitFanContext = useContext(FanContext);
|
|
30
29
|
var providerConfig = InitFanContext['StandardFilter'] || {}; // 使用上下文(全局配置)设置扩展的配置项
|
|
31
30
|
var _providerConfig$props = _objectSpread(_objectSpread({}, providerConfig), props),
|
|
@@ -69,15 +68,18 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
69
68
|
parseTransform = _providerConfig$props.parseTransform,
|
|
70
69
|
_providerConfig$props12 = _providerConfig$props.forceListener,
|
|
71
70
|
forceListener = _providerConfig$props12 === void 0 ? true : _providerConfig$props12;
|
|
72
|
-
var
|
|
71
|
+
var _Form$useForm = Form.useForm(),
|
|
72
|
+
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
|
|
73
|
+
filterForm = _Form$useForm2[0];
|
|
74
|
+
// const filterFormRef = useRef<any>();
|
|
73
75
|
// ref 的转发
|
|
74
76
|
useImperativeHandle(ref, function () {
|
|
75
|
-
return _objectSpread(_objectSpread({},
|
|
77
|
+
return _objectSpread(_objectSpread({}, filterForm), {}, {
|
|
76
78
|
onSubmit: function onSubmit(values) {
|
|
77
79
|
return handleSearch(values);
|
|
78
80
|
}
|
|
79
81
|
});
|
|
80
|
-
});
|
|
82
|
+
}, [filterForm]);
|
|
81
83
|
var _useState = useState([]),
|
|
82
84
|
_useState2 = _slicedToArray(_useState, 2),
|
|
83
85
|
reFormItemGroup = _useState2[0],
|
|
@@ -132,37 +134,47 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
132
134
|
|
|
133
135
|
// 计算表单隐藏项(开启展开与收缩)
|
|
134
136
|
var calculateHideCount = function calculateHideCount(filterFormRef, groups) {
|
|
135
|
-
var _filterFormRef$curren;
|
|
136
137
|
var itemGroupSize = columnNumberAndSize.itemGroupSize,
|
|
137
138
|
columnNumber = columnNumberAndSize.columnNumber;
|
|
138
|
-
|
|
139
|
+
// collapseable && console.log('当前表单组有:', groups)
|
|
140
|
+
var formValues = filterFormRef === null || filterFormRef === void 0 ? void 0 : filterFormRef.getFieldValue();
|
|
139
141
|
// Rule1: 不包括isHidden跟isHide的数据
|
|
140
142
|
// Rule2:剩余的表单项中,查找是否有自定义配置 display='block' 或者colSpan的表单项
|
|
141
143
|
var notShowGroupItem = (groups || []).filter(function (item) {
|
|
142
|
-
return (item === null || item === void 0 ? void 0 : item.isHidden) || (item.hasOwnProperty('isHide') ? item.isHide(_objectSpread({}, formValues),
|
|
144
|
+
return (item === null || item === void 0 ? void 0 : item.isHidden) || (item.hasOwnProperty('isHide') ? item.isHide(_objectSpread({}, formValues), _objectSpread({
|
|
145
|
+
current: filterFormRef
|
|
146
|
+
}, filterFormRef)) : false);
|
|
143
147
|
});
|
|
144
148
|
// 可显示的表单值
|
|
145
149
|
var showGroupItem = (groups || []).filter(function (item) {
|
|
146
|
-
return !(item !== null && item !== void 0 && item.isHidden || (item.hasOwnProperty('isHide') ? item.isHide(_objectSpread({}, formValues),
|
|
150
|
+
return !(item !== null && item !== void 0 && item.isHidden || (item.hasOwnProperty('isHide') ? item.isHide(_objectSpread({}, formValues), _objectSpread({
|
|
151
|
+
current: filterFormRef
|
|
152
|
+
}, filterFormRef)) : false));
|
|
147
153
|
});
|
|
154
|
+
// collapseable && console.log('当前显示的表单组', showGroupItem)
|
|
155
|
+
// collapseable && showGroupItem.forEach((item) => {
|
|
156
|
+
// console.log('当前是否有配置colSpan或者display', item.display, item.colSpan)
|
|
157
|
+
// })
|
|
148
158
|
var showGroupWithSetting = showGroupItem.filter(function (item) {
|
|
149
159
|
return item.hasOwnProperty('colSpan');
|
|
150
|
-
});
|
|
160
|
+
}); // 指定设置数量
|
|
161
|
+
// const showDefaultWithSetting = showGroupItem.filter(item => !item.hasOwnProperty('colSpan')) // 指定设置数量
|
|
151
162
|
var resultCount = notShowGroupItem.length;
|
|
152
163
|
var aCount = 0; // 需要再次额外新增的数量
|
|
164
|
+
// console.log('showGroupWithSetting', showGroupWithSetting, 'showDefaultWithSetting', showDefaultWithSetting)
|
|
153
165
|
if (showGroupWithSetting.length > 0) {
|
|
154
166
|
showGroupWithSetting.forEach(function (gItem) {
|
|
155
167
|
// colSpan 优先级更高
|
|
156
168
|
if (gItem.hasOwnProperty('colSpan')) {
|
|
157
|
-
// console.log('有配置了colSpan
|
|
158
|
-
aCount += Math.ceil(gItem.colSpan / (24 / columnNumber) - 1); //
|
|
169
|
+
// console.log('有配置了colSpan=' + gItem.colSpan + '占用栅格数量', gItem.colSpan / (24 / columnNumber), '需要再额外减1', gItem.colSpan / (24 / columnNumber) - 1, Math.ceil(gItem.colSpan / (24 / columnNumber) - 1))
|
|
170
|
+
aCount += Math.ceil(gItem.colSpan / (24 / columnNumber) - 1); // 额外占用了(如果4列的情况,前面有三列占用,colSpan配置了两列占用,则在此处不要减1)
|
|
159
171
|
return;
|
|
160
172
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
173
|
+
if (gItem.hasOwnProperty('display') && gItem.display === 'block') {
|
|
174
|
+
// TODO.计算会有问题
|
|
175
|
+
// console.log('有配置了display=block', Math.ceil(24 / (24 / columnNumber) - 1))
|
|
176
|
+
// aCount += columnNumber -1 // Math.ceil(24 / (24 / columnNumber) - 1) // 额外占用了
|
|
177
|
+
}
|
|
166
178
|
});
|
|
167
179
|
}
|
|
168
180
|
setAdditionalCount(aCount);
|
|
@@ -235,7 +247,7 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
235
247
|
})) : null);
|
|
236
248
|
}
|
|
237
249
|
})];
|
|
238
|
-
}, [confirmText, cancelText, filterFormLayout, reFormItemGroup, onFilterSearch, onFilterReset, columnNumberAndSize,
|
|
250
|
+
}, [confirmText, cancelText, filterFormLayout, reFormItemGroup, onFilterSearch, onFilterReset, columnNumberAndSize, filterForm, isHideCount, collapseable, collapsed]);
|
|
239
251
|
|
|
240
252
|
// 更新表单控件值,用于外部获取当前表单实例(force是否强制清空表单)
|
|
241
253
|
var updateFormFields = function updateFormFields(newVal, force) {
|
|
@@ -243,7 +255,7 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
243
255
|
if (force) {
|
|
244
256
|
// this.filterFormRef.current.resetFields()
|
|
245
257
|
// 先清空 再赋值
|
|
246
|
-
resetValues =
|
|
258
|
+
resetValues = filterForm.getFieldsValue();
|
|
247
259
|
Object.keys(resetValues).forEach(function (item) {
|
|
248
260
|
resetValues[item] = undefined;
|
|
249
261
|
});
|
|
@@ -275,18 +287,20 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
275
287
|
}
|
|
276
288
|
});
|
|
277
289
|
}
|
|
278
|
-
|
|
290
|
+
filterForm.setFieldsValue(_objectSpread(_objectSpread({}, resetValues), newVal || {})); // 直接清空表单的赋值
|
|
279
291
|
forceUpdateForm();
|
|
280
292
|
};
|
|
281
293
|
// 强制更新表单值,用于赋初始化实例值
|
|
282
|
-
var forceUpdateForm =
|
|
283
|
-
var formValues =
|
|
294
|
+
var forceUpdateForm = function forceUpdateForm() {
|
|
295
|
+
var formValues = filterForm.getFieldsValue();
|
|
284
296
|
if (Object.prototype.hasOwnProperty.call(formValues, false)) {
|
|
285
297
|
delete formValues.false; // 自定义结构会莫名的出来一个false字段
|
|
286
298
|
}
|
|
287
|
-
calculateHideCount(
|
|
288
|
-
if (getFormFields) getFormFields(formValues,
|
|
289
|
-
|
|
299
|
+
calculateHideCount(filterForm, reFormItemGroup); // 更新当前表单数量,排除被隐藏的值
|
|
300
|
+
if (getFormFields) getFormFields(formValues, _objectSpread({
|
|
301
|
+
current: filterForm
|
|
302
|
+
}, filterForm));
|
|
303
|
+
};
|
|
290
304
|
var handleSearch = function handleSearch(values) {
|
|
291
305
|
if (Object.prototype.hasOwnProperty.call(values, false)) {
|
|
292
306
|
delete values.false; // 自定义结构会莫名的出来一个false字段
|
|
@@ -300,18 +314,18 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
300
314
|
}
|
|
301
315
|
};
|
|
302
316
|
var handleReset = function handleReset() {
|
|
303
|
-
|
|
304
|
-
//
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
317
|
+
filterForm.resetFields();
|
|
318
|
+
// 使用此方法,表单校验无法清空掉,所以需要先重置resetFields()
|
|
319
|
+
var resetValues = filterForm.getFieldsValue();
|
|
320
|
+
Object.keys(resetValues).forEach(function (item) {
|
|
321
|
+
resetValues[item] = undefined;
|
|
322
|
+
});
|
|
323
|
+
filterForm.setFieldsValue(_objectSpread({}, resetValues)); // 直接清空表单的赋值
|
|
324
|
+
// filterForm.resetFields() // 单独用此方法无效,所以先清空+设置所有值为undefined
|
|
310
325
|
setReFormItemGroup(formItemGroup); // 重新渲染列表
|
|
311
|
-
calculateHideCount(
|
|
326
|
+
calculateHideCount(filterForm, reFormItemGroup);
|
|
312
327
|
if (onFilterReset) {
|
|
313
|
-
|
|
314
|
-
onFilterReset(filterFormRef === null || filterFormRef === void 0 || (_filterFormRef$curren2 = filterFormRef.current) === null || _filterFormRef$curren2 === void 0 ? void 0 : _filterFormRef$curren2.getFieldsValue());
|
|
328
|
+
onFilterReset(filterForm === null || filterForm === void 0 ? void 0 : filterForm.getFieldsValue());
|
|
315
329
|
}
|
|
316
330
|
};
|
|
317
331
|
|
|
@@ -348,7 +362,9 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
348
362
|
item.style = _objectSpread(_objectSpread({}, item.style || {}), {}, {
|
|
349
363
|
display: item.isHidden ? 'none' : 'block'
|
|
350
364
|
});
|
|
351
|
-
if (item.hasOwnProperty('isHide') && itemIsHide(item.isHide, formValues,
|
|
365
|
+
if (item.hasOwnProperty('isHide') && itemIsHide(item.isHide, formValues, _objectSpread({
|
|
366
|
+
current: filterForm
|
|
367
|
+
}, filterForm))) {
|
|
352
368
|
showItemNumber++;
|
|
353
369
|
item.isHidden = true;
|
|
354
370
|
// console.log('当前是结构是隐藏未渲染,跳到下个序号', showItemNumber)
|
|
@@ -364,23 +380,24 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
364
380
|
useEffect(function () {
|
|
365
381
|
// 初始化表单数据数据
|
|
366
382
|
if (collapseable && filterFormLayout === "horizontal") {
|
|
367
|
-
var
|
|
368
|
-
var formValues = filterFormRef === null || filterFormRef === void 0 || (_filterFormRef$curren3 = filterFormRef.current) === null || _filterFormRef$curren3 === void 0 ? void 0 : _filterFormRef$curren3.getFieldValue();
|
|
383
|
+
var formValues = filterForm === null || filterForm === void 0 ? void 0 : filterForm.getFieldValue();
|
|
369
384
|
updateGroupByCollapsed(formItemGroup, formValues).then(function (groups) {
|
|
370
385
|
setReFormItemGroup(groups);
|
|
371
|
-
calculateHideCount(
|
|
386
|
+
calculateHideCount(filterForm, groups);
|
|
372
387
|
});
|
|
373
388
|
} else {
|
|
374
389
|
setReFormItemGroup(formItemGroup);
|
|
375
390
|
}
|
|
376
|
-
}, [formItemGroup, collapseable, filterFormLayout, collapsed, columnNumberAndSize === null || columnNumberAndSize === void 0 ? void 0 : columnNumberAndSize.columnNumber, itemGroupConfig,
|
|
391
|
+
}, [formItemGroup, collapseable, filterFormLayout, collapsed, columnNumberAndSize === null || columnNumberAndSize === void 0 ? void 0 : columnNumberAndSize.columnNumber, itemGroupConfig, filterForm]);
|
|
392
|
+
|
|
393
|
+
// 如果不监听initialValues的话,可能url上的search更改时表单无法清空,需要自行手动重置
|
|
377
394
|
useEffect(function () {
|
|
378
395
|
if (!forceListener) {
|
|
379
396
|
if (initialValues && JSON.stringify(initialValues) !== '{}') {
|
|
380
397
|
updateFormFields(initialValues, true);
|
|
381
398
|
}
|
|
382
399
|
}
|
|
383
|
-
}, []);
|
|
400
|
+
}, [forceListener, filterForm]);
|
|
384
401
|
useEffect(function () {
|
|
385
402
|
if (forceListener) {
|
|
386
403
|
if (initialValues && JSON.stringify(initialValues) !== '{}') {
|
|
@@ -388,6 +405,14 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
388
405
|
}
|
|
389
406
|
}
|
|
390
407
|
}, [forceListener, initialValues]);
|
|
408
|
+
// 如果不监听initialValues的话,可能url上的search更改时表单无法清空
|
|
409
|
+
// useEffect(() => {
|
|
410
|
+
// if (filterForm) { // <---- check ref before use the form instance
|
|
411
|
+
// if (initialValues && typeof initialValues === 'object') {
|
|
412
|
+
// updateFormFields(initialValues, true)
|
|
413
|
+
// }
|
|
414
|
+
// }
|
|
415
|
+
// }, [filterForm]);
|
|
391
416
|
// / 表单列表组 formItemGroup 类型为数组或者React.Node
|
|
392
417
|
var renderFormItemGroup = function renderFormItemGroup() {
|
|
393
418
|
if (Array.isArray(reFormItemGroup)) {
|
|
@@ -397,7 +422,7 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
397
422
|
size: filterFormLayout === 'horizontal' ? 'xxlg' : 'md' // size决定栅格排列数量(4列排版)
|
|
398
423
|
,
|
|
399
424
|
layout: filterFormLayout,
|
|
400
|
-
form:
|
|
425
|
+
form: filterForm,
|
|
401
426
|
collapseable: collapseable,
|
|
402
427
|
collapsed: collapsed,
|
|
403
428
|
parentNode: 'standardFilter'
|
|
@@ -431,8 +456,10 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
431
456
|
}, buttonGroupConfig))) : null;
|
|
432
457
|
};
|
|
433
458
|
return wrapSSR( /*#__PURE__*/React.createElement(Form, {
|
|
434
|
-
name: 'standard-filter-form-' + guid()
|
|
435
|
-
ref
|
|
459
|
+
name: 'standard-filter-form-' + guid()
|
|
460
|
+
// ref={filterFormRef}
|
|
461
|
+
,
|
|
462
|
+
form: filterForm,
|
|
436
463
|
layout: filterFormLayout,
|
|
437
464
|
onFinish: handleSearch
|
|
438
465
|
// className={classNames(componentName, hashId, props?.className)}
|
|
@@ -441,7 +468,7 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
441
468
|
style: style,
|
|
442
469
|
colon: colon
|
|
443
470
|
// {...providerConfig} // 直接传这里面的话,会影响layout渲染
|
|
444
|
-
//
|
|
471
|
+
// initialValues={parseTransform ? parseTransform(initialValues) : initialValues}
|
|
445
472
|
}, /*#__PURE__*/React.createElement("div", {
|
|
446
473
|
className: "filter-grid filter-grid-".concat(gridLayout),
|
|
447
474
|
style: filterFormStyle
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FieldComponentProps } from '../FormComp/FieldComponent';
|
|
3
|
+
import { ButtonGroupOptionsProps } from '../ButtonGroup/';
|
|
4
|
+
import './style/index.less';
|
|
5
|
+
export interface StandardFilterProps {
|
|
6
|
+
buttonGroup?: ButtonGroupOptionsProps[];
|
|
7
|
+
buttonGroupConfig?: Object;
|
|
8
|
+
formItemGroup?: FieldComponentProps[];
|
|
9
|
+
confirmText?: string;
|
|
10
|
+
onFilterSearch?: (value?: object) => void;
|
|
11
|
+
onFilterReset?: (value?: object) => void;
|
|
12
|
+
cancelText?: string;
|
|
13
|
+
initialValues?: any;
|
|
14
|
+
getFormFields?: (fields: any, form: any) => void;
|
|
15
|
+
className?: string;
|
|
16
|
+
style?: React.CSSProperties;
|
|
17
|
+
min?: number;
|
|
18
|
+
codes?: any[];
|
|
19
|
+
permissionCodes?: string[];
|
|
20
|
+
formLayout?: 'inline' | 'horizontal' | 'vertical';
|
|
21
|
+
gridLayout?: 'inline' | 'horizontal';
|
|
22
|
+
colon?: boolean;
|
|
23
|
+
dateFormatter?: 'dayjs' | 'string';
|
|
24
|
+
itemGroupConfig?: object;
|
|
25
|
+
collapseable?: boolean;
|
|
26
|
+
[k: string]: any;
|
|
27
|
+
}
|
|
28
|
+
declare const StandardFilter: React.ForwardRefExoticComponent<Omit<StandardFilterProps, "ref"> & React.RefAttributes<unknown>>;
|
|
29
|
+
export default StandardFilter;
|