@teamix/pro 1.3.0 → 1.3.3
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 +1207 -266
- package/dist/pro.min.css +1 -1
- package/dist/pro.min.js +1 -1
- package/es/actions/dialog-form.d.ts +9 -4
- package/es/actions/dialog-form.js +16 -9
- package/es/form/Components/LightFilter/index.d.ts +1 -0
- package/es/form/Components/LightFilter/index.js +9 -6
- package/es/form/Components/ProField/mapDateFormat.d.ts +3 -0
- package/es/form/Components/ProField/mapDateFormat.js +113 -0
- package/es/form/Filter/LightFilter.js +13 -3
- package/es/form/Filter/SimpleFilter.js +1 -1
- package/es/form/Filter/index.js +44 -10
- package/es/form/ProForm/customComponent.js +2 -1
- package/es/form/SchemaForm/adapterDecorator.js +1 -1
- package/es/form/SchemaForm/adapterType.js +2 -5
- package/es/form/SchemaForm/index.js +26 -12
- package/es/form/SchemaForm/initializeDataSource.d.ts +1 -1
- package/es/form/SchemaForm/initializeDataSource.js +2 -2
- package/es/form/SchemaForm/initializeSelectTable.d.ts +3 -0
- package/es/form/SchemaForm/initializeSelectTable.js +38 -0
- package/es/form/SchemaForm/reactions.d.ts +1 -1
- package/es/form/SchemaForm/reactions.js +28 -33
- package/es/form/fieldTypeMap.d.ts +3 -0
- package/es/form/fieldTypeMap.js +3 -0
- package/es/form/typing.d.ts +9 -1
- package/es/form/utils.js +11 -4
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/info/components/baseInfo/index.scss +3 -0
- package/es/page-header/index.d.ts +3 -1
- package/es/page-header/index.js +17 -4
- package/es/table/components/ToolBar/DensityIcon.js +5 -3
- package/es/table/components/ToolBar/FilterColumnIcon.js +12 -3
- package/es/table/components/ToolBar/index.scss +3 -3
- package/es/table/index.js +27 -12
- package/es/table/index.scss +16 -0
- package/es/table/typing.d.ts +12 -7
- package/es/table/utils/columnRender.js +6 -0
- package/lib/actions/dialog-form.d.ts +9 -4
- package/lib/actions/dialog-form.js +16 -9
- package/lib/form/Components/LightFilter/index.d.ts +1 -0
- package/lib/form/Components/LightFilter/index.js +9 -6
- package/lib/form/Components/ProField/mapDateFormat.d.ts +3 -0
- package/lib/form/Components/ProField/mapDateFormat.js +125 -0
- package/lib/form/Filter/LightFilter.js +13 -3
- package/lib/form/Filter/SimpleFilter.js +1 -1
- package/lib/form/Filter/index.js +44 -10
- package/lib/form/ProForm/customComponent.js +3 -1
- package/lib/form/SchemaForm/adapterDecorator.js +1 -1
- package/lib/form/SchemaForm/adapterType.js +2 -5
- package/lib/form/SchemaForm/index.js +27 -11
- package/lib/form/SchemaForm/initializeDataSource.d.ts +1 -1
- package/lib/form/SchemaForm/initializeDataSource.js +2 -2
- package/lib/form/SchemaForm/initializeSelectTable.d.ts +3 -0
- package/lib/form/SchemaForm/initializeSelectTable.js +45 -0
- package/lib/form/SchemaForm/reactions.d.ts +1 -1
- package/lib/form/SchemaForm/reactions.js +28 -33
- package/lib/form/fieldTypeMap.d.ts +3 -0
- package/lib/form/fieldTypeMap.js +5 -1
- package/lib/form/typing.d.ts +9 -1
- package/lib/form/utils.js +11 -4
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/info/components/baseInfo/index.scss +3 -0
- package/lib/page-header/index.d.ts +3 -1
- package/lib/page-header/index.js +16 -3
- package/lib/table/components/ToolBar/DensityIcon.js +5 -3
- package/lib/table/components/ToolBar/FilterColumnIcon.js +11 -2
- package/lib/table/components/ToolBar/index.scss +3 -3
- package/lib/table/index.js +27 -12
- package/lib/table/index.scss +16 -0
- package/lib/table/typing.d.ts +12 -7
- package/lib/table/utils/columnRender.js +6 -0
- package/package.json +4 -4
@@ -1,5 +1,5 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
import { ProFormProps, ProFormSchema } from '../form';
|
2
|
+
import { ProFormProps, ProFormSchema, ProFormType } from '../form';
|
3
3
|
import { RequestAction } from './request';
|
4
4
|
import { DialogAction } from './dialog';
|
5
5
|
export interface DialogFormAction extends DialogAction {
|
@@ -12,9 +12,14 @@ export interface DialogFormAction extends DialogAction {
|
|
12
12
|
/**
|
13
13
|
* @deprecated 建议使用 schema 配置 ProFormProps 代替
|
14
14
|
*/
|
15
|
-
formProps?: Omit<ProFormProps, 'schema'>;
|
16
|
-
/**
|
17
|
-
|
15
|
+
formProps?: Omit<ProFormProps, 'schema' | 'form'>;
|
16
|
+
/** 同时支持两种配置方式:
|
17
|
+
* 如果想完整定制表单,可使用完整的表单配置项 ProFormProps,但不可以传 form 字段,可以通过 formRef 获取内部 form 实例。
|
18
|
+
* 否则可以只配置 ProFormSchema
|
19
|
+
*/
|
20
|
+
schema: ProFormSchema | Omit<ProFormProps, 'form'>;
|
21
|
+
/** 外部传来的 formRef,用于获取内置 form 实例 */
|
22
|
+
formRef?: React.MutableRefObject<ProFormType | undefined>;
|
18
23
|
}
|
19
24
|
export declare function useDialogFormAction(action: DialogFormAction, context?: any): {
|
20
25
|
[x: string]: (e: React.MouseEvent<HTMLElement, MouseEvent>) => Promise<void>;
|
@@ -23,7 +23,7 @@ var _dialog = _interopRequireDefault(require("./dialog"));
|
|
23
23
|
var _utils2 = require("./utils");
|
24
24
|
|
25
25
|
var _excluded = ["schema"],
|
26
|
-
_excluded2 = ["schema", "useFieldValuesForRequest", "initialValues", "initialRequest", "formProps", "size", "onFinish", "beforeRequest"];
|
26
|
+
_excluded2 = ["schema", "useFieldValuesForRequest", "initialValues", "initialRequest", "formProps", "size", "onFinish", "beforeRequest", "formRef"];
|
27
27
|
|
28
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
29
29
|
|
@@ -110,7 +110,8 @@ var DialogForm = function DialogForm(props) {
|
|
110
110
|
schema = props.schema,
|
111
111
|
formProps = props.formProps,
|
112
112
|
context = props.context,
|
113
|
-
formRef = props.formRef
|
113
|
+
formRef = props.formRef,
|
114
|
+
innerFormRef = props.innerFormRef;
|
114
115
|
|
115
116
|
var _getSchemaAndFormProp = getSchemaAndFormProps(schema, formProps),
|
116
117
|
formSchema = _getSchemaAndFormProp.schema,
|
@@ -127,7 +128,11 @@ var DialogForm = function DialogForm(props) {
|
|
127
128
|
|
128
129
|
var history = (0, _reactRouterDom.useHistory)();
|
129
130
|
(0, _react.useEffect)(function () {
|
130
|
-
formRef
|
131
|
+
if (formRef) {
|
132
|
+
formRef.current = form;
|
133
|
+
}
|
134
|
+
|
135
|
+
innerFormRef.current = form;
|
131
136
|
|
132
137
|
if (initialRequest) {
|
133
138
|
setLoading(true);
|
@@ -162,9 +167,10 @@ function useDialogFormAction(action, context) {
|
|
162
167
|
size = _action$size === void 0 ? 'small' : _action$size,
|
163
168
|
_onFinish = action.onFinish,
|
164
169
|
propsBeforeRequest = action.beforeRequest,
|
170
|
+
propsFormRef = action.formRef,
|
165
171
|
others = _objectWithoutProperties(action, _excluded2);
|
166
172
|
|
167
|
-
var
|
173
|
+
var innerFormRef = /*#__PURE__*/(0, _react.createRef)();
|
168
174
|
return (0, _dialog.default)(Object.assign({
|
169
175
|
size: size,
|
170
176
|
closeable: true,
|
@@ -178,13 +184,14 @@ function useDialogFormAction(action, context) {
|
|
178
184
|
context: contentContext
|
179
185
|
};
|
180
186
|
return /*#__PURE__*/_react.default.createElement(DialogForm, _objectSpread({
|
181
|
-
|
187
|
+
innerFormRef: innerFormRef,
|
188
|
+
formRef: propsFormRef
|
182
189
|
}, dialogFormProps));
|
183
190
|
},
|
184
191
|
extendParams: useFieldValuesForRequest ? '{{fields}}' : undefined,
|
185
192
|
beforeRequest: function beforeRequest(context) {
|
186
193
|
return new Promise(function (resolve, reject) {
|
187
|
-
|
194
|
+
innerFormRef.current.validate().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
188
195
|
var beforeRequestContext, requestContext;
|
189
196
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
190
197
|
while (1) {
|
@@ -220,7 +227,7 @@ function useDialogFormAction(action, context) {
|
|
220
227
|
|
221
228
|
case 13:
|
222
229
|
requestContext = Object.assign({
|
223
|
-
fields:
|
230
|
+
fields: innerFormRef.current.values
|
224
231
|
}, _typeof(beforeRequestContext) === 'object' ? beforeRequestContext : {});
|
225
232
|
resolve(requestContext);
|
226
233
|
|
@@ -236,9 +243,9 @@ function useDialogFormAction(action, context) {
|
|
236
243
|
});
|
237
244
|
},
|
238
245
|
onFinish: function onFinish() {
|
239
|
-
var
|
246
|
+
var _innerFormRef$current;
|
240
247
|
|
241
|
-
_onFinish && _onFinish((
|
248
|
+
_onFinish && _onFinish((_innerFormRef$current = innerFormRef.current) === null || _innerFormRef$current === void 0 ? void 0 : _innerFormRef$current.values);
|
242
249
|
}
|
243
250
|
}, others), context);
|
244
251
|
}
|
@@ -78,14 +78,16 @@ var useMain = function useMain(active) {
|
|
78
78
|
}; // 筛选项数据
|
79
79
|
|
80
80
|
|
81
|
-
var useFilterItems = function useFilterItems() {
|
81
|
+
var useFilterItems = function useFilterItems(filterValues) {
|
82
82
|
var schema = (0, _react2.useFieldSchema)();
|
83
83
|
var filterItems = [];
|
84
84
|
schema.mapProperties(function (schema, name) {
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
85
|
+
if (!filterValues || filterValues && filterValues.includes(schema.name)) {
|
86
|
+
filterItems.push({
|
87
|
+
label: schema.title,
|
88
|
+
value: schema.name
|
89
|
+
});
|
90
|
+
}
|
89
91
|
});
|
90
92
|
return filterItems;
|
91
93
|
}; // 是否输入框类型的组件
|
@@ -99,12 +101,13 @@ var isInputCategory = function isInputCategory(currentSchema) {
|
|
99
101
|
var LightFilter = (0, _react2.observer)(function (props) {
|
100
102
|
var _filterItems$, _main$;
|
101
103
|
|
102
|
-
var filterItems = useFilterItems();
|
103
104
|
var size = props.size,
|
104
105
|
defaultFilterValue = props.defaultFilterValue,
|
106
|
+
filterValues = props.filterValues,
|
105
107
|
onFilterChange = props.onFilterChange,
|
106
108
|
filterProps = props.filterProps,
|
107
109
|
buttonProps = props.buttonProps;
|
110
|
+
var filterItems = useFilterItems(filterValues);
|
108
111
|
|
109
112
|
var _useState = (0, _react.useState)(defaultFilterValue || ((_filterItems$ = filterItems[0]) === null || _filterItems$ === void 0 ? void 0 : _filterItems$.value)),
|
110
113
|
_useState2 = _slicedToArray(_useState, 2),
|
@@ -0,0 +1,125 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
|
8
|
+
var _shared = require("@formily/shared");
|
9
|
+
|
10
|
+
var _utils = require("@teamix/utils");
|
11
|
+
|
12
|
+
var _moment = _interopRequireDefault(require("moment"));
|
13
|
+
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
15
|
+
|
16
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
17
|
+
|
18
|
+
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."); }
|
19
|
+
|
20
|
+
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); }
|
21
|
+
|
22
|
+
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; }
|
23
|
+
|
24
|
+
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; }
|
25
|
+
|
26
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
27
|
+
|
28
|
+
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; }
|
29
|
+
|
30
|
+
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; }
|
31
|
+
|
32
|
+
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; }
|
33
|
+
|
34
|
+
var moment = function moment(date, format) {
|
35
|
+
return (0, _moment.default)((date === null || date === void 0 ? void 0 : date.toDate) ? date.toDate() : date, format);
|
36
|
+
};
|
37
|
+
|
38
|
+
var momentable = function momentable(value, format) {
|
39
|
+
return Array.isArray(value) ? value.map(function (val) {
|
40
|
+
return moment(val, format);
|
41
|
+
}) : value ? moment(value, format) : value;
|
42
|
+
};
|
43
|
+
|
44
|
+
var formatMomentValue = function formatMomentValue(value, format, placeholder) {
|
45
|
+
var formatDate = function formatDate(date, format) {
|
46
|
+
var i = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
47
|
+
if (!date) return placeholder;
|
48
|
+
|
49
|
+
if ((0, _utils.isArr)(format)) {
|
50
|
+
var _format = format[i];
|
51
|
+
|
52
|
+
if ((0, _utils.isFn)(_format)) {
|
53
|
+
return _format(date);
|
54
|
+
}
|
55
|
+
|
56
|
+
if ((0, _shared.isEmpty)(_format)) {
|
57
|
+
return date;
|
58
|
+
}
|
59
|
+
|
60
|
+
return moment(date).format(_format);
|
61
|
+
} else {
|
62
|
+
if ((0, _utils.isFn)(format)) {
|
63
|
+
return format(date);
|
64
|
+
}
|
65
|
+
|
66
|
+
if ((0, _shared.isEmpty)(format)) {
|
67
|
+
return date;
|
68
|
+
}
|
69
|
+
|
70
|
+
return moment(date).format(format);
|
71
|
+
}
|
72
|
+
};
|
73
|
+
|
74
|
+
if ((0, _utils.isArr)(value)) {
|
75
|
+
return value.map(function (val, index) {
|
76
|
+
return formatDate(val, format, index);
|
77
|
+
});
|
78
|
+
} else {
|
79
|
+
return value ? formatDate(value, format) : value || placeholder;
|
80
|
+
}
|
81
|
+
};
|
82
|
+
|
83
|
+
var mapDateFormatDatePicker2 = function mapDateFormatDatePicker2(type) {
|
84
|
+
var getDefaultFormat = function getDefaultFormat(props) {
|
85
|
+
var _type = props['type'] || type;
|
86
|
+
|
87
|
+
if (_type === 'month') {
|
88
|
+
return 'YYYY-MM';
|
89
|
+
} else if (_type === 'quarter') {
|
90
|
+
return 'YYYY-\\QQ';
|
91
|
+
} else if (_type === 'year') {
|
92
|
+
return 'YYYY';
|
93
|
+
} else if (_type === 'week') {
|
94
|
+
return 'YYYY-wo';
|
95
|
+
}
|
96
|
+
|
97
|
+
return props['showTime'] ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD';
|
98
|
+
};
|
99
|
+
|
100
|
+
return function (props) {
|
101
|
+
var format = props['format'] || getDefaultFormat(props);
|
102
|
+
var _onChange = props.onChange;
|
103
|
+
return _objectSpread(_objectSpread({}, props), {}, {
|
104
|
+
format: format === 'YYYY-MM-DD HH:mm:ss' ? 'YYYY-MM-DD' : format,
|
105
|
+
value: momentable(props.value, format === 'YYYY-wo' ? 'YYYY-w' : format),
|
106
|
+
onChange: function onChange(value) {
|
107
|
+
if (_onChange) {
|
108
|
+
_onChange(formatMomentValue(value, format));
|
109
|
+
}
|
110
|
+
}
|
111
|
+
});
|
112
|
+
};
|
113
|
+
};
|
114
|
+
|
115
|
+
var mapDateFormat = function mapDateFormat(props, field) {
|
116
|
+
var _ref = field.component || [],
|
117
|
+
_ref2 = _slicedToArray(_ref, 1),
|
118
|
+
component = _ref2[0];
|
119
|
+
|
120
|
+
console.log(component);
|
121
|
+
return {};
|
122
|
+
};
|
123
|
+
|
124
|
+
var _default = mapDateFormat;
|
125
|
+
exports.default = _default;
|
@@ -15,7 +15,7 @@ var _utils = require("@teamix/utils");
|
|
15
15
|
|
16
16
|
var _ProForm = _interopRequireDefault(require("../ProForm"));
|
17
17
|
|
18
|
-
var _excluded = ["form", "schema", "onSubmit", "onChange", "defaultFilterValue", "activeFilterValueRef"];
|
18
|
+
var _excluded = ["form", "schema", "onSubmit", "onChange", "defaultFilterValue", "filterValues", "activeFilterValueRef"];
|
19
19
|
|
20
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
21
21
|
|
@@ -44,6 +44,7 @@ var LightFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
44
44
|
onSubmit = props.onSubmit,
|
45
45
|
onChange = props.onChange,
|
46
46
|
defaultFilterValue = props.defaultFilterValue,
|
47
|
+
filterValues = props.filterValues,
|
47
48
|
activeFilterValueRef = props.activeFilterValueRef,
|
48
49
|
otherProps = _objectWithoutProperties(props, _excluded);
|
49
50
|
|
@@ -66,15 +67,24 @@ var LightFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
66
67
|
}, [form]); // 实际输出onFilter
|
67
68
|
|
68
69
|
var onFilter = (0, _react.useCallback)(function () {
|
70
|
+
var _Object$keys;
|
71
|
+
|
69
72
|
var key = filterValue.current;
|
70
|
-
var value = form.values[key];
|
71
|
-
|
73
|
+
var value = form.values[key]; // 删除旧值
|
74
|
+
|
75
|
+
(_Object$keys = Object.keys(form.values)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.forEach(function (item) {
|
76
|
+
if (item !== key) {
|
77
|
+
form.setValuesIn(item, undefined);
|
78
|
+
}
|
79
|
+
});
|
80
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(_defineProperty({}, key, value), value, key);
|
72
81
|
}, [onChange]);
|
73
82
|
var LightSchema = (0, _react.useMemo)(function () {
|
74
83
|
return [{
|
75
84
|
component: 'LightFilter',
|
76
85
|
props: {
|
77
86
|
defaultFilterValue: defaultFilterValue,
|
87
|
+
filterValues: filterValues,
|
78
88
|
onFilterChange: onFilterChange,
|
79
89
|
buttonProps: {
|
80
90
|
onClick: onFilter
|
@@ -103,7 +103,7 @@ var SimpleFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
103
103
|
} else {
|
104
104
|
onChange === null || onChange === void 0 ? void 0 : onChange(values, name, value);
|
105
105
|
}
|
106
|
-
}, [searchName, searchValue.current]);
|
106
|
+
}, [onChange, searchName, searchValue.current]);
|
107
107
|
(0, _react.useEffect)(function () {
|
108
108
|
var _props$form$initialVa, _props$form$initialVa2;
|
109
109
|
|
package/lib/form/Filter/index.js
CHANGED
@@ -45,7 +45,7 @@ var _useSpecialProps2 = _interopRequireDefault(require("./useSpecialProps"));
|
|
45
45
|
|
46
46
|
require("./index.scss");
|
47
47
|
|
48
|
-
var _excluded = ["addonAfter", "addonBefore", "mode", "purePanel", "expand", "formRef", "defaultFilterValue", "filterDebounce", "onFilter", "onInit", "onReset", "onExpand"];
|
48
|
+
var _excluded = ["addonAfter", "addonBefore", "mode", "purePanel", "expand", "formRef", "defaultFilterValue", "filterValues", "filterDebounce", "onFilter", "onInit", "onReset", "onExpand", "onChange"];
|
49
49
|
|
50
50
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
51
51
|
|
@@ -98,11 +98,13 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
98
98
|
expand = props.expand,
|
99
99
|
formRef = props.formRef,
|
100
100
|
defaultFilterValue = props.defaultFilterValue,
|
101
|
+
filterValues = props.filterValues,
|
101
102
|
filterDebounce = props.filterDebounce,
|
102
103
|
onFilter = props.onFilter,
|
103
104
|
onInit = props.onInit,
|
104
105
|
onReset = props.onReset,
|
105
106
|
onExpand = props.onExpand,
|
107
|
+
onChange = props.onChange,
|
106
108
|
otherProps = _objectWithoutProperties(props, _excluded);
|
107
109
|
|
108
110
|
var _useSpecialProps = (0, _useSpecialProps2.default)(props),
|
@@ -188,6 +190,7 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
188
190
|
if (!formRef.current.updateTags) {
|
189
191
|
formRef.current.updateTags = function () {
|
190
192
|
configFilterItem(form);
|
193
|
+
configTag();
|
191
194
|
};
|
192
195
|
}
|
193
196
|
}
|
@@ -363,7 +366,13 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
363
366
|
return function (_x) {
|
364
367
|
return _ref4.apply(this, arguments);
|
365
368
|
};
|
366
|
-
}(), [onFilter, hasRequired, onInit]); //
|
369
|
+
}(), [onFilter, hasRequired, onInit]); // 简单搜索Change
|
370
|
+
|
371
|
+
var onSimpleChange = (0, _react.useCallback)(function (values, fieldValue, fieldName) {
|
372
|
+
if (currentForm.current === 'simple') {
|
373
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
|
374
|
+
}
|
375
|
+
}, [onChange]); // 轻量搜索Filter
|
367
376
|
|
368
377
|
var onLightFilter = (0, _react.useCallback)(function (values) {
|
369
378
|
if (currentForm.current === 'light') {
|
@@ -381,7 +390,13 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
381
390
|
configTag();
|
382
391
|
}
|
383
392
|
}
|
384
|
-
}, [onFilter]); //
|
393
|
+
}, [onFilter]); // 轻量搜索Change
|
394
|
+
|
395
|
+
var onLightChange = (0, _react.useCallback)(function (values, fieldValue, fieldName) {
|
396
|
+
if (currentForm.current === 'light') {
|
397
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
|
398
|
+
}
|
399
|
+
}, [onChange]); // 高级搜索Filter
|
385
400
|
|
386
401
|
var onAdvancedFilter = (0, _react.useCallback)(function (values) {
|
387
402
|
setCurrentForm('advanced');
|
@@ -401,9 +416,9 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
401
416
|
lightForm.reset('*', {
|
402
417
|
forceClear: true
|
403
418
|
});
|
404
|
-
}, [onReset]); // 高级搜索
|
419
|
+
}, [onReset]); // 高级搜索Init
|
405
420
|
|
406
|
-
var
|
421
|
+
var onAdvancedInit = (0, _react.useCallback)( /*#__PURE__*/function () {
|
407
422
|
var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(values) {
|
408
423
|
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
409
424
|
while (1) {
|
@@ -448,7 +463,13 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
448
463
|
return function (_x2) {
|
449
464
|
return _ref5.apply(this, arguments);
|
450
465
|
};
|
451
|
-
}(), [hasRequired, onInit]); //
|
466
|
+
}(), [hasRequired, onInit]); // 高级搜索Change
|
467
|
+
|
468
|
+
var onAdvancedChange = (0, _react.useCallback)(function (values, fieldValue, fieldName) {
|
469
|
+
if (currentForm.current === 'advanced') {
|
470
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(values, fieldValue, fieldName);
|
471
|
+
}
|
472
|
+
}, [onChange]); // 关闭标签清空表单字段值
|
452
473
|
|
453
474
|
var onTagClose = (0, _react.useCallback)(function (key, index) {
|
454
475
|
var newValue = undefined;
|
@@ -468,7 +489,10 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
468
489
|
form.setState({
|
469
490
|
loading: false
|
470
491
|
});
|
471
|
-
}, []);
|
492
|
+
}, []);
|
493
|
+
var debounceFun = (0, _lodash.default)(function (fun, props) {
|
494
|
+
return fun(props);
|
495
|
+
}, filterDebounce); // 组件挂载
|
472
496
|
|
473
497
|
(0, _react.useEffect)(function () {
|
474
498
|
setCurrentForm(currentForm.current);
|
@@ -484,20 +508,30 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
484
508
|
className: (0, _classnames.default)("".concat(prefixCls, "-inline"), purePanel || hasRequired ? "".concat(prefixCls, "-inline-hidden") : '')
|
485
509
|
}, /*#__PURE__*/_react.default.createElement(_LightFilter.default, _objectSpread(_objectSpread({}, otherProps), {}, {
|
486
510
|
defaultFilterValue: defaultFilterValue,
|
511
|
+
filterValues: filterValues,
|
487
512
|
activeFilterValueRef: activeFilterValueRef,
|
488
513
|
form: lightForm,
|
489
|
-
onChange: (
|
514
|
+
onChange: function onChange(values, fieldValue, fieldName) {
|
515
|
+
debounceFun(onLightFilter, values);
|
516
|
+
onLightChange(values, fieldValue, fieldName);
|
517
|
+
}
|
490
518
|
}))) : /*#__PURE__*/_react.default.createElement("div", {
|
491
519
|
className: "".concat(prefixCls, "-inline")
|
492
520
|
}, /*#__PURE__*/_react.default.createElement(_SimpleFilter.default, _objectSpread(_objectSpread({}, otherProps), {}, {
|
493
521
|
form: simpleForm,
|
494
|
-
onChange: (
|
522
|
+
onChange: function onChange(values, fieldValue, fieldName) {
|
523
|
+
debounceFun(onSimpleFilter, values);
|
524
|
+
onSimpleChange(values, fieldValue, fieldName);
|
525
|
+
},
|
495
526
|
onSubmit: onSimpleFilter,
|
496
527
|
onInitialComplete: onInitialComplete
|
497
528
|
}))),
|
498
529
|
panelContent: mode === 'panel' ? /*#__PURE__*/_react.default.createElement(_AdvancedFilter.default, _objectSpread(_objectSpread({}, otherProps), {}, {
|
499
530
|
form: advancedForm,
|
500
|
-
onChange: (
|
531
|
+
onChange: function onChange(values, fieldValue, fieldName) {
|
532
|
+
debounceFun(onAdvancedInit, values);
|
533
|
+
onAdvancedChange(values, fieldValue, fieldName);
|
534
|
+
},
|
501
535
|
onSubmit: onAdvancedFilter,
|
502
536
|
onReset: onAdvancedReset,
|
503
537
|
onInitialComplete: onInitialComplete
|
@@ -9,6 +9,8 @@ var _react = require("@formily/react");
|
|
9
9
|
|
10
10
|
var _reactive = require("@formily/reactive");
|
11
11
|
|
12
|
+
var _utils = require("../utils");
|
13
|
+
|
12
14
|
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; }
|
13
15
|
|
14
16
|
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; }
|
@@ -22,7 +24,7 @@ var customComponent = function customComponent(component) {
|
|
22
24
|
form: field.form,
|
23
25
|
values: (0, _reactive.toJS)(field.form.values)
|
24
26
|
});
|
25
|
-
}));
|
27
|
+
}, _utils.mapSize, _utils.mapStatus, _utils.mapDataSource));
|
26
28
|
};
|
27
29
|
|
28
30
|
exports.customComponent = customComponent;
|
@@ -26,7 +26,7 @@ var _default = function _default(decorator, component) {
|
|
26
26
|
return decorator;
|
27
27
|
}
|
28
28
|
|
29
|
-
if ([].concat(_toConsumableArray(Object.keys(_fieldTypeMap.default)), ['Upload', 'ArrayCards', 'ArrayCollapse', 'ArrayTable', 'ArrayItems']).includes(component)) {
|
29
|
+
if ([].concat(_toConsumableArray(Object.keys(_fieldTypeMap.default)), ['Upload', 'SelectTable', 'ArrayCards', 'ArrayCollapse', 'ArrayTable', 'ArrayItems']).includes(component)) {
|
30
30
|
return 'FormItem';
|
31
31
|
}
|
32
32
|
|
@@ -54,11 +54,8 @@ var typeMap = (_typeMap = {
|
|
54
54
|
Range: 'string',
|
55
55
|
Search: 'array',
|
56
56
|
SelectGroup: 'array',
|
57
|
-
|
58
|
-
|
59
|
-
ArrayTable: 'array',
|
60
|
-
ArrayItems: 'array'
|
61
|
-
}, _defineProperty(_typeMap, 'Editable.Popover', 'object'), _defineProperty(_typeMap, 'Editable.Dialog', 'object'), _defineProperty(_typeMap, 'Editable.Drawer', 'object'), _typeMap);
|
57
|
+
SelectTable: 'array'
|
58
|
+
}, _defineProperty(_typeMap, 'SelectTable.Column', 'string'), _defineProperty(_typeMap, "ArrayCollapse", 'array'), _defineProperty(_typeMap, "ArrayCards", 'array'), _defineProperty(_typeMap, "ArrayTable", 'array'), _defineProperty(_typeMap, "ArrayItems", 'array'), _defineProperty(_typeMap, 'Editable.Popover', 'object'), _defineProperty(_typeMap, 'Editable.Dialog', 'object'), _defineProperty(_typeMap, 'Editable.Drawer', 'object'), _typeMap);
|
62
59
|
|
63
60
|
var _default = function _default(type, component) {
|
64
61
|
return type || typeMap[component] || 'void';
|
@@ -57,12 +57,16 @@ var _initializeFormTab = _interopRequireDefault(require("./initializeFormTab"));
|
|
57
57
|
|
58
58
|
var _initializeFormCollapse = _interopRequireDefault(require("./initializeFormCollapse"));
|
59
59
|
|
60
|
+
var _initializeSelectTable = _interopRequireDefault(require("./initializeSelectTable"));
|
61
|
+
|
60
62
|
var _reactions = require("./reactions");
|
61
63
|
|
62
64
|
var _fieldTypeMap = _interopRequireDefault(require("../fieldTypeMap"));
|
63
65
|
|
64
66
|
var _utils = require("../utils");
|
65
67
|
|
68
|
+
var _utils2 = require("@teamix/utils");
|
69
|
+
|
66
70
|
var _warning = _interopRequireDefault(require("../warning"));
|
67
71
|
|
68
72
|
var _excluded = ["component", "type", "name", "decorator", "decoratorProps", "dataSource", "reactions", "rules", "children", "items", "tooltip", "request", "data"];
|
@@ -107,10 +111,16 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
|
|
107
111
|
var schema = _ref.schema,
|
108
112
|
scope = _ref.scope,
|
109
113
|
components = _ref.components;
|
110
|
-
|
114
|
+
|
115
|
+
// 获取全局配置
|
116
|
+
var _ref2 = (0, _utils2.getGlobalConfig)('ProForm') || {},
|
117
|
+
globalComponents = _ref2.components,
|
118
|
+
globalScope = _ref2.scope; // 创建 SchemaField
|
119
|
+
|
120
|
+
|
111
121
|
var SchemaField = (0, _react.useMemo)(function () {
|
112
122
|
return (0, _react2.createSchemaField)({
|
113
|
-
components: _objectSpread(_objectSpread({}, _ProField.default), {}, {
|
123
|
+
components: _objectSpread(_objectSpread(_objectSpread({}, globalComponents), _ProField.default), {}, {
|
114
124
|
FormLayout: _formily.FormLayout,
|
115
125
|
FormItem: _formily.FormItem,
|
116
126
|
ArrayCollapse: _formily.ArrayCollapse,
|
@@ -133,6 +143,7 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
|
|
133
143
|
EditablePopover: _Editable.EditablePopover,
|
134
144
|
FormGroup: _FormGroup.default,
|
135
145
|
Upload: _formily.Upload,
|
146
|
+
SelectTable: _formily.SelectTable,
|
136
147
|
Affix: _components.Affix,
|
137
148
|
LightFilter: _LightFilter.default,
|
138
149
|
Text: _index.default
|
@@ -141,7 +152,7 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
|
|
141
152
|
}, []); // 合并 schema 中 request 的 scope
|
142
153
|
|
143
154
|
var mergedScope = (0, _react.useMemo)(function () {
|
144
|
-
return _objectSpread(_objectSpread({}, scope), {}, {
|
155
|
+
return _objectSpread(_objectSpread(_objectSpread({}, globalScope), scope), {}, {
|
145
156
|
$request: _reactions.$request,
|
146
157
|
$common: _reactions.$common,
|
147
158
|
$dataSource: _reactions.$dataSource,
|
@@ -150,10 +161,10 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
|
|
150
161
|
}, [scope]); // 格式化 schema
|
151
162
|
|
152
163
|
var formatSchema = (0, _react.useCallback)(function (schema) {
|
153
|
-
var
|
164
|
+
var parentSuffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
154
165
|
var schemaProperties = {};
|
155
166
|
schema === null || schema === void 0 ? void 0 : schema.forEach(function (item, index) {
|
156
|
-
suffix = "".concat(
|
167
|
+
var suffix = "".concat(parentSuffix).concat(index);
|
157
168
|
var newItem = (0, _warning.default)(item);
|
158
169
|
var _newItem = newItem,
|
159
170
|
originalComponent = _newItem.component; // 根据component的不同,初始化为内置的item
|
@@ -210,6 +221,11 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
|
|
210
221
|
|
211
222
|
if (['FormCollapse'].includes(originalComponent)) {
|
212
223
|
newItem = (0, _initializeFormCollapse.default)(newItem);
|
224
|
+
} // 初始化选择表格 - SelectTable
|
225
|
+
|
226
|
+
|
227
|
+
if (['SelectTable'].includes(originalComponent)) {
|
228
|
+
newItem = (0, _initializeSelectTable.default)(newItem);
|
213
229
|
}
|
214
230
|
}
|
215
231
|
|
@@ -244,10 +260,10 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
|
|
244
260
|
|
245
261
|
var _initializeRequest = (0, _initializeRequest2.default)(request, "".concat(suffix, "r")),
|
246
262
|
requestReactions = _initializeRequest.reactions,
|
247
|
-
requestScope = _initializeRequest.scope; // 初始化dataSource
|
263
|
+
requestScope = _initializeRequest.scope; // 初始化dataSource
|
248
264
|
|
249
265
|
|
250
|
-
var _initializeDataSource = (0, _initializeDataSource2.default)(dataSource, "".concat(suffix, "d")
|
266
|
+
var _initializeDataSource = (0, _initializeDataSource2.default)(dataSource, "".concat(suffix, "d")),
|
251
267
|
defaultDataSource = _initializeDataSource.dataSource,
|
252
268
|
dataSourceReactions = _initializeDataSource.reactions,
|
253
269
|
dataSourceScope = _initializeDataSource.scope; // 初始化rules validator
|
@@ -260,10 +276,10 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
|
|
260
276
|
|
261
277
|
var defaultReactions = (0, _initializeReactions.default)(reactions, [].concat(_toConsumableArray(requestReactions), _toConsumableArray(dataSourceReactions))); // 合并scope
|
262
278
|
|
263
|
-
Object.entries(_objectSpread(_objectSpread(_objectSpread({}, requestScope), dataSourceScope), rulesScope)).map(function (
|
264
|
-
var
|
265
|
-
k =
|
266
|
-
v =
|
279
|
+
Object.entries(_objectSpread(_objectSpread(_objectSpread({}, requestScope), dataSourceScope), rulesScope)).map(function (_ref3) {
|
280
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
281
|
+
k = _ref4[0],
|
282
|
+
v = _ref4[1];
|
267
283
|
|
268
284
|
mergedScope[k] = v;
|
269
285
|
});
|
@@ -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): {
|
4
4
|
dataSource?: any[];
|
5
5
|
reactions: any[];
|
6
6
|
scope: {
|
@@ -9,12 +9,12 @@ var _utils = require("@teamix/utils");
|
|
9
9
|
|
10
10
|
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; }
|
11
11
|
|
12
|
-
var initializeDataSource = function initializeDataSource(dataSource, suffix
|
12
|
+
var initializeDataSource = function initializeDataSource(dataSource, suffix) {
|
13
13
|
if ((0, _utils.isPlainObj)(dataSource)) {
|
14
14
|
var requestConfig = dataSource;
|
15
15
|
var requestConfigName = "$requestConfig_".concat(suffix);
|
16
16
|
return {
|
17
|
-
reactions: ["{{$dataSource($request,".concat(requestConfigName, ",context
|
17
|
+
reactions: ["{{$dataSource($request,".concat(requestConfigName, ",context)}}")],
|
18
18
|
scope: _defineProperty({}, requestConfigName, requestConfig)
|
19
19
|
};
|
20
20
|
}
|