@teamix/pro 1.2.14 → 1.2.18

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 (61) hide show
  1. package/dist/pro.css +1 -1
  2. package/dist/pro.js +538 -260
  3. package/dist/pro.min.css +1 -1
  4. package/dist/pro.min.js +1 -1
  5. package/es/actions/dialog.js +3 -1
  6. package/es/actions/index.d.ts +2 -0
  7. package/es/actions/index.js +28 -14
  8. package/es/card/index.d.ts +4 -1
  9. package/es/card/index.js +8 -2
  10. package/es/card/index.scss +4 -0
  11. package/es/form/Components/LightFilter/index.js +1 -2
  12. package/es/form/Filter/index.js +2 -2
  13. package/es/form/Filter/index2.js +124 -128
  14. package/es/form/Filter/index2.scss +1 -1
  15. package/es/form/ProForm/index.js +1 -0
  16. package/es/form/ProForm/useFieldRequest.js +1 -8
  17. package/es/form/SchemaForm/index.js +4 -2
  18. package/es/form/SchemaForm/reactions.js +2 -6
  19. package/es/form/typing.d.ts +6 -0
  20. package/es/index.d.ts +1 -1
  21. package/es/index.js +1 -1
  22. package/es/nocode/configurators/ProTable.js +1 -0
  23. package/es/page-header/index.js +2 -11
  24. package/es/table/components/Filter/index.js +42 -16
  25. package/es/table/components/ToolBar/FilterColumnIcon.js +52 -17
  26. package/es/table/components/ToolBar/index.scss +1 -0
  27. package/es/table/index.js +29 -2
  28. package/es/table/typing.d.ts +9 -2
  29. package/es/table/utils/columnRender.js +27 -6
  30. package/es/table/utils/index.js +7 -1
  31. package/es/utils/message.d.ts +1 -1
  32. package/es/utils/message.js +7 -7
  33. package/lib/actions/dialog.js +3 -1
  34. package/lib/actions/index.d.ts +2 -0
  35. package/lib/actions/index.js +28 -14
  36. package/lib/card/index.d.ts +4 -1
  37. package/lib/card/index.js +9 -2
  38. package/lib/card/index.scss +4 -0
  39. package/lib/form/Components/LightFilter/index.js +1 -2
  40. package/lib/form/Filter/index.js +2 -2
  41. package/lib/form/Filter/index2.js +124 -128
  42. package/lib/form/Filter/index2.scss +1 -1
  43. package/lib/form/ProForm/index.js +1 -0
  44. package/lib/form/ProForm/useFieldRequest.js +1 -9
  45. package/lib/form/SchemaForm/index.js +4 -2
  46. package/lib/form/SchemaForm/reactions.js +1 -5
  47. package/lib/form/typing.d.ts +6 -0
  48. package/lib/index.d.ts +1 -1
  49. package/lib/index.js +1 -1
  50. package/lib/nocode/configurators/ProTable.js +1 -0
  51. package/lib/page-header/index.js +3 -12
  52. package/lib/table/components/Filter/index.js +42 -16
  53. package/lib/table/components/ToolBar/FilterColumnIcon.js +52 -17
  54. package/lib/table/components/ToolBar/index.scss +1 -0
  55. package/lib/table/index.js +29 -2
  56. package/lib/table/typing.d.ts +9 -2
  57. package/lib/table/utils/columnRender.js +27 -6
  58. package/lib/table/utils/index.js +7 -1
  59. package/lib/utils/message.d.ts +1 -1
  60. package/lib/utils/message.js +7 -7
  61. package/package.json +1 -1
@@ -54,8 +54,8 @@ var _excluded = ["type"],
54
54
  _excluded3 = ["loading"],
55
55
  _excluded4 = ["icon", "iconSize", "label", "actions", "children", "context", "type"],
56
56
  _excluded5 = ["context", "text"],
57
- _excluded6 = ["actions"],
58
- _excluded7 = ["config"],
57
+ _excluded6 = ["key", "actions"],
58
+ _excluded7 = ["key", "config"],
59
59
  _excluded8 = ["type", "divider", "max", "moreText", "context", "actions", "className"];
