@teamix/pro 1.2.26 → 1.2.27

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.
Files changed (69) hide show
  1. package/dist/212.js +129 -129
  2. package/dist/pro.css +1 -1
  3. package/dist/pro.js +18371 -16873
  4. package/dist/pro.min.css +1 -1
  5. package/dist/pro.min.js +1 -1
  6. package/dist/pro.min.js.LICENSE.txt +2 -0
  7. package/es/form/Filter/AdvancedFilter.js +1 -1
  8. package/es/form/Filter/Layout.d.ts +5 -0
  9. package/es/form/Filter/Layout.js +82 -0
  10. package/es/form/Filter/SimpleFilter.js +30 -6
  11. package/es/form/Filter/index2.d.ts +2 -1
  12. package/es/form/Filter/index2.js +97 -116
  13. package/es/form/Filter/index2.scss +16 -45
  14. package/es/form/Filter/layout.scss +36 -0
  15. package/es/form/Filter/useSpecialProps.d.ts +6 -0
  16. package/es/form/Filter/useSpecialProps.js +37 -0
  17. package/es/form/ProForm/customComponent.d.ts +3 -0
  18. package/es/form/ProForm/customComponent.js +20 -0
  19. package/es/form/ProForm/index.scss +5 -6
  20. package/es/form/ProForm/useFormDisplayValues.js +14 -24
  21. package/es/form/SchemaForm/adapterType.js +1 -0
  22. package/es/form/fieldTypeMap.js +2 -1
  23. package/es/form/index.d.ts +4 -2
  24. package/es/form/index.js +4 -2
  25. package/es/form/typing.d.ts +25 -1
  26. package/es/index.d.ts +1 -1
  27. package/es/index.js +1 -1
  28. package/es/info/index.scss +1 -1
  29. package/es/nocode/pages/renderer.js +1 -1
  30. package/es/table/components/Layout/index.js +63 -167
  31. package/es/table/components/Layout/index.scss +4 -3
  32. package/es/table/components/Pagination/index.js +1 -0
  33. package/es/table/components/ToolBar/FullScreenIcon.js +4 -9
  34. package/es/table/components/ToolBar/Fullscreen.js +21 -11
  35. package/es/table/index.js +64 -95
  36. package/es/table/typing.d.ts +12 -10
  37. package/es/table/utils/columnRender.js +21 -3
  38. package/lib/form/Filter/AdvancedFilter.js +1 -1
  39. package/lib/form/Filter/Layout.d.ts +5 -0
  40. package/lib/form/Filter/Layout.js +102 -0
  41. package/lib/form/Filter/SimpleFilter.js +29 -4
  42. package/lib/form/Filter/index2.d.ts +2 -1
  43. package/lib/form/Filter/index2.js +101 -114
  44. package/lib/form/Filter/index2.scss +16 -45
  45. package/lib/form/Filter/layout.scss +36 -0
  46. package/lib/form/Filter/useSpecialProps.d.ts +6 -0
  47. package/lib/form/Filter/useSpecialProps.js +46 -0
  48. package/lib/form/ProForm/customComponent.d.ts +3 -0
  49. package/lib/form/ProForm/customComponent.js +28 -0
  50. package/lib/form/ProForm/index.scss +5 -6
  51. package/lib/form/ProForm/useFormDisplayValues.js +17 -24
  52. package/lib/form/SchemaForm/adapterType.js +1 -0
  53. package/lib/form/fieldTypeMap.js +2 -1
  54. package/lib/form/index.d.ts +4 -2
  55. package/lib/form/index.js +19 -1
  56. package/lib/form/typing.d.ts +25 -1
  57. package/lib/index.d.ts +1 -1
  58. package/lib/index.js +1 -1
  59. package/lib/info/index.scss +1 -1
  60. package/lib/nocode/pages/renderer.js +1 -1
  61. package/lib/table/components/Layout/index.js +61 -167
  62. package/lib/table/components/Layout/index.scss +4 -3
  63. package/lib/table/components/Pagination/index.js +1 -0
  64. package/lib/table/components/ToolBar/FullScreenIcon.js +4 -9
  65. package/lib/table/components/ToolBar/Fullscreen.js +22 -11
  66. package/lib/table/index.js +61 -93
  67. package/lib/table/typing.d.ts +12 -10
  68. package/lib/table/utils/columnRender.js +21 -3
  69. package/package.json +4 -4