60
60
 
61
61
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -242,8 +242,8 @@ function renderCommonActionButtonMenuItem(action, key, context) {
242
242
  return /*#__PURE__*/_react.default.createElement(_components.Menu.SubMenu, {
243
243
  key: key,
244
244
  label: menuBtn.label || menuBtn.children
245
- }, menuBtn.actions.map(function (a, j) {
246
- return renderCommonActionButtonMenuItem(a, String(j), context);
245
+ }, menuBtn.actions.map(function (a) {
246
+ return renderCommonActionButtonMenuItem(a, a.key, context);
247
247
  }));
248
248
  }
249
249
 
@@ -278,7 +278,7 @@ var ProActionMenuButton = function ProActionMenuButton(props) {
278
278
  type: type,
279
279
  label: buttonContent(label || children, icon, iconSize, context)
280
280
  }, others), actions.map(function (action, i) {
281
- return renderCommonActionButtonMenuItem(action, String(i), context);
281
+ return renderCommonActionButtonMenuItem(action, action.key || i, context);
282
282
  }));
283
283
  }; // 如果 actions 数量超过了 max,则把第 max 个和剩余超出部分折叠起来成为一个 menu
284
284
 
@@ -292,7 +292,9 @@ function formatGroupActions(actions, max, moreConfig) {
292
292
  return actions;
293
293
  }
294
294
 