@@ -33,9 +33,12 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
33
33
 
34
34
  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; }
35
35
 
36
+ // 初始化Search组件,内置部分属性
36
37
  var initializeSearch = function initializeSearch(schema) {
37
- return schema.map(function (item) {
38
+ var searchName;
39
+ var initializedSchema = schema.map(function (item) {
38
40
  if (item.component === 'Search') {
41
+ searchName = item.name;
39
42
  return _objectSpread(_objectSpread({}, item), {}, {
40
43
  decoratorProps: _objectSpread(_objectSpread({}, item.decoratorProps), {}, {
41
44
  inset: false
@@ -48,6 +51,10 @@ var initializeSearch = function initializeSearch(schema) {
48
51
 
49
52
  return item;
50
53
  });
54
+ return {
55
+ searchName: searchName,
56
+ initializedSchema: initializedSchema
57
+ };
51
58
  };
52
59
  /**
53
60
  * 简单筛选
@@ -55,6 +62,8 @@ var initializeSearch = function initializeSearch(schema) {
55
62
 
56
63
 
57
64
  var SimpleFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
65
+ var searchValue = (0, _react.useRef)(undefined);
66
+
58
67
  var schema = props.schema,
59
68
  onChange = props.onChange,
60
69
  onSubmit = props.onSubmit,
@@ -63,13 +72,18 @@ var SimpleFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
63
72
  var prefixCls = (0, _utils.usePrefixCls)('', {
64
73
  prefix: 'teamix-pro-form-query-filter-simple'
65
74
  });
75
+
76
+ var _initializeSearch = initializeSearch(schema),
77
+ searchName = _initializeSearch.searchName,
78
+ initializedSchema = _initializeSearch.initializedSchema;
79
+
66
80
  var simpleSchema = (0, _react.useMemo)(function () {
67
81
  return [{
68
82
  component: 'FormFlex',
69
83
  props: {
70
84
  size: 8
71
85
  },
72
- children: initializeSearch(schema)
86
+ children: initializedSchema
73
87
  }, {
74
88
  component: 'Submit',
75
89
  props: {
@@ -78,7 +92,18 @@ var SimpleFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
78
92
  }
79
93
  }
80
94
  }];
81
- }, [schema]);
95
+ }, [initializedSchema]);
96
+ var onInnerChange = (0, _react.useCallback)(function (values, value, name) {
97
+ // 处理Search组件,Select切换时不触发onChange
98
+ if (searchName === name) {
99
+ if (searchValue.current !== value[1]) {
100
+ onChange === null || onChange === void 0 ? void 0 : onChange(values, name, value);
101
+ searchValue.current = value[1];
102
+ }
103
+ } else {
104
+ onChange === null || onChange === void 0 ? void 0 : onChange(values, name, value);
105
+ }
106
+ }, [searchName, searchValue.current]);
82
107
  return /*#__PURE__*/_react.default.createElement(_ProForm.default, _objectSpread(_objectSpread({}, otherProps), {}, {
83
108
  className: (0, _classnames.default)(prefixCls, props.className),
84
109
  schema: simpleSchema,
@@ -86,7 +111,7 @@ var SimpleFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
86
111
  breakpoints: [],
87
112
  inset: true,
88
113
  onSubmit: onSubmit,
89
- onChange: onChange
114
+ onChange: onInnerChange
90
115
  }));
91
116
  });
92
117
  var _default = SimpleFilter;
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
+ import { QueryFilterLayout } from './Layout';
2
3
  import type { QueryFilterProps } from '../typing';
3
4
  import './index2.scss';
4
5
  /**
5
6
  * 查询筛选
6
7
  */
7
8
  declare const QueryFilter: React.FC<QueryFilterProps>;
8
- export { QueryFilter };
9
+ export { QueryFilter, QueryFilterLayout };
@@ -6,14 +6,20 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.QueryFilter = void 0;
9
+ Object.defineProperty(exports, "QueryFilterLayout", {
10
+ enumerable: true,
11
+ get: function get() {
12
+ return _Layout.QueryFilterLayout;
13
+ }
14
+ });
9
15
 
10
16
  var _react = _interopRequireWildcard(require("react"));
11
17
 
12
18
  var _classnames = _interopRequireDefault(require("classnames"));
13
19
 
14
- var _components = require("@alicloudfe/components");
20
+ var _lodash = _interopRequireDefault(require("lodash.debounce"));
15
21
 
16
- var _icon = _interopRequireDefault(require("@teamix/icon"));
22
+ var _components = require("@alicloudfe/components");
17
23
 
18
24
  var _core = require("@formily/core");
19
25
 
@@ -33,11 +39,13 @@ var _LightFilter = _interopRequireDefault(require("./LightFilter"));
33
39
 
34
40
  var _AdvancedFilter = _interopRequireDefault(require("./AdvancedFilter"));
35
41
 
36
- var _lodash = _interopRequireDefault(require("lodash.debounce"));
42
+ var _Layout = require("./Layout");
43
+
44
+ var _useSpecialProps2 = _interopRequireDefault(require("./useSpecialProps"));
37
45
 
38
46
  require("./index2.scss");
39
47
 
40
- var _excluded = ["addonAfter", "addonBefore", "onFilter", "onInit", "onReset", "mode", "expand", "formRef", "defaultFilterValue"];
48
+ var _excluded = ["addonAfter", "addonBefore", "mode", "expand", "formRef", "defaultFilterValue", "filterDebounce", "onFilter", "onInit", "onReset", "onExpand"];
41
49
 
42
50
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
43
51
 
@@ -51,6 +59,14 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
51
59
 
52
60
  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; }
53
61
 
62
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
63
+
64
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
65
+
66
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
67
+
68
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
69
+
54
70
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
55
71
 
56
72
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
@@ -71,55 +87,21 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
71
87
 
72
88
  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; }
73
89
 
74
- // 获取Schema是否包含默认值、异步默认值、必选校验等
75
- var getSpecialProps = function getSpecialProps(props) {
76
- var initialValues = props.initialValues,
77
- initialRequest = props.initialRequest;
78
- var hasDefault = !!initialValues;
79
- var hasAsyncDefault = !!initialRequest;
80
- var hasRequired = false;
81
-
82
- var hasDefaultOrRule = function hasDefaultOrRule(schema) {
83
- schema.forEach(function (item) {
84
- var value = item.default,
85
- required = item.required,
86
- rules = item.rules,
87
- request = item.request,
88
- dataSource = item.dataSource,
89
- children = item.children;
90
- hasDefault = hasDefault || (0, _utils.isSignificative)(value);
91
- hasRequired = hasRequired || required || !!rules;
92
- hasAsyncDefault = hasAsyncDefault || !!request || // 如果dataSource是异步且default取自dataSource
93
- !!((0, _utils.isPlainObj)(dataSource) && (0, _utils.isStr)(value) && value.indexOf('.dataSource'));
94
-
95
- if (children === null || children === void 0 ? void 0 : children.length) {
96
- hasDefaultOrRule(children);
97
- }
98
- });
99
- };
100
-
101
- hasDefaultOrRule(props.schema);
102
- return {
103
- hasDefault: hasDefault,
104
- hasAsyncDefault: hasAsyncDefault,
105
- hasRequired: hasRequired
106
- };
107
- };
108
90
  /**
109
91
  * 查询筛选
110
92
  */
111
-
112
-
113
93
  var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
114
94
  var addonAfter = props.addonAfter,
115
95
  addonBefore = props.addonBefore,
116
- onFilter = props.onFilter,
117
- onInit = props.onInit,
118
- onReset = props.onReset,
119
96
  mode = props.mode,
120
97
  expand = props.expand,
121
98
  formRef = props.formRef,
122
99
  defaultFilterValue = props.defaultFilterValue,
100
+ filterDebounce = props.filterDebounce,
101
+ onFilter = props.onFilter,
102
+ onInit = props.onInit,
103
+ onReset = props.onReset,
104
+ onExpand = props.onExpand,
123
105
  otherProps = _objectWithoutProperties(props, _excluded); // 表单默认值初始化回调
124
106
 
125
107
 
@@ -206,10 +188,10 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
206
188
  advanced: advancedForm
207
189
  };
208
190
 
209
- var _getSpecialProps = getSpecialProps(props),
210
- hasDefault = _getSpecialProps.hasDefault,
211
- hasAsyncDefault = _getSpecialProps.hasAsyncDefault,
212
- hasRequired = _getSpecialProps.hasRequired;
191
+ var _useSpecialProps = (0, _useSpecialProps2.default)(props),
192
+ hasDefault = _useSpecialProps.hasDefault,
193
+ hasAsyncDefault = _useSpecialProps.hasAsyncDefault,
194
+ hasRequired = _useSpecialProps.hasRequired;
213
195
 
214
196
  var hasDefaultOrRequired = hasDefault || hasAsyncDefault || hasRequired;
215
197
 
@@ -235,22 +217,40 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
235
217
 
236
218
  var getFilterDisplayValues = (0, _react.useCallback)(function (form) {
237
219
  var displayValues = (0, _useFormDisplayValues.getFormDisplayValues)(form);
238
- return Object.entries(displayValues).map(function (_ref2) {
220
+ var originalData = Object.entries(displayValues);
221
+ var filterData = [];
222
+ originalData.forEach(function (_ref2) {
239
223
  var _data$displayValue;
240
224
 
241
225
  var _ref3 = _slicedToArray(_ref2, 2),
242
226
  key = _ref3[0],
243
227
  data = _ref3[1];
244
228
 
245
- return {
246
- key: key,
247
- type: _fieldTypeMap.default[data.component] || 'text',
248
- label: data.title,
249
- value: (_data$displayValue = data.displayValue) !== null && _data$displayValue !== void 0 ? _data$displayValue : data.value
250
- };
251
- }).filter(function (item) {
252
- return (0, _utils.isSignificative)(item.value);
229
+ var value = (_data$displayValue = data.displayValue) !== null && _data$displayValue !== void 0 ? _data$displayValue : data.value;
230
+ var component = data.component;
231
+
232
+ if (component === 'SelectGroup') {
233
+ var _data$value;
234
+
235
+ (_data$value = data.value) === null || _data$value === void 0 ? void 0 : _data$value.forEach(function (item, index) {
236
+ filterData.push({
237
+ key: key,
238
+ type: _fieldTypeMap.default['MultipleSelect'],
239
+ label: item.key,
240
+ value: item.value,
241
+ index: index
242
+ });
243
+ });
244
+ } else if ((0, _utils.isSignificative)(value)) {
245
+ filterData.push({
246
+ key: key,
247
+ type: _fieldTypeMap.default[component] || 'text',
248
+ label: data.title,
249
+ value: value
250
+ });
251
+ }
253
252
  });
253
+ return filterData;
254
254
  }, []); // 设置标签数据
255
255
 
256
256
  var configTag = (0, _react.useCallback)(function () {
@@ -271,6 +271,7 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
271
271
  }
272
272
 
273
273
  setAdvancedFilterVisible(result);
274
+ onExpand === null || onExpand === void 0 ? void 0 : onExpand(result);
274
275
  }, [advancedFilterVisible, configTag, currentForm.current]); // 简单搜索Filter
275
276
 
276
277
  var onSimpleFilter = (0, _react.useCallback)( /*#__PURE__*/function () {
@@ -355,8 +356,15 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
355
356
  lightForm.reset();
356
357
  }, [onReset]); // 关闭标签清空表单字段值
357
358
 
358
- var onTagClose = (0, _react.useCallback)(function (key) {
359
- advancedForm.setValuesIn(key, undefined);
359
+ var onTagClose = (0, _react.useCallback)(function (key, index) {
360
+ var newValue = undefined;
361
+
362
+ if ((0, _utils.isNum)(index)) {
363
+ newValue = _toConsumableArray(advancedForm.getValuesIn(key));
364
+ newValue.splice(index, 1);
365
+ }
366
+
367
+ advancedForm.setValuesIn(key, newValue);
360
368
  configFilterItem(advancedForm);
361
369
  configTag();
362
370
  onFilter && onFilter((0, _reactive.toJS)(advancedForm.values));
@@ -371,57 +379,44 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
371
379
  (0, _react.useEffect)(function () {
372
380
  setCurrentForm(currentForm.current);
373
381
  }, []);
374
- return /*#__PURE__*/_react.default.createElement("div", {
375
- className: (0, _classnames.default)(prefixCls, props.className)
376
- }, /*#__PURE__*/_react.default.createElement("div", {
377
- className: "".concat(prefixCls, "-inline")
378
- }, /*#__PURE__*/_react.default.createElement("div", {
379
- className: "".concat(prefixCls, "-left")
380
- }, addonBefore ? /*#__PURE__*/_react.default.createElement("div", {
381
- className: "".concat(prefixCls, "-addonBefore")
382
- }, addonBefore) : null, mode === 'panel' ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
383
- className: (0, _classnames.default)("".concat(prefixCls, "-inline-form"), hasDefaultOrRequired ? "".concat(prefixCls, "-inline-form-hidden") : '')
384
- }, /*#__PURE__*/_react.default.createElement(_LightFilter.default, _objectSpread(_objectSpread({}, otherProps), {}, {
385
- defaultFilterValue: defaultFilterValue,
386
- form: lightForm,
387
- onChange: (0, _lodash.default)(onLightFilter, 300)
388
- }))), /*#__PURE__*/_react.default.createElement("div", {
389
- className: "".concat(prefixCls, "-toggle")
390
- }, /*#__PURE__*/_react.default.createElement(_components.Badge, {
382
+ return /*#__PURE__*/_react.default.createElement(_Layout.QueryFilterLayout, {
383
+ className: (0, _classnames.default)(prefixCls, props.className),
384
+ addonBefore: addonBefore,
385
+ addonAfter: addonAfter,
386
+ expand: advancedFilterVisible,
387
+ onExpand: toggleAdvancedFilter,
391
388
  count: tagDataSource.length,
392
- style: _objectSpread({
393
- backgroundColor: 'var(--color-brand1-6, #0064c8)',
394
- color: 'var(--color-white, #fff)'
395
- }, advancedFilterVisible ? {
396
- display: 'none'
397
- } : {})
398
- }, /*#__PURE__*/_react.default.createElement(_components.Button, {
399
- onClick: toggleAdvancedFilter
400
- }, advancedFilterVisible ? /*#__PURE__*/_react.default.createElement(_icon.default, {
401
- type: "up-line"
402
- }) : /*#__PURE__*/_react.default.createElement(_icon.default, {
403
- type: "filter-line"
404
- }), (0, _utils.getMessage)('advancedFilter'))))) : /*#__PURE__*/_react.default.createElement("div", {
405
- className: "".concat(prefixCls, "-inline-form")
406
- }, /*#__PURE__*/_react.default.createElement(_SimpleFilter.default, _objectSpread(_objectSpread({}, otherProps), {}, {
407
- form: simpleForm,
408
- onChange: (0, _lodash.default)(onSimpleFilter, 300),
409
- onSubmit: onSimpleFilter
410
- })))), addonAfter ? /*#__PURE__*/_react.default.createElement("div", {
411
- className: "".concat(prefixCls, "-addonAfter")
412
- }, addonAfter) : null), mode === 'panel' ? /*#__PURE__*/_react.default.createElement("div", {
413
- className: "".concat(prefixCls, "-panel")
414
- }, /*#__PURE__*/_react.default.createElement("div", {
415
- className: (0, _classnames.default)("".concat(prefixCls, "-tag"), advancedFilterVisible ? "".concat(prefixCls, "-tag-hidden") : '')
416
- }, /*#__PURE__*/_react.default.createElement(_components.Tag.Group, null, tagDataSource.map(function (_ref7) {
389
+ inlineContent: mode === 'panel' ? /*#__PURE__*/_react.default.createElement("div", {
390
+ className: (0, _classnames.default)("".concat(prefixCls, "-inline"), hasDefaultOrRequired ? "".concat(prefixCls, "-inline-hidden") : '')
391
+ }, /*#__PURE__*/_react.default.createElement(_LightFilter.default, _objectSpread(_objectSpread({}, otherProps), {}, {
392
+ defaultFilterValue: defaultFilterValue,
393
+ form: lightForm,
394
+ onChange: (0, _lodash.default)(onLightFilter, filterDebounce)
395
+ }))) : /*#__PURE__*/_react.default.createElement("div", {
396
+ className: "".concat(prefixCls, "-inline")
397
+ }, /*#__PURE__*/_react.default.createElement(_SimpleFilter.default, _objectSpread(_objectSpread({}, otherProps), {}, {
398
+ form: simpleForm,
399
+ onChange: (0, _lodash.default)(onSimpleFilter, filterDebounce),
400
+ onSubmit: onSimpleFilter
401
+ }))),
402
+ panelContent: mode === 'panel' ? /*#__PURE__*/_react.default.createElement(_AdvancedFilter.default, _objectSpread(_objectSpread({}, otherProps), {}, {
403
+ initialRequest: otherProps.initialRequest ? _objectSpread(_objectSpread({}, otherProps.initialRequest), {}, {
404
+ onComplete: onInitialRequestComplete
405
+ }) : undefined,
406
+ form: advancedForm,
407
+ onSubmit: onAdvancedFilter,
408
+ onReset: onAdvancedReset
409
+ })) : null
410
+ }, mode === 'panel' && !advancedFilterVisible ? /*#__PURE__*/_react.default.createElement(_components.Tag.Group, null, tagDataSource.map(function (_ref7) {
417
411
  var key = _ref7.key,
418
412
  label = _ref7.label,
419
413
  value = _ref7.value,
420
- type = _ref7.type;
414
+ type = _ref7.type,
415
+ index = _ref7.index;
421
416
  return /*#__PURE__*/_react.default.createElement(_components.Tag.Closeable, {
422
- key: key,
417
+ key: (0, _utils.isNum)(index) ? key + label : key,
423
418
  afterClose: function afterClose() {
424
- return onTagClose(key);
419
+ return onTagClose(key, index);
425
420
  }
426
421
  }, /*#__PURE__*/_react.default.createElement("span", {
427
422
  className: "".concat(prefixCls, "-tag-title")
@@ -431,19 +426,11 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
431
426
  type: type,
432
427
  value: value
433
428
  })));
434
- }))), /*#__PURE__*/_react.default.createElement("div", {
435
- className: (0, _classnames.default)("".concat(prefixCls, "-advanced-wrap"), !advancedFilterVisible ? "".concat(prefixCls, "-advanced-wrap-hidden") : '')
436
- }, /*#__PURE__*/_react.default.createElement(_AdvancedFilter.default, _objectSpread(_objectSpread({}, otherProps), {}, {
437
- initialRequest: otherProps.initialRequest ? _objectSpread(_objectSpread({}, otherProps.initialRequest), {}, {
438
- onComplete: onInitialRequestComplete
439
- }) : undefined,
440
- form: advancedForm,
441
- onSubmit: onAdvancedFilter,
442
- onReset: onAdvancedReset
443
- })))) : null);
429
+ })) : null);
444
430
  });
445
431
  exports.QueryFilter = QueryFilter;
446
432
  QueryFilter.defaultProps = {
447
433
  mode: 'inline',
448
- expand: false
434
+ expand: false,
435
+ filterDebounce: 300
449
436
  };
@@ -4,31 +4,12 @@ $query-filter: #{$teamix-pro-form}-query-filter;
4
4
 
5
5
  .#{$query-filter} {
6
6
  .#{$query-filter}-inline {
7
- display: flex;
8
- justify-content: space-between;
9
- }
10
- .#{$query-filter}-left {
11
- display: flex;
12
- }
13
- .#{$query-filter}-addonBefore {
14
- flex: 0 1 auto;
15
- margin-right: 8px;
16
- }
17
- .#{$query-filter}-inline-form {
18
- flex: 0 0 auto;
19
7
  margin-right: 8px;