295
- return [].concat(_toConsumableArray(actions.slice(0, MAX - 1)), [_objectSpread(_objectSpread({}, moreConfig), {}, {
295
+ return [].concat(_toConsumableArray(actions.slice(0, MAX - 1)), [_objectSpread(_objectSpread({
296
+ key: '__teamix_pro_action_group_more_btn'
297
+ }, moreConfig), {}, {
296
298
  actions: actions.slice(MAX - 1)
297
299
  })]);
298
300
  } // 渲染一个 button 或者 menu button
@@ -338,22 +340,34 @@ function getDefaultMoreButton(type, moreText) {
338
340
 
339
341
  var MAX_ACTTIONS = 4;
340
342
 
341
- function getActionConfig(action, context) {
343
+ function getKey(index, key) {
344
+ if (key !== undefined) {
345
+ return key;
346
+ }
347
+
348
+ return "__teamix_pro_action_key_".concat(index);
349
+ }
350
+
351
+ function getActionConfig(action, index, context) {
342
352
  if (action.actions) {
343
- var actions = action.actions,
353
+ var _key = action.key,
354
+ actions = action.actions,
344
355
  _others = _objectWithoutProperties(action, _excluded6);
345
356
 
346
357
  return _objectSpread({
347
- actions: actions.map(function (a) {
348
- return getActionConfig(a, context);
358
+ key: getKey(index, _key),
359
+ actions: actions.map(function (a, j) {
360
+ return getActionConfig(a, j, context);
349
361
  })
350
362
  }, (0, _utils.getTargetValue)(_others, context));
351
363
  }
352
364
 
353
- var config = action.config,
365
+ var key = action.key,
366
+ config = action.config,
354
367
  others = _objectWithoutProperties(action, _excluded7);
355
368
 
356
369
  return _objectSpread({
370
+ key: getKey(index, key),
357
371
  config: config
358
372
  }, (0, _utils.getTargetValue)(others, context));
359
373
  }
@@ -373,8 +387,8 @@ function ProActionGroup(props) {
373
387
  containerProps = _objectWithoutProperties(props, _excluded8);
374
388
 
375
389
  var isTypeText = type === 'text';
376
- var filteredActions = actions.map(function (action) {
377
- return getActionConfig(action, context);
390
+ var filteredActions = actions.map(function (action, index) {
391
+ return getActionConfig(action, index, context);
378
392
  }).filter(function (action) {
379
393
  return action.visible !== false;
380
394
  });
@@ -386,7 +400,7 @@ function ProActionGroup(props) {
386
400
  }, containerProps), formatedActions.map(function (actionBtn, i) {
387
401
  var isLastOne = i === formatedActions.length - 1;
388
402
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
389
- key: i
403
+ key: actionBtn.key
390
404
  }, renderCommonActionButton(actionBtn, context, isTypeText), isTypeText && divider && !isLastOne && /*#__PURE__*/_react.default.createElement(_components.Divider, {
391
405
  direction: "ver"
392
406
  }));
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ProTagItem } from '@teamix/utils';
3
+ import { ProMessageProps } from '../utils/message';
3
4
  import { ProActionGroupProps } from '../actions';
4
5
  import './index.scss';
5
6
  export * from './card-container';
@@ -24,6 +25,8 @@ export interface ProCardProps extends Omit<React.HTMLAttributes<HTMLElement>, 't
24
25
  actions?: React.ReactNode | ProActionGroupProps;
25
26
  /** 卡片背景图 */
26
27
  image?: string;
28
+ /** 位于弹窗内容上方的消息提示区 */
29
+ message?: ProMessageProps;
27
30
  /** 卡片标题下方是否有分割线 */
28
31
  divider?: boolean;
29
32
  /**
@@ -87,7 +90,7 @@ export declare const ProCard: {
87
90
  Selectable: {
88
91
  (props: import("./selectable").ProCardSelectableProps): JSX.Element;
89
92
  defaultProps: {
90
- hoveredShadow: boolean;
93
+ hoveredShadow: boolean; /** 标签组 */
91
94
  };
92
95
  isProCard: boolean;
93
96
  };
package/lib/card/index.js CHANGED
@@ -20,6 +20,8 @@ var _icon = _interopRequireDefault(require("@teamix/icon"));
20
20
 
21
21
  var _utils = require("@teamix/utils");
22
22
 
23
+ var _message = require("../utils/message");
24
+
23
25
  var _skeleton = require("../skeleton");
24
26
 
25
27
  var _actions = require("../actions");
@@ -48,7 +50,7 @@ Object.keys(_cardContainer).forEach(function (key) {
48
50
  });
49
51
  });
50
52
  var _excluded = ["context"],
51
- _excluded2 = ["children", "title", "subTitle", "tooltip", "tooltipIcon", "tags", "description", "extra", "actions", "style", "className", "image", "hoveredShadow", "divider", "bordered", "compacted", "centered", "loading", "empty", "borderColor", "backgroundColor", "contentClassName", "contentStyle", "direction", "wrap", "spacing", "split", "collapsible", "defaultCollapsed", "collapsed", "onCollapse", "context"];
53
+ _excluded2 = ["children", "title", "subTitle", "tooltip", "tooltipIcon", "tags", "description", "extra", "actions", "message", "style", "className", "image", "hoveredShadow", "divider", "bordered", "compacted", "centered", "loading", "empty", "borderColor", "backgroundColor", "contentClassName", "contentStyle", "direction", "wrap", "spacing", "split", "collapsible", "defaultCollapsed", "collapsed", "onCollapse", "context"];
52
54
 
53
55
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
54
56
 
@@ -117,6 +119,7 @@ var ProCard = function ProCard(props) {
117
119
  description = props.description,
118
120
  extra = props.extra,
119
121
  actions = props.actions,
122
+ message = props.message,
120
123
  style = props.style,
121
124
  className = props.className,
122
125
  image = props.image,
@@ -287,7 +290,11 @@ var ProCard = function ProCard(props) {
287
290
  style: {
288
291
  padding: '50px 0 60px'
289
292
  }
290
- })), !empty && childrenModified)));
293
+ })), !empty && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, message && /*#__PURE__*/_react.default.createElement("div", {
294
+ className: cls('content-message')
295
+ }, (0, _message.renderProMessage)(message, {
296
+ type: 'notice'
297
+ })), childrenModified))));
291
298
  };
292
299
 
293
300
  exports.ProCard = ProCard;
@@ -151,6 +151,10 @@
151
151
  }
152
152
  }
153
153
  }
154
+
155
+ &-message {
156
+ margin-bottom: var(--s-2);
157
+ }
154
158
  }
155
159
 
156
160
  &-tab {
@@ -53,8 +53,7 @@ var useMain = function useMain(active) {
53
53
  var main = [];
54
54
  schema.mapProperties(function (schema, name) {
55
55
  // console.log(schema.required); // 添加 *
56
- console.log(schema);
57
-
56
+ // console.log(schema);
58
57
  if (schema.name === active) {
59
58
  main.push({
60
59
  name: name,
@@ -96,7 +96,7 @@ var SimpleFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
96
96
  }
97
97
  }])
98
98
  }];
99
- }, []);
99
+ }, [schema, triggerType]);
100
100
  var eventProps = getEventProps(triggerType, onFilter);
101
101
  return /*#__PURE__*/_react.default.createElement(_ProForm.default, _objectSpread(_objectSpread(_objectSpread({
102
102
  feedbackLayout: "popover",
@@ -174,7 +174,7 @@ var AdvancedFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
174
174
  }]
175
175
  }])
176
176
  }];
177
- }, []);
177
+ }, [schema, onReset, triggerType]);
178
178
  var getTeamixLayout = (0, _react.useMemo)(function () {
179
179
  return {
180
180
  breakpoints: [990],
@@ -31,9 +31,10 @@ var _utils2 = require("../utils");
31
31
 
32
32
  require("./index2.scss");
33
33
 
34
- var _excluded = ["schema", "triggerType", "onFilter"],
35
- _excluded2 = ["schema", "triggerType", "onFilter"],
36
- _excluded3 = ["form", "addonAfter", "addonBefore", "onFilter"];
34
+ var _excluded = ["schema", "onChange", "onSubmit"],
35
+ _excluded2 = ["form", "schema", "onSubmit", "onChange"],
36
+ _excluded3 = ["schema", "onSubmit", "onChange", "onReset", "layout", "labelAlign", "wrapperAlign", "labelCol", "wrapperCol"],
37
+ _excluded4 = ["addonAfter", "addonBefore", "onFilter", "mode", "expand"];
37
38
 
38
39
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
40
 
@@ -61,51 +62,23 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
61
62
 
62
63
  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; }
63
64
 
64
- 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; }
65
-
66
- 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; }
67
-
68
65
  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; }
69
66
 
70
67
  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; }
71
68
 
72
69
  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; }
73
70
 
74
- var getEventProps = function getEventProps(triggerType, onFilter) {
75
- var keydownEvent = {
76
- onSubmit: onFilter
77
- };
78
- var changeEvent = {
79
- onChange: onFilter
80
- };
81
- var eventMap = {
82
- keydown: keydownEvent,
83
- change: _objectSpread(_objectSpread({}, keydownEvent), changeEvent),
84
- submit: keydownEvent
85
- };
86
- return eventMap[triggerType];
87
- };
71
+ 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; }
72
+
73
+ 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; }
88
74
 
89
- var schemaTemp = [{
90
- name: 'taskName',
91
- title: '实例名称',
92
- component: 'Input',
93
- required: true,
94
- props: {
95
- style: {
96
- width: 180
97
- },
98
- placeholder: '请输入'
99
- }
100
- }];
101
75
  /**
102
76
  * 简单筛选
103
77
  */
104
-
105
78
  var SimpleFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
106
79
  var schema = props.schema,
107
- triggerType = props.triggerType,
108
- onFilter = props.onFilter,
80
+ onChange = props.onChange,
81
+ onSubmit = props.onSubmit,
109
82
  otherProps = _objectWithoutProperties(props, _excluded);
110
83
 