20
8
  margin-bottom: 8px;
21
9
  }
22
- .#{$query-filter}-inline-form-hidden {
10
+ .#{$query-filter}-inline-hidden {
23
11
  display: none;
24
12
  }
25
- .#{$query-filter}-toggle {
26
- margin-bottom: 8px;
27
- }
28
- .#{$query-filter}-addonAfter {
29
- flex: 0 1 auto;
30
- margin-left: 8px;
31
- }
32
13
  .#{$query-filter}-tag-title {
33
14
  margin-right: 12px;
34
15
  color: var(--color-text1-8, #848484);
@@ -42,34 +23,24 @@ $query-filter: #{$teamix-pro-form}-query-filter;
42
23
  }
43
24
  }
44
25
  }
45
- .#{$query-filter}-tag-hidden {
46
- display: none;
47
- }
48
- .#{$query-filter}-advanced-wrap {
49
- padding: 16px;
50
- background-color: var(--color-fill1-2, #f7f7f7);
51
- }
52
- .#{$query-filter}-advanced-wrap-hidden {
53
- display: none;
54
- }
26
+ }
55
27
 
56
- .#{$query-filter}-advanced {
57
- .#{$css-prefix}formily-button-group {
58
- margin-top: 0;
59
- }
28
+ .#{$query-filter}-advanced {
29
+ .#{$css-prefix}formily-button-group {
30
+ margin-top: 0;
60
31
  }