111
84
  var prefixCls = (0, _utils.usePrefixCls)('', {
@@ -117,48 +90,87 @@ var SimpleFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
117
90
  props: {
118
91
  size: 8
119
92
  },
120
- children: [].concat(_toConsumableArray(schema), [{
121
- type: 'void',
122
- decorator: null,
123
- component: 'Submit',
124
- props: {
125
- style: _objectSpread({}, triggerType === 'submit' ? {} : {
126
- display: 'none'
127
- })
93
+ children: schema
94
+ }, {
95
+ component: 'Submit',
96
+ props: {
97
+ style: {
98
+ display: 'none'
128
99
  }
129
- }])
100
+ }
130
101
  }];
131
- }, []);
132
- var eventProps = getEventProps(triggerType, onFilter);
133
- return /*#__PURE__*/_react.default.createElement(_ProForm.default, _objectSpread(_objectSpread(_objectSpread({
102
+ }, [schema]);
103
+ return /*#__PURE__*/_react.default.createElement(_ProForm.default, _objectSpread(_objectSpread({}, otherProps), {}, {
104
+ className: (0, _classnames.default)(prefixCls, props.className),
105
+ schema: simpleSchema,
134
106
  feedbackLayout: "popover",
135
107
  breakpoints: [],
136
- inset: true
137
- }, otherProps), eventProps), {}, {
108
+ inset: true,
109
+ onSubmit: onSubmit,
110
+ onChange: onChange
111
+ }));
112
+ });
113
+ /**
114
+ * 轻量筛选
115
+ */
116
+
117
+ var LightFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
118
+ var form = props.form,
119
+ schema = props.schema,
120
+ onSubmit = props.onSubmit,
121
+ onChange = props.onChange,
122
+ otherProps = _objectWithoutProperties(props, _excluded2);
123
+
124
+ var prefixCls = (0, _utils.usePrefixCls)('', {
125
+ prefix: 'teamix-pro-form-query-filter-light'
126
+ });
127
+ var LightSchema = (0, _react.useMemo)(function () {
128
+ return [{
129
+ component: 'LightFilter',
130
+ children: schema
131
+ }, {
132
+ component: 'Submit',
133
+ props: {
134
+ style: {
135
+ display: 'none'
136
+ }
137
+ }
138
+ }];
139
+ }, [schema]); // useEffect(() => {
140
+ // form.addEffects('onChange', () => {
141
+ // onFieldValueChange('',(field:any) => {
142
+ // console.log(field.value);
143
+ // });
144
+ // });
145
+ // }, [form, onChange]);
146
+
147
+ return /*#__PURE__*/_react.default.createElement(_ProForm.default, _objectSpread(_objectSpread({}, otherProps), {}, {
148
+ form: form,
138
149
  className: (0, _classnames.default)(prefixCls, props.className),
139
- schema: simpleSchema
150
+ schema: LightSchema,
151
+ feedbackLayout: "popover",
152
+ breakpoints: [],
153
+ bordered: false,
154
+ onSubmit: onSubmit,
155
+ onChange: onChange
140
156
  }));
141
157
  });
142
- SimpleFilter.defaultProps = {
143
- triggerType: 'change'
144
- };
145
158
  /**
146
159
  * 高级筛选
147
160
  */
148
161
 
149
162
  var AdvancedFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
150
- var form = (0, _react.useMemo)(function () {
151
- return (props === null || props === void 0 ? void 0 : props.form) || (0, _core.createForm)();
152
- }, []);
153
163
  var schema = props.schema,
154
- triggerType = props.triggerType,
155
- onFilter = props.onFilter,
164
+ onSubmit = props.onSubmit,
165
+ onChange = props.onChange,
156
166
  onReset = props.onReset,
157
167
  layout = props.layout,
158
168
  labelAlign = props.labelAlign,
159
169
  wrapperAlign = props.wrapperAlign,
160
170
  labelCol = props.labelCol,
161
- wrapperCol = props.wrapperCol;
171
+ wrapperCol = props.wrapperCol,
172
+ otherProps = _objectWithoutProperties(props, _excluded3);
173
+
162
174
  var prefixCls = (0, _utils.usePrefixCls)('', {
163
175
  prefix: 'teamix-pro-form-query-filter-advanced'
164
176
  });
@@ -186,26 +198,21 @@ var AdvancedFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
186
198
  component: 'Reset',
187
199
  props: {
188
200
  onResetValidateSuccess: onReset,
189
- style: _objectSpread({}, triggerType === 'submit' ? {} : {
190
- marginRight: -16
191
- }),
192
201
  children: (0, _utils.getMessage)('reset')
193
202
  }
194
203
  }, {
195
204
  component: 'Submit',
196
205
  props: {
197
- style: _objectSpread({}, triggerType === 'submit' ? {
206
+ style: {
198
207
  marginRight: -8
199
- } : {
200
- display: 'none'
201
- }),
208
+ },
202
209
  children: (0, _utils.getMessage)('search')
203
210
  }
204
211
  }]
205
212
  }]
206
213
  }])
207
214
  }];
208
- }, []);
215
+ }, [schema, onReset]);
209
216
  var getTeamixLayout = (0, _react.useMemo)(function () {
210
217
  return {
211
218
  breakpoints: [990],
@@ -216,61 +223,39 @@ var AdvancedFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
216
223
  wrapperCol: (0, _utils2.mergeArrayValue)([24], wrapperCol)
217
224
  };
218
225
  }, [layout, labelAlign, wrapperAlign, labelCol, wrapperCol]);
219
- var eventProps = getEventProps(triggerType, onFilter);
220
- return /*#__PURE__*/_react.default.createElement(_ProForm.default, _objectSpread(_objectSpread(_objectSpread(_objectSpread({
221
- feedbackLayout: "popover"
222
- }, props), eventProps), getTeamixLayout), {}, {
223
- form: form,
226
+ return /*#__PURE__*/_react.default.createElement(_ProForm.default, _objectSpread(_objectSpread(_objectSpread({
224
227
  className: (0, _classnames.default)(prefixCls, props.className),
225
228
  schema: gridSchema,
226
- onSubmit: onFilter
229
+ feedbackLayout: "popover"
230
+ }, otherProps), getTeamixLayout), {}, {
231
+ onSubmit: onSubmit
227
232
  }));
228
233
  });
229
234
  AdvancedFilter.defaultProps = {
230
- triggerType: 'change',
231
235
  layout: 'horizontal',
232
236
  labelAlign: 'right',
233
237
  labelCol: 6,
234
238
  wrapperCol: 18
235
239
  };
236
240
  /**
237
- * 聚合筛选
241
+ * 查询筛选
238
242
  */
239
243
 
240
- var LightFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
241
- var schema = props.schema,
242
- triggerType = props.triggerType,
244
+ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
245
+ var addonAfter = props.addonAfter,
246
+ addonBefore = props.addonBefore,
243
247
  onFilter = props.onFilter,
244
- otherProps = _objectWithoutProperties(props, _excluded2);
248
+ mode = props.mode,
249
+ expand = props.expand,
250
+ otherProps = _objectWithoutProperties(props, _excluded4);
245
251
 
246
- var prefixCls = (0, _utils.usePrefixCls)('', {
247
- prefix: 'teamix-pro-form-query-filter-light'
248
- });
249
- var LightSchema = (0, _react.useMemo)(function () {
250
- return [{
251
- component: 'LightFilter',
252
- children: schema
253
- }];
254
- }, [schema]);
255
- var eventProps = getEventProps(triggerType, onFilter);
256
- return /*#__PURE__*/_react.default.createElement(_ProForm.default, _objectSpread(_objectSpread(_objectSpread({
257
- feedbackLayout: "popover",
258
- breakpoints: [],
259
- bordered: false
260
- }, otherProps), eventProps), {}, {
261
- className: (0, _classnames.default)(prefixCls, props.className),
262
- schema: LightSchema
263
- }));
264
- });
265
- LightFilter.defaultProps = {
266
- triggerType: 'change'
267
- };
268
- /**
269
- * 查询筛选
270
- */
252
+ var form = (0, _react.useMemo)(function () {
253
+ return props.form || (0, _core.createForm)({
254
+ validateFirst: true
255
+ });
256
+ }, []);
271
257
 
272
- var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
273
- var _useState = (0, _react.useState)(true),
258
+ var _useState = (0, _react.useState)(expand),
274
259
  _useState2 = _slicedToArray(_useState, 2),
275
260
  advancedFilterVisible = _useState2[0],
276
261
  setAdvancedFilterVisible = _useState2[1];