61
- .#{$query-filter}-advanced,
62
- .#{$query-filter}-simple,
63
- .#{$query-filter}-light {
64
- .#{$form-item-cls}-feedback-layout-popover {
65
- margin-bottom: 0;
66
- }
67
- .#{$css-prefix}date-picker2-input {
68
- .#{$css-prefix}input {
32
+ }
33
+ .#{$query-filter}-advanced,
34
+ .#{$query-filter}-simple,
35
+ .#{$query-filter}-light {
36
+ .#{$form-item-cls}-feedback-layout-popover {
37
+ margin-bottom: 0;
38
+ }
39
+ .#{$css-prefix}date-picker2-input {
40
+ .#{$css-prefix}input {
41
+ width: inherit;
42
+ input {
69
43
  width: inherit;
70
- input {
71
- width: inherit;
72
- }
73
44
  }
74
45
  }
75
46
  }
@@ -0,0 +1,36 @@
1
+ @import '../global.scss';
2
+
3
+ $query-filter-layout: #{$teamix-pro-form}-query-filter-layout;
4
+
5
+ .theme-hybridcloud-dark {
6
+ --panel-filter-bg: #1f1f1f;
7
+ }
8
+
9
+ .#{$query-filter-layout} {
10
+ .#{$query-filter-layout}-inline {
11
+ display: flex;
12
+ justify-content: space-between;
13
+ }
14
+ .#{$query-filter-layout}-left {
15
+ display: flex;
16
+ }
17
+ .#{$query-filter-layout}-addonBefore {
18
+ flex: 0 1 auto;
19
+ margin-right: 8px;
20
+ }
21
+ .#{$query-filter-layout}-toggle {
22
+ margin-bottom: 8px;
23
+ }
24
+ .#{$query-filter-layout}-addonAfter {
25
+ flex: 0 1 auto;
26
+ margin-left: 8px;
27
+ }
28
+ .#{$query-filter-layout}-panel {
29
+ margin-bottom: 8px;
30
+ padding: 16px;
31
+ background-color: var(--panel-filter-bg, var(--color-fill1-2));
32
+ }
33
+ .#{$query-filter-layout}-panel-hidden {
34
+ display: none;
35
+ }
36
+ }
@@ -0,0 +1,6 @@
1
+ declare const useSpecialProps: (props: any) => {
2
+ hasDefault: boolean;
3
+ hasAsyncDefault: boolean;
4
+ hasRequired: boolean;
5
+ };
6
+ export default useSpecialProps;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _utils = require("@teamix/utils");
9
+
10
+ // 获取Schema是否包含默认值、异步默认值、必选校验等
11
+ var useSpecialProps = function useSpecialProps(props) {
12
+ var initialValues = props.initialValues,
13
+ initialRequest = props.initialRequest;
14
+ var hasDefault = !!initialValues;
15
+ var hasAsyncDefault = !!initialRequest;
16
+ var hasRequired = false;
17
+
18
+ var hasDefaultOrRule = function hasDefaultOrRule(schema) {
19
+ schema.forEach(function (item) {
20
+ var value = item.default,
21
+ required = item.required,
22
+ rules = item.rules,
23
+ request = item.request,
24
+ dataSource = item.dataSource,
25
+ children = item.children;
26
+ hasDefault = hasDefault || (0, _utils.isSignificative)(value);
27
+ hasRequired = hasRequired || required || !!rules;
28
+ hasAsyncDefault = hasAsyncDefault || !!request || // 如果dataSource是异步且default取自dataSource
29
+ !!((0, _utils.isPlainObj)(dataSource) && (0, _utils.isStr)(value) && value.indexOf('.dataSource'));
30
+
31
+ if (children === null || children === void 0 ? void 0 : children.length) {
32
+ hasDefaultOrRule(children);
33
+ }
34
+ });
35
+ };
36
+
37
+ hasDefaultOrRule(props.schema);
38
+ return {
39
+ hasDefault: hasDefault,
40
+ hasAsyncDefault: hasAsyncDefault,
41
+ hasRequired: hasRequired
42
+ };
43
+ };
44
+
45
+ var _default = useSpecialProps;
46
+ exports.default = _default;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const customComponent: (component: React.FC<any>) => React.ForwardRefExoticComponent<Pick<Partial<any>, string | number | symbol> & React.RefAttributes<unknown>>;
3
+ export { customComponent };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.customComponent = void 0;
7
+
8
+ var _react = require("@formily/react");
9
+
10
+ var _reactive = require("@formily/reactive");
11
+
12
+ 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
+
14
+ 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; }
15
+
16
+ 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; }
17
+
18
+ var customComponent = function customComponent(component) {
19
+ return (0, _react.connect)(component, (0, _react.mapProps)(function (props, field) {
20
+ return _objectSpread(_objectSpread({}, props), {}, {
21
+ field: field,
22
+ form: field.form,
23
+ values: (0, _reactive.toJS)(field.form.values)
24
+ });
25
+ }));
26
+ };
27
+
28
+ exports.customComponent = customComponent;
@@ -186,18 +186,17 @@
186
186
  }
187
187
 
188
188
  // 数组类组件添加按钮
189
- .#{$form-array}-base-addition {
189
+ .#{$css-prefix}btn.#{$form-array}-base-addition {
190
+ border-style: dashed;
190
191
  .#{$css-prefix}formily-icon {
191
192
  margin-right: 4px;
192
193
  }
193
194
  }
194
195
  // 数组类ArrayItem Icon 居中
195
196
  .#{$form-array}-items-item-inner {
196
- > .#{$css-prefix}box {
197
- > .#{$css-prefix}space-item {
198
- > .#{$css-prefix}formily-icon {
199
- margin-top: 9px;
200
- }
197
+ .#{$css-prefix}space-item {
198
+ > .#{$css-prefix}formily-icon {
199
+ margin-top: 9px;
201
200
  }
202
201
  }
203
202
  }