@@ -280,17 +265,6 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
280
265
  tagDataSource = _useState4[0],
281
266
  setTagDataSource = _useState4[1];
282
267
 
283
- var outerForm = props.form,
284
- addonAfter = props.addonAfter,
285
- addonBefore = props.addonBefore,
286
- onFilter = props.onFilter,
287
- otherProps = _objectWithoutProperties(props, _excluded3);
288
-
289
- var form = (0, _react.useMemo)(function () {
290
- return outerForm || (0, _core.createForm)({
291
- validateFirst: true
292
- });
293
- }, []);
294
268
  var prefixCls = (0, _utils.usePrefixCls)('', {
295
269
  prefix: 'teamix-pro-form-query-filter'
296
270
  }); // 展开收起高级筛选
@@ -319,9 +293,20 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
319
293
  }).filter(function (item) {
320
294
  return (0, _utils.isSignificative)(item.value);
321
295
  });
322
- }, []); // 表单值变化
296
+ }, []); // 表单值提交
297
+
298
+ var onFormSubmit = (0, _react.useCallback)(function (values) {
299
+ setTagDataSource(getTagDataSource(form));
300
+ onFilter && onFilter(values);
301
+ }, []); // 轻量表单onChange
302
+
303
+ var onLightValueChange = (0, _react.useCallback)(function (values) {
304
+ form.reset();
305
+ setTagDataSource(getTagDataSource(form));
306
+ onFilter && onFilter(values);
307
+ }, [form]); // 简单表单onChange
323
308
 
324
- var onFormValueChange = (0, _react.useCallback)(function (values) {
309
+ var onSimpleValueChange = (0, _react.useCallback)(function (values) {
325
310
  setTagDataSource(getTagDataSource(form));
326
311
  onFilter && onFilter(values);
327
312
  }, []); // 关闭标签清空表单字段值
@@ -341,11 +326,12 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
341
326
  className: "".concat(prefixCls, "-left")
342
327
  }, addonBefore ? /*#__PURE__*/_react.default.createElement("div", {
343
328
  className: "".concat(prefixCls, "-addonBefore")
344
- }, addonBefore) : null, /*#__PURE__*/_react.default.createElement("div", {
345
- className: "".concat(prefixCls, "-light-wrap")
329
+ }, addonBefore) : null, mode === 'panel' ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
330
+ className: "".concat(prefixCls, "-inline-form")
346
331
  }, /*#__PURE__*/_react.default.createElement(LightFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
347
332
  form: form,
348
- onFilter: onFormValueChange
333
+ onFilter: onLightValueChange,
334
+ onSubmit: onFormSubmit
349
335
  }))), /*#__PURE__*/_react.default.createElement("div", {
350
336
  className: "".concat(prefixCls, "-toggle")
351
337
  }, /*#__PURE__*/_react.default.createElement(_components.Badge, {
@@ -362,9 +348,15 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
362
348
  type: "up-line"
363
349
  }) : /*#__PURE__*/_react.default.createElement(_icon.default, {
364
350
  type: "filter-line"
365
- }), (0, _utils.getMessage)('advancedFilter'))))), addonAfter ? /*#__PURE__*/_react.default.createElement("div", {
351
+ }), (0, _utils.getMessage)('advancedFilter'))))) : /*#__PURE__*/_react.default.createElement("div", {
352
+ className: "".concat(prefixCls, "-inline-form")
353
+ }, /*#__PURE__*/_react.default.createElement(SimpleFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
354
+ form: form,
355
+ onFilter: onSimpleValueChange,
356
+ onSubmit: onFormSubmit
357
+ })))), addonAfter ? /*#__PURE__*/_react.default.createElement("div", {
366
358
  className: "".concat(prefixCls, "-addonAfter")
367
- }, addonAfter) : null), /*#__PURE__*/_react.default.createElement("div", {
359
+ }, addonAfter) : null), mode === 'panel' ? /*#__PURE__*/_react.default.createElement("div", {
368
360
  className: "".concat(prefixCls, "-panel")
369
361
  }, /*#__PURE__*/_react.default.createElement("div", {
370
362
  className: (0, _classnames.default)("".concat(prefixCls, "-tag"), advancedFilterVisible ? "".concat(prefixCls, "-tag-hidden") : '')
@@ -390,7 +382,11 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
390
382
  className: (0, _classnames.default)("".concat(prefixCls, "-advanced-wrap"), !advancedFilterVisible ? "".concat(prefixCls, "-advanced-wrap-hidden") : '')
391
383
  }, /*#__PURE__*/_react.default.createElement(AdvancedFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
392
384
  form: form,
393
- onFilter: onFormValueChange
394
- })))));
385
+ onSubmit: onFormSubmit
386
+ })))) : null);
395
387
  });
396
- exports.QueryFilter = QueryFilter;
388
+ exports.QueryFilter = QueryFilter;
389
+ QueryFilter.defaultProps = {
390
+ mode: 'inline',
391
+ expand: false
392
+ };
@@ -14,7 +14,7 @@ $query-filter: #{$teamix-pro-form}-query-filter;
14
14
  flex: 0 1 auto;
15
15
  margin-right: 8px;
16
16
  }
17
- .#{$query-filter}-light-wrap {
17
+ .#{$query-filter}-inline-form {
18
18
  flex: 0 0 auto;
19
19
  margin-right: 8px;
20
20
  margin-bottom: 8px;
@@ -105,6 +105,7 @@ var ProForm = /*#__PURE__*/(0, _react.memo)(function (_ref) {
105
105
  }, [breakpoints, layout, labelAlign, wrapperAlign, labelCol, wrapperCol]); // 添加onChange
106
106
 
107
107
  (0, _react.useEffect)(function () {
108
+ form.removeEffects('onChange');
108
109
  form.addEffects('onChange', function () {
109
110
  (0, _core.onFormValuesChange)(function (form) {
110
111
  if (onChange) {
@@ -7,8 +7,6 @@ exports.default = void 0;
7
7
 
8
8
  var _react = require("@formily/react");
9
9
 
10
- var _utils = require("@teamix/utils");
11
-
12
10
  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
11
 
14
12
  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; }
@@ -19,13 +17,7 @@ var _default = function _default() {
19
17
  var field = (0, _react.useField)();
20
18
 
21
19
  var refresh = function refresh() {
22
- if (!(0, _utils.isPlainObj)(field.data)) {
23
- field.data = {
24
- refresh: {}
25
- };
26
- } else {
27
- field.data.refresh = _objectSpread({}, field.data.refresh);
28
- }
20
+ field.data.refresh = _objectSpread({}, field.data.refresh);
29
21
  };
30
22
 
31
23
  return {
@@ -266,7 +266,9 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
266
266
  rules: defaultRules,
267
267
  reactions: defaultReactions,
268
268
  dataSource: defaultDataSource,
269
- data: data
269
+ data: data || {
270
+ placeholder: true
271
+ }
270
272
  })); // 递归子组件
271
273
 
272
274
  var recursiveProperties = (children === null || children === void 0 ? void 0 : children.length) ? {
@@ -285,7 +287,7 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
285
287
  type: 'object',
286
288
  properties: formatSchema(schema)
287
289
  };
288
- }, []); // console.log(proFormSchema);
290
+ }, [schema]); // console.log(proFormSchema);
289
291
 
290
292
  return /*#__PURE__*/_react.default.createElement(SchemaField, {
291
293
  schema: proFormSchema,
@@ -68,11 +68,7 @@ var $dataSource = function $dataSource(services, onComplete, context) {
68
68
  readOnly: true
69
69
  });
70
70
  return services(field, context).then(function (res) {
71
- var _res$map;
72
-
73
- var isValueInDataSource = res === null || res === void 0 ? void 0 : (_res$map = res.map(function (v) {
74
- return v.value;
75
- })) === null || _res$map === void 0 ? void 0 : _res$map.includes(field.value);
71
+ var isValueInDataSource = (0, _utils.getValueByValue)(res, field.value);
76
72
  var clearValue = isValueInDataSource ? {} : {
77
73
  value: undefined
78
74
  